parent
97ff4fd35d
commit
81c3c1884b
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 7589537f76541254d70d1b7df1ce57f0977ef9f0 Mon Sep 17 00:00:00 2001
|
||||||
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
|
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
|
||||||
Date: Mon, 10 Jun 2019 20:30:11 +0700
|
<congdanhqx@gmail.com>
|
||||||
Subject: [PATCH] configure: cross compile on Void Linux
|
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.
|
Void Linux gmime3 always support session key extraction.
|
||||||
- default Xapian backend is glass from version 1.4
|
|
||||||
- cheat some test by running them on host environment
|
No suitable for upstream.
|
||||||
|
|
||||||
|
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
|
||||||
---
|
---
|
||||||
configure | 73 +++----------------------------------------------------
|
configure | 58 -------------------------------------------------------
|
||||||
1 file changed, 4 insertions(+), 69 deletions(-)
|
1 file changed, 58 deletions(-)
|
||||||
|
|
||||||
diff --git a/configure b/configure
|
diff --git a/configure b/configure
|
||||||
index 8b80f0e0..8e5fd4ce 100755
|
index 7dae745c..99b0c328 100755
|
||||||
--- a/configure
|
--- a/configure
|
||||||
+++ b/configure
|
+++ b/configure
|
||||||
@@ -380,7 +380,7 @@ int main(void) {
|
@@ -467,65 +467,7 @@ if pkg-config --exists "gmime-3.0 >= $GMIME_MINVER"; then
|
||||||
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)
|
|
||||||
|
|
||||||
printf "Checking for GMime session key extraction support... "
|
printf "Checking for GMime session key extraction support... "
|
||||||
-
|
|
||||||
- cat > _check_session_keys.c <<EOF
|
- cat > _check_session_keys.c <<EOF
|
||||||
-#include <gmime/gmime.h>
|
-#include <gmime/gmime.h>
|
||||||
-#include <stdio.h>
|
-#include <stdio.h>
|
||||||
|
@ -56,7 +37,7 @@ index 8b80f0e0..8e5fd4ce 100755
|
||||||
-
|
-
|
||||||
- g_mime_init ();
|
- g_mime_init ();
|
||||||
- parser = g_mime_parser_new ();
|
- 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");
|
- 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)));
|
- body = GMIME_MULTIPART_ENCRYPTED(g_mime_message_get_mime_part (g_mime_parser_construct_message (parser, NULL)));
|
||||||
|
@ -76,11 +57,11 @@ index 8b80f0e0..8e5fd4ce 100755
|
||||||
- printf 'No.\nCould not make tempdir for testing session-key support.\n'
|
- printf 'No.\nCould not make tempdir for testing session-key support.\n'
|
||||||
- errors=$((errors + 1))
|
- errors=$((errors + 1))
|
||||||
- elif ${CC} ${CFLAGS} ${gmime_cflags} _check_session_keys.c ${gmime_ldflags} -o _check_session_keys \
|
- 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=$(GNUPGHOME=${TEMP_GPG} ./_check_session_keys) \
|
||||||
- && [ $SESSION_KEY = 9:0BACD64099D1468AB07C796F0C0AC4851948A658A15B34E803865E9FC635F2F5 ]
|
- && [ $SESSION_KEY = 9:0BACD64099D1468AB07C796F0C0AC4851948A658A15B34E803865E9FC635F2F5 ]
|
||||||
- then
|
- then
|
||||||
- printf "OK.\n"
|
printf "OK.\n"
|
||||||
- else
|
- else
|
||||||
- cat <<EOF
|
- cat <<EOF
|
||||||
-No.
|
-No.
|
||||||
|
@ -102,19 +83,9 @@ index 8b80f0e0..8e5fd4ce 100755
|
||||||
- if [ -n "$TEMP_GPG" -a -d "$TEMP_GPG" ]; then
|
- if [ -n "$TEMP_GPG" -a -d "$TEMP_GPG" ]; then
|
||||||
- rm -rf "$TEMP_GPG"
|
- rm -rf "$TEMP_GPG"
|
||||||
- fi
|
- fi
|
||||||
+ printf "OK.\n"
|
|
||||||
else
|
|
||||||
have_gmime=0
|
|
||||||
printf "No.\n"
|
|
||||||
@@ -581,7 +516,7 @@ else
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! pkg-config --exists zlib; then
|
# see https://github.com/jstedfast/gmime/pull/90
|
||||||
- ${CC} -o compat/gen_zlib_pc "$srcdir"/compat/gen_zlib_pc.c >/dev/null 2>&1 &&
|
# should be fixed in GMime in 3.2.7, but some distros might patch
|
||||||
+ ${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
|
|
||||||
--
|
--
|
||||||
2.22.0.rc1.479.gd8fdbe21b5
|
2.28.0.rc2.21.g5c06d60fc5
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
From c6188909672b425fda3d0ecc0ec5163251064324 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:49:47 +0700
|
||||||
|
Subject: [PATCH] configure: drop gmime x509 certificate validity check
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
The problem has been fixed with gmime 3.2.7 already.
|
||||||
|
|
||||||
|
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
|
||||||
|
---
|
||||||
|
configure | 70 -------------------------------------------------------
|
||||||
|
1 file changed, 70 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure b/configure
|
||||||
|
index 99b0c328..ef602d10 100755
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -472,78 +472,8 @@ if pkg-config --exists "gmime-3.0 >= $GMIME_MINVER"; then
|
||||||
|
# see https://github.com/jstedfast/gmime/pull/90
|
||||||
|
# should be fixed in GMime in 3.2.7, but some distros might patch
|
||||||
|
printf "Checking for GMime X.509 certificate validity... "
|
||||||
|
-
|
||||||
|
- cat > _check_x509_validity.c <<EOF
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include <gmime/gmime.h>
|
||||||
|
-
|
||||||
|
-int main () {
|
||||||
|
- GError *error = NULL;
|
||||||
|
- GMimeParser *parser = NULL;
|
||||||
|
- GMimeApplicationPkcs7Mime *body = NULL;
|
||||||
|
- GMimeSignatureList *sig_list = NULL;
|
||||||
|
- GMimeSignature *sig = NULL;
|
||||||
|
- GMimeCertificate *cert = NULL;
|
||||||
|
- GMimeObject *output = NULL;
|
||||||
|
- GMimeValidity validity = GMIME_VALIDITY_UNKNOWN;
|
||||||
|
- int len;
|
||||||
|
-
|
||||||
|
- g_mime_init ();
|
||||||
|
- parser = g_mime_parser_new ();
|
||||||
|
- g_mime_parser_init_with_stream (parser, g_mime_stream_file_open("$srcdir/test/corpora/pkcs7/smime-onepart-signed.eml", "r", &error));
|
||||||
|
- if (error) return !! fprintf (stderr, "failed to instantiate parser with test/corpora/pkcs7/smime-onepart-signed.eml\n");
|
||||||
|
-
|
||||||
|
- body = GMIME_APPLICATION_PKCS7_MIME(g_mime_message_get_mime_part (g_mime_parser_construct_message (parser, NULL)));
|
||||||
|
- if (body == NULL) return !! fprintf (stderr, "did not find a application/pkcs7 message\n");
|
||||||
|
-
|
||||||
|
- sig_list = g_mime_application_pkcs7_mime_verify (body, GMIME_VERIFY_NONE, &output, &error);
|
||||||
|
- if (error || output == NULL) return !! fprintf (stderr, "verify failed\n");
|
||||||
|
-
|
||||||
|
- if (sig_list == NULL) return !! fprintf (stderr, "no GMimeSignatureList found\n");
|
||||||
|
- len = g_mime_signature_list_length (sig_list);
|
||||||
|
- if (len != 1) return !! fprintf (stderr, "expected 1 signature, got %d\n", len);
|
||||||
|
- sig = g_mime_signature_list_get_signature (sig_list, 0);
|
||||||
|
- if (sig == NULL) return !! fprintf (stderr, "no GMimeSignature found at position 0\n");
|
||||||
|
- cert = g_mime_signature_get_certificate (sig);
|
||||||
|
- if (cert == NULL) return !! fprintf (stderr, "no GMimeCertificate found\n");
|
||||||
|
- validity = g_mime_certificate_get_id_validity (cert);
|
||||||
|
- if (validity != GMIME_VALIDITY_FULL) return !! fprintf (stderr, "Got validity %d, expected %d\n", validity, GMIME_VALIDITY_FULL);
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-EOF
|
||||||
|
- if ! TEMP_GPG=$(mktemp -d "${TMPDIR:-/tmp}/notmuch.XXXXXX"); then
|
||||||
|
- printf 'No.\nCould not make tempdir for testing X.509 certificate validity support.\n'
|
||||||
|
- errors=$((errors + 1))
|
||||||
|
- elif ${CC} ${CFLAGS} ${gmime_cflags} _check_x509_validity.c ${gmime_ldflags} -o _check_x509_validity \
|
||||||
|
- && echo disable-crl-checks > "$TEMP_GPG/gpgsm.conf" \
|
||||||
|
- && echo "4D:E0:FF:63:C0:E9:EC:01:29:11:C8:7A:EE:DA:3A:9A:7F:6E:C1:0D S" >> "$TEMP_GPG/trustlist.txt" \
|
||||||
|
- && GNUPGHOME=${TEMP_GPG} gpgsm --batch --quiet --import < "$srcdir"/test/smime/ca.crt
|
||||||
|
- then
|
||||||
|
- if GNUPGHOME=${TEMP_GPG} ./_check_x509_validity; then
|
||||||
|
gmime_x509_cert_validity=1
|
||||||
|
printf "Yes.\n"
|
||||||
|
- else
|
||||||
|
- gmime_x509_cert_validity=0
|
||||||
|
- printf "No.\n"
|
||||||
|
- if pkg-config --exists "gmime-3.0 >= 3.2.7"; then
|
||||||
|
- cat <<EOF
|
||||||
|
-*** Error: GMime fails to calculate X.509 certificate validity, and
|
||||||
|
-is later than 3.2.7, which should have fixed this issue.
|
||||||
|
-
|
||||||
|
-Please follow up on https://github.com/jstedfast/gmime/pull/90 with
|
||||||
|
-more details.
|
||||||
|
-EOF
|
||||||
|
- errors=$((errors + 1))
|
||||||
|
- fi
|
||||||
|
- fi
|
||||||
|
- else
|
||||||
|
- printf 'No.\nFailed to set up gpgsm for testing X.509 certificate validity support.\n'
|
||||||
|
- errors=$((errors + 1))
|
||||||
|
- fi
|
||||||
|
- if [ -n "$TEMP_GPG" -a -d "$TEMP_GPG" ]; then
|
||||||
|
- rm -rf "$TEMP_GPG"
|
||||||
|
- fi
|
||||||
|
|
||||||
|
# see https://dev.gnupg.org/T3464
|
||||||
|
# there are problems verifying signatures when decrypting with session keys with GPGME 1.13.0 and 1.13.1
|
||||||
|
--
|
||||||
|
2.28.0.rc2.21.g5c06d60fc5
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
From 9a5a11fca4e2236d7b559e511fcc686fd382b985 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 23:00:13 +0700
|
||||||
|
Subject: [PATCH] configure: drop gmime verify with session key check
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
The problem is fixed with gpgme 1.14.0.
|
||||||
|
|
||||||
|
We'll force a conflicts with gpgme older than 1.14.0, so nothing to
|
||||||
|
worry about.
|
||||||
|
|
||||||
|
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
|
||||||
|
---
|
||||||
|
configure | 66 -------------------------------------------------------
|
||||||
|
1 file changed, 66 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure b/configure
|
||||||
|
index ef602d10..204d46d9 100755
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -478,74 +478,8 @@ if pkg-config --exists "gmime-3.0 >= $GMIME_MINVER"; then
|
||||||
|
# see https://dev.gnupg.org/T3464
|
||||||
|
# there are problems verifying signatures when decrypting with session keys with GPGME 1.13.0 and 1.13.1
|
||||||
|
printf "Checking signature verification when decrypting using session keys... "
|
||||||
|
-
|
||||||
|
- cat > _verify_sig_with_session_key.c <<EOF
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include <gmime/gmime.h>
|
||||||
|
-
|
||||||
|
-int main () {
|
||||||
|
- GError *error = NULL;
|
||||||
|
- GMimeParser *parser = NULL;
|
||||||
|
- GMimeMultipartEncrypted *body = NULL;
|
||||||
|
- GMimeDecryptResult *result = NULL;
|
||||||
|
- GMimeSignatureList *sig_list = NULL;
|
||||||
|
- GMimeSignature *sig = NULL;
|
||||||
|
- GMimeObject *output = NULL;
|
||||||
|
- GMimeSignatureStatus status;
|
||||||
|
- int len;
|
||||||
|
-
|
||||||
|
- g_mime_init ();
|
||||||
|
- parser = g_mime_parser_new ();
|
||||||
|
- g_mime_parser_init_with_stream (parser, g_mime_stream_file_open("$srcdir/test/corpora/crypto/encrypted-signed.eml", "r", &error));
|
||||||
|
- if (error) return !! fprintf (stderr, "failed to instantiate parser with test/corpora/pkcs7/smime-onepart-signed.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");
|
||||||
|
-
|
||||||
|
- output = g_mime_multipart_encrypted_decrypt (body, GMIME_DECRYPT_NONE, "9:13607E4217515A70EC8DF9DBC16C5327B94577561D98AD1246FA8756659C7899", &result, &error);
|
||||||
|
- if (error || output == NULL) return !! fprintf (stderr, "decrypt failed\n");
|
||||||
|
-
|
||||||
|
- sig_list = g_mime_decrypt_result_get_signatures (result);
|
||||||
|
- if (sig_list == NULL) return !! fprintf (stderr, "sig_list is NULL\n");
|
||||||
|
-
|
||||||
|
- if (sig_list == NULL) return !! fprintf (stderr, "no GMimeSignatureList found\n");
|
||||||
|
- len = g_mime_signature_list_length (sig_list);
|
||||||
|
- if (len != 1) return !! fprintf (stderr, "expected 1 signature, got %d\n", len);
|
||||||
|
- sig = g_mime_signature_list_get_signature (sig_list, 0);
|
||||||
|
- if (sig == NULL) return !! fprintf (stderr, "no GMimeSignature found at position 0\n");
|
||||||
|
- status = g_mime_signature_get_status (sig);
|
||||||
|
- if (status & GMIME_SIGNATURE_STATUS_KEY_MISSING) return !! fprintf (stderr, "signature status contains KEY_MISSING (see https://dev.gnupg.org/T3464)\n");
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-EOF
|
||||||
|
- if ! TEMP_GPG=$(mktemp -d "${TMPDIR:-/tmp}/notmuch.XXXXXX"); then
|
||||||
|
- printf 'No.\nCould not make tempdir for testing signature verification when decrypting with session keys.\n'
|
||||||
|
- errors=$((errors + 1))
|
||||||
|
- elif ${CC} ${CFLAGS} ${gmime_cflags} _verify_sig_with_session_key.c ${gmime_ldflags} -o _verify_sig_with_session_key \
|
||||||
|
- && GNUPGHOME=${TEMP_GPG} gpg --batch --quiet --import < "$srcdir"/test/gnupg-secret-key.asc \
|
||||||
|
- && rm -f ${TEMP_GPG}/private-keys-v1.d/*.key
|
||||||
|
- then
|
||||||
|
- if GNUPGHOME=${TEMP_GPG} ./_verify_sig_with_session_key; then
|
||||||
|
gmime_verify_with_session_key=1
|
||||||
|
printf "Yes.\n"
|
||||||
|
- else
|
||||||
|
- gmime_verify_with_session_key=0
|
||||||
|
- printf "No.\n"
|
||||||
|
- cat <<EOF
|
||||||
|
-*** Error: GMime fails to verify signatures when decrypting with a session key.
|
||||||
|
-
|
||||||
|
-This is most likely due to a buggy version of GPGME, which should be fixed in 1.13.2 or later.
|
||||||
|
-See https://dev.gnupg.org/T3464 for more details.
|
||||||
|
-EOF
|
||||||
|
- fi
|
||||||
|
- else
|
||||||
|
- printf 'No.\nFailed to set up gpg for testing signature verification while decrypting with a session key.\n'
|
||||||
|
- errors=$((errors + 1))
|
||||||
|
- fi
|
||||||
|
- if [ -n "$TEMP_GPG" -a -d "$TEMP_GPG" ]; then
|
||||||
|
- rm -rf "$TEMP_GPG"
|
||||||
|
- fi
|
||||||
|
else
|
||||||
|
have_gmime=0
|
||||||
|
printf "No.\n"
|
||||||
|
--
|
||||||
|
2.28.0.rc2.21.g5c06d60fc5
|
||||||
|
|
|
@ -1,17 +1,26 @@
|
||||||
# Template file for 'notmuch'
|
# Template file for 'notmuch'
|
||||||
pkgname=notmuch
|
pkgname=notmuch
|
||||||
version=0.29.3
|
version=0.30
|
||||||
revision=4
|
revision=1
|
||||||
hostmakedepends="perl pkg-config python-devel python3-Sphinx python3-devel texinfo"
|
hostmakedepends="perl pkg-config python3-Sphinx python3-devel texinfo"
|
||||||
makedepends="bash-completion gmime3-devel talloc-devel xapian-core-devel"
|
makedepends="bash-completion gmime3-devel talloc-devel xapian-core-devel
|
||||||
|
python3-cffi python3-setuptools gnupg2"
|
||||||
|
depends="gmime3>=3.2.7"
|
||||||
|
checkdepends="python3-pytest mdocml dtach gdb tar xz"
|
||||||
short_desc="Thread-based email index, search, and tagging"
|
short_desc="Thread-based email index, search, and tagging"
|
||||||
maintainer="Jan S. <jan.schreib@gmail.com>"
|
maintainer="Jan S. <jan.schreib@gmail.com>"
|
||||||
license="GPL-3.0-or-later"
|
license="GPL-3.0-or-later"
|
||||||
homepage="https://notmuchmail.org"
|
homepage="https://notmuchmail.org"
|
||||||
distfiles="https://notmuchmail.org/releases/notmuch-${version}.tar.xz"
|
distfiles="https://notmuchmail.org/releases/notmuch-${version}.tar.xz
|
||||||
checksum=d5f704b9a72395e43303de9b1f4d8e14dd27bf3646fdbb374bb3dbb7d150dc35
|
https://notmuchmail.org/releases/test-databases/database-v1.tar.xz"
|
||||||
|
checksum="5e3baa6fe11d65c67e26ae488be11b320bae04e336acc9c64621f7e3449096fa
|
||||||
|
4299e051b10e1fa7b33ea2862790a09ebfe96859681804e5251e130f800e69d2"
|
||||||
|
skip_extraction="database-v1.tar.xz"
|
||||||
|
|
||||||
subpackages="libnotmuch libnotmuch-devel notmuch-mutt notmuch-python notmuch-python3"
|
# Not a real conflicts, but this package is broken with gpgme 1.13.1-
|
||||||
|
# gpgme is optional dependency
|
||||||
|
conflicts="gpgme<1.14.0_1"
|
||||||
|
subpackages="libnotmuch libnotmuch-devel notmuch-mutt notmuch-python3"
|
||||||
patch_args=-Np1
|
patch_args=-Np1
|
||||||
|
|
||||||
if [ ! "$CROSS_BUILD" ]; then
|
if [ ! "$CROSS_BUILD" ]; then
|
||||||
|
@ -25,25 +34,35 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
do_configure() {
|
do_configure() {
|
||||||
|
ln -sf /usr/bin/gpg2 $XBPS_WRAPPERDIR/gpg
|
||||||
./configure --prefix=/usr \
|
./configure --prefix=/usr \
|
||||||
--bashcompletiondir=/usr/share/bash-completion/completions \
|
--bashcompletiondir=/usr/share/bash-completion/completions \
|
||||||
--zshcompletiondir=/usr/share/zsh/site-functions ${_args}
|
--zshcompletiondir=/usr/share/zsh/site-functions ${_args}
|
||||||
}
|
}
|
||||||
|
|
||||||
do_build() {
|
do_build() {
|
||||||
make ${makejobs} V=1
|
make ${makejobs}
|
||||||
make -C contrib/notmuch-mutt
|
make -C contrib/notmuch-mutt
|
||||||
cd bindings/python
|
cd bindings/python
|
||||||
python2 setup.py build --build-base=build-2
|
python3 setup.py build --build-base=build
|
||||||
python3 setup.py build --build-base=build-3
|
}
|
||||||
|
|
||||||
|
do_check() {
|
||||||
|
# We want wrapper-dirs included for gpg being gpg2
|
||||||
|
# But we don't want to use date wrapper in check
|
||||||
|
unset SOURCE_DATE_EPOCH
|
||||||
|
PATH=$XBPS_WRAPPERDIR:$PATH
|
||||||
|
cp $XBPS_SRCDISTDIR/notmuch-$version/database-v1.tar.xz \
|
||||||
|
test/test-databases
|
||||||
|
# 2 tests is failing on musl
|
||||||
|
# glibc is clean
|
||||||
|
make test
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
make DESTDIR=${DESTDIR} install
|
make DESTDIR=${DESTDIR} install
|
||||||
pushd bindings/python
|
pushd bindings/python
|
||||||
python2 setup.py build --build-base=build-2 \
|
python3 setup.py build --build-base=build \
|
||||||
install --prefix=/usr --root=${DESTDIR}
|
|
||||||
python3 setup.py build --build-base=build-3 \
|
|
||||||
install --prefix=/usr --root=${DESTDIR}
|
install --prefix=/usr --root=${DESTDIR}
|
||||||
popd
|
popd
|
||||||
if [ ! "$CROSS_BUILD" ]; then
|
if [ ! "$CROSS_BUILD" ]; then
|
||||||
|
@ -95,28 +114,17 @@ notmuch-mutt_package() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch-python_package() {
|
|
||||||
archs=noarch
|
|
||||||
depends="libnotmuch>=${version}_${revision}"
|
|
||||||
short_desc+=" - Python2 bindings"
|
|
||||||
pycompile_module="notmuch"
|
|
||||||
pkg_install() {
|
|
||||||
vmove ${py2_sitelib}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
notmuch-python3_package() {
|
notmuch-python3_package() {
|
||||||
archs=noarch
|
archs=noarch
|
||||||
depends="libnotmuch>=${version}_${revision}"
|
depends="libnotmuch-${version}_${revision}"
|
||||||
short_desc+=" - Python 3 bindings"
|
short_desc+=" - Python 3 bindings"
|
||||||
pycompile_module="notmuch"
|
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove ${py3_sitelib}
|
vmove ${py3_sitelib}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch-ruby_package() {
|
notmuch-ruby_package() {
|
||||||
depends="libnotmuch>=${version}_${revision} ruby"
|
depends="libnotmuch-${version}_${revision} ruby"
|
||||||
short_desc+=" - Ruby bindings"
|
short_desc+=" - Ruby bindings"
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove usr/lib/ruby
|
vmove usr/lib/ruby
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue