summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2011-07-06 17:24:19 +0200
committerDan McGee <dan@archlinux.org>2011-07-18 10:44:07 -0500
commit89c070b263a9e1e4e0734b25c8bc33367a34e504 (patch)
tree824718f06aa74cf3aecb8c2064c564c6c3fa89a2
parent29a96bcfe179a82adbd575057e2ef9d48a6a72fb (diff)
downloadpacman-89c070b263a9e1e4e0734b25c8bc33367a34e504.tar.xz
signing.c: check if needed files are readable
If we can't read the keyring, gpgme will output confusing debug information and fail to verify the signature, so we should log some debug information. Signed-off-by: Florian Pritz <bluewind@xinu.at> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/signing.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c
index ae90378d..819e5f54 100644
--- a/lib/libalpm/signing.c
+++ b/lib/libalpm/signing.c
@@ -118,6 +118,12 @@ static int init_gpgme(alpm_handle_t *handle)
sigdir = alpm_option_get_gpgdir(handle);
+ if (_alpm_access(handle, sigdir, "pubring.gpg", R_OK)
+ || _alpm_access(handle, sigdir, "trustdb.gpg", R_OK)) {
+ handle->pm_errno = ALPM_ERR_NOT_A_FILE;
+ _alpm_log(handle, ALPM_LOG_DEBUG, "Signature verification will fail!\n");
+ }
+
/* calling gpgme_check_version() returns the current version and runs
* some internal library setup code */
version = gpgme_check_version(NULL);