[PATCH 1/3] configure: better error handling on session key check.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Mon May 20 13:51:59 PDT 2019

There are a few changes bundled here:

 * say "No." explicitly if there's a failure.

 * try to avoid implying that gpgme-config is necessary to build
   notmuch itself (it's not, though it may be useful if you need to
   rebuild gmime).

 * leave _check_session_keys and _check_session_keys.c around if
   ./configure fails, so that the user can play with it more easily
   for debugging.

 * let error messages show when _check_session_keys.c is built.

Signed-off-by: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
 configure | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/configure b/configure
index e157aadf..7bb4625e 100755
--- a/configure
+++ b/configure
@@ -529,7 +529,7 @@ int main () {
     return 0;
-    if ${CC} ${CFLAGS} ${gmime_cflags} ${gmime_ldflags}  _check_session_keys.c -o _check_session_keys > /dev/null 2>&1 \
+    if ${CC} ${CFLAGS} ${gmime_cflags} ${gmime_ldflags}  _check_session_keys.c -o _check_session_keys \
            && TEMP_GPG=$(mktemp -d) \
            && GNUPGHOME=${TEMP_GPG} gpg --batch --quiet --import < test/gnupg-secret-key.asc \
            && SESSION_KEY=$(GNUPGHOME=${TEMP_GPG} ./_check_session_keys) \
@@ -538,17 +538,21 @@ EOF
         printf "OK.\n"
         cat <<EOF
 *** Error: Could not extract session keys from encrypted message.
 This is likely due to your GMime having been built against a old
 version of GPGME.
 Please try to rebuild your version of GMime against a more recent
-version of GPGME (at least GPGME 1.8.0).  Your current GPGME version
-is: $(gpgme-config --version)
+version of GPGME (at least GPGME 1.8.0).
-        rm -rf _check_session_keys.c _check_session_keys "$TEMP_GPG"
+        if which gpgme-config >/dev/null; then
+            printf 'Your current GPGME development version is: %s\n' "$(gpgme-config --version)"
+        else
+            printf 'You do not have the GPGME development libraries installed.\n'
+        fi
+        rm -rf "$TEMP_GPG"
         errors=$((errors + 1))
@@ -1023,7 +1027,7 @@ for flag in -Wmissing-declarations; do
 printf "\n\t%s\n" "${WARN_CFLAGS}"
-rm -f minimal minimal.c _libversion.c _libversion _libversion.sh
+rm -f minimal minimal.c _libversion.c _libversion _libversion.sh _check_session_keys.c _check_session_keys
 # construct the Makefile.config
 cat > Makefile.config <<EOF

More information about the notmuch mailing list