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 |