diff options
Diffstat (limited to 'pkgs/servers/sql/postgresql/default.nix')
-rw-r--r-- | pkgs/servers/sql/postgresql/default.nix | 76 |
1 files changed, 53 insertions, 23 deletions
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index e759a62c2eb..1f9a1ffc018 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -4,16 +4,21 @@ let # dependencies { stdenv, lib, fetchurl, makeWrapper , glibc, zlib, readline, openssl, icu, systemd, libossp_uuid - , pkgconfig, libxml2, tzdata + , pkg-config, libxml2, tzdata # This is important to obtain a version of `libpq` that does not depend on systemd. , enableSystemd ? (lib.versionAtLeast version "9.6" && !stdenv.isDarwin) + , gssSupport ? with stdenv.hostPlatform; !isWindows && !isStatic, libkrb5 + # for postgreql.pkgs , this, self, newScope, buildEnv # source specification - , version, sha256, psqlSchema + , version, sha256, psqlSchema, + + # for tests + nixosTests, thisAttr }: let atLeast = lib.versionAtLeast version; @@ -28,19 +33,24 @@ let inherit sha256; }; + hardeningEnable = lib.optionals (!stdenv.cc.isClang) [ "pie" ]; + outputs = [ "out" "lib" "doc" "man" ]; setOutputFlags = false; # $out retains configureFlags :-/ buildInputs = - [ zlib readline openssl libxml2 makeWrapper ] + [ zlib readline openssl libxml2 ] ++ lib.optionals icuEnabled [ icu ] ++ lib.optionals enableSystemd [ systemd ] + ++ lib.optionals gssSupport [ libkrb5 ] ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ]; - nativeBuildInputs = lib.optionals icuEnabled [ pkgconfig ]; + nativeBuildInputs = [ makeWrapper ] ++ lib.optionals icuEnabled [ pkg-config ]; enableParallelBuilding = !stdenv.isDarwin; + separateDebugInfo = true; + buildFlags = [ "world" ]; NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2"; @@ -54,9 +64,11 @@ let "--sysconfdir=/etc" "--libdir=$(lib)/lib" "--with-system-tzdata=${tzdata}/share/zoneinfo" + "--enable-debug" (lib.optionalString enableSystemd "--with-systemd") (if stdenv.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid") - ] ++ lib.optionals icuEnabled [ "--with-icu" ]; + ] ++ lib.optionals icuEnabled [ "--with-icu" ] + ++ lib.optionals gssSupport [ "--with-gssapi" ]; patches = [ (if atLeast "9.4" then ./patches/disable-resolve_symlinks-94.patch else ./patches/disable-resolve_symlinks.patch) @@ -64,7 +76,8 @@ let (if atLeast "9.6" then ./patches/hardcode-pgxs-path-96.patch else ./patches/hardcode-pgxs-path.patch) ./patches/specify_pkglibdir_at_runtime.patch ./patches/findstring.patch - ] ++ lib.optional stdenv.isLinux ./patches/socketdir-in-run.patch; + ] + ++ lib.optional stdenv.isLinux (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch); installTargets = [ "install-world" ]; @@ -138,13 +151,15 @@ let postgresql = this; } this.pkgs; + + tests.postgresql = nixosTests.postgresql-wal-receiver.${thisAttr}; }; meta = with lib; { homepage = "https://www.postgresql.org"; description = "A powerful, open source object-relational database system"; license = licenses.postgresql; - maintainers = with maintainers; [ ocharles thoughtpolice danbst globin ]; + maintainers = with maintainers; [ thoughtpolice danbst globin marsam ]; platforms = platforms.unix; knownVulnerabilities = optional (!atLeast "9.4") "PostgreSQL versions older than 9.4 are not maintained anymore!"; @@ -160,6 +175,7 @@ let ]; buildInputs = [ makeWrapper ]; + # We include /bin to ensure the $out/bin directory is created, which is # needed because we'll be removing the files from that directory in postBuild # below. See #22653 @@ -181,44 +197,58 @@ let in self: { - postgresql_9_5 = self.callPackage generic { - version = "9.5.23"; - psqlSchema = "9.5"; - sha256 = "0rl31jc3kg2wq6hazyd297gnmx3cibjvivllbsivii2m6dzgl573"; - this = self.postgresql_9_5; - inherit self; - }; - postgresql_9_6 = self.callPackage generic { - version = "9.6.19"; + version = "9.6.22"; psqlSchema = "9.6"; - sha256 = "1c2wnl5bbpjs1s1rpzvlnzsqlpb0p823zw7s38nhpgnxrja3myb1"; + sha256 = "0c19kzrj5ib5ygmavf5d6qvxdwrxzzz6jz1r2dl5b815208cscix"; this = self.postgresql_9_6; + thisAttr = "postgresql_9_6"; inherit self; }; postgresql_10 = self.callPackage generic { - version = "10.14"; + version = "10.17"; psqlSchema = "10.0"; # should be 10, but changing it is invasive - sha256 = "0fxj30jvwq5pqpbj97vhlxgmn2ah59a78s9jyjr7vxyqj7sdh71q"; + sha256 = "0v5jahkqm6gkq67s4bac3h7297bscn2ab6y128idi73cc1qq1wjs"; this = self.postgresql_10; + thisAttr = "postgresql_10"; inherit self; + icu = self.icu67; }; postgresql_11 = self.callPackage generic { - version = "11.9"; + version = "11.12"; psqlSchema = "11.1"; # should be 11, but changing it is invasive - sha256 = "0db6pfphc5rp12abnkvv2l9pbl7bdyf3hhiwj8ghjwh35skqlq9m"; + sha256 = "016bacpmqxc676ipzc1l8zv1jj44mjz7dv7jhqazg3ibdfqxiyc7"; this = self.postgresql_11; + thisAttr = "postgresql_11"; inherit self; }; postgresql_12 = self.callPackage generic { - version = "12.4"; + version = "12.7"; psqlSchema = "12"; - sha256 = "1k06wryy8p4s1fim9qafcjlak3f58l0wqaqnrccr9x9j5jz3zsdy"; + sha256 = "15frsmsl1n2i4p76ji0wng4lvnlzw6f01br4cs5xr3n88wgp9444"; this = self.postgresql_12; + thisAttr = "postgresql_12"; inherit self; }; + postgresql_13 = self.callPackage generic { + version = "13.3"; + psqlSchema = "13"; + sha256 = "18dliq7h2l8irffhyyhdmfwx3si515q6gds3cxdjb9n7m17lbn9w"; + this = self.postgresql_13; + thisAttr = "postgresql_13"; + inherit self; + }; + + postgresql_14 = self.callPackage generic { + version = "14beta1"; + psqlSchema = "14"; + sha256 = "0lih2iykychhvis3mxqyp087m1hld3lyi48n3qwd2js44prxv464"; + this = self.postgresql_14; + thisAttr = "postgresql_14"; + inherit self; + }; } |