From 065e118c1247b0c13547092308064fc1c2078171 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 19 May 2018 13:00:16 +0200 Subject: [PATCH] gnupload: Fix "gpg-agent is not available in this session" error. * build-aux/gnupload (GPG): Pick the right GNUPG executable to use. --- ChangeLog | 5 +++++ build-aux/gnupload | 26 +++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index dd479f783f..047dadf657 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-05-19 Bruno Haible + + gnupload: Fix "gpg-agent is not available in this session" error. + * build-aux/gnupload (GPG): Pick the right GNUPG executable to use. + 2018-05-16 Paul Eggert crypto/af_alg: fix --help diff --git a/build-aux/gnupload b/build-aux/gnupload index 2a0bfa3b51..0d92923eaf 100755 --- a/build-aux/gnupload +++ b/build-aux/gnupload @@ -24,7 +24,31 @@ scriptversion=2018-03-07.03; # UTC set -e -GPG='gpg --batch --no-tty' +GPG=gpg +# Choose the proper version of gpg, so as to avoid a +# "gpg-agent is not available in this session" error +# when gpg-agent is version 2 but gpg is still version 1. +# This code can go away once all major distributions ship gpg version 2 +# as /usr/bin/gpg. +gpg_agent_version=`(gpg-agent --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` +case "$gpg_agent_version" in + 2.*) + gpg_version=`(gpg --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` + case "$gpg_version" in + 1.*) + if (type gpg2) >/dev/null 2>/dev/null; then + # gpg2 is present. + GPG=gpg2 + else + # gpg2 is missing. Ubuntu users should install the package 'gnupg2'. + echo "WARNING: Using 'gpg', which is too old. You should install 'gpg2'." 1>&2 + fi + ;; + esac + ;; +esac + +GPG="${GPG} --batch --no-tty" conffile=.gnuploadrc to= dry_run=false -- 2.39.5