postgresql: always create the $out/bin directory

This is needed because some PostgreSQL plugins don't have a bin
directory. If only these plugins are listed in cfg.extraPlugins buildEnv
will turn $out/bin into a symbolic link to ${pg}/bin. Lateron we try to
rm $out/bin/{pg_config,postgres,pg_ctl} which will then fail because
$out/bin will be read-only.
This commit is contained in:
Bas van Dijk 2018-08-02 21:20:21 +02:00 committed by Mario Rodas
parent 74bc006bbb
commit 517c52ec2e
No known key found for this signature in database
GPG key ID: 4C4BEFD7B18DC5E8
9 changed files with 4 additions and 15 deletions

View file

@ -12,10 +12,13 @@ let
else pkgs.buildEnv {
name = "postgresql-and-plugins-${(builtins.parseDrvName pg.name).version}";
paths = [ pg pg.lib ] ++ cfg.extraPlugins;
# We include /bin to ensure the $out/bin directory is created which is
# needed because we'll be removing files from that directory in postBuild
# below. See #22653
pathsToLink = [ "/" "/bin" ];
buildInputs = [ pkgs.makeWrapper ];
postBuild =
''
mkdir -p $out/bin
rm $out/bin/{pg_config,postgres,pg_ctl}
cp --target-directory=$out/bin ${pg}/bin/{postgres,pg_config,pg_ctl}
wrapProgram $out/bin/postgres --set NIX_PGLIBDIR $out/lib

View file

@ -14,7 +14,6 @@ stdenv.mkDerivation rec {
};
installPhase = ''
mkdir -p $out/bin # For buildEnv to setup proper symlinks. See #22653
mkdir -p $out/{lib,share/extension}
cp *.so $out/lib

View file

@ -13,7 +13,6 @@ stdenv.mkDerivation {
buildInputs = [ postgresql gcc ];
buildPhase = "USE_PGXS=1 make";
installPhase = ''
mkdir -p $out/bin # for buildEnv to setup proper symlinks
install -D pg_similarity.so -t $out/lib/
install -D ./{pg_similarity--unpackaged--1.0.sql,pg_similarity--1.0.sql,pg_similarity.control} -t $out/share/extension
'';

View file

@ -13,7 +13,6 @@ stdenv.mkDerivation rec {
buildPhase = ":";
installPhase = ''
mkdir -p $out/bin # current postgresql extension mechanism in nixos requires bin directory
mkdir -p $out/share/extension
cp pg*sql *.control $out/share/extension
'';

View file

@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
makeFlags = [ "HAVE_MSGPACK=1" ];
installPhase = ''
mkdir -p $out/bin
install -D pgroonga.so -t $out/lib/
install -D ./{pgroonga-*.sql,pgroonga.control} -t $out/share/extension
'';

View file

@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
};
installPhase = ''
mkdir -p $out/bin # for buildEnv, see https://github.com/NixOS/nixpkgs/issues/22653
install -D lib/*.so -t $out/lib
install -D sql/pgrouting--${version}.sql -t $out/share/extension
install -D sql/common/pgrouting.control -t $out/share/extension

View file

@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
buildPhase = "make -f Makefile.shared all";
installPhase = ''
mkdir -p $out/bin
install -D plv8*.so -t $out/lib
install -D {plls,plcoffee,plv8}{--${version}.sql,.control} -t $out/share/extension
'';

View file

@ -34,13 +34,6 @@ stdenv.mkDerivation rec {
done
'';
postInstall = ''
# work around an annoying bug, by creating $out/bin, so buildEnv doesn't freak out later
# see https://github.com/NixOS/nixpkgs/issues/22653
mkdir -p $out/bin
'';
meta = with stdenv.lib; {
description = "Scales PostgreSQL for time-series data via automatic partitioning across time and space";
homepage = https://www.timescale.com/;

View file

@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
buildInputs = [ postgresql ];
installPhase = ''
mkdir -p $out/bin
install -D tsearch_extras.so -t $out/lib/
install -D ./{tsearch_extras--1.0.sql,tsearch_extras.control} -t $out/share/extension
'';