diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 96e5e643..ee967dbb 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -300,6 +300,8 @@ typedef enum _alpm_errno_t { ALPM_ERR_SIG_MISSING, /** Signatures are invalid */ ALPM_ERR_SIG_INVALID, + /** Keys are missing from keyring */ + ALPM_ERR_KEY_MISSING, /* Dependencies */ /** Dependencies could not be satisfied */ ALPM_ERR_UNSATISFIED_DEPS, diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c index 0fecbcb5..a7ceb8a2 100644 --- a/lib/libalpm/be_package.c +++ b/lib/libalpm/be_package.c @@ -766,6 +766,7 @@ int SYMEXPORT alpm_pkg_load(alpm_handle_t *handle, const char *filename, int ful if(fail) { _alpm_log(handle, ALPM_LOG_ERROR, _("required key missing from keyring\n")); + handle->pm_errno = ALPM_ERR_KEY_MISSING; free(sigpath); return -1; } diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c index 58842eac..e59bdb5f 100644 --- a/lib/libalpm/error.c +++ b/lib/libalpm/error.c @@ -130,6 +130,8 @@ const char SYMEXPORT *alpm_strerror(alpm_errno_t err) return _("missing PGP signature"); case ALPM_ERR_SIG_INVALID: return _("invalid PGP signature"); + case ALPM_ERR_KEY_MISSING: + return _("PGP key missing from keyring"); /* Dependencies */ case ALPM_ERR_UNSATISFIED_DEPS: return _("could not satisfy dependencies"); diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 087c48de..63f5d500 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -975,6 +975,7 @@ static int check_keyring(alpm_handle_t *handle) EVENT(handle, &event); if(fail) { _alpm_log(handle, ALPM_LOG_ERROR, _("required key missing from keyring\n")); + handle->pm_errno = ALPM_ERR_KEY_MISSING; return -1; } }