Re: configure checks for python3-notmuch2 module

Subject: Re: configure checks for python3-notmuch2 module

Date: Sun, 25 Jul 2021 15:00:25 +0300

To: notmuch@notmuchmail.org

Cc:

From: Tomi Ollila


On Mon, Jul 12 2021, Michael J. Gruber wrote:

> David Bremner venit, vidit, dixit 2021-07-11 23:29:57:
>> 
>> It turns out we need pyconfig.h to build the (new) python bindings.  I
>> don't think this is adequately checked for by the configure script,
>> since I had a Fedora user report a build failure (during make install,
>> which I found odd) missing pyconfig.h
>> 
>> On Debian this is on libpython3.x-dev, which is not a dependency of the
>> python3-cffi package.
>
> You need python3-cffi to run python code which uses cffi bindings -
> think of it as the "lib" part. You need the devel package to generate a
> python module using cffi (i.e. binding for a specific c library).
>
> So, it makes sense for the lib package not to depend on the devel
> package (which is python3-devel on Fedora).
>
> I can't help with adapting configure to the header requirement, though.

In case of python3-devel missing in Fedora, the compilation should not pass
as far as shown in David's email (and in log below) as it is needed for 

Checking for python3 cffi and setuptools... 

configure part to complete with 'Yes'

But the message could be better. Perhaps

Checking for python3 dev(el), cffi and setuptools...

(although this may not be clear enough for debian users as the package
there is libpython3-dev, cannot say...)

For me, to figure out what was needed in Fedora 34 (ok, 33, but now tested
in upgraded fedora 34 host in running fedora:34 podman container) was to run
script -c 'sh -x ./configure'; less typescript; and then do internet search
how to install missing 'Python.h' include file...

Tomi

>
> Michael
>
>> log follows.
>> ----------------------------------------------------------------------
>> 
>> cd bindings/python-cffi && \
>>         python3 setup.py build --build-lib build/stage && \
>>         mkdir -p build/stage/tests && cp tests/*.py build/stage/tests
>> running build
>> running build_py
>> running build_ext
>> generating cffi module 'build/temp.linux-x86_64-3.9/notmuch2._capi.c'
>> creating build/temp.linux-x86_64-3.9
>> building 'notmuch2._capi' extension
>> creating build/temp.linux-x86_64-3.9/build
>> creating build/temp.linux-x86_64-3.9/build/temp.linux-x86_64-3.9
>> gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I../../lib -I/usr/include/python3.9 -c build/temp.linux-x86_64-3.9/notmuch2._capi.c -o 
 b
>  ui
>>  ld/temp.linux-x86_64-3.9/build/temp.linux-x86_64-3.9/notmuch2._capi.o
>> build/temp.linux-x86_64-3.9/notmuch2._capi.c:50:14: fatal error: pyconfig.h: No such file or directory
>>    50 | #    include <pyconfig.h>
>>       |              ^~~~~~~~~~~~
>> compilation terminated.
>> error: command '/usr/bin/gcc' failed with exit code 1
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: