Bug 1144112
Summary: | missing /usr/lib64/libpython3.4.so symlink | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Pavel Šimerda (pavlix) <psimerda> |
Component: | python3 | Assignee: | Bohuslav "Slavek" Kabrda <bkabrda> |
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | amcnabb, bkabrda, mstuchli, tomspur |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2014-09-19 07:05:50 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: | 1115489 |
Description
Pavel Šimerda (pavlix)
2014-09-18 17:07:36 UTC
The reason why this fails are "Python ABI Flags" [1] added since Python 3.2. For example, Fedora's python3 builds have "m" abi flag appended to soname, hence you have to link against "python3.4m". The upstream shouldn't hardcode "-lpython3.4", Instead, they should get the library name dynamically, there are two ways to do this: - $PYTHON -c "from distutils import sysconfig; print(sysconfig.get_config_var('BLDLIBRARY'))" (on Fedora, this returns "-L. -lpython3.4m") - -lpython`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_config_var('LDVERSION'))"` The second option however doesn't work with Python 2, so I'd recommend using the first one. I'm closing this as notabug, but feel free to reopen this if you think it needs a longer discussion. [1] http://legacy.python.org/dev/peps/pep-3149/ I'm ok with closing, will work with upstream to configure using `sysconfig`. Is there any best practice for using `distutils.sysconfig` data in makefiles/autotools? Why does it return `-L.` by the way? I certainly need an option which works at least with the most common Python 2.x variants. (In reply to Pavel Šimerda (pavlix) from comment #2) > I'm ok with closing, will work with upstream to configure using `sysconfig`. > Is there any best practice for using `distutils.sysconfig` data in > makefiles/autotools? I'm not aware of any approach being talked about as "best practice" in this regard. AFAIK it's normal to just use $PYTHON -c "from distutils import sysconfig; print(sysconfig.get_config_var('BLDLIBRARY'))" makefiles/autotools files to get the proper values. > Why does it return `-L.` by the way? I certainly need > an option which works at least with the most common Python 2.x variants. Honestly, I have no idea why it also returns "-L.", I can investigate... The above option works fine with Python >= 2.6, is that good enough? |