[pacman-dev] [PATCH 1/3] add specific error for missing gpg support

Andrew Gregory andrew.gregory.8 at gmail.com
Sat Nov 24 23:56:11 UTC 2018


"wrong or NULL argument passed" is a useless error for end users.

Fixes FS#60880.

Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
---
 lib/libalpm/alpm.h    | 4 +++-
 lib/libalpm/be_sync.c | 2 +-
 lib/libalpm/error.c   | 3 +++
 lib/libalpm/handle.c  | 6 +++---
 4 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 2d3d198a..597e11bd 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -118,7 +118,9 @@ typedef enum _alpm_errno_t {
 	ALPM_ERR_LIBARCHIVE,
 	ALPM_ERR_LIBCURL,
 	ALPM_ERR_EXTERNAL_DOWNLOAD,
-	ALPM_ERR_GPGME
+	ALPM_ERR_GPGME,
+	/* Missing compile-time features */
+	ALPM_ERR_MISSING_CAPABILITY_SIGNATURES
 } alpm_errno_t;
 
 /** Returns the current error code from the handle. */
diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c
index 5009a7da..6adf1cd9 100644
--- a/lib/libalpm/be_sync.c
+++ b/lib/libalpm/be_sync.c
@@ -788,7 +788,7 @@ alpm_db_t *_alpm_db_register_sync(alpm_handle_t *handle, const char *treename,
 
 #ifndef HAVE_LIBGPGME
 	if(level != ALPM_SIG_USE_DEFAULT) {
-		RET_ERR(handle, ALPM_ERR_WRONG_ARGS, NULL);
+		RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, NULL);
 	}
 #endif
 
diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c
index b4fc99ae..95be9d7b 100644
--- a/lib/libalpm/error.c
+++ b/lib/libalpm/error.c
@@ -159,6 +159,9 @@ const char SYMEXPORT *alpm_strerror(alpm_errno_t err)
 			return _("gpgme error");
 		case ALPM_ERR_EXTERNAL_DOWNLOAD:
 			return _("error invoking external downloader");
+		/* Missing compile-time features */
+		case ALPM_ERR_MISSING_CAPABILITY_SIGNATURES:
+				return _("compiled without signature support");
 		/* Unknown error! */
 		default:
 			return _("unexpected error");
diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c
index 2213ce53..be5666dc 100644
--- a/lib/libalpm/handle.c
+++ b/lib/libalpm/handle.c
@@ -807,7 +807,7 @@ int SYMEXPORT alpm_option_set_default_siglevel(alpm_handle_t *handle,
 	handle->siglevel = level;
 #else
 	if(level != 0 && level != ALPM_SIG_USE_DEFAULT) {
-		RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1);
+		RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, -1);
 	}
 #endif
 	return 0;
@@ -827,7 +827,7 @@ int SYMEXPORT alpm_option_set_local_file_siglevel(alpm_handle_t *handle,
 	handle->localfilesiglevel = level;
 #else
 	if(level != 0 && level != ALPM_SIG_USE_DEFAULT) {
-		RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1);
+		RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, -1);
 	}
 #endif
 	return 0;
@@ -851,7 +851,7 @@ int SYMEXPORT alpm_option_set_remote_file_siglevel(alpm_handle_t *handle,
 	handle->remotefilesiglevel = level;
 #else
 	if(level != 0 && level != ALPM_SIG_USE_DEFAULT) {
-		RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1);
+		RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, -1);
 	}
 #endif
 	return 0;
-- 
2.19.1


More information about the pacman-dev mailing list