From 0ff13f862cd817fc1971900a433856a2a6146e24 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Thu, 30 Nov 2017 03:59:28 -0500 Subject: [PATCH] configure: session key handling in gmime maps to built_with("session_key") This flag should make it easier to write the code for session-key handling. Note that this only works for GMime 2.6.21 and later (the session key interface wasn't available before then). It should be fine to build the rest of notmuch if this functionality isn't available. Note that this also adds the "session_key" built_with() aspect to libnotmuch. --- configure | 14 ++++++++++++++ lib/built-with.c | 2 ++ 2 files changed, 16 insertions(+) diff --git a/configure b/configure index d3e30b53..1bf52319 100755 --- a/configure +++ b/configure @@ -486,14 +486,21 @@ if pkg-config --exists "gmime-3.0"; then gmime_cflags=$(pkg-config --cflags gmime-3.0) gmime_ldflags=$(pkg-config --libs gmime-3.0) gmime_major=3 + have_gmime_session_keys=1 elif pkg-config --exists "gmime-2.6 >= $GMIME_MINVER"; then printf "Yes (2.6).\n" have_gmime=1 gmime_cflags=$(pkg-config --cflags gmime-2.6) gmime_ldflags=$(pkg-config --libs gmime-2.6) gmime_major=2 + if pkg-config --exists "gmime-2.6 >= 2.6.21"; then + have_gmime_session_keys=1 + else + have_gmime_session_keys=0 + fi else have_gmime=0 + have_gmime_session_keys=0 printf "No.\n" errors=$((errors + 1)) fi @@ -1096,6 +1103,9 @@ HAVE_TIMEGM = ${have_timegm} # Whether struct dirent has d_type (if not, then notmuch will use stat) HAVE_D_TYPE = ${have_d_type} +# Whether the GMime version can handle extraction and reuse of session keys +HAVE_GMIME_SESSION_KEYS = ${have_gmime_session_keys} + # Whether the Xapian version in use supports compaction HAVE_XAPIAN_COMPACT = ${have_xapian_compact} @@ -1181,6 +1191,7 @@ COMMON_CONFIGURE_CFLAGS = \\ -DHAVE_D_TYPE=\$(HAVE_D_TYPE) \\ -DSTD_GETPWUID=\$(STD_GETPWUID) \\ -DSTD_ASCTIME=\$(STD_ASCTIME) \\ + -DHAVE_GMIME_SESSION_KEYS=\$(HAVE_GMIME_SESSION_KEYS) \\ -DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT) \\ -DSILENCE_XAPIAN_DEPRECATION_WARNINGS \\ -DHAVE_XAPIAN_FIELD_PROCESSOR=\$(HAVE_XAPIAN_FIELD_PROCESSOR) \\ @@ -1209,6 +1220,9 @@ NOTMUCH_HAVE_XAPIAN_FIELD_PROCESSOR=${have_xapian_field_processor} # Whether the Xapian version in use supports lock retry NOTMUCH_HAVE_XAPIAN_DB_RETRY_LOCK=${have_xapian_db_retry_lock} +# Whether the GMime version can handle extraction and reuse of session keys +NOTMUCH_HAVE_GMIME_SESSION_KEYS=${have_gmime_session_keys} + # Which backend will Xapian use by default? NOTMUCH_DEFAULT_XAPIAN_BACKEND=${default_xapian_backend} diff --git a/lib/built-with.c b/lib/built-with.c index 27384bd0..9cffd9f9 100644 --- a/lib/built-with.c +++ b/lib/built-with.c @@ -30,6 +30,8 @@ notmuch_built_with (const char *name) return HAVE_XAPIAN_FIELD_PROCESSOR; } else if (STRNCMP_LITERAL (name, "retry_lock") == 0) { return HAVE_XAPIAN_DB_RETRY_LOCK; + } else if (STRNCMP_LITERAL (name, "session_key") == 0) { + return HAVE_GMIME_SESSION_KEYS; } else { return false; } -- 2.43.0