diff --git a/0005-FindBoost-Add-support-for-Python-3.10.patch b/0005-FindBoost-Add-support-for-Python-3.10.patch new file mode 100644 index 0000000..6d0322d --- /dev/null +++ b/0005-FindBoost-Add-support-for-Python-3.10.patch @@ -0,0 +1,78 @@ +From d4bb6c0c7fe8e3ee5aaa275cf939d074f959119b Mon Sep 17 00:00:00 2001 +From: Oleg Sidorkin +Date: Thu, 16 Dec 2021 21:24:00 +0300 +Subject: [PATCH 6/6] FindBoost: Add support for Python 3.10 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Regexps in FindBoost assumed that python's minor version had only one +digit. That became not true for 3.10. + +Fixes: #23025 +Signed-off-by: Björn Esser +--- + Modules/FindBoost.cmake | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake +index 0ad342f0e6..75cbbf56bc 100644 +--- a/Modules/FindBoost.cmake ++++ b/Modules/FindBoost.cmake +@@ -390,7 +390,7 @@ cmake_policy(SET CMP0102 NEW) # if mark_as_advanced(non_cache_var) + + function(_boost_get_existing_target component target_var) + set(names "${component}") +- if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$") ++ if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9]+)?$") + # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc. + list(APPEND names + "${CMAKE_MATCH_1}${CMAKE_MATCH_2}" # python +@@ -407,7 +407,7 @@ function(_boost_get_existing_target component target_var) + if(TARGET "${prefix}::${name}") + # The target may be an INTERFACE library that wraps around a single other + # target for compatibility. Unwrap this layer so we can extract real info. +- if("${name}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9])$") ++ if("${name}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9]+)$") + set(name_nv "${CMAKE_MATCH_1}") + if(TARGET "${prefix}::${name_nv}") + get_property(type TARGET "${prefix}::${name}" PROPERTY TYPE) +@@ -430,7 +430,7 @@ endfunction() + + function(_boost_get_canonical_target_name component target_var) + string(TOLOWER "${component}" component) +- if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$") ++ if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9]+)?$") + # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc. + set(${target_var} "Boost::${CMAKE_MATCH_1}${CMAKE_MATCH_2}" PARENT_SCOPE) + else() +@@ -1004,7 +1004,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) + # against the new release. + + # Handle Python version suffixes +- if(component MATCHES "^(python|mpi_python|numpy)([0-9][0-9]?|[0-9]\\.[0-9])\$") ++ if(component MATCHES "^(python|mpi_python|numpy)([0-9][0-9]?|[0-9]\\.[0-9]+)\$") + set(component "${CMAKE_MATCH_1}") + set(component_python_version "${CMAKE_MATCH_2}") + endif() +@@ -1408,7 +1408,7 @@ endfunction() + # + function(_Boost_COMPONENT_HEADERS component _hdrs) + # Handle Python version suffixes +- if(component MATCHES "^(python|mpi_python|numpy)([0-9][0-9]?|[0-9]\\.[0-9])\$") ++ if(component MATCHES "^(python|mpi_python|numpy)([0-9]+|[0-9]\\.[0-9]+)\$") + set(component "${CMAKE_MATCH_1}") + set(component_python_version "${CMAKE_MATCH_2}") + endif() +@@ -2165,7 +2165,7 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS}) + if(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\$") + set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}") + set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}") +- elseif(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\\.?([0-9])\$") ++ elseif(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\\.?([0-9]+)\$") + set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}") + set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}") + set(COMPONENT_PYTHON_VERSION_MINOR "${CMAKE_MATCH_3}") +-- +2.33.1 + diff --git a/cmake.spec b/cmake.spec index 336a539..82da0fc 100644 --- a/cmake.spec +++ b/cmake.spec @@ -68,7 +68,7 @@ %{?rcsuf:%global versuf -%{rcsuf}} # For handling bump release by rpmdev-bumpspec and mass rebuild -%global baserelease 3 +%global baserelease 4 # Uncomment if building for EPEL #global name_suffix %%{major_version} @@ -115,6 +115,9 @@ Patch103: 0003-Add-support-for-Python-3.11.patch # Add support for Boost 1.78 (merged in upstream) # https://gitlab.kitware.com/cmake/cmake/-/issues/23016 Patch104: 0004-FindBoost-Add-support-for-Boost-1.78.patch +# FindBoost: Add support for Python >= 3.10 (merged in upstream) +# https://gitlab.kitware.com/cmake/cmake/-/issues/23025 +Patch105: 0005-FindBoost-Add-support-for-Python-3.10.patch # Patch for renaming on EPEL %if 0%{?name_suffix:1} @@ -532,6 +535,9 @@ popd %changelog +* Fri Dec 17 2021 Björn Esser - 3.22.1-4 +- Backport patch to add support for Python >= 3.10 in FindBoost.cmake + * Thu Dec 16 2021 Björn Esser - 3.22.1-3 - Backport patch to add Boost 1.78 support