Bug 1716487
Summary: | pyotherside fails to build with Python 3.8 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Miro Hrončok <mhroncok> |
Component: | pyotherside | Assignee: | Martin Kolman <mkolman> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | cstratak, mkolman |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
URL: | https://copr.fedorainfracloud.org/coprs/g/python/python3.8/package/pyotherside/ | ||
Whiteboard: | |||
Fixed In Version: | pyotherside-1.5.8-1.fc31 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2019-06-19 16:09:07 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:37:32 UTC
This is weird, I've checked the Python 3.8 C API changes[0] and while some symbols apparently have been deprecated, the "undefined reference" ones are not on the list as far as I can tell. So for the time being I've opened an issue upstream: https://github.com/thp/pyotherside/issues/102 [0] https://docs.python.org/3.8/whatsnew/3.8.html#changes-in-the-c-api I bet this is https://docs.python.org/3.8/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build Does pyotherside use python3-config? Add the --embed flag. (In reply to Miro Hrončok from comment #2) > I bet this is > https://docs.python.org/3.8/whatsnew/3.8.html#debug-build-uses-the-same-abi- > as-release-build > > Does pyotherside use python3-config? Add the --embed flag. Upstream has already fixed[0] the issue in response to the issue I've reported and released PyOtherSide 1.5.5 with the fix. Unfortunately I have not yet been able to test the new version as attempts to use the Python 3.8 mock config die with the following error: ============================================================================================================================================================================================= Package Architecture Version Repository Size ============================================================================================================================================================================================= Reinstalling: gdb-minimal x86_64 8.3.50.20190601-15.fc31 python3.8 3.3 M Transaction Summary ============================================================================================================================================================================================= Total download size: 3.3 M Installed size: 12 M Downloading Packages: [MIRROR] gdb-minimal-8.3.50.20190601-15.fc31.x86_64.rpm: Interrupted by header callback: Server reports Content-Length: 4 but expected size is: 3450276 [FAILED] gdb-minimal-8.3.50.20190601-15.fc31.x86_64.rpm: No more mirrors to try - All mirrors were already tried without success Error: Error downloading packages: Cannot download 00921770-gdb/gdb-minimal-8.3.50.20190601-15.fc31.x86_64.rpm: All mirrors were tried ERROR: Exception(pyotherside-1.5.5-1.fc31.src.rpm) Config(fedora-rawhide-x86_64-python3.8) 10 minutes 41 seconds INFO: Results and/or logs in: /var/lib/mock/fedora-rawhide-x86_64-python3.8/result ERROR: Command failed: # /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64-python3.8/root/ -y --releasever 31 --setopt=deltarpm=False --disableplugin=local --disableplugin=spacewalk update The mock config is direct copy-paste from the Python 3.8 COPR info page. Any pointers what to try to get past this ? Or maybe this is just some mirror syncing issue that will go away by itself eventually ? In any case, 1.5.5 builds just fine on the regular Rawhide target in koji. :) [0] https://github.com/thp/pyotherside/commit/a2955b1c537c2b3387845b63c35ce9a8bd9774b6 I use: mock -r ~/.config/mock/fedora-rawhide-x86_64-python3.8.cfg --scrub=dnf-cache That fix was not enough. The build no longer links to libpython, resulting in undefined references to Python API like Py_InitializeEx. Code that embeds Python (rather than building an extension module) needs to pass `--embed` to any `python3-config --libs` invocation to build with Python 3.8. More information: https://docs.python.org/3.8/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build That was fixed with 1.5.7 for Python 3.8 but the fallback to previous versions is wrong and now it fails with Python 3.7: https://github.com/thp/pyotherside/issues/102#issuecomment-500436221 |