From 6b05651c20fd0d73b11f8ab1f4ca984c1fd9fce8 Mon Sep 17 00:00:00 2001 From: Robin Gloster <mail@glob.in> Date: Wed, 27 Sep 2017 21:48:39 +0200 Subject: [PATCH] Revert "postgresql: Add dev output" Firstly this creates a cycle in 9.6 .out <-> .dev after fixing the PGXS path. Secondly this breaks extension handling and the pg_config as it resolves a lot of paths relatively resulting in the following bogus output: BINDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/bin DOCDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc HTMLDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc INCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include PKGINCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include INCLUDEDIR-SERVER = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include/server LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib LOCALEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/locale MANDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/man SHAREDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share SYSCONFDIR = /etc/postgresql PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc' CC = gcc CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2 CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 CFLAGS_SL = -fPIC LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags LDFLAGS_EX = LDFLAGS_SL = LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm VERSION = PostgreSQL 9.5.9 This can probably only be properly fixed by rewriting pg_config in large parts as it does not in any way respect splitting the postgres tree and assumes it can simply resolve paths relative to its location. This does not even handle symlinks: $ result-dev/bin/pg_config BINDIR = /home/robin/dev/nixpkgs-upstream/result-dev/bin DOCDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc HTMLDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc INCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include PKGINCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include INCLUDEDIR-SERVER = /home/robin/dev/nixpkgs-upstream/result-dev/include/server LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib LOCALEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/locale MANDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/man SHAREDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share SYSCONFDIR = /etc/postgresql PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc' CC = gcc CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2 CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 CFLAGS_SL = -fPIC LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags LDFLAGS_EX = LDFLAGS_SL = LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm VERSION = PostgreSQL 9.5.9 cc @edolstra Revert "bacula: fix after postgresql output splitting" This reverts commit 13c9cbacdded00558084fda7037ca80849208e99. Revert "postgresql: fix pgxs dir in pg_config" This reverts commit 21998d597bd257c1a769e2be4b7a52b5b7e482a6. Revert "rubyGems.pg: fix postgresql path" This reverts commit e253ae7d3a4ab992d2432c87514e3333a3cf744d. Revert "kea: fix path to pg_config" This reverts commit 086c636eb7f894a55f752b6164dac4a87d8bcee9. Revert "php: fix build wrt. new postgres.dev build output" This reverts commit 2f23a83920107678ca1792a11d19e1cb37df3ace. Revert "gdal: fix path to pg_config" This reverts commit 032c50d45b3fd1ebb4af592b83e776ed7004b4c0. Revert "postgresql: Add dev output" This reverts commit b0280f598e4b3f6ebf33ad2115734e4735df443a. --- pkgs/development/interpreters/php/default.nix | 4 ++-- pkgs/development/libraries/gdal/default.nix | 2 +- pkgs/development/ruby-modules/gem-config/default.nix | 2 +- pkgs/servers/sql/postgresql/default.nix | 10 ++++++---- pkgs/tools/backup/bacula/default.nix | 4 ++-- pkgs/tools/networking/kea/default.nix | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 7b832fa6eed7..ed018a942273 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -99,12 +99,12 @@ let }; postgresql = { - configureFlags = ["--with-pgsql=${postgresql.dev}"]; + configureFlags = ["--with-pgsql=${postgresql}"]; buildInputs = [ postgresql ]; }; pdo_pgsql = { - configureFlags = ["--with-pdo-pgsql=${postgresql.dev}"]; + configureFlags = ["--with-pdo-pgsql=${postgresql}"]; buildInputs = [ postgresql ]; }; diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix index 600e9314cd4c..984d3da81198 100644 --- a/pkgs/development/libraries/gdal/default.nix +++ b/pkgs/development/libraries/gdal/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { "--with-png=${libpng.dev}" # optional "--with-poppler=${poppler.dev}" # optional "--with-libz=${zlib.dev}" # optional - "--with-pg=${postgresql.dev}/bin/pg_config" + "--with-pg=${postgresql}/bin/pg_config" "--with-mysql=${mysql.lib.dev}/bin/mysql_config" "--with-geotiff=${libgeotiff}" "--with-sqlite3=${sqlite.dev}" diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix index a0d4b9adcbe3..6647d71bd006 100644 --- a/pkgs/development/ruby-modules/gem-config/default.nix +++ b/pkgs/development/ruby-modules/gem-config/default.nix @@ -183,7 +183,7 @@ in pg = attrs: { buildFlags = [ - "--with-pg-config=${postgresql.dev}/bin/pg_config" + "--with-pg-config=${postgresql}/bin/pg_config" ]; }; diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index 980ed5056a11..8a3097ae9dee 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -11,7 +11,7 @@ let inherit sha256; }; - outputs = [ "out" "dev" "lib" "doc" "man" ]; + outputs = [ "out" "lib" "doc" "man" ]; setOutputFlags = false; # $out retains configureFlags :-/ buildInputs = @@ -46,16 +46,18 @@ let let path = if atLeast "9.6" then "src/common/config_info.c" else "src/bin/pg_config/pg_config.c"; in '' # Hardcode the path to pgxs so pg_config returns the path in $out - substituteInPlace "${path}" --replace HARDCODED_PGXS_PATH $dev/lib + substituteInPlace "${path}" --replace HARDCODED_PGXS_PATH $out/lib ''; postInstall = '' - moveToOutput "bin/pg_config" "$dev" - moveToOutput "lib/pgxs" "$dev" # looks strange, but not deleting it + moveToOutput "lib/pgxs" "$out" # looks strange, but not deleting it moveToOutput "lib/*.a" "$out" moveToOutput "lib/libecpg*" "$out" + # Prevent a retained dependency on gcc-wrapper. + substituteInPlace "$out/lib/pgxs/src/Makefile.global" --replace ${stdenv.cc}/bin/ld ld + # Remove static libraries in case dynamic are available. for i in $out/lib/*.a; do name="$(basename "$i")" diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix index 7c368ce4d039..374122814c50 100644 --- a/pkgs/tools/backup/bacula/default.nix +++ b/pkgs/tools/backup/bacula/default.nix @@ -12,9 +12,9 @@ stdenv.mkDerivation rec { # acl relies on attr, which I can't get to build on darwin ++ stdenv.lib.optional (!stdenv.isDarwin) acl; - configureFlags = [ + configureFlags = [ "--with-sqlite3=${sqlite.dev}" - "--with-postgresql=${postgresql.dev}" + "--with-postgresql=${postgresql}" ]; postInstall = '' diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix index cd4c45121692..e1829bcaf7d8 100644 --- a/pkgs/tools/networking/kea/default.nix +++ b/pkgs/tools/networking/kea/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { configureFlags = [ "--localstatedir=/var" "--with-botan-config=${botan}/bin/botan-config-1.10" - "--with-dhcp-pgsql=${postgresql.dev}/bin/pg_config" + "--with-dhcp-pgsql=${postgresql}/bin/pg_config" "--with-dhcp-mysql=${mysql.client.dev}/bin/mysql_config" ];