From 5c7cfbc0f11e360f50467b20a407c675c976d3a0 Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Wed, 25 Jul 2018 16:32:42 +0800 Subject: [PATCH 1/9] allow postgresql cross compiling --- .../libraries/libossp-uuid/default.nix | 8 +++++++- .../libraries/libossp-uuid/shtool.patch | 11 +++++++++++ pkgs/servers/sql/postgresql/default.nix | 16 ++++++++++++---- 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 pkgs/development/libraries/libossp-uuid/shtool.patch diff --git a/pkgs/development/libraries/libossp-uuid/default.nix b/pkgs/development/libraries/libossp-uuid/default.nix index ddfc2a5132c..4cd68f2f1b5 100644 --- a/pkgs/development/libraries/libossp-uuid/default.nix +++ b/pkgs/development/libraries/libossp-uuid/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl}: +{stdenv, fetchurl, buildPackages}: let version = "1.6.2"; in @@ -12,6 +12,12 @@ stdenv.mkDerivation { configureFlags = stdenv.lib.optional stdenv.isFreeBSD "--with-pic"; + patches = [ ./shtool.patch ]; + + preConfigure = '' + export ac_cv_va_copy=yes + ''; + meta = with stdenv.lib; { homepage = http://www.ossp.org/pkg/lib/uuid/; description = "OSSP uuid ISO-C and C++ shared library"; diff --git a/pkgs/development/libraries/libossp-uuid/shtool.patch b/pkgs/development/libraries/libossp-uuid/shtool.patch new file mode 100644 index 00000000000..f0c7cc485f5 --- /dev/null +++ b/pkgs/development/libraries/libossp-uuid/shtool.patch @@ -0,0 +1,11 @@ +--- a/shtool 2008-07-05 05:43:08.000000000 +0800 ++++ b/shtool 2018-07-25 15:45:40.559587471 +0800 +@@ -1400,7 +1400,7 @@ + if [ ".$opt_t" = .yes ]; then + echo "strip $dsttmp" 1>&2 + fi +- strip $dsttmp || shtool_exit $? ++ $STRIP $dsttmp || shtool_exit $? + fi + if [ ".$opt_o" != . ]; then + if [ ".$opt_t" = .yes ]; then diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index a727b60dd9d..e558e7ee5ae 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, libxml2, makeWrapper }: +{ lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, libxml2, makeWrapper, tzdata, symlinkJoin }: let @@ -14,8 +14,15 @@ let outputs = [ "out" "lib" "doc" "man" ]; setOutputFlags = false; # $out retains configureFlags :-/ + combinedLibXML2 = symlinkJoin { + name = "libxml2-combined"; + paths = [ libxml2 libxml2.dev ]; + }; + + nativeBuildInputs = [ combinedLibXML2 ]; + buildInputs = - [ zlib readline openssl libxml2 makeWrapper ] + [ zlib readline openssl makeWrapper ] ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ]; enableParallelBuilding = true; @@ -28,8 +35,9 @@ let "--sysconfdir=/etc" "--libdir=$(lib)/lib" ] - ++ lib.optional (stdenv.isDarwin) "--with-uuid=e2fs" - ++ lib.optional (!stdenv.isDarwin) "--with-ossp-uuid"; + ++ lib.optional stdenv.isDarwin "--with-uuid=e2fs" + ++ lib.optional (!stdenv.isDarwin) "--with-ossp-uuid" + ++ lib.optional stdenv.isCross "--with-system-tzdata=${tzdata}"; patches = [ (if atLeast "9.4" then ./disable-resolve_symlinks-94.patch else ./disable-resolve_symlinks.patch) From 707ef5bdbe6a9c303a31b4d8d1cb9067bbf40556 Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Wed, 25 Jul 2018 18:07:33 +0800 Subject: [PATCH 2/9] remove redundent dependency on libossp-uuid --- pkgs/development/libraries/libossp-uuid/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libossp-uuid/default.nix b/pkgs/development/libraries/libossp-uuid/default.nix index 4cd68f2f1b5..fc727f39238 100644 --- a/pkgs/development/libraries/libossp-uuid/default.nix +++ b/pkgs/development/libraries/libossp-uuid/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, buildPackages}: +{stdenv, fetchurl}: let version = "1.6.2"; in From b2104d93ff319e26a036b1d5afe8d57322c536be Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Fri, 27 Jul 2018 14:12:25 +0800 Subject: [PATCH 3/9] point to the right libxml2 header folder --- pkgs/servers/sql/postgresql/default.nix | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index e558e7ee5ae..81eb2f29ef9 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -14,21 +14,17 @@ let outputs = [ "out" "lib" "doc" "man" ]; setOutputFlags = false; # $out retains configureFlags :-/ - combinedLibXML2 = symlinkJoin { - name = "libxml2-combined"; - paths = [ libxml2 libxml2.dev ]; - }; - - nativeBuildInputs = [ combinedLibXML2 ]; - buildInputs = - [ zlib readline openssl makeWrapper ] + [ zlib readline openssl makeWrapper libxml2 ] ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ]; enableParallelBuilding = true; makeFlags = [ "world" ]; + preConfigure = '' + export CFLAGS="$CFLAGS -I${libxml2.dev}/include/libxml2" + ''; configureFlags = [ "--with-openssl" "--with-libxml" From a998a49ee4f2f0461a93e9c9524654b845a8139e Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Fri, 27 Jul 2018 14:19:05 +0800 Subject: [PATCH 4/9] reduce diffs due to reordering --- pkgs/servers/sql/postgresql/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index 81eb2f29ef9..69d01bb718e 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, libxml2, makeWrapper, tzdata, symlinkJoin }: +{ lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, libxml2, makeWrapper, tzdata }: let @@ -15,7 +15,7 @@ let setOutputFlags = false; # $out retains configureFlags :-/ buildInputs = - [ zlib readline openssl makeWrapper libxml2 ] + [ zlib readline openssl libxml2 makeWrapper ] ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ]; enableParallelBuilding = true; From 894705161c2f100e98ef5661dae51cf60da9c0c4 Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Sun, 29 Jul 2018 21:21:46 +0800 Subject: [PATCH 5/9] use NIX_CFLAGS_COMPILE --- pkgs/servers/sql/postgresql/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index 69d01bb718e..bbb5a5a1774 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -23,7 +23,7 @@ let makeFlags = [ "world" ]; preConfigure = '' - export CFLAGS="$CFLAGS -I${libxml2.dev}/include/libxml2" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2.dev}/include/libxml2" ''; configureFlags = [ "--with-openssl" From e8682cafd6106ff33a589fc644fa5294a86b14c0 Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Mon, 30 Jul 2018 11:54:57 +0800 Subject: [PATCH 6/9] always build against tzdata --- pkgs/servers/sql/postgresql/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index bbb5a5a1774..a81e2fb2c8f 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -30,10 +30,10 @@ let "--with-libxml" "--sysconfdir=/etc" "--libdir=$(lib)/lib" + "--with-system-tzdata=${tzdata}" ] ++ lib.optional stdenv.isDarwin "--with-uuid=e2fs" - ++ lib.optional (!stdenv.isDarwin) "--with-ossp-uuid" - ++ lib.optional stdenv.isCross "--with-system-tzdata=${tzdata}"; + ++ lib.optional (!stdenv.isDarwin) "--with-ossp-uuid"; patches = [ (if atLeast "9.4" then ./disable-resolve_symlinks-94.patch else ./disable-resolve_symlinks.patch) From c0ca3e36d61f53c80ae5683ecc139689720cb3ac Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Mon, 30 Jul 2018 15:47:10 +0800 Subject: [PATCH 7/9] be explicit on choice of uuid library --- pkgs/servers/sql/postgresql/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index a81e2fb2c8f..fafb5bfeb92 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -31,9 +31,9 @@ let "--sysconfdir=/etc" "--libdir=$(lib)/lib" "--with-system-tzdata=${tzdata}" - ] - ++ lib.optional stdenv.isDarwin "--with-uuid=e2fs" - ++ lib.optional (!stdenv.isDarwin) "--with-ossp-uuid"; + ] ++ ( + if stdenv.isDarwin then [ "--with-uuid=e2fs" ] else [ "--with-ossp-uuid" ] + ); patches = [ (if atLeast "9.4" then ./disable-resolve_symlinks-94.patch else ./disable-resolve_symlinks.patch) From 003055a670470f678e376be7f9b9051fb242ec0f Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Tue, 31 Jul 2018 11:23:17 +0800 Subject: [PATCH 8/9] pass NIX_CFLAGS_COMPILE through mkDerivation instead --- pkgs/servers/sql/postgresql/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index fafb5bfeb92..f4aabb971a6 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -22,9 +22,8 @@ let makeFlags = [ "world" ]; - preConfigure = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2.dev}/include/libxml2" - ''; + NIX_CFLAGS_COMPILE = [ "-I${libxml2.dev}/include/libxml2" ]; + configureFlags = [ "--with-openssl" "--with-libxml" From f539c300954af9b71b3a49b541f1f6692840ca55 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 2 Aug 2018 16:22:42 -0400 Subject: [PATCH 9/9] postgresql: Fix nits after cross fixes --- pkgs/development/libraries/libossp-uuid/default.nix | 8 +++----- pkgs/servers/sql/postgresql/default.nix | 5 ++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/libossp-uuid/default.nix b/pkgs/development/libraries/libossp-uuid/default.nix index fc727f39238..952509acc2e 100644 --- a/pkgs/development/libraries/libossp-uuid/default.nix +++ b/pkgs/development/libraries/libossp-uuid/default.nix @@ -10,14 +10,12 @@ stdenv.mkDerivation { sha256= "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0"; }; - configureFlags = stdenv.lib.optional stdenv.isFreeBSD "--with-pic"; + configureFlags = [ + "ac_cv_va_copy=yes" + ] ++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic"; patches = [ ./shtool.patch ]; - preConfigure = '' - export ac_cv_va_copy=yes - ''; - meta = with stdenv.lib; { homepage = http://www.ossp.org/pkg/lib/uuid/; description = "OSSP uuid ISO-C and C++ shared library"; diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index f4aabb971a6..4eb8d717309 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -30,9 +30,8 @@ let "--sysconfdir=/etc" "--libdir=$(lib)/lib" "--with-system-tzdata=${tzdata}" - ] ++ ( - if stdenv.isDarwin then [ "--with-uuid=e2fs" ] else [ "--with-ossp-uuid" ] - ); + (if stdenv.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid") + ]; patches = [ (if atLeast "9.4" then ./disable-resolve_symlinks-94.patch else ./disable-resolve_symlinks.patch)