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 1710767
Summary: | python-wxpython4 FTBFS with Python 3.8 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Lumír Balhar <lbalhar> | ||||||||||
Component: | python-wxpython4 | Assignee: | Scott Talbert <swt> | ||||||||||
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||
Severity: | high | Docs Contact: | |||||||||||
Priority: | unspecified | ||||||||||||
Version: | rawhide | CC: | bkabrda, cstratak, dmalcolm, mcyprian, mhroncok, pviktori, rkuska, shcherbina.iryna, swt, tomspur, torsava, vstinner | ||||||||||
Target Milestone: | --- | ||||||||||||
Target Release: | --- | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Whiteboard: | |||||||||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2019-05-18 19:02:24 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: |
|
let me try dig the config.log Created attachment 1569456 [details]
root.log from COPR
Created attachment 1569490 [details]
config.log
[1/2] Compiling build/waf/3.8/gtk3/.conf_check_1c6b03a74ebec564757f8a7c923132ce/test.cpp ['/usr/bin/g++', '-O2', '-g', '-fexceptions', '-fstack-protector-strong', '-grecord-gcc-switches', '-m64', '-mtune=generic', '-fasynchronous-unwind-tables', '-fstack-clash-protection', '-fcf-protection', '-fPIC', '-fwrapv', '-O2', '-g', '-fexceptions', '-fstack-protector-strong', '-grecord-gcc-switches', '-m64', '-mtune=generic', '-fasynchronous-unwind-tables', '-fstack-clash-protection', '-fcf-protection', '-fPIC', '-fwrapv', '-I/usr/include/python3.8', '-DPYTHONDIR="/usr/local/lib/python3.8/site-packages"', '-DPYTHONARCHDIR="/usr/local/lib64/python3.8/site-packages"', '-D_GNU_SOURCE', '-DDYNAMIC_ANNOTATIONS_ENABLED=1', '-DNDEBUG', '-D_GNU_SOURCE', '../test.cpp', '-c', '-o/builddir/build/BUILD/python-wxpython4-4.0.4/python3/build/waf/3.8/gtk3/.conf_check_1c6b03a74ebec564757f8a7c923132ce/testbuild/test.cpp.1.o'] [2/2] Linking build/waf/3.8/gtk3/.conf_check_1c6b03a74ebec564757f8a7c923132ce/testbuild/testprog ['/usr/bin/g++', '-fPIC', '-fPIC', 'test.cpp.1.o', '-o/builddir/build/BUILD/python-wxpython4-4.0.4/python3/build/waf/3.8/gtk3/.conf_check_1c6b03a74ebec564757f8a7c923132ce/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-L/usr/lib64', '-lcrypt', '-lpthread', '-ldl', '-lutil', '-lm', '-lm', '-lcrypt', '-lpthread', '-ldl', '-lutil', '-lm', '-lm'] err: /usr/bin/ld: test.cpp.1.o: in function `main': /builddir/build/BUILD/python-wxpython4-4.0.4/python3/build/waf/3.8/gtk3/.conf_check_1c6b03a74ebec564757f8a7c923132ce/testbuild/../test.cpp:14: undefined reference to `Py_Initialize' /usr/bin/ld: /builddir/build/BUILD/python-wxpython4-4.0.4/python3/build/waf/3.8/gtk3/.conf_check_1c6b03a74ebec564757f8a7c923132ce/testbuild/../test.cpp:15: undefined reference to `Py_Finalize' collect2: error: ld returned 1 exit status I also see this in the log: LIBPL = '/usr/lib64/python3.8/config--x86_64-linux-gnu' This should probably be: /usr/lib64/python3.8/config-3.8-x86_64-linux-gnu @Miro - it looks like that LIBPL is coming from python itself: <mock-chroot> sh-5.0# python3 -c "from distutils.sysconfig import get_config_var; print(get_config_var('LIBPL'))" /usr/lib64/python3.8/config--x86_64-linux-gnu Looking at strace of that, it appears to be looking at /usr/lib64/python3.8/_sysconfigdata__linux_x86_64-linux-gnu.py. <mock-chroot> sh-5.0# grep LIBPL /usr/lib64/python3.8/_sysconfigdata__linux_x86_64-linux-gnu.py 'LIBPL': '/usr/lib64/python3.8/config--x86_64-linux-gnu', Victor, this might be relevant to the "m" removal. Could you please look at this with very high priority? Thanks. Just for the record: Those are the actual files: /usr/lib64/python3.7/config-3.7m-x86_64-linux-gnu /usr/lib64/python3.8/config-3.8-x86_64-linux-gnu This is a result of python3 -c "from distutils.sysconfig import get_config_var; print(get_config_var('LIBPL'))": /usr/lib64/python3.7/config-3.7m-x86_64-linux-gnu /usr/lib64/python3.8/config--x86_64-linux-gnu Unpatched upstream at v3.8.0a4: $ ./configure && make -j $ grep LIBPL build/lib.linux-x86_64-3.8/_sysconfigdata__linux_x86_64-linux-gnu.py 'LIBPL': '/usr/local/lib/python3.8/config-3.8-x86_64-linux-gnu', With our patches at fedora-3.8.0a4, i'm unable to run ./configure && make -j - apparently, our patch doesn't work without setting all the other things we set during the build :( [cpython ((fedora-3.8.0a4))]$ ./configure --enable-shared && make -j [cpython ((fedora-3.8.0a4))]$ grep LIBPL build/lib.linux-x86_64-3.8/_sysconfigdata__linux_x86_64-linux-gnu.py 'LIBPL': '/usr/local/lib64/python3.8/config--x86_64-linux-gnu', I've talked to Victor on IRC and we found the cause of he problem. Fix in https://src.fedoraproject.org/rpms/python38/pull-request/20 - needs a review. <mock-chroot> sh-5.0# python3 -c "from distutils.sysconfig import get_config_var; print(get_config_var('LIBPL'))" /usr/lib64/python3.8/config-3.8-x86_64-linux-gnu <mock-chroot> sh-5.0# file /usr/lib64/python3.8/config-3.8-x86_64-linux-gnu /usr/lib64/python3.8/config-3.8-x86_64-linux-gnu: directory Okay, I'll have another look tonight. Note that a new copr build of wxpytho4 failed again, so I'm running it in mock locally to get the new config.log. Created attachment 1570152 [details]
config.log
I didn't test this with the latest python3.8 build, but with the previous version, it appears that 'python3-config --ldflags' isn't including the python libraries in the output. That is a deliberate change, see https://docs.python.org/dev/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build $ python3.8-config --ldflags -L/usr/lib64 -lcrypt -lpthread -ldl -lutil -lm -lm $ python3.7-config --ldflags -L/usr/lib64 -lpython3.7m -lcrypt -lpthread -ldl -lutil -lm -Xlinker -export-dynamic This might be blocked by https://bugs.python.org/issue36721. It seems that WAF wants to test building an embedded application, so it needs those flags. I don't think wxPython needs that, so I'm trying to see if I can work around it in wxPython. Fixed, built fine locally using copr mock config. |
Created attachment 1569452 [details] Full build log from COPR python-wxpython4-4.0.4-3.fc31 fails to build from source in Fedora rawhide with Python 3.8. The error message is: Checking for program 'python' : /usr/bin/python3 Checking for python version >= 2.7.0 : 3.8.0 python-config : /usr/bin/python3-config Asking python-config for pyembed '--cflags --libs --ldflags' flags : yes Testing pyembed configuration : Could not build a python embedded interpreter Testing pyembed configuration : Could not build a python embedded interpreter BUILDSTDERR: The configuration failed BUILDSTDERR: (complete log in /builddir/build/BUILD/python-wxpython4-4.0.4/python3/build/waf/3.8/gtk3/config.log) Command '"/usr/bin/python3" /builddir/build/BUILD/python-wxpython4-4.0.4/python3/bin/waf-2.0.8 --wx_config=wx-config-3.0 --gtk3 --python="/usr/bin/python3" --out=build/waf/3.8/gtk3 configure build ' failed with exit code 1. Finished command: build_py (0.972s) BUILDSTDERR: error: Bad exit status from /var/tmp/rpm-tmp.H67ljx (%build)