summaryrefslogtreecommitdiff
path: root/cmdline
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-12-31 03:50:06 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2016-12-31 03:50:06 +0100
commit9544398fce600fb62762c05a8a84231fd1a365b4 (patch)
treecccb08b756d96b81a72e16e7d7dc9cf282e2a104 /cmdline
parentc15ba854b6736696f164e4d2c243a944e2d4006e (diff)
downloadapt-9544398fce600fb62762c05a8a84231fd1a365b4.tar.gz
apt-key: ignore gpg1 already imported secret key import failure
On Travis and co the default gpg implementation is gpg1 which for some reason fails if a secret key which was already imported is imported again. We would prefer it to be a NOP like gpg2 handles it so we crudely check the error message. apt-key usually doesn't deal with secret keys – it only learned to do it for manual testing and the integration framework usage, so no public interface is effected. Triggered-By: 4ce2f35248123ff2366c8c365ad6a94945578d66 Gbp-Dch: Ignore
Diffstat (limited to 'cmdline')
-rw-r--r--cmdline/apt-key.in7
1 files changed, 5 insertions, 2 deletions
diff --git a/cmdline/apt-key.in b/cmdline/apt-key.in
index 76fa37123..723af06ff 100644
--- a/cmdline/apt-key.in
+++ b/cmdline/apt-key.in
@@ -675,8 +675,11 @@ exec '$(escape_shell "${GPG_EXE}")' --ignore-time-conflict --no-options --no-def
# for advanced operations, we might really need a secret keyring after all
if [ -n "$FORCED_SECRET_KEYRING" ] && [ -r "$FORCED_SECRET_KEYRING" ]; then
if ! aptkey_execute "$GPG" -v --batch --import "$FORCED_SECRET_KEYRING" >"${GPGHOMEDIR}/gpgoutput.log" 2>&1; then
- cat >&2 "${GPGHOMEDIR}/gpgoutput.log"
- false
+ # already imported keys cause gpg1 to fail for some reason… ignore this error
+ if ! grep -q 'already in secret keyring' "${GPGHOMEDIR}/gpgoutput.log"; then
+ cat >&2 "${GPGHOMEDIR}/gpgoutput.log"
+ false
+ fi
fi
else
# and then, there are older versions of gpg which panic and implode