summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/zlib-ng/pr-1546.patch
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/zlib-ng/pr-1546.patch')
-rw-r--r--var/spack/repos/builtin/packages/zlib-ng/pr-1546.patch182
1 files changed, 182 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/zlib-ng/pr-1546.patch b/var/spack/repos/builtin/packages/zlib-ng/pr-1546.patch
new file mode 100644
index 0000000000..8966cdd36b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/zlib-ng/pr-1546.patch
@@ -0,0 +1,182 @@
+From 101bc10dcef8d2cb45a51534180c7134001b07a9 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <me@harmenstoppels.nl>
+Date: Mon, 24 Jul 2023 09:37:57 +0200
+Subject: [PATCH 1/3] Relative paths CMAKE_INSTALL_*, absolute paths
+ CMAKE_INSTALL_FULL_*; use @rpath/libname as install name on macOS
+
+---
+ CMakeLists.txt | 46 ++--------------------------------------------
+ configure | 7 +------
+ test/pkgcheck.sh | 2 +-
+ 3 files changed, 4 insertions(+), 51 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 003e66db7..46b85bc48 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -951,36 +951,8 @@ if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
+ endif()
+ endif()
+
+-# Refer to prefix symbolically to ease relocation by end user,
+-# as Makefile-generated .pc file does.
+-string(FIND "${CMAKE_INSTALL_INCLUDEDIR}" "${CMAKE_INSTALL_PREFIX}/" INCLUDEDIR_POS)
+-string(FIND "${CMAKE_INSTALL_LIBDIR}" "${CMAKE_INSTALL_PREFIX}/" LIBDIR_POS)
+-string(LENGTH "${CMAKE_INSTALL_PREFIX}/" INSTALL_PREFIX_LEN)
+-
+-if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+- set(PC_INC_INSTALL_DIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+-elseif(INCLUDEDIR_POS EQUAL 0)
+- string(SUBSTRING "${CMAKE_INSTALL_INCLUDEDIR}" "${INSTALL_PREFIX_LEN}" "-1" INCLUDEDIR_RELATIVE)
+- set(PC_INC_INSTALL_DIR "\${prefix}/${INCLUDEDIR_RELATIVE}")
+-else()
+- set(PC_INC_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
+-endif()
+-
+-if(APPLE)
+- option(WITH_RPATH "Enable RPATH for shared library" OFF)
+-endif()
+-if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+- if(APPLE AND WITH_RPATH)
+- set(PC_LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
+- else()
+- set(PC_LIB_INSTALL_DIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
+- endif()
+-elseif(LIBDIR_POS EQUAL 0)
+- string(SUBSTRING "${CMAKE_INSTALL_LIBDIR}" "${INSTALL_PREFIX_LEN}" "-1" LIBDIR_RELATIVE)
+- set(PC_LIB_INSTALL_DIR "\${exec_prefix}/${LIBDIR_RELATIVE}")
+-else()
+- set(PC_LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
+-endif()
++set(PC_INC_INSTALL_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
++set(PC_LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
+
+ #============================================================================
+ # zlib
+@@ -1142,11 +1114,6 @@ if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
+ if(NOT APPLE)
+ set_target_properties(zlib PROPERTIES LINK_FLAGS
+ "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib${SUFFIX}.map\"")
+- elseif(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}" OR NOT WITH_RPATH)
+- # Match configure/make's behavior (i.e. don't use @rpath on mac when using absolute path).
+- set_target_properties(zlib PROPERTIES INSTALL_NAME_DIR "@rpath/${CMAKE_INSTALL_FULL_LIBDIR}")
+- else()
+- set_target_properties(zlib PROPERTIES INSTALL_NAME_DIR "@rpath/${CMAKE_INSTALL_LIBDIR}")
+ endif()
+ endif()
+ if(MSYS)
+@@ -1183,11 +1150,6 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zlib${SUFFIX}.h.in
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/gzread.c.in
+ ${CMAKE_CURRENT_BINARY_DIR}/gzread.c @ONLY)
+
+-# Fix install directory after generating zlib.pc/zlib-ng.pc
+-if (NOT IS_ABSOLUTE CMAKE_INSTALL_LIBDIR AND WITH_RPATH)
+- set(CMAKE_INSTALL_LIBDIR "/${CMAKE_INSTALL_LIBDIR}")
+-endif()
+-
+ if (NOT ZLIB_SYMBOL_PREFIX STREQUAL "")
+ add_feature_info(ZLIB_SYMBOL_PREFIX ON "Publicly exported symbols have a custom prefix")
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zlib_name_mangling${SUFFIX}.h.in
+@@ -1286,8 +1248,4 @@ endif()
+
+ add_feature_info(INSTALL_UTILS INSTALL_UTILS "Copy minigzip and minideflate during install")
+
+-if(APPLE)
+- add_feature_info(WITH_RPATH WITH_RPATH "Enable RPATH for shared library")
+-endif()
+-
+ FEATURE_SUMMARY(WHAT ALL INCLUDE_QUIET_PACKAGES)
+diff --git a/configure b/configure
+index 29a64badf..6881f7af5 100755
+--- a/configure
++++ b/configure
+@@ -513,12 +513,7 @@ if test "$gcc" -eq 1 && ($cc $CFLAGS -c $test.c) >> configure.log 2>&1; then
+ SHAREDLIBM=${LIBNAME}.$VER1$shared_ext
+ SHAREDTARGET=$SHAREDLIBV
+ LDSHARED=${LDSHARED-"$cc"}
+- case ${libdir} in
+- /*)
+- LDSHAREDFLAGS="-dynamiclib -install_name ${libdir}/${SHAREDLIBM} -compatibility_version ${VER1} -current_version ${VER3}" ;;
+- *)
+- LDSHAREDFLAGS="-dynamiclib -install_name @rpath/${libdir}/${SHAREDLIBM} -compatibility_version ${VER1} -current_version ${VER3}" ;;
+- esac
++ LDSHAREDFLAGS="-dynamiclib -install_name @rpath/${SHAREDLIBM} -compatibility_version ${VER1} -current_version ${VER3}"
+ if libtool -V 2>&1 | grep Apple > /dev/null; then
+ AR="libtool"
+ else
+diff --git a/test/pkgcheck.sh b/test/pkgcheck.sh
+index 629f98ade..6641b300a 100644
+--- a/test/pkgcheck.sh
++++ b/test/pkgcheck.sh
+@@ -81,7 +81,7 @@ Darwin)
+ sysctl -n machdep.cpu.features
+ sysctl -n machdep.cpu.leaf7_features
+ sysctl -n machdep.cpu.extfeatures
+- CMAKE_ARGS="-DCMAKE_INSTALL_LIBDIR=lib -DPKGCONFIG_INSTALL_DIR=/lib/pkgconfig -DWITH_RPATH=on ${CMAKE_ARGS}"
++ CMAKE_ARGS="-DCMAKE_INSTALL_LIBDIR=lib ${CMAKE_ARGS}"
+ CONFIGURE_ARGS="--libdir=lib ${CONFIGURE_ARGS}"
+ ;;
+ *)
+
+From c6fbd1459eda454402c3450c670b7e538233b8d4 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <me@harmenstoppels.nl>
+Date: Mon, 24 Jul 2023 11:37:31 +0200
+Subject: [PATCH 2/3] relocatable pc files by default, while allowing
+ discouraged absolute paths for CMAKE_INSTALL_[LIB|INCLUDE]DIR
+
+---
+ CMakeLists.txt | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 46b85bc48..1894d10d5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -951,8 +951,19 @@ if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
+ endif()
+ endif()
+
+-set(PC_INC_INSTALL_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
+-set(PC_LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
++# The user is allowed (but discouraged) to set absolute CMAKE_INSTALL_*DIR paths.
++# If they do, we copy these non-relocatable paths into the pkg-config file.
++if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
++ set(PC_INC_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
++else()
++ set(PC_INC_INSTALL_DIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
++endif()
++
++if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
++ set(PC_LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
++else()
++ set(PC_LIB_INSTALL_DIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
++endif()
+
+ #============================================================================
+ # zlib
+
+From 0bae8f7d8379e5863b7c9328f0d71a87a33ca02f Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <me@harmenstoppels.nl>
+Date: Mon, 24 Jul 2023 10:20:32 +0200
+Subject: [PATCH 3/3] Remove relative configure --lib
+
+---
+ test/pkgcheck.sh | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/test/pkgcheck.sh b/test/pkgcheck.sh
+index 6641b300a..94a67a191 100644
+--- a/test/pkgcheck.sh
++++ b/test/pkgcheck.sh
+@@ -81,11 +81,6 @@ Darwin)
+ sysctl -n machdep.cpu.features
+ sysctl -n machdep.cpu.leaf7_features
+ sysctl -n machdep.cpu.extfeatures
+- CMAKE_ARGS="-DCMAKE_INSTALL_LIBDIR=lib ${CMAKE_ARGS}"
+- CONFIGURE_ARGS="--libdir=lib ${CONFIGURE_ARGS}"
+- ;;
+-*)
+- CMAKE_ARGS="-DCMAKE_INSTALL_LIBDIR=lib ${CMAKE_ARGS}"
+ ;;
+ esac
+