postgresqlPackages: enable update scripts by default

This enables update scripts via buildPostgresqlExtension. Extensions
must actively opt-out, if they don't support either the default
configuration or the unstable configuration.

To make the update script work, some extensions had to be changed to
pull their code from GitHub instead. Those with PostgreSQL-style version
tags (REL_X_Y) had to be changed to make src.rev the source of truth.

(cherry picked from commit 68254e438c)
This commit is contained in:
Wolfgang Walther 2024-11-15 21:44:56 +01:00 committed by github-actions[bot]
parent 013c1ee860
commit a7ab390051
13 changed files with 114 additions and 76 deletions

View File

@ -60,12 +60,30 @@
lib,
stdenv,
postgresql,
nix-update-script,
}:
args:
let
buildPostgresqlExtension = finalAttrs: prevAttrs: {
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" ];
}
));
};
buildInputs = [ postgresql ] ++ prevAttrs.buildInputs or [ ];
installFlags = [

View File

@ -28,6 +28,7 @@ buildPostgresqlExtension rec {
"PERL=${perl}/bin/perl"
];
enableUpdateScript = false;
passthru.tests = stdenv.mkDerivation {
inherit version src;

View File

@ -36,6 +36,7 @@ buildPostgresqlExtension (finalAttrs: {
runHook postPatch
'';
enableUpdateScript = false;
passthru.tests.extension = postgresqlTestExtension {
inherit (finalAttrs) finalPackage;
sql = ''

View File

@ -2,7 +2,7 @@
buildPostgresqlExtension rec {
pname = "cstore_fdw";
version = "unstable-2022-03-08";
version = "1.7.0-unstable-2021-03-08";
nativeBuildInputs = [ protobufc ];

View File

@ -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";

View File

@ -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";

View File

@ -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 = ''

View File

@ -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 = ''

View File

@ -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";

View File

@ -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"
];

View File

@ -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=";
};

View File

@ -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 = [

View File

@ -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;