Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
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