orioledb: init at 17.20

This commit is contained in:
Wolfgang Walther
2026-07-05 14:45:54 +02:00
parent 4160692646
commit 97a8d84551
2 changed files with 96 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
{
curl,
fetchFromGitHub,
lib,
postgresql,
postgresqlBuildExtension,
postgresqlTestExtension,
python3,
}:
postgresqlBuildExtension (finalAttrs: {
pname = "orioledb";
# SQL extension version is 1.8, official version is beta16-pre-3
version = "1.8-beta16-pre-3";
src = fetchFromGitHub {
owner = "orioledb";
repo = "orioledb";
tag = "beta16-pre-3";
hash = "sha256-nBLyc9VFETRo75HfBSLmQ13a6Vcc9rlSCp06y/SnDqQ=";
};
buildInputs = postgresql.buildInputs ++ [
curl
];
nativeBuildInputs = [
python3
];
makeFlags = [ "USE_PGXS=1" ];
meta =
# Inheriting maintainers from `postgresql` is only OK to do,
# because it's the orioledb-specific fork of PostgreSQL.
# Once these patches are upstreamed and the extension can
# run on stock PG, this meta section needs to be adjusted.
assert postgresql.pname == "orioledb-postgres";
{
inherit (postgresql.meta) description maintainers;
license = lib.licenses.OR [
lib.licenses.asl20
lib.licenses.postgresql
];
};
})
+50
View File
@@ -0,0 +1,50 @@
{
fetchFromGitHub,
lib,
postgresql_17,
}:
let
orioledb-postgres = postgresql_17.overrideAttrs (
finalAttrs: oldAttrs: {
pname = "orioledb-postgres";
version = "17.20";
src = fetchFromGitHub {
owner = "orioledb";
repo = "postgres";
tag = "patches17_20";
hash = "sha256-3dC00fFpD8fJDKed37oQvILMtA3GKBsWo1GEdUQzXzQ=";
};
# Configure extracts the patch version from the git tag. This
# is required by the extension build to verify it builds against
# the correctly patched postgresql version.
postPatch = oldAttrs.postPatch or "" + ''
substituteInPlace configure \
--replace-fail "git describe --tags --exact-match" "echo '${finalAttrs.src.tag}'"
'';
# orioledb seems to have made pg_rewind extensible somehow. For that reason,
# there is now a header file in the -dev output for it. Until reported otherwise
# we'll just strip that reference to avoid a cycle between outputs.
postInstall = oldAttrs.postInstall or "" + ''
remove-references-to -t "$dev" -t "$doc" -t "$man" "$out/bin/pg_rewind"
'';
meta = {
inherit (oldAttrs.meta)
license
pkgConfigModules
platforms
broken
;
description = "Cloud-native storage engine for PostgreSQL";
maintainers = [
lib.maintainers.wolfgangwalther
];
};
}
);
in
orioledb-postgres.withPackages (pkgs: [ (pkgs.callPackage ./extension.nix { }) ])