Skip to content

Commit

Permalink
notmuch: update to 0.30.
Browse files Browse the repository at this point in the history
Close #23874
  • Loading branch information
sgn committed Jul 29, 2020
1 parent 97ff4fd commit 81c3c18
Show file tree
Hide file tree
Showing 8 changed files with 498 additions and 81 deletions.
@@ -0,0 +1,51 @@
From 5402e4d357d7957942acc4b906b58102b6bd4fdf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
<congdanhqx@gmail.com>
Date: Mon, 27 Jul 2020 15:46:35 +0700
Subject: [PATCH] configure: detect version by compiler for build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We'll need to run the compiled binary to report our current version.

With the same code base, we should have the same version information
regardless of compiler and architecture.

Let's use the compiler for building architecture to build the reporting
binary. Which is usually reported under variable CC_FOR_BUILD,
a convention established by GNU Autotools, and fall back to CC if it's
not defined.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
configure | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 80cbac4f..6c77960f 100755
--- a/configure
+++ b/configure
@@ -85,8 +85,10 @@ fi
BASHCMD=${BASHCMD:-bash}
PERL=${PERL:-perl}
CC=${CC:-cc}
+CC_FOR_BUILD=${CC_FOR_BUILD:-$CC}
CXX=${CXX:-c++}
CFLAGS=${CFLAGS:--g -O2}
+CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD:-$CFLAGS}
CPPFLAGS=${CPPFLAGS:-}
CXXFLAGS_for_sh=${CXXFLAGS:-${CFLAGS}}
CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)}
@@ -409,7 +411,7 @@ int main(void) {
return 0;
}
EOF
-if ${CC} ${CFLAGS} -I"$srcdir" _libversion.c -o _libversion > /dev/null 2>&1 \
+if ${CC_FOR_BUILD} ${CFLAGS_FOR_BUILD} -I"$srcdir" _libversion.c -o _libversion > /dev/null 2>&1 \
&& ./_libversion > _libversion.sh && . ./_libversion.sh
then
printf "OK.\n"
--
2.28.0.rc2.21.g5c06d60fc5

@@ -0,0 +1,37 @@
From c5164d1c0f5ba108ace05146218bf3810d590d5b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
<congdanhqx@gmail.com>
Date: Mon, 27 Jul 2020 16:42:02 +0700
Subject: [PATCH] configure: check for pytest with python -m pytest
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On different distro, pytest is suffixed with different patterns.

On the other hand, `python3-pytest' could be invoked correctly,
via `python3 -m pytest', the latter is used by our tests, now.

Switch to `$python -m pytest` to fix address all incompatible naming.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure b/configure
index 6c77960f..459e0cae 100755
--- a/configure
+++ b/configure
@@ -811,7 +811,7 @@ if [ $have_python3 -eq 1 ]; then
printf "Checking for python3 pytest (>= 3.0)... "
conf=$(mktemp)
printf "[pytest]\nminversion=3.0\n" > $conf
- if pytest-3 -c $conf --version >/dev/null 2>&1; then
+ if "$python" -m pytest -c $conf --version >/dev/null 2>&1; then
printf "Yes.\n"
have_python3_pytest=1
else
--
2.28.0.rc2.21.g5c06d60fc5

@@ -0,0 +1,108 @@
From b7c8661b9a34d048120753fdf27cd288e34e5308 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
<congdanhqx@gmail.com>
Date: Mon, 27 Jul 2020 20:11:00 +0700
Subject: [PATCH] configure: drop check for default xapian backend
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Starting from xapian 1.3.5, xapian switched default backend to glass.

From 00cdfe10 (build: drop support for xapian versions less than 1.4,
2020-04-22), we only support xapian 1.4.0+. Effectively, we don't need
to check for default xapian backend anymore.

Let's drop it.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
configure | 23 -----------------------
test/T360-symbol-hiding.sh | 4 ++--
test/test-lib.sh | 11 +----------
3 files changed, 3 insertions(+), 35 deletions(-)

diff --git a/configure b/configure
index 459e0cae..7dae745c 100755
--- a/configure
+++ b/configure
@@ -456,26 +456,6 @@ if [ ${have_xapian} = "0" ]; then
errors=$((errors + 1))
fi

-if [ ${have_xapian} = "1" ]; then
- default_xapian_backend=""
- printf "Testing default Xapian backend... "
- cat >_default_backend.cc <<EOF
-#include <xapian.h>
-int main(int argc, char** argv) {
- Xapian::WritableDatabase db("test.db",Xapian::DB_CREATE_OR_OPEN);
-}
-EOF
- ${CXX} ${CXXFLAGS_for_sh} ${xapian_cxxflags} _default_backend.cc -o _default_backend ${xapian_ldflags}
- ./_default_backend
- if [ -f test.db/iamglass ]; then
- default_xapian_backend=glass
- else
- default_xapian_backend=chert
- fi
- printf "%s\n" "${default_xapian_backend}";
- rm -rf test.db _default_backend _default_backend.cc
-fi
-
GMIME_MINVER=3.0.3

printf "Checking for GMime development files (>= $GMIME_MINVER)... "
@@ -1507,9 +1487,6 @@ NOTMUCH_SRCDIR='${NOTMUCH_SRCDIR}'
# Whether to have Xapian retry lock
NOTMUCH_HAVE_XAPIAN_DB_RETRY_LOCK=${WITH_RETRY_LOCK}

-# Which backend will Xapian use by default?
-NOTMUCH_DEFAULT_XAPIAN_BACKEND=${default_xapian_backend}
-
# Whether GMime can verify X.509 certificate validity
NOTMUCH_GMIME_X509_CERT_VALIDITY=${gmime_x509_cert_validity}

diff --git a/test/T360-symbol-hiding.sh b/test/T360-symbol-hiding.sh
index 43921cb4..eb438a7a 100755
--- a/test/T360-symbol-hiding.sh
+++ b/test/T360-symbol-hiding.sh
@@ -14,11 +14,11 @@ test_description='exception symbol hiding'
test_begin_subtest 'running test' run_test
mkdir -p ${PWD}/fakedb/.notmuch
$TEST_DIRECTORY/symbol-test ${PWD}/fakedb ${PWD}/nonexistent 2>&1 \
- | notmuch_dir_sanitize | sed -e "s,\`,\',g" -e "s,${NOTMUCH_DEFAULT_XAPIAN_BACKEND},backend,g" > OUTPUT
+ | notmuch_dir_sanitize | sed -e "s,\`,\',g" > OUTPUT

cat <<EOF > EXPECTED
A Xapian exception occurred opening database: Couldn't stat 'CWD/fakedb/.notmuch/xapian'
-caught No backend database found at path 'CWD/nonexistent'
+caught No glass database found at path 'CWD/nonexistent'
EOF
test_expect_equal_file EXPECTED OUTPUT

diff --git a/test/test-lib.sh b/test/test-lib.sh
index 7424881e..dc63ff1a 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -1255,16 +1255,7 @@ ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS
rm -f y

# convert variable from configure to more convenient form
-case "$NOTMUCH_DEFAULT_XAPIAN_BACKEND" in
- glass)
- db_ending=glass
- ;;
- chert)
- db_ending=DB
- ;;
- *)
- error "Unknown Xapian backend $NOTMUCH_DEFAULT_XAPIAN_BACKEND"
-esac
+db_ending=glass
# declare prerequisites for external binaries used in tests
test_declare_external_prereq dtach
test_declare_external_prereq emacs
--
2.28.0.rc2.21.g5c06d60fc5

@@ -0,0 +1,39 @@
From 808c43834e9e42be56f0fe1f61da5787784dc0e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
<congdanhqx@gmail.com>
Date: Mon, 27 Jul 2020 22:05:46 +0700
Subject: [PATCH] T355: specify hash algorithm explicitly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On some systems (notably, the one shipped with LibreSSL),
default fingerprint digest algorithm is SHA256.

On other systems, users can change default digest algorithm by changing
default_md in /etc/ssl/default_md.

Let's ask openssl to provide us specific algorithm to make the test
more deterministic.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
test/T355-smime.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/T355-smime.sh b/test/T355-smime.sh
index f8cec62c..8b2b52be 100755
--- a/test/T355-smime.sh
+++ b/test/T355-smime.sh
@@ -6,7 +6,7 @@ test_description='S/MIME signature verification and decryption'
test_require_external_prereq openssl
test_require_external_prereq gpgsm

-FINGERPRINT=$(openssl x509 -fingerprint -in "$NOTMUCH_SRCDIR/test/smime/key+cert.pem" -noout | sed -e 's/^.*=//' -e s/://g)
+FINGERPRINT=$(openssl x509 -sha1 -fingerprint -in "$NOTMUCH_SRCDIR/test/smime/key+cert.pem" -noout | sed -e 's/^.*=//' -e s/://g)

add_gpgsm_home

--
2.28.0.rc2.21.g5c06d60fc5

@@ -1,48 +1,29 @@
From 7bb539777d688acd5ca6081919047b60d47566d3 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Mon, 10 Jun 2019 20:30:11 +0700
Subject: [PATCH] configure: cross compile on Void Linux
From 7589537f76541254d70d1b7df1ce57f0977ef9f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
<congdanhqx@gmail.com>
Date: Mon, 27 Jul 2020 22:47:15 +0700
Subject: [PATCH] configure: drop gmime session key extraction support check
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Void Linux ships gmime linked against latest gpgme.
- default Xapian backend is glass from version 1.4
- cheat some test by running them on host environment
Void Linux gmime3 always support session key extraction.

No suitable for upstream.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
configure | 73 +++----------------------------------------------------
1 file changed, 4 insertions(+), 69 deletions(-)
configure | 58 -------------------------------------------------------
1 file changed, 58 deletions(-)

diff --git a/configure b/configure
index 8b80f0e0..8e5fd4ce 100755
index 7dae745c..99b0c328 100755
--- a/configure
+++ b/configure
@@ -380,7 +380,7 @@ int main(void) {
return 0;
}
EOF
-if ${CC} ${CFLAGS} -I"$srcdir" _libversion.c -o _libversion > /dev/null 2>&1 \
+if ${BUILD_CC} ${BUILD_CFLAGS} -I"$srcdir" _libversion.c -o _libversion > /dev/null 2>&1 \
&& ./_libversion > _libversion.sh && . ./_libversion.sh
then
printf "OK.\n"
@@ -478,13 +478,7 @@ int main(int argc, char** argv) {
Xapian::WritableDatabase db("test.db",Xapian::DB_CREATE_OR_OPEN);
}
EOF
- ${CXX} ${CXXFLAGS_for_sh} ${xapian_cxxflags} _default_backend.cc -o _default_backend ${xapian_ldflags}
- ./_default_backend
- if [ -f test.db/iamglass ]; then
- default_xapian_backend=glass
- else
- default_xapian_backend=chert
- fi
+ default_xapian_backend=glass
printf "%s\n" "${default_xapian_backend}";
rm -rf test.db _default_backend _default_backend.cc
fi
@@ -499,66 +493,7 @@ if pkg-config --exists "gmime-3.0 > $GMIME_MINVER"; then
gmime_ldflags=$(pkg-config --libs gmime-3.0)
@@ -467,65 +467,7 @@ if pkg-config --exists "gmime-3.0 >= $GMIME_MINVER"; then

printf "Checking for GMime session key extraction support... "
-
- cat > _check_session_keys.c <<EOF
-#include <gmime/gmime.h>
-#include <stdio.h>
Expand All @@ -56,11 +37,11 @@ index 8b80f0e0..8e5fd4ce 100755
-
- g_mime_init ();
- parser = g_mime_parser_new ();
- g_mime_parser_init_with_stream (parser, g_mime_stream_file_open("test/corpora/crypto/basic-encrypted.eml", "r", &error));
- g_mime_parser_init_with_stream (parser, g_mime_stream_file_open("$srcdir/test/corpora/crypto/basic-encrypted.eml", "r", &error));
- if (error) return !! fprintf (stderr, "failed to instantiate parser with test/corpora/crypto/basic-encrypted.eml\n");
-
- body = GMIME_MULTIPART_ENCRYPTED(g_mime_message_get_mime_part (g_mime_parser_construct_message (parser, NULL)));
- if (body == NULL) return !! fprintf (stderr, "did not find a multipart encrypted message\n");
- if (body == NULL) return !! fprintf (stderr, "did not find a multipart encrypted message\n");
-
- output = g_mime_multipart_encrypted_decrypt (body, GMIME_DECRYPT_EXPORT_SESSION_KEY, NULL, &decrypt_result, &error);
- if (error || output == NULL) return !! fprintf (stderr, "decryption failed\n");
Expand All @@ -76,11 +57,11 @@ index 8b80f0e0..8e5fd4ce 100755
- printf 'No.\nCould not make tempdir for testing session-key support.\n'
- errors=$((errors + 1))
- elif ${CC} ${CFLAGS} ${gmime_cflags} _check_session_keys.c ${gmime_ldflags} -o _check_session_keys \
- && GNUPGHOME=${TEMP_GPG} gpg --batch --quiet --import < test/gnupg-secret-key.asc \
- && GNUPGHOME=${TEMP_GPG} gpg --batch --quiet --import < "$srcdir"/test/gnupg-secret-key.asc \
- && SESSION_KEY=$(GNUPGHOME=${TEMP_GPG} ./_check_session_keys) \
- && [ $SESSION_KEY = 9:0BACD64099D1468AB07C796F0C0AC4851948A658A15B34E803865E9FC635F2F5 ]
- then
- printf "OK.\n"
printf "OK.\n"
- else
- cat <<EOF
-No.
Expand All @@ -102,19 +83,9 @@ index 8b80f0e0..8e5fd4ce 100755
- if [ -n "$TEMP_GPG" -a -d "$TEMP_GPG" ]; then
- rm -rf "$TEMP_GPG"
- fi
+ printf "OK.\n"
else
have_gmime=0
printf "No.\n"
@@ -581,7 +516,7 @@ else
fi

if ! pkg-config --exists zlib; then
- ${CC} -o compat/gen_zlib_pc "$srcdir"/compat/gen_zlib_pc.c >/dev/null 2>&1 &&
+ ${BUILD_CC} -o compat/gen_zlib_pc "$srcdir"/compat/gen_zlib_pc.c >/dev/null 2>&1 &&
compat/gen_zlib_pc > compat/zlib.pc &&
PKG_CONFIG_PATH="$PKG_CONFIG_PATH":compat &&
export PKG_CONFIG_PATH
# see https://github.com/jstedfast/gmime/pull/90
# should be fixed in GMime in 3.2.7, but some distros might patch
--
2.22.0.rc1.479.gd8fdbe21b5
2.28.0.rc2.21.g5c06d60fc5

0 comments on commit 81c3c18

Please sign in to comment.