diff options
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.patch | 182 |
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 + |