mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-12 05:16:25 +03:00
postgresql: allow adding plugins ot $libdir
svn path=/nixos/trunk/; revision=21692
This commit is contained in:
parent
8b69834669
commit
680818c2cc
1 changed files with 36 additions and 1 deletions
|
@ -6,7 +6,27 @@ let
|
||||||
|
|
||||||
cfg = config.services.postgresql;
|
cfg = config.services.postgresql;
|
||||||
|
|
||||||
postgresql = pkgs.postgresql;
|
# see description of extraPlugins
|
||||||
|
postgresqlAndPlugins = pg:
|
||||||
|
if cfg.extraPlugins == [] then pg
|
||||||
|
else pkgs.runCommand "postgresql-and-plugins" {
|
||||||
|
inherit (pkgs) perl;
|
||||||
|
inherit pg;
|
||||||
|
# used by env builder:
|
||||||
|
paths = [ pg ] ++ cfg.extraPlugins;
|
||||||
|
pathsToLink = "/";
|
||||||
|
ignoreCollisions = 0;
|
||||||
|
manifest = null;
|
||||||
|
}
|
||||||
|
''
|
||||||
|
perlScript=${pkgs.buildEnvScript}
|
||||||
|
mkdir -p $out/bin
|
||||||
|
$perl/bin/perl $perlScript
|
||||||
|
rm $out/bin/{pg_config,postgres,pg_ctl}
|
||||||
|
cp --target-directory=$out/bin $pg/bin/{postgres,pg_config,pg_ctl}
|
||||||
|
'';
|
||||||
|
|
||||||
|
postgresql = postgresqlAndPlugins pkgs.postgresql;
|
||||||
|
|
||||||
startDependency = if config.services.gw6c.enable then
|
startDependency = if config.services.gw6c.enable then
|
||||||
"gw6c" else "network-interfaces";
|
"gw6c" else "network-interfaces";
|
||||||
|
@ -95,6 +115,21 @@ in
|
||||||
Whether to run PostgreSQL with -i flag to enable TCP/IP connections.
|
Whether to run PostgreSQL with -i flag to enable TCP/IP connections.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extraPlugins = mkOption {
|
||||||
|
default = [];
|
||||||
|
example = "pkgs.postgis"; # of course don't use a string here!
|
||||||
|
description = ''
|
||||||
|
When this list contains elemnts a new store path is created.
|
||||||
|
Postgresql and the elments are symlinked into it. Then pg_config,
|
||||||
|
postgres and pc_ctl are copied to make them use the new
|
||||||
|
$out/lib directory as pkglibdir. This make it possible to use postgis
|
||||||
|
without patching the .sql files which reference $libdir/postgis-1.5.
|
||||||
|
'';
|
||||||
|
# Note: the duplication of executables is about 4MB size.
|
||||||
|
# So a nicer solution was patching postgresql to allow setting the
|
||||||
|
# libdir explicitely.
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue