Re: [PATCH v2] configure: use cffi.FFI().verify() to test buildability of CFFI bindings

2020-06-10 Thread David Bremner
Tomi Ollila  writes:

> Checking existence of pyconfig.h to determine whether CFFI-based
> notmuch bindings are buildable is not enough; for example Fedora 32
> ships pyconfig.h in python3-libs package, but python3-devel is required
> to be installed for the bindings to build.
>
> Executing cffi.FFI().verify() is pretty close to what is done in
> bindings/python-cffi/notmuch2/_build.py to get the c code part of the
> bindings built.

v2 pushed to master and release

d

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH v2] configure: use cffi.FFI().verify() to test buildability of CFFI bindings

2020-06-09 Thread Tomi Ollila
Checking existence of pyconfig.h to determine whether CFFI-based
notmuch bindings are buildable is not enough; for example Fedora 32
ships pyconfig.h in python3-libs package, but python3-devel is required
to be installed for the bindings to build.

Executing cffi.FFI().verify() is pretty close to what is done in
bindings/python-cffi/notmuch2/_build.py to get the c code part of the
bindings built.
---

diff to v1:

> +rm -rf __pycache__  # cffi.FFI().verify() uses this space

fits pretty well w/ pytest $conf removal few lines below

 configure | 15 +++
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/configure b/configure
index f4b3c61a..05ade05b 100755
--- a/configure
+++ b/configure
@@ -711,14 +711,12 @@ if [ $have_python -eq 0 ]; then
 errors=$((errors + 1))
 fi
 
-have_python3_dev=0
+have_python3=0
 if [ $have_python -eq 1 ]; then
-printf "Checking for python3 dev (>= 3.5)..."
-if "$python" -c 'import os, sys, sysconfig;
-assert sys.version_info >= (3,5)
-assert os.path.isfile(sysconfig.get_config_h_filename())' >/dev/null 2>&1; then
+printf "Checking for python3 (>= 3.5)..."
+if "$python" -c 'import sys, sysconfig; assert sys.version_info >= (3,5)'; 
>/dev/null 2>&1; then
 printf "Yes.\n"
-have_python3_dev=1
+have_python3=1
 else
 printf "No (will not install CFFI-based python bindings).\n"
 fi
@@ -726,14 +724,15 @@ fi
 
 have_python3_cffi=0
 have_python3_pytest=0
-if [ $have_python3_dev -eq 1 ]; then
+if [ $have_python3 -eq 1 ]; then
 printf "Checking for python3 cffi and setuptools... "
-if "$python" -c 'import cffi; import setuptools' >/dev/null 2>&1; then
+if "$python" -c 'import cffi,setuptools; cffi.FFI().verify()' >/dev/null 
2>&1; then
 printf "Yes.\n"
 have_python3_cffi=1
 else
 printf "No (will not install CFFI-based python bindings).\n"
 fi
+rm -rf __pycache__  # cffi.FFI().verify() uses this space
 
 printf "Checking for python3 pytest (>= 3.0)... "
 conf=$(mktemp)
-- 
2.25.1

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch