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.
This commit is contained in:
Wolfgang Walther 2024-11-15 21:44:56 +01:00
parent e3ae6ff898
commit 68254e438c
No known key found for this signature in database
GPG Key ID: B39893FA5F65CAE1
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;