Bug 1716522
Summary: | pythonqt fails to build with Python 3.8 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Miro Hrončok <mhroncok> |
Component: | pythonqt | Assignee: | Igor Raits <igor.raits> |
Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | cstratak, igor.raits, jkaluza, vstinner |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
URL: | https://copr.fedorainfracloud.org/coprs/g/python/python3.8/package/pythonqt/ | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2019-08-06 11:25:56 UTC | Type: | --- |
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 |
Description
Miro Hrončok
2019-06-03 14:40:05 UTC
pythonqt uses the qmake build system which I am not very familiar with, however the issue seems to be deriving from that file [0] [0] This is due to https://sourceforge.net/p/pythonqt/code/HEAD/tree/trunk/build/python.prf This line: unix:LIBS += $$system(python$${PYTHON_VERSION}-config --ldflags) will need to be changed to unix:LIBS += $$system(python$${PYTHON_VERSION}-config --libs --embed) for 3.8 The default python version is changing dynamically according to the SPEC: https://src.fedoraproject.org/rpms/pythonqt/blob/master/f/pythonqt.spec#_47 A conditional ideally should be added there so if the python version is 3.8 or higher then the embed option is added, however I didn't find a good way to do that in the code (unless just hacking the SPEC to apply a patch conditionally). Igor any ideas? build/python.prf should be modified to use the new --embed flag: https://docs.python.org/dev/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build unix:LIBS += $$system(python$${PYTHON_VERSION}-config --ldflags) unix:QMAKE_CXXFLAGS += $$system(python$${PYTHON_VERSION}-config --includes) I tried to use bash syntax to run a second if the first one fails: unix:LIBS += $$system(python$${PYTHON_VERSION}-config --ldflags --embed || python$${PYTHON_VERSION}-config --ldflags) unix:QMAKE_CXXFLAGS += $$system(python$${PYTHON_VERSION}-config --includes --embed || python$${PYTHON_VERSION}-config --includes) Problem: qmake syntax doesn't accept "||", it has a different meaning. A bash script could be added to use shell syntax, and build/python.prf would run this script using $$(system). Igor? Retired. |