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.
This commit is contained in:
Daniel Kahn Gillmor 2017-11-30 03:59:28 -05:00 committed by David Bremner
parent 5f2832ae21
commit 0ff13f862c
2 changed files with 16 additions and 0 deletions

14
configure vendored
View file

@ -486,14 +486,21 @@ if pkg-config --exists "gmime-3.0"; then
gmime_cflags=$(pkg-config --cflags gmime-3.0) gmime_cflags=$(pkg-config --cflags gmime-3.0)
gmime_ldflags=$(pkg-config --libs gmime-3.0) gmime_ldflags=$(pkg-config --libs gmime-3.0)
gmime_major=3 gmime_major=3
have_gmime_session_keys=1
elif pkg-config --exists "gmime-2.6 >= $GMIME_MINVER"; then elif pkg-config --exists "gmime-2.6 >= $GMIME_MINVER"; then
printf "Yes (2.6).\n" printf "Yes (2.6).\n"
have_gmime=1 have_gmime=1
gmime_cflags=$(pkg-config --cflags gmime-2.6) gmime_cflags=$(pkg-config --cflags gmime-2.6)
gmime_ldflags=$(pkg-config --libs gmime-2.6) gmime_ldflags=$(pkg-config --libs gmime-2.6)
gmime_major=2 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 else
have_gmime=0 have_gmime=0
have_gmime_session_keys=0
printf "No.\n" printf "No.\n"
errors=$((errors + 1)) errors=$((errors + 1))
fi fi
@ -1096,6 +1103,9 @@ HAVE_TIMEGM = ${have_timegm}
# Whether struct dirent has d_type (if not, then notmuch will use stat) # Whether struct dirent has d_type (if not, then notmuch will use stat)
HAVE_D_TYPE = ${have_d_type} 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 # Whether the Xapian version in use supports compaction
HAVE_XAPIAN_COMPACT = ${have_xapian_compact} HAVE_XAPIAN_COMPACT = ${have_xapian_compact}
@ -1181,6 +1191,7 @@ COMMON_CONFIGURE_CFLAGS = \\
-DHAVE_D_TYPE=\$(HAVE_D_TYPE) \\ -DHAVE_D_TYPE=\$(HAVE_D_TYPE) \\
-DSTD_GETPWUID=\$(STD_GETPWUID) \\ -DSTD_GETPWUID=\$(STD_GETPWUID) \\
-DSTD_ASCTIME=\$(STD_ASCTIME) \\ -DSTD_ASCTIME=\$(STD_ASCTIME) \\
-DHAVE_GMIME_SESSION_KEYS=\$(HAVE_GMIME_SESSION_KEYS) \\
-DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT) \\ -DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT) \\
-DSILENCE_XAPIAN_DEPRECATION_WARNINGS \\ -DSILENCE_XAPIAN_DEPRECATION_WARNINGS \\
-DHAVE_XAPIAN_FIELD_PROCESSOR=\$(HAVE_XAPIAN_FIELD_PROCESSOR) \\ -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 # Whether the Xapian version in use supports lock retry
NOTMUCH_HAVE_XAPIAN_DB_RETRY_LOCK=${have_xapian_db_retry_lock} 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? # Which backend will Xapian use by default?
NOTMUCH_DEFAULT_XAPIAN_BACKEND=${default_xapian_backend} NOTMUCH_DEFAULT_XAPIAN_BACKEND=${default_xapian_backend}

View file

@ -30,6 +30,8 @@ notmuch_built_with (const char *name)
return HAVE_XAPIAN_FIELD_PROCESSOR; return HAVE_XAPIAN_FIELD_PROCESSOR;
} else if (STRNCMP_LITERAL (name, "retry_lock") == 0) { } else if (STRNCMP_LITERAL (name, "retry_lock") == 0) {
return HAVE_XAPIAN_DB_RETRY_LOCK; return HAVE_XAPIAN_DB_RETRY_LOCK;
} else if (STRNCMP_LITERAL (name, "session_key") == 0) {
return HAVE_GMIME_SESSION_KEYS;
} else { } else {
return false; return false;
} }