commit:     8471ec49af94d79ebafca2fb9a0b69e0c4d16518
Author:     Alexey Korepanov <kaikaikai <AT> yandex <DOT> ru>
AuthorDate: Thu Mar 13 11:52:49 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Mar 13 12:04:46 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8471ec49

dev-build/cmake: allow upstream behavior for FindBLAS

Gentoo patches cmake's FindBLAS changing the upstream behavior, which
sometimes breaks builds and takes time for investigation.

The corresponding bug has been open for 4.5 years: bugs.gentoo.org/736547.

This patch allows restoring the upstream behavior of FindBLAS by defining
GENTOO_REMOVE_CMAKE_BLAS_HACK. This is quite ugly, but it is easy and
less ugly than what we have right now.

[sam: new revision only for .6, not .5 (my error), not git mv, and
a new patch rather than changing the existing one in-place)]

Bug: https://bugs.gentoo.org/736547
Signed-off-by: Alexey Korepanov <kaikaikai <AT> yandex.ru>
Closes: https://github.com/gentoo/gentoo/pull/40709
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...ake-4.0.0_rc4.ebuild => cmake-3.31.6-r1.ebuild} | 30 ++++++++--------------
 dev-build/cmake/cmake-4.0.0_rc4.ebuild             |  2 +-
 dev-build/cmake/cmake-9999.ebuild                  |  2 +-
 ...cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch | 28 ++++++++++++++++++++
 4 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/dev-build/cmake/cmake-4.0.0_rc4.ebuild 
b/dev-build/cmake/cmake-3.31.6-r1.ebuild
similarity index 92%
copy from dev-build/cmake/cmake-4.0.0_rc4.ebuild
copy to dev-build/cmake/cmake-3.31.6-r1.ebuild
index 2ea266e74004..91497ec73ba9 100644
--- a/dev-build/cmake/cmake-4.0.0_rc4.ebuild
+++ b/dev-build/cmake/cmake-3.31.6-r1.ebuild
@@ -9,9 +9,7 @@ EAPI=8
 : ${CMAKE_DOCS_PREBUILT:=1}
 
 CMAKE_DOCS_PREBUILT_DEV=sam
-CMAKE_DOCS_VERSION=4.0.0_rc1
-#CMAKE_DOCS_VERSION=${PV}
-#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
 # Default to generating docs (inc. man pages) if no prebuilt; overridden later
 # See bug #784815
 CMAKE_DOCS_USEFLAG="+doc"
@@ -40,21 +38,19 @@ else
                SRC_URI+=" !doc? ( 
https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz
 )"
        fi
 
-       VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
-       inherit verify-sig
+       if [[ ${PV} != *_rc* ]] ; then
+               VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+               inherit verify-sig
 
-       SRC_URI+=" verify-sig? (
-               https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
-               https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
-               
https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
-               
https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
-       )"
+               SRC_URI+=" verify-sig? (
+                       
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 
1-3)/${MY_P}-SHA-256.txt
+                       
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 
1-3)/${MY_P}-SHA-256.txt.asc
+               )"
 
-       if [[ ${PV} != *_rc* ]] ; then
                KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips 
~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos 
~ppc-macos ~x64-macos ~x64-solaris"
-       fi
 
-       BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20240902 )"
+               BDEPEND="verify-sig? ( 
>=sec-keys/openpgp-keys-bradking-20240902 )"
+       fi
 fi
 
 [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
@@ -95,7 +91,7 @@ PATCHES=(
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
        # Misc
-       "${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
+       "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
        # Cuda
@@ -221,10 +217,6 @@ src_prepare() {
        # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
        filter-lto
 
-       # 4.0.0_rc1 is missing this, fails to configure
-       # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
-       touch .clang-tidy Utilities/.clang-tidy || die
-
        if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version 
&>/dev/null ; then
                CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
                cmake_src_bootstrap

diff --git a/dev-build/cmake/cmake-4.0.0_rc4.ebuild 
b/dev-build/cmake/cmake-4.0.0_rc4.ebuild
index 2ea266e74004..41639c300a5d 100644
--- a/dev-build/cmake/cmake-4.0.0_rc4.ebuild
+++ b/dev-build/cmake/cmake-4.0.0_rc4.ebuild
@@ -95,7 +95,7 @@ PATCHES=(
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
        # Misc
-       "${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
+       "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
        # Cuda

diff --git a/dev-build/cmake/cmake-9999.ebuild 
b/dev-build/cmake/cmake-9999.ebuild
index 2ea266e74004..41639c300a5d 100644
--- a/dev-build/cmake/cmake-9999.ebuild
+++ b/dev-build/cmake/cmake-9999.ebuild
@@ -95,7 +95,7 @@ PATCHES=(
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
        # Misc
-       "${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
+       "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
        
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
        # Cuda

diff --git 
a/dev-build/cmake/files/cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch 
b/dev-build/cmake/files/cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
new file mode 100644
index 000000000000..0f8611771828
--- /dev/null
+++ b/dev-build/cmake/files/cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
@@ -0,0 +1,28 @@
+diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
+index 6d60c9d86a..b6664dfe26 100644
+--- a/Modules/FindBLAS.cmake
++++ b/Modules/FindBLAS.cmake
+@@ -7,6 +7,11 @@ FindBLAS
+ 
+ Find Basic Linear Algebra Subprograms (BLAS) library
+ 
++Version modified for Gentoo Linux.
++If a valid PkgConfig configuration is found, this overrides and cancels
++all further checks. The upstream behavior can be restored by defining
++GENTOO_REMOVE_CMAKE_BLAS_HACK
++
+ This module finds an installed Fortran library that implements the
+ `BLAS linear-algebra interface`_.
+ 
+@@ -281,6 +286,11 @@ function(_add_blas_target)
+   endif()
+ endfunction()
+ 
++# first, try PkgConfig
++if(NOT DEFINED GENTOO_REMOVE_CMAKE_BLAS_HACK)
++  set(BLA_PREFER_PKGCONFIG ON)
++endif()
++
+ if(CMAKE_Fortran_COMPILER_LOADED)
+   include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
+ else()

Reply via email to