build: Require gmime >= 2.6.7

gmime-2.6 had a bug [1] which made it impossible to tell why a signature
verification failed when the signer key was unavailable (empty "sigstatus" field
in the JSON output). Since 00b5623d the corresponding test is marked as broken
when using gmime-2.6 (2.4 is fine).

This bug has been fixed in gmime 2.6.5, which is now the minimal gmime-2.6
version required for building notmuch (gmime-2.4 is still available). As a
consequence the version check in test/crypto can be removed.

[Added by db]

Although less unambigously a bug, Gmime 2.6 prior to 2.6.7 also was
more strict about parsing, and rejected messages with initial "From "
headers.  This restriction is relaxed in [2].  For reasons explained in [3],
we want to keep this more relaxed parsing for now.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=668085

[2] http://git.gnome.org/browse/gmime/commit/?id=d311f576baf750476e06e9a1367a2dc1793ea7eb

[3] id:"1331385931-1610-1-git-send-email-david@tethera.net"
This commit is contained in:
Thomas Jost 2012-02-21 20:35:35 +01:00 committed by David Bremner
parent 4d136995ce
commit f34613ea83
2 changed files with 3 additions and 3 deletions

4
configure vendored
View file

@ -273,9 +273,11 @@ if [ ${have_xapian} = "0" ]; then
errors=$((errors + 1)) errors=$((errors + 1))
fi fi
# If using GMime 2.6, we need to have a version >= 2.6.5 to avoid a
# crypto bug. We need 2.6.7 for permissive "From " header handling.
printf "Checking for GMime development files... " printf "Checking for GMime development files... "
have_gmime=0 have_gmime=0
for gmimepc in gmime-2.6 gmime-2.4; do for gmimepc in 'gmime-2.6 >= 2.6.7' gmime-2.4; do
if pkg-config --exists $gmimepc; then if pkg-config --exists $gmimepc; then
printf "Yes ($gmimepc).\n" printf "Yes ($gmimepc).\n"
have_gmime=1 have_gmime=1

View file

@ -104,8 +104,6 @@ test_expect_equal \
"$expected" "$expected"
test_begin_subtest "signature verification with signer key unavailable" test_begin_subtest "signature verification with signer key unavailable"
# this is broken with current versions of gmime-2.6
(ldd $(which notmuch) | grep -Fq gmime-2.6) && test_subtest_known_broken
# move the gnupghome temporarily out of the way # move the gnupghome temporarily out of the way
mv "${GNUPGHOME}"{,.bak} mv "${GNUPGHOME}"{,.bak}
output=$(notmuch show --format=json --verify subject:"test signed message 001" \ output=$(notmuch show --format=json --verify subject:"test signed message 001" \