Bug 2154854
| Summary: | libftdi fails to build with Python 3.12: ModuleNotFoundError: No module named 'distutils' | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Tomáš Hrnčiar <thrnciar> |
| Component: | libftdi | Assignee: | Dan Horák <dan> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | dan, hobbes1069, lucilanga, mhroncok, redhat-bugzilla, thrnciar |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libftdi-1.5-7.fc38 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-02-03 17:24:56 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: | 2135404 | ||
|
Description
Tomáš Hrnčiar
2022-12-19 12:16:47 UTC
distutils is used only for find the library/module path, the following fix should work around it, but I am open to suggestions
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 5b6f420..d458840 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -42,7 +42,7 @@ endif ()
set_target_properties ( ${SWIG_MODULE_ftdi1_REAL_NAME} PROPERTIES NO_SONAME ON )
-execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print( sysconfig.get_python_lib( plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX}' ) )"
+execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print( sysconfig.get_path('stdlib') + '/site-packages' )"
OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE )
I'd replace:
sysconfig.get_path('stdlib') + '/site-packages'
with:
sysconfig.get_path('platlib')
And if you want to keep the explicit prefix:
sysconfig.get_path('platlib', vars={'platbase': '${CMAKE_INSTALL_PREFIX}'})
(In reply to Miro Hrončok from comment #2) > I'd replace: > > sysconfig.get_path('stdlib') + '/site-packages' > > with: > > sysconfig.get_path('platlib') the problem is, at least on F-36 on ppc64le, that it returns /usr/local/lib64/python3.10/site-packages, not sure it is right (/usr/local vs /usr) > And if you want to keep the explicit prefix: > > sysconfig.get_path('platlib', vars={'platbase': > '${CMAKE_INSTALL_PREFIX}'}) this should override the default /usr/local, I will give it a try > the problem is, at least on F-36 on ppc64le, that it returns /usr/local/lib64/python3.10/site-packages, not sure it is right (/usr/local vs /usr)
It should not do so if $RPM_BUILD_ROOT is set.
(In reply to Miro Hrončok from comment #4) > > the problem is, at least on F-36 on ppc64le, that it returns /usr/local/lib64/python3.10/site-packages, not sure it is right (/usr/local vs /usr) > > It should not do so if $RPM_BUILD_ROOT is set. ah, I have tried that locally, not in a build, makes sense then :-) FEDORA-2023-ad81e3a1c0 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-ad81e3a1c0 FEDORA-2023-ad81e3a1c0 has been pushed to the Fedora 38 stable repository. If problem still persists, please make note of it in this bug report. |