From 3d2fd2268b1c9b923bbc2482332a93a863027c27 Mon Sep 17 00:00:00 2001 From: Sebastien Maret Date: Wed, 30 May 2018 14:31:07 +0200 Subject: [PATCH 1/3] cfitsio: add darwin support --- .../cfitsio/darwin-curl-config.patch | 25 +++++++++++++++++++ .../libraries/cfitsio/darwin-universal.patch | 12 +++++++++ .../development/libraries/cfitsio/default.nix | 6 +++-- 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/libraries/cfitsio/darwin-curl-config.patch create mode 100644 pkgs/development/libraries/cfitsio/darwin-universal.patch diff --git a/pkgs/development/libraries/cfitsio/darwin-curl-config.patch b/pkgs/development/libraries/cfitsio/darwin-curl-config.patch new file mode 100644 index 00000000000..77d8f719d77 --- /dev/null +++ b/pkgs/development/libraries/cfitsio/darwin-curl-config.patch @@ -0,0 +1,25 @@ +diff -ruN cfitsio/configure cfitsio-curl-config/configure +--- cfitsio/configure 2018-05-09 21:16:00.000000000 +0200 ++++ cfitsio-curl-config/configure 2018-05-30 13:28:58.000000000 +0200 +@@ -4783,13 +4783,6 @@ + CURL_LIB="" + CURL_INC="" + # Use curl-config to get compiler & linker flags, if available. +-# On Macs, prefer XCode curl-config, and reject MacPorts version +-# until further notice to prevent build errors: +-if test "x$EXT" = xdarwin -a -x /usr/bin/curl-config; then +- CURLCONFIG="/usr/bin/curl-config" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for curl-config... choosing /usr/bin/curl-config on Mac" >&5 +-$as_echo "checking for curl-config... choosing /usr/bin/curl-config on Mac" >&6; } +-else + # Extract the first word of "curl-config", so it can be a program name with args. + set dummy curl-config; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +@@ -4833,7 +4826,6 @@ + fi + fi + fi +-fi + CURLCONFIG=$ac_cv_prog_CURLCONFIG + if test -n "$CURLCONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CURLCONFIG" >&5 diff --git a/pkgs/development/libraries/cfitsio/darwin-universal.patch b/pkgs/development/libraries/cfitsio/darwin-universal.patch new file mode 100644 index 00000000000..db9b7b5a56e --- /dev/null +++ b/pkgs/development/libraries/cfitsio/darwin-universal.patch @@ -0,0 +1,12 @@ +diff -ruN cfitsio/configure cfitsio-universal/configure +--- cfitsio/configure 2018-05-09 21:16:00.000000000 +0200 ++++ cfitsio-universal/configure 2018-05-30 14:26:03.000000000 +0200 +@@ -4734,7 +4734,7 @@ + *) + # Build 'Universal' binaries (i386 & x86_64 architectures) and + # use rpath token on Darwin 10.x or newer: +- SHLIB_LD="$CC -dynamiclib $C_UNIV_SWITCH -headerpad_max_install_names -install_name @rpath/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" ++ SHLIB_LD="$CC -dynamiclib -headerpad_max_install_names -install_name @rpath/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" + ;; + esac + diff --git a/pkgs/development/libraries/cfitsio/default.nix b/pkgs/development/libraries/cfitsio/default.nix index ecf5fb1f02f..1fc9b62ccc8 100644 --- a/pkgs/development/libraries/cfitsio/default.nix +++ b/pkgs/development/libraries/cfitsio/default.nix @@ -8,9 +8,11 @@ sha256 = "07fghxh5fl8nqk3q0dh8rvc83npnm0hisxzcj16a6r7gj5pmp40l"; }; + patches = [ ./darwin-curl-config.patch ./darwin-universal.patch ]; + # Shared-only build buildFlags = "shared"; - patchPhase = '' sed -e '/^install:/s/libcfitsio.a //' -e 's@/bin/@@g' -i Makefile.in + postPatch = '' sed -e '/^install:/s/libcfitsio.a //' -e 's@/bin/@@g' -i Makefile.in ''; meta = with stdenv.lib; { @@ -27,6 +29,6 @@ ''; # Permissive BSD-style license. license = "permissive"; - platforms = platforms.linux; + platforms = with platforms; linux ++ darwin; }; } From d629daeb2c9e8eec3f4ce9ec6456ddad8531f06d Mon Sep 17 00:00:00 2001 From: Sebastien Maret Date: Thu, 31 May 2018 11:55:10 +0200 Subject: [PATCH 2/3] cfitsio: use absolute references instead of rpath on darwin --- .../cfitsio/darwin-rpath-universal.patch | 21 +++++++++++++++++++ .../libraries/cfitsio/darwin-universal.patch | 12 ----------- .../development/libraries/cfitsio/default.nix | 2 +- 3 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch delete mode 100644 pkgs/development/libraries/cfitsio/darwin-universal.patch diff --git a/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch b/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch new file mode 100644 index 00000000000..7ac05132651 --- /dev/null +++ b/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch @@ -0,0 +1,21 @@ +diff -ruN cfitsio/configure cfitsio-rpath-universal/configure +--- cfitsio/configure 2018-05-09 21:16:00.000000000 +0200 ++++ cfitsio-rpath-universal/configure 2018-05-31 12:02:25.000000000 +0200 +@@ -4727,16 +4727,7 @@ + SHLIB_SUFFIX=".dylib" + CFITSIO_SHLIB="lib\${PACKAGE}.\${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}\${SHLIB_SUFFIX}" + CFITSIO_SHLIB_SONAME="lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX}" +- case $host in +- *darwin[56789]*) +- SHLIB_LD="$CC -dynamiclib -install_name lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" +- ;; +- *) +- # Build 'Universal' binaries (i386 & x86_64 architectures) and +- # use rpath token on Darwin 10.x or newer: +- SHLIB_LD="$CC -dynamiclib $C_UNIV_SWITCH -headerpad_max_install_names -install_name @rpath/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" +- ;; +- esac ++ SHLIB_LD="$CC -dynamiclib -install_name ${out}/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" + + lhea_shlib_cflags="-fPIC -fno-common" + ;; diff --git a/pkgs/development/libraries/cfitsio/darwin-universal.patch b/pkgs/development/libraries/cfitsio/darwin-universal.patch deleted file mode 100644 index db9b7b5a56e..00000000000 --- a/pkgs/development/libraries/cfitsio/darwin-universal.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ruN cfitsio/configure cfitsio-universal/configure ---- cfitsio/configure 2018-05-09 21:16:00.000000000 +0200 -+++ cfitsio-universal/configure 2018-05-30 14:26:03.000000000 +0200 -@@ -4734,7 +4734,7 @@ - *) - # Build 'Universal' binaries (i386 & x86_64 architectures) and - # use rpath token on Darwin 10.x or newer: -- SHLIB_LD="$CC -dynamiclib $C_UNIV_SWITCH -headerpad_max_install_names -install_name @rpath/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" -+ SHLIB_LD="$CC -dynamiclib -headerpad_max_install_names -install_name @rpath/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" - ;; - esac - diff --git a/pkgs/development/libraries/cfitsio/default.nix b/pkgs/development/libraries/cfitsio/default.nix index 1fc9b62ccc8..a21158723be 100644 --- a/pkgs/development/libraries/cfitsio/default.nix +++ b/pkgs/development/libraries/cfitsio/default.nix @@ -8,7 +8,7 @@ sha256 = "07fghxh5fl8nqk3q0dh8rvc83npnm0hisxzcj16a6r7gj5pmp40l"; }; - patches = [ ./darwin-curl-config.patch ./darwin-universal.patch ]; + patches = [ ./darwin-curl-config.patch ./darwin-rpath-universal.patch ]; # Shared-only build buildFlags = "shared"; From 73bc4734dc2b737c9f7bd44bbefb68e4d12723f9 Mon Sep 17 00:00:00 2001 From: Sebastien Maret Date: Fri, 1 Jun 2018 11:15:47 +0200 Subject: [PATCH 3/3] cfitsio: fix install name on darwin --- pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch b/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch index 7ac05132651..af38abf329e 100644 --- a/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch +++ b/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch @@ -15,7 +15,7 @@ diff -ruN cfitsio/configure cfitsio-rpath-universal/configure - SHLIB_LD="$CC -dynamiclib $C_UNIV_SWITCH -headerpad_max_install_names -install_name @rpath/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" - ;; - esac -+ SHLIB_LD="$CC -dynamiclib -install_name ${out}/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" ++ SHLIB_LD="$CC -dynamiclib -install_name ${out}/lib/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}" lhea_shlib_cflags="-fPIC -fno-common" ;;