File python312_nodistutils.patch of Package kdelibs4
The distutils module was deprecated in Python 3.10 and removed in 3.12, so don't use it if
building for newer python versions
diff -u a/cmake/modules/FindPythonLibrary.cmake b/cmake/modules/FindPythonLibrary.cmake
--- a/cmake/modules/FindPythonLibrary.cmake 2019-04-08 15:48:58.000000000 +0200
+++ b/cmake/modules/FindPythonLibrary.cmake 2025-11-15 14:29:25.447052218 +0100
@@ -49,19 +49,33 @@
endif(PYTHONLIBS_FOUND)
# Auto detect Python site-packages directory
+ if(${PYTHON_SHORT_VERSION} VERSION_LESS "3.12")
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(True))"
OUTPUT_VARIABLE PYTHON_SITE_PACKAGES_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
+ else()
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from sysconfig import get_path; print(get_path('platlib'))"
+ OUTPUT_VARIABLE PYTHON_SITE_PACKAGES_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ endif()
message(STATUS "Python system site-packages directory: ${PYTHON_SITE_PACKAGES_DIR}")
if(INSTALL_PYTHON_FILES_IN_PYTHON_PREFIX)
set(PYTHON_SITE_PACKAGES_INSTALL_DIR ${PYTHON_SITE_PACKAGES_DIR})
else()
+ if(${PYTHON_SHORT_VERSION} VERSION_LESS "3.12")
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(True, prefix='${CMAKE_INSTALL_PREFIX}'))"
OUTPUT_VARIABLE PYTHON_SITE_PACKAGES_INSTALL_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
+ else()
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; import os; from sysconfig import get_python_version; print(os.path.join('${CMAKE_INSTALL_PREFIX}', sys.platlibdir, 'python' + get_python_version(), 'site-packages'))"
+ OUTPUT_VARIABLE PYTHON_SITE_PACKAGES_INSTALL_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ endif()
endif()
if(NOT PYTHON_SITE_PACKAGES_INSTALL_DIR STREQUAL PYTHON_SITE_PACKAGES_DIR)