postgresql: Refactor 8.4 into generic

This commit is contained in:
William A. Kennington III 2015-05-23 18:36:00 -07:00
parent 3ede091d56
commit 1bb67e514b
2 changed files with 97 additions and 26 deletions

View File

@ -1,31 +1,10 @@
{ stdenv, fetchurl, zlib, ncurses, readline, openssl }:
{ callPackage, fetchurl, ... } @ args:
let version = "8.4.22"; in
stdenv.mkDerivation rec {
name = "postgresql-${version}";
callPackage ./generic.nix (args // rec {
version = "8.4.22";
src = fetchurl {
url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
url = "mirror://postgresql/source/v${version}/postgresql-${version}.tar.bz2";
sha256 = "09iqr9sldiq7jz1rdnywp2wv36lxy5m8kch3vpchd1s4fz75c7aw";
};
buildInputs = [ zlib ncurses readline openssl ];
LC_ALL = "C";
configureFlags = [ "--with-openssl" ];
patches = [ ./less-is-more.patch ];
passthru = { inherit readline; };
meta = with stdenv.lib; {
homepage = http://www.postgresql.org/;
description = "A powerful, open source object-relational database system";
license = licenses.postgresql;
maintainers = with maintaiers; [ ocharles ];
platforms = platforms.unix;
hydraPlatforms = platforms.linux;
};
}
})

View File

@ -0,0 +1,92 @@
{ stdenv, bison, flex
, gettext
# Optional Dependencies
, kerberos ? null, pam ? null, openldap ? null, openssl ? null, readline ? null
, libossp_uuid ? null, libxml2 ? null, libxslt ? null, zlib ? null
# Extra Arguments
, blockSizeKB ? 8, segmentSizeGB ? 1
, walBlockSizeKB ? 8, walSegmentSizeMB ? 16
# Version specific arguments
, version, src
, ...
}:
with stdenv;
let
optKerberos = shouldUsePkg kerberos;
optPam = shouldUsePkg pam;
optOpenldap = shouldUsePkg openldap;
optOpenssl = shouldUsePkg openssl;
optReadline = shouldUsePkg readline;
optLibossp_uuid = shouldUsePkg libossp_uuid;
optLibxml2 = shouldUsePkg libxml2;
optLibxslt = shouldUsePkg libxslt;
optZlib = shouldUsePkg zlib;
in
with stdenv.lib;
stdenv.mkDerivation rec {
name = "postgresql-${version}";
inherit src;
patches = [ ./less-is-more.patch ];
nativeBuildInputs = [ bison flex ];
buildInputs = [
gettext optKerberos optPam optOpenldap optOpenssl optReadline
optLibossp_uuid optLibxml2 optLibxslt optZlib
];
#LC_ALL = "C";
configureFlags = [
(mkOther "sysconfdir" "/etc")
(mkOther "localstatedir" "/var")
(mkEnable true "integer-datetimes" null)
(mkEnable true "nls" null)
(mkWith true "pgport" "5432")
(mkEnable true "shared" null)
(mkEnable true "rpath" null)
(mkEnable true "spinlocks" null)
(mkEnable false "debug" null)
(mkEnable false "profiling" null)
(mkEnable false "coverage" null)
(mkEnable false "dtrace" null)
(mkWith true "blocksize" (toString blockSizeKB))
(mkWith true "segsize" (toString segmentSizeGB))
(mkWith true "wal-blocksize" (toString walBlockSizeKB))
(mkWith true "wal-segsize" (toString walSegmentSizeMB))
(mkEnable true "autodepend" null)
(mkEnable false "cassert" null)
(mkEnable true "thread-safety" null)
(mkWith false "tcl" null) # Maybe enable some day
(mkWith false "perl" null) # Maybe enable some day
(mkWith false "python" null) # Maybe enable some day
(mkWith (optKerberos != null) "gssapi" null)
(mkWith false "krb5" null)
(mkWith (optPam != null) "pam" null)
(mkWith (optOpenldap != null) "ldap" null)
(mkWith false "bonjour" null)
(mkWith (optOpenssl != null) "openssl" null)
(mkWith (optReadline != null) "readline" null)
(mkWith false "libedit-preferred" null)
(mkWith (optLibossp_uuid != null) "ossp-uuid" null)
(mkWith (optLibxml2 != null) "libxml" null)
(mkWith (optLibxslt != null) "libxslt" null)
(mkWith (optZlib != null) "zlib" null)
];
meta = with stdenv.lib; {
homepage = http://www.postgresql.org/;
description = "A powerful, open source object-relational database system";
license = licenses.postgresql;
maintainers = with maintaiers; [ ocharles ];
platforms = platforms.unix;
hydraPlatforms = platforms.linux;
};
passthru = { inherit readline; };
}