Signed-off-by: Rémy Oudompheng <remy@archlinux.org> --- etc/pacman.conf.in | 1 + src/pacman/callback.c | 5 +++++ src/pacman/callback.h | 3 +++ src/pacman/conf.h | 1 + src/pacman/pacman.c | 4 ++++ 5 files changed, 14 insertions(+), 0 deletions(-) diff --git a/etc/pacman.conf.in b/etc/pacman.conf.in index 1105db9..3b92351 100644 --- a/etc/pacman.conf.in +++ b/etc/pacman.conf.in @@ -18,6 +18,7 @@ HoldPkg = pacman glibc SyncFirst = pacman #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/curl -C - -f %u > %o +#ChecksigCommand = /usr/bin/gpg --verify - %f #CleanMethod = KeepInstalled Architecture = auto diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 08c1cf3..1ff9a47 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -687,4 +687,9 @@ void cb_log(pmloglevel_t level, const char *fmt, va_list args) } } +/* Callback to check signatures with an external command */ +int cb_checksig(const char *path, const pmpgpsig_t *sig) { + return 0; +} + /* vim: set ts=2 sw=2 noet: */ diff --git a/src/pacman/callback.h b/src/pacman/callback.h index 1109a3b..3e2cfb1 100644 --- a/src/pacman/callback.h +++ b/src/pacman/callback.h @@ -43,6 +43,9 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total); /* callback to handle messages/notifications from pacman library */ void cb_log(pmloglevel_t level, const char *fmt, va_list args); +/* callback to check signatures with an external command */ +int cb_checksig(const char *path, const pmpgpsig_t *sig); + #endif /* _PM_CALLBACK_H */ /* vim: set ts=2 sw=2 noet: */ diff --git a/src/pacman/conf.h b/src/pacman/conf.h index bb11bab..9aa8492 100644 --- a/src/pacman/conf.h +++ b/src/pacman/conf.h @@ -78,6 +78,7 @@ typedef struct __config_t { alpm_list_t *holdpkg; alpm_list_t *syncfirst; char *xfercommand; + char *checksigcommand; } config_t; /* Operations */ diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 74659c5..9aad3a3 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -1052,6 +1052,10 @@ static int _parse_options(const char *key, char *value, config->xfercommand = strdup(value); alpm_option_set_fetchcb(download_with_xfercommand); pm_printf(PM_LOG_DEBUG, "config: xfercommand: %s\n", value); + } else if (strcmp(key, "ChecksigCommand") == 0) { + config->checksigcommand = strdup(value); + alpm_option_set_checksigcb(cb_checksig); + pm_printf(PM_LOG_DEBUG, "config: checksigcommand: %s\n", value); } else if (strcmp(key, "CleanMethod") == 0) { setrepeatingoption(value, "CleanMethod", option_add_cleanmethod); } else { -- 1.7.4.4