Bug 1706233
Summary: | hplip FTBFS with python3.8 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Charalampos Stratakis <cstratak> | ||||||||
Component: | hplip | Assignee: | Zdenek Dohnal <zdohnal> | ||||||||
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
Severity: | high | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | rawhide | CC: | bkabrda, cstratak, dmalcolm, jpopelka, jridky, mcyprian, mhroncok, pviktori, rkuska, shcherbina.iryna, tkorbar, tomspur, torsava, twaugh, zdohnal | ||||||||
Target Milestone: | --- | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | hplip-3.18.12-11.fc31 | Doc Type: | If docs needed, set a value | ||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2019-05-17 12:13:57 UTC | Type: | Bug | ||||||||
Regression: | --- | Mount Type: | --- | ||||||||
Documentation: | --- | CRM: | |||||||||
Verified Versions: | Category: | --- | |||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||
Embargoed: | |||||||||||
Bug Depends On: | |||||||||||
Bug Blocks: | 1686977 | ||||||||||
Attachments: |
|
Hi Charis! Thank you for reporting the issue! I was on PTO last two weeks, so I was not able to get it done. Hope it did not block someone... From config.log: configure:13745: checking python3.8/Python.h usability configure:13745: gcc -c -g -O2 conftest.c >&5 In file included from /usr/include/python3.8/pystate.h:129, from /usr/include/python3.8/traceback.h:8, from /usr/include/python3.8/Python.h:117, from conftest.c:67: /usr/include/python3.8/cpython/pystate.h:9:10: fatal error: cpython/coreconfig.h: No such file or directory 9 | #include "cpython/coreconfig.h" | ^~~~~~~~~~~~~~~~~~~~~~ compilation terminated. configure:13745: $? = 1 In my local F29 machine: $ dnf repoquery --whatprovides *cpython/coreconfig.h python38-0:3.8.0~a3-1.fc29.i686 python38-0:3.8.0~a3-1.fc29.x86_64 python38-debugsource-0:3.8.0~a3-1.fc29.i686 python38-debugsource-0:3.8.0~a3-1.fc29.x86_64 In mock chroot: <mock-chroot> -bash-5.0# rpm -q python3 python3-3.8.0~a4-1.fc31.x86_64 <mock-chroot> -bash-5.0# rpm -q python38 package python38 is not installed It seems like an include for header from python38-devel package got lost in header file from python3-devel package. Reassigning to python team, IMO it is issue in python. The build failure is from our copr with updated python3 package: https://copr.fedorainfracloud.org/coprs/g/python/python3.8/ - a work in progress copr for Fedora 31 change. $ dnf repoquery --repo=python3.8 --whatprovides *cpython/coreconfig.h python3-debug-0:3.8.0~a4-1.fc31.x86_64 python3-debugsource-0:3.8.0~a4-1.fc31.x86_64 python3-devel-0:3.8.0~a4-1.fc31.x86_64 $ dnf repoquery --repo=python3.8 -l python3-devel | grep cpython/coreconfig.h /usr/include/python3.8/cpython/coreconfig.h > It seems like an include for header from python38-devel package got lost in header file from python3-devel package. I don't really understand what does this mean. I think hplib does some configure-fu that is no longer valid for Python 3.8. How do I get the config.log? Never mind, found it: | #include <python3.8/Python.h> configure:13745: result: no configure:13745: checking python3.8/Python.h presence configure:13745: gcc -E conftest.c In file included from /usr/include/python3.8/pystate.h:129, from /usr/include/python3.8/traceback.h:8, from /usr/include/python3.8/Python.h:117, from conftest.c:34: /usr/include/python3.8/cpython/pystate.h:9:10: fatal error: cpython/coreconfig.h: No such file or directory 9 | #include "cpython/coreconfig.h" | ^~~~~~~~~~~~~~~~~~~~~~ compilation terminated. configure:13745: $? = 1 Note that the following is not supposed to work: #include <python3.8/Python.h> And hence it is a terrible idea to check from a configure script: Instead, do this: Set -I /usr/include/python3.8 and do: #include <Python.h> Bad: $ cat bad.c #include <python3.8/Python.h> $ gcc -c bad.c In file included from /usr/include/python3.8/pystate.h:129, from /usr/include/python3.8/traceback.h:8, from /usr/include/python3.8/Python.h:117, from bad.c:1: /usr/include/python3.8/cpython/pystate.h:9:10: fatal error: cpython/coreconfig.h: Adresář nebo soubor neexistuje 9 | #include "cpython/coreconfig.h" | ^~~~~~~~~~~~~~~~~~~~~~ compilation terminated. $ Better: $ cat good.c #include <Python.h> $ gcc -I/usr/include/python3.8 -c good.c $ The best: $ cat good.c #include <Python.h> $ gcc $(python3.8-config --includes) -c good.c $ Created attachment 1569010 [details]
Full log from Copr (Python 3.8.0a4)
Up to date logs attached.
Created attachment 1569011 [details]
config.log
(In reply to Miro Hrončok from comment #4) > And hence it is a terrible idea to check from a configure script: Do you mean do not check python usability in configure at all? > $ gcc $(python3.8-config --includes) -c good.c I used python3-config, is it ok? (In reply to Zdenek Dohnal from comment #8) > (In reply to Miro Hrončok from comment #4) > > And hence it is a terrible idea to check from a configure script: > > Do you mean do not check python usability in configure at all? No, I mean to do it this way. > > $ gcc $(python3.8-config --includes) -c good.c > > I used python3-config, is it ok? Sure! (In reply to Miro Hrončok from comment #9) > (In reply to Zdenek Dohnal from comment #8) > > (In reply to Miro Hrončok from comment #4) > > > And hence it is a terrible idea to check from a configure script: > > > > Do you mean do not check python usability in configure at all? > > No, I mean to do it this way. Do you mean use python3-config in configure script? I understood you suggest to run python3-config in spec file and output put into CFLAGS/CXXFLAGS. I suggest that running ggc without include flags on this: #include <python3.8/Python.h> Is not supposed to work. Fixed in https://koji.fedoraproject.org/koji/taskinfo?taskID=34892600 by adding python includedir into CFLAGS+CXXFLAGS in spec file. |
Created attachment 1562733 [details] Full log from Copr hplip-3.18.12-9 fails to build with Python 3.8. It seems that for some reason the configure script can't find Python.h: checking whether /usr/bin/python3 version is >= 2.2... yes checking for /usr/bin/python3 version... 3.8 checking for /usr/bin/python3 platform... linux checking for /usr/bin/python3 script directory... ${prefix}/lib/python3.8/site-packages checking for /usr/bin/python3 extension module directory... ${exec_prefix}/lib64/python3.8/site-packages checking for path to Python.h... "using /usr/include/python3.8m .... python3.8/Python.h" checking python3.8/Python.h usability... no checking python3.8/Python.h presence... no checking for python3.8/Python.h... no checking python3.8mu/Python.h usability... no checking python3.8mu/Python.h presence... no checking for python3.8mu/Python.h... no checking python3.8m/Python.h usability... no checking python3.8m/Python.h presence... no checking for python3.8m/Python.h... no configure: error: cannot find python-devel support Full log attached