From 6f7f2b6b470aaf8d66e3d63c45973885e5d6f336 Mon Sep 17 00:00:00 2001 From: Yi Zhao Date: Tue, 6 Feb 2024 14:46:15 +0800 Subject: openscap: fix build with python 3.12 Backport a patch to fix build with python 3.12: $ bitbake openscap-native Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'distutils' CMake Error at swig/python3/CMakeLists.txt:35 (install): install TARGETS given no LIBRARY DESTINATION for module target "_openscap_py". Signed-off-by: Yi Zhao Signed-off-by: Armin Kuster --- ...eplace-distutils.sysconfig-with-sysconfig.patch | 57 ++++++++++++++++++++++ recipes-compliance/openscap/openscap_1.3.9.bb | 4 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 recipes-compliance/openscap/files/0001-Replace-distutils.sysconfig-with-sysconfig.patch diff --git a/recipes-compliance/openscap/files/0001-Replace-distutils.sysconfig-with-sysconfig.patch b/recipes-compliance/openscap/files/0001-Replace-distutils.sysconfig-with-sysconfig.patch new file mode 100644 index 0000000..f3f8cf7 --- /dev/null +++ b/recipes-compliance/openscap/files/0001-Replace-distutils.sysconfig-with-sysconfig.patch @@ -0,0 +1,57 @@ +From 9a8e01f8421f92f40b4cbff6cf055538e9a0b0ae Mon Sep 17 00:00:00 2001 +From: Evgeny Kolesnikov +Date: Thu, 25 Jan 2024 21:37:05 +0100 +Subject: [PATCH] Replace distutils.sysconfig with sysconfig + +Upstream-Status: Backport +[https://github.com/OpenSCAP/openscap/commit/9a8e01f8421f92f40b4cbff6cf055538e9a0b0ae] + +Signed-off-by: Yi Zhao +--- + docs/developer/developer.adoc | 2 +- + swig/python3/CMakeLists.txt | 2 +- + utils/CMakeLists.txt | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/docs/developer/developer.adoc b/docs/developer/developer.adoc +index 77c6d5161..e923069cc 100644 +--- a/docs/developer/developer.adoc ++++ b/docs/developer/developer.adoc +@@ -113,7 +113,7 @@ On Ubuntu 18.04 and potentially other distro, the python3 dist-packages path is + If the following command: + + ---- +-$ python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())" ++$ python3 -c "import sysconfig; print(sysconfig.get_path('platlib'))" + ---- + + returns "/usr/local/lib/python3/dist-packages" instead of a path like +diff --git a/swig/python3/CMakeLists.txt b/swig/python3/CMakeLists.txt +index 2594cf000..5f301326c 100644 +--- a/swig/python3/CMakeLists.txt ++++ b/swig/python3/CMakeLists.txt +@@ -26,7 +26,7 @@ add_custom_target(python3_compile ALL DEPENDS ${PYTHON_COMPILED_FILES}) + + if(NOT PYTHON_SITE_PACKAGES_INSTALL_DIR) + execute_process(COMMAND +- ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(True, prefix='${CMAKE_INSTALL_PREFIX}'))" ++ ${PYTHON_EXECUTABLE} -c "import sysconfig; print(sysconfig.get_path('platlib'))" + OUTPUT_VARIABLE PYTHON_SITE_PACKAGES_INSTALL_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index 93ce1f2a9..9347c2976 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -91,7 +91,7 @@ if(ENABLE_OSCAP_UTIL_DOCKER) + + if(NOT PYTHON_SITE_PACKAGES_INSTALL_DIR) + execute_process(COMMAND +- ${OSCAP_DOCKER_PYTHON} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(False, False, prefix='${CMAKE_INSTALL_PREFIX}'))" ++ ${OSCAP_DOCKER_PYTHON} -c "import sysconfig; print(sysconfig.get_path('purelib'))" + OUTPUT_VARIABLE PYTHON_SITE_PACKAGES_INSTALL_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +-- +2.25.1 + diff --git a/recipes-compliance/openscap/openscap_1.3.9.bb b/recipes-compliance/openscap/openscap_1.3.9.bb index 97261df..d956ff1 100644 --- a/recipes-compliance/openscap/openscap_1.3.9.bb +++ b/recipes-compliance/openscap/openscap_1.3.9.bb @@ -11,7 +11,9 @@ DEPENDS:class-native = "pkgconfig-native swig-native curl-native libxml2-native #Jun 22th, 2023 SRCREV = "9b3e7563575f7e5b419f8a09999b40f30e3e7c29" -SRC_URI = "git://github.com/OpenSCAP/openscap.git;branch=maint-1.3;protocol=https" +SRC_URI = "git://github.com/OpenSCAP/openscap.git;branch=maint-1.3;protocol=https \ + file://0001-Replace-distutils.sysconfig-with-sysconfig.patch \ + " S = "${WORKDIR}/git" -- cgit v1.2.3-54-g00ecf