Dependencies
------------
-Notmuch depends on four libraries: Xapian, GMime 2.6,
+Notmuch depends on four libraries: Xapian, GMime 3.0,
Talloc, and zlib which are each described below:
Xapian
rm -rf test.db _default_backend _default_backend.cc
fi
-# we need to have a version >= 2.6.5 to avoid a crypto bug. We need
-# 2.6.7 for permissive "From " header handling.
-GMIME_MINVER=2.6.7
-GMIME3_MINVER=3.0.3
+GMIME_MINVER=3.0.3
printf "Checking for GMime development files... "
-if pkg-config --exists "gmime-3.0 > $GMIME3_MINVER"; then
- printf "Yes (3.0).\n"
+if pkg-config --exists "gmime-3.0 > $GMIME_MINVER"; then
+ printf "Yes.\n"
have_gmime=1
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
echo
fi
if [ $have_gmime -eq 0 ]; then
- echo " GMime 2.6 library >= $GMIME_MINVER"
+ echo " GMime library >= $GMIME_MINVER"
echo " (including development files such as headers)"
echo " https://github.com/jstedfast/gmime/"
echo
On Debian and similar systems:
- sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev zlib1g-dev
+ sudo apt-get install libxapian-dev libgmime-3.0-dev libtalloc-dev zlib1g-dev
Or on Fedora and similar systems:
debhelper (>= 11~),
pkg-config,
libxapian-dev,
- libgmime-3.0-dev (>= 3.0.3~) | libgmime-2.6-dev (>= 2.6.7~),
+ libgmime-3.0-dev (>= 3.0.3~),
libtalloc-dev,
libz-dev,
python-all (>= 2.6.6-3~),
return status;
}
-/* Signature list destructor (GMime 2.6) */
+/* Signature list destructor */
static int
_signature_list_free (GMimeSignatureList **proxy)
{
return 0;
}
-/* Set up signature list destructor (GMime 2.6) */
+/* Set up signature list destructor */
static void
set_signature_list_destructor (mime_node_t *node)
{
}
}
-/* Verify a signed mime node (GMime 2.6) */
+/* Verify a signed mime node */
static void
node_verify (mime_node_t *node, GMimeObject *part,
g_mime_3_unused(GMimeCryptoContext *cryptoctx))
g_error_free (err);
}
-/* Decrypt and optionally verify an encrypted mime node (GMime 2.6) */
+/* Decrypt and optionally verify an encrypted mime node */
static void
node_decrypt_and_verify (mime_node_t *node, GMimeObject *part,
g_mime_3_unused(GMimeCryptoContext *cryptoctx))
GMimeMessage *message,
bool reply_all)
{
-
- /* There is a memory leak here with gmime-2.6 because get_sender
- * returns a newly allocated list, while the others return
- * references to libgmime owned data. This leak will be fixed with
- * the transition to gmime-3.0.
- */
struct {
InternetAddressList * (*get_header)(GMimeMessage *message);
GMimeRecipientType recipient_type;
}
#endif
-/* Signature status sprinter (GMime 2.6) */
+/* Signature status sprinter */
static void
format_part_sigstatus_sprinter (sprinter_t *sp, GMimeSignatureList *siglist)
{