From 4df368381d3a7c09cdc4859eb52b5d29d206aa5a Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Fri, 14 Feb 2025 18:53:58 +0800 Subject: [PATCH] do_cmake: use Python 3.12 on ubuntu >= 24 the "official" Python shipped along with Ubuntu 24.04 (Noble Numbat) is Python 3.12. And some of our building have been upgraded to Ubuntu 24.04. But we are still using Python 3.10 on Ubuntu >= 22, this breaks the build. And CMake fails like: ``` CMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Python3 (missing: Python3_EXECUTABLE Python3_INCLUDE_DIRS Python3_LIBRARIES Interpreter Development Development.Module Development.Embed) (Required is exact version "3.10") Reason given by package: Interpreter: Wrong version for the interpreter "/bin/python3" Call Stack (most recent call first): /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE) cmake/modules/FindPython/Support.cmake:3863 (find_package_handle_standard_args) cmake/modules/FindPython3.cmake:545 (include) CMakeLists.txt:597 (find_package) ``` This build failure should also happen on developers who build Ceph on Ubuntu >= 24. In this change, we use Python 3.12 on Ubuntu >= 24 Signed-off-by: Kefu Chai --- do_cmake.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/do_cmake.sh b/do_cmake.sh index 3a408f0f90fb1..4d2f598094ab8 100755 --- a/do_cmake.sh +++ b/do_cmake.sh @@ -43,7 +43,9 @@ if [ -r /etc/os-release ]; then ;; ubuntu) MAJOR_VER=$(echo "$VERSION_ID" | sed -e 's/\..*$//') - if [ "$MAJOR_VER" -ge "22" ] ; then + if [ "$MAJOR_VER" -ge "24" ] ; then + PYBUILD="3.12" + elif [ "$MAJOR_VER" -ge "22" ] ; then PYBUILD="3.10" fi ;; -- 2.39.5