commit:     68decf81c3fa4b5a8d42b6ba526e65d785e1c178
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Wed Sep 10 14:55:40 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Sep 11 03:25:13 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68decf81

sci-libs/openblas: fix hardcoded /lib in OpenBLASConfig.cmake

Closes: https://bugs.gentoo.org/960514
Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43730
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/openblas-0.3.30-cmake_libdir.patch       | 66 ++++++++++++++++++++++
 sci-libs/openblas/openblas-0.3.30-r2.ebuild        |  4 ++
 2 files changed, 70 insertions(+)

diff --git a/sci-libs/openblas/files/openblas-0.3.30-cmake_libdir.patch 
b/sci-libs/openblas/files/openblas-0.3.30-cmake_libdir.patch
new file mode 100644
index 000000000000..df7a807f0edf
--- /dev/null
+++ b/sci-libs/openblas/files/openblas-0.3.30-cmake_libdir.patch
@@ -0,0 +1,66 @@
+From b9da1ad68ae74924a23717e505475d9a07677119 Mon Sep 17 00:00:00 2001
+From: Paul Zander <[email protected]>
+Date: Mon, 21 Jul 2025 18:21:59 +0200
+Subject: [PATCH] Makefile.install, adhere to OPENBLAS_*_DIR
+
+See-also: https://github.com/OpenMathLib/OpenBLAS/issues/5387
+See-also: https://bugs.gentoo.org/960514
+Signed-off-by: Paul Zander <[email protected]>
+---
+ Makefile.install | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.install b/Makefile.install
+index 10e6425c..de3be619 100644
+--- a/Makefile.install
++++ b/Makefile.install
+@@ -23,6 +23,9 @@ PREFIX ?= /opt/OpenBLAS
+ OPENBLAS_INCLUDE_DIR := $(PREFIX)/include
+ OPENBLAS_LIBRARY_DIR := $(PREFIX)/lib
+ OPENBLAS_BINARY_DIR := $(PREFIX)/bin
++OPENBLAS_INCLUDE_DIR_UNPREFIXED = $(subst $(PREFIX),,${OPENBLAS_INCLUDE_DIR})
++OPENBLAS_LIBRARY_DIR_UNPREFIXED = $(subst $(PREFIX),,${OPENBLAS_LIBRARY_DIR})
++OPENBLAS_BINARY_DIR_UNPREFIXED = $(subst $(PREFIX),,${OPENBLAS_BINARY_DIR})
+ OPENBLAS_BUILD_DIR := $(CURDIR)
+ OPENBLAS_CMAKE_DIR := $(OPENBLAS_LIBRARY_DIR)/cmake/$(LIBSONAMEBASE)
+ OPENBLAS_CMAKE_CONFIG := OpenBLASConfig.cmake
+@@ -191,29 +194,29 @@ endif
+ #Generating OpenBLASConfig.cmake
+       @echo Generating $(OPENBLAS_CMAKE_CONFIG) in 
$(DESTDIR)$(OPENBLAS_CMAKE_DIR)
+       @echo "SET(OpenBLAS_VERSION \"${VERSION}\")" > 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
+-      @echo "file(REAL_PATH \"../../..\" _OpenBLAS_ROOT_DIR BASE_DIRECTORY 
\$${CMAKE_CURRENT_LIST_DIR} )" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
+-      @echo "SET(OpenBLAS_INCLUDE_DIRS \$${_OpenBLAS_ROOT_DIR}/include)" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
++      @echo "get_filename_component(PACKAGE_PREFIX_DIR 
\"\$${CMAKE_CURRENT_LIST_DIR}/../../../\" ABSOLUTE)" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
++      @echo "SET(OpenBLAS_INCLUDE_DIRS 
\$${PACKAGE_PREFIX_DIR}${OPENBLAS_INCLUDE_DIR_UNPREFIXED})" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
+ 
+ ifneq ($(NO_SHARED),1)
+ #ifeq logical or
+ ifeq ($(OSNAME), $(filter $(OSNAME),Linux FreeBSD NetBSD OpenBSD DragonFly))
+-      @echo "SET(OpenBLAS_LIBRARIES 
\$${_OpenBLAS_ROOT_DIR}/lib/$(LIBPREFIX).so)" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
++      @echo "SET(OpenBLAS_LIBRARIES 
\$${PACKAGE_PREFIX_DIR}${OPENBLAS_LIBRARY_DIR_UNPREFIXED}/$(LIBPREFIX).so)" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
+ endif
+ ifeq ($(OSNAME), $(filter $(OSNAME),WINNT CYGWIN_NT))
+-      @echo "SET(OpenBLAS_LIBRARIES 
\$${_OpenBLAS_ROOT_DIR}/bin/$(LIBDLLNAME))" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
++      @echo "SET(OpenBLAS_LIBRARIES 
\$${PACKAGE_PREFIX_DIR}${OPENBLAS_BINARY_DIR_UNPREFIXED}/$(LIBDLLNAME))" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
+ endif
+ ifeq ($(OSNAME), Darwin)
+-      @echo "SET(OpenBLAS_LIBRARIES 
\$${_OpenBLAS_ROOT_DIR}/lib/$(LIBPREFIX).dylib)" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
++      @echo "SET(OpenBLAS_LIBRARIES 
\$${PACKAGE_PREFIX_DIR}${OPENBLAS_LIBRARY_DIR_UNPREFIXED}/$(LIBPREFIX).dylib)" 
>> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
+ endif
+       @echo "add_library(OpenBLAS::OpenBLAS SHARED IMPORTED)"
+       @echo "target_include_directories(OpenBLAS::OpenBLAS INTERFACE 
\$${OpenBLAS_INCLUDE_DIRS})"
+ ifeq ($(OSNAME), $(filter $(OSNAME),WINNT CYGWIN_NT))
+       @echo "set_property(TARGET OpenBLAS::OpenBLAS PROPERTY 
IMPORTED_LOCATION \$${OpenBLAS_LIBRARIES})"
+-      @echo "set_property(TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB 
\$${_OpenBLAS_ROOT_DIR}/lib/libopenblas.lib)"
++      @echo "set_property(TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB 
\$${PACKAGE_PREFIX_DIR})${OPENBLAS_LIBRARY_DIR_UNPREFIXED}/libopenblas.lib)"
+ endif
+ else
+ #only static
+-      @echo "SET(OpenBLAS_LIBRARIES 
\$${_OpenBLAS_ROOT_DIR}/lib/$(LIBPREFIX).$(LIBSUFFIX))" >> 
"$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
++      @echo "SET(OpenBLAS_LIBRARIES 
\$${PACKAGE_PREFIX_DIR}${OPENBLAS_LIBRARY_DIR_UNPREFIXED})/$(LIBPREFIX).$(LIBSUFFIX))"
 >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
+ endif
+ #Generating OpenBLASConfigVersion.cmake
+       @echo Generating $(OPENBLAS_CMAKE_CONFIG_VERSION) in 
$(DESTDIR)$(OPENBLAS_CMAKE_DIR)
+-- 
+2.50.1
+

diff --git a/sci-libs/openblas/openblas-0.3.30-r2.ebuild 
b/sci-libs/openblas/openblas-0.3.30-r2.ebuild
index 64069ff2e5ef..8c87d62f6da8 100644
--- a/sci-libs/openblas/openblas-0.3.30-r2.ebuild
+++ b/sci-libs/openblas/openblas-0.3.30-r2.ebuild
@@ -28,6 +28,10 @@ BDEPEND="virtual/pkgconfig"
 
 PATCHES=(
        "${FILESDIR}/${PN}-0.3.29-shared-blas-lapack.patch"
+       # 960514 replace by upstream fix in next release. Which reverts to 
worse cmake-config files.
+       # https://github.com/OpenMathLib/OpenBLAS/issues/5387
+       # https://github.com/OpenMathLib/OpenBLAS/pull/5391
+       "${FILESDIR}/${P}-cmake_libdir.patch"
 )
 
 pkg_pretend() {

Reply via email to