diff --git a/pkgs/servers/sql/postgresql/buildPostgresqlExtension.nix b/pkgs/servers/sql/postgresql/buildPostgresqlExtension.nix index 87847c368eba..03797b610827 100644 --- a/pkgs/servers/sql/postgresql/buildPostgresqlExtension.nix +++ b/pkgs/servers/sql/postgresql/buildPostgresqlExtension.nix @@ -60,70 +60,88 @@ lib, stdenv, postgresql, + nix-update-script, }: args: let - buildPostgresqlExtension = finalAttrs: prevAttrs: { - buildInputs = [ postgresql ] ++ prevAttrs.buildInputs or [ ]; + buildPostgresqlExtension = + finalAttrs: + { + enableUpdateScript ? true, + ... + }@prevAttrs: + { + passthru = + prevAttrs.passthru or { } + // lib.optionalAttrs enableUpdateScript { + updateScript = + prevAttrs.passthru.updateScript or (nix-update-script ( + lib.optionalAttrs (lib.hasInfix "unstable" prevAttrs.version) { + extraArgs = [ "--version=branch" ]; + } + )); + }; - installFlags = [ - "DESTDIR=${placeholder "out"}" - ] ++ prevAttrs.installFlags or [ ]; + buildInputs = [ postgresql ] ++ prevAttrs.buildInputs or [ ]; - postInstall = - '' - # DESTDIR + pg_config install the files into - # /nix/store//nix/store//... - # We'll now remove the /nix/store/ part: - if [[ -d "$out${postgresql}" ]]; then - cp -alt "$out" "$out${postgresql}"/* - rm -r "$out${postgresql}" - fi + installFlags = [ + "DESTDIR=${placeholder "out"}" + ] ++ prevAttrs.installFlags or [ ]; - if [[ -d "$out${postgresql.dev}" ]]; then - mkdir -p "''${dev:-$out}" - cp -alt "''${dev:-$out}" "$out${postgresql.dev}"/* - rm -r "$out${postgresql.dev}" - fi + postInstall = + '' + # DESTDIR + pg_config install the files into + # /nix/store//nix/store//... + # We'll now remove the /nix/store/ part: + if [[ -d "$out${postgresql}" ]]; then + cp -alt "$out" "$out${postgresql}"/* + rm -r "$out${postgresql}" + fi - if [[ -d "$out${postgresql.lib}" ]]; then - mkdir -p "''${lib:-$out}" - cp -alt "''${lib:-$out}" "$out${postgresql.lib}"/* - rm -r "$out${postgresql.lib}" - fi + if [[ -d "$out${postgresql.dev}" ]]; then + mkdir -p "''${dev:-$out}" + cp -alt "''${dev:-$out}" "$out${postgresql.dev}"/* + rm -r "$out${postgresql.dev}" + fi - if [[ -d "$out${postgresql.doc}" ]]; then - mkdir -p "''${doc:-$out}" - cp -alt "''${doc:-$out}" "$out${postgresql.doc}"/* - rm -r "$out${postgresql.doc}" - fi + if [[ -d "$out${postgresql.lib}" ]]; then + mkdir -p "''${lib:-$out}" + cp -alt "''${lib:-$out}" "$out${postgresql.lib}"/* + rm -r "$out${postgresql.lib}" + fi - if [[ -d "$out${postgresql.man}" ]]; then - mkdir -p "''${man:-$out}" - cp -alt "''${man:-$out}" "$out${postgresql.man}"/* - rm -r "$out${postgresql.man}" - fi + if [[ -d "$out${postgresql.doc}" ]]; then + mkdir -p "''${doc:-$out}" + cp -alt "''${doc:-$out}" "$out${postgresql.doc}"/* + rm -r "$out${postgresql.doc}" + fi - # In some cases (postgis) parts of the install script - # actually work "OK", before we add DESTDIR, so some - # files end up in - # /nix/store//nix/store//... - if [[ -d "$out$out" ]]; then - cp -alt "$out" "$out$out"/* - rm -r "$out$out" - fi + if [[ -d "$out${postgresql.man}" ]]; then + mkdir -p "''${man:-$out}" + cp -alt "''${man:-$out}" "$out${postgresql.man}"/* + rm -r "$out${postgresql.man}" + fi - if [[ -d "$out/nix/store" ]]; then - if ! rmdir "$out/nix/store" "$out/nix"; then - find "$out/nix" - nixErrorLog 'Found left-overs in $out/nix/store, make sure to move them into $out properly.' - exit 1 - fi - fi - '' - + prevAttrs.postInstall or ""; - }; + # In some cases (postgis) parts of the install script + # actually work "OK", before we add DESTDIR, so some + # files end up in + # /nix/store//nix/store//... + if [[ -d "$out$out" ]]; then + cp -alt "$out" "$out$out"/* + rm -r "$out$out" + fi + + if [[ -d "$out/nix/store" ]]; then + if ! rmdir "$out/nix/store" "$out/nix"; then + find "$out/nix" + nixErrorLog 'Found left-overs in $out/nix/store, make sure to move them into $out properly.' + exit 1 + fi + fi + '' + + prevAttrs.postInstall or ""; + }; in stdenv.mkDerivation (lib.extends buildPostgresqlExtension (lib.toFunction args)) diff --git a/pkgs/servers/sql/postgresql/ext/age.nix b/pkgs/servers/sql/postgresql/ext/age.nix index a9f74bc76ec1..4811ec01ccb5 100644 --- a/pkgs/servers/sql/postgresql/ext/age.nix +++ b/pkgs/servers/sql/postgresql/ext/age.nix @@ -28,6 +28,7 @@ buildPostgresqlExtension rec { "PERL=${perl}/bin/perl" ]; + enableUpdateScript = false; passthru.tests = stdenv.mkDerivation { inherit version src; diff --git a/pkgs/servers/sql/postgresql/ext/apache_datasketches.nix b/pkgs/servers/sql/postgresql/ext/apache_datasketches.nix index 4c8d723354d2..46b5fac3852b 100644 --- a/pkgs/servers/sql/postgresql/ext/apache_datasketches.nix +++ b/pkgs/servers/sql/postgresql/ext/apache_datasketches.nix @@ -36,6 +36,7 @@ buildPostgresqlExtension (finalAttrs: { runHook postPatch ''; + enableUpdateScript = false; passthru.tests.extension = postgresqlTestExtension { inherit (finalAttrs) finalPackage; sql = '' diff --git a/pkgs/servers/sql/postgresql/ext/cstore_fdw.nix b/pkgs/servers/sql/postgresql/ext/cstore_fdw.nix index 2236f815a823..4b5499bfe9fa 100644 --- a/pkgs/servers/sql/postgresql/ext/cstore_fdw.nix +++ b/pkgs/servers/sql/postgresql/ext/cstore_fdw.nix @@ -2,7 +2,7 @@ buildPostgresqlExtension rec { pname = "cstore_fdw"; - version = "unstable-2022-03-08"; + version = "1.7.0-unstable-2021-03-08"; nativeBuildInputs = [ protobufc ]; diff --git a/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix b/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix index eb84ec54c028..7fe4f22254f3 100644 --- a/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix +++ b/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix @@ -2,7 +2,7 @@ buildPostgresqlExtension rec { pname = "jsonb_deep_sum"; - version = "unstable-2021-12-24"; + version = "0-unstable-2021-12-24"; src = fetchFromGitHub { owner = "furstenheim"; diff --git a/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix b/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix index db5c360196e2..5adf5486113f 100644 --- a/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix +++ b/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix @@ -44,6 +44,8 @@ buildPostgresqlExtension { substituteInPlace Makefile --replace "LDFLAGS+=-Wl,--build-id" "" ''; + enableUpdateScript = false; + meta = with lib; { description = "Extension to tweak PostgreSQL execution plans using so-called 'hints' in SQL comments"; homepage = "https://github.com/ossc-db/pg_hint_plan"; diff --git a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix index 4ec5bd83fc47..19441807b515 100644 --- a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix +++ b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix @@ -1,8 +1,8 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, postgresql, unstableGitUpdater, buildPostgresqlExtension }: +{ stdenv, lib, fetchFromGitHub, fetchpatch, postgresql, buildPostgresqlExtension }: buildPostgresqlExtension { pname = "pg_similarity"; - version = "1.0-unstable-2021-01-12"; + version = "pg_similarity_1_0-unstable-2021-01-12"; src = fetchFromGitHub { owner = "eulerto"; @@ -23,8 +23,6 @@ buildPostgresqlExtension { makeFlags = [ "USE_PGXS=1" ]; - passthru.updateScript = unstableGitUpdater {}; - meta = { description = "Extension to support similarity queries on PostgreSQL"; longDescription = '' diff --git a/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix b/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix index ba2f4443c557..fa4225f3389d 100644 --- a/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix +++ b/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix @@ -1,16 +1,17 @@ -{ lib, stdenv, fetchFromGitHub, postgresql, postgresqlTestExtension, buildPostgresqlExtension }: +{ lib, stdenv, fetchFromGitHub, postgresql, postgresqlTestExtension, buildPostgresqlExtension, nix-update-script }: buildPostgresqlExtension (finalAttrs: { pname = "pg_squeeze"; - version = "1.7.0"; + version = "${builtins.replaceStrings ["_"] ["."] (lib.strings.removePrefix "REL" finalAttrs.src.rev)}"; src = fetchFromGitHub { owner = "cybertec-postgresql"; repo = "pg_squeeze"; - rev = "REL${builtins.replaceStrings ["."] ["_"] finalAttrs.version}"; + rev = "REL1_7_0"; hash = "sha256-Kh1wSOvV5Rd1CG/na3yzbWzvaR8SJ6wmTZOnM+lbgik="; }; + passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex=REL(.*)" ]; }; passthru.tests.extension = postgresqlTestExtension { inherit (finalAttrs) finalPackage; postgresqlExtraSettings = '' diff --git a/pkgs/servers/sql/postgresql/ext/pgaudit.nix b/pkgs/servers/sql/postgresql/ext/pgaudit.nix index d50da6c7e282..91c081eaf955 100644 --- a/pkgs/servers/sql/postgresql/ext/pgaudit.nix +++ b/pkgs/servers/sql/postgresql/ext/pgaudit.nix @@ -43,6 +43,8 @@ buildPostgresqlExtension { makeFlags = [ "USE_PGXS=1" ]; + enableUpdateScript = false; + meta = with lib; { description = "Open Source PostgreSQL Audit Logging"; homepage = "https://github.com/pgaudit/pgaudit"; diff --git a/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/pkgs/servers/sql/postgresql/ext/pgroonga.nix index 3d855f5e1977..6cd900be5f16 100644 --- a/pkgs/servers/sql/postgresql/ext/pgroonga.nix +++ b/pkgs/servers/sql/postgresql/ext/pgroonga.nix @@ -1,18 +1,21 @@ -{ lib, stdenv, fetchurl, pkg-config, postgresql, msgpack-c, groonga, buildPostgresqlExtension }: +{ lib, stdenv, fetchFromGitHub, pkg-config, postgresql, msgpack-c, groonga, buildPostgresqlExtension, xxHash }: buildPostgresqlExtension rec { pname = "pgroonga"; version = "3.2.3"; - src = fetchurl { - url = "https://packages.groonga.org/source/${pname}/${pname}-${version}.tar.gz"; - hash = "sha256-k9+DgiLzU2cA3jvw3pMF7/FmDGxsCYtAOaUtf2LMTnw="; + src = fetchFromGitHub { + owner = "pgroonga"; + repo = "pgroonga"; + rev = "${version}"; + hash = "sha256-bDCDfb78r/HUa7LuZZrwrSZEFcevA1pwSy8/tcCh/oE="; }; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ msgpack-c groonga ]; + buildInputs = [ msgpack-c groonga xxHash ]; makeFlags = [ + "HAVE_XXHASH=1" "HAVE_MSGPACK=1" "MSGPACK_PACKAGE_NAME=msgpack-c" ]; diff --git a/pkgs/servers/sql/postgresql/ext/plr.nix b/pkgs/servers/sql/postgresql/ext/plr.nix index 1c2266e7cfb6..2aece8cee9d1 100644 --- a/pkgs/servers/sql/postgresql/ext/plr.nix +++ b/pkgs/servers/sql/postgresql/ext/plr.nix @@ -2,12 +2,12 @@ buildPostgresqlExtension rec { pname = "plr"; - version = "8.4.7"; + version = "${builtins.replaceStrings ["_"] ["."] (lib.strings.removePrefix "REL" src.rev)}"; src = fetchFromGitHub { owner = "postgres-plr"; repo = "plr"; - rev = "REL${builtins.replaceStrings ["."] ["_"] version}"; + rev = "REL8_4_7"; sha256 = "sha256-PdvFEmtKfLT/xfaf6obomPR5hKC9F+wqpfi1heBphRk="; }; diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix index 68aefc1e605d..cca196dab006 100644 --- a/pkgs/servers/sql/postgresql/ext/postgis.nix +++ b/pkgs/servers/sql/postgresql/ext/postgis.nix @@ -1,5 +1,5 @@ { - fetchurl, + fetchFromGitHub, lib, stdenv, perl, @@ -22,6 +22,10 @@ jitSupport, llvm, buildPostgresqlExtension, + autoconf, + automake, + libtool, + which, }: let @@ -36,9 +40,11 @@ buildPostgresqlExtension (finalAttrs: { "doc" ]; - src = fetchurl { - url = "https://download.osgeo.org/postgis/source/postgis-${finalAttrs.version}.tar.gz"; - hash = "sha256-ymmKIswrKzRnrE4GO0OihBPzAE3dUFvczddMVqZH9RA="; + src = fetchFromGitHub { + owner = "postgis"; + repo = "postgis"; + rev = "${finalAttrs.version}"; + hash = "sha256-wh7Lav2vnKzGWuSvvMFvAaGV7ynD+KgPsFUgujdtzlA="; }; buildInputs = [ @@ -51,8 +57,12 @@ buildPostgresqlExtension (finalAttrs: { pcre2.dev ] ++ lib.optional stdenv.hostPlatform.isDarwin libiconv; nativeBuildInputs = [ + autoconf + automake + libtool perl pkg-config + which ] ++ lib.optional jitSupport llvm; dontDisableStatic = true; @@ -70,7 +80,7 @@ buildPostgresqlExtension (finalAttrs: { setOutputFlags = false; preConfigure = '' - sed -i 's@/usr/bin/file@${file}/bin/file@' configure + ./autogen.sh ''; configureFlags = [ diff --git a/pkgs/servers/sql/postgresql/ext/wal2json.nix b/pkgs/servers/sql/postgresql/ext/wal2json.nix index adc57f333fcf..9562c738eb1f 100644 --- a/pkgs/servers/sql/postgresql/ext/wal2json.nix +++ b/pkgs/servers/sql/postgresql/ext/wal2json.nix @@ -8,12 +8,14 @@ buildPostgresqlExtension rec { pname = "wal2json"; - version = "2.6"; + version = "${builtins.replaceStrings [ "_" ] [ "." ] ( + lib.strings.removePrefix "wal2json_" src.rev + )}"; src = fetchFromGitHub { owner = "eulerto"; repo = "wal2json"; - rev = "wal2json_${builtins.replaceStrings [ "." ] [ "_" ] version}"; + rev = "wal2json_2_6"; sha256 = "sha256-+QoACPCKiFfuT2lJfSUmgfzC5MXf75KpSoc2PzPxKyM="; }; @@ -24,7 +26,7 @@ buildPostgresqlExtension rec { meta = with lib; { description = "PostgreSQL JSON output plugin for changeset extraction"; homepage = "https://github.com/eulerto/wal2json"; - changelog = "https://github.com/eulerto/wal2json/releases/tag/wal2json_${version}"; + changelog = "https://github.com/eulerto/wal2json/releases/tag/${src.rev}"; maintainers = with maintainers; [ euank ]; platforms = postgresql.meta.platforms; license = licenses.bsd3;