This repository has been archived by the owner on Apr 29, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: pg 15, pg 16, cargo pgrx 0.11.2 * fix: versions * fix: version correction * fix: formatting of scripts * chore: cleanup comment * fix: version correction * fix: just appeared to be a typo in the shebang that prevented nix app from running * feat: rm citus and work toward completing 15-16 updates * fix: reference the Cargo.lock that has the data we need to do this build * fix: update CI to build correct versions
- Loading branch information
Showing
20 changed files
with
294 additions
and
121 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,3 +12,7 @@ result* | |
# shell history | ||
.history | ||
container.sh | ||
sbom.spdx.json | ||
sbom.cdx.json | ||
sbom.csv | ||
graph*.png |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
diff --git a/Makefile b/Makefile | ||
index 38879cc..6e78eeb 100644 | ||
--- a/Makefile | ||
+++ b/Makefile | ||
@@ -20,6 +20,7 @@ OBJS = $(SRCS:.cc=.o) | ||
MODULE_big = plv8-$(PLV8_VERSION) | ||
EXTENSION = plv8 | ||
PLV8_DATA = plv8.control plv8--$(PLV8_VERSION).sql $(wildcard upgrade/*.sql) | ||
+USE_SYSTEM_V8 = 0 | ||
|
||
|
||
# Platform detection | ||
@@ -41,6 +42,7 @@ PGXS := $(shell $(PG_CONFIG) --pgxs) | ||
PG_VERSION_NUM := $(shell cat `$(PG_CONFIG) --includedir-server`/pg_config*.h \ | ||
| perl -ne 'print $$1 and exit if /PG_VERSION_NUM\s+(\d+)/') | ||
|
||
+ifeq ($(USE_SYSTEM_V8),0) | ||
AUTOV8_DIR = build/v8 | ||
AUTOV8_OUT = build/v8/out.gn/obj | ||
AUTOV8_STATIC_LIBS = -lv8_libplatform -lv8_libbase | ||
@@ -66,6 +68,7 @@ v8: | ||
make -f Makefiles/Makefile.macos v8 | ||
endif | ||
endif | ||
+endif | ||
|
||
# enable direct jsonb conversion by default | ||
CCFLAGS += -DJSONB_DIRECT_CONVERSION | ||
@@ -83,6 +86,7 @@ ifdef BIGINT_GRACEFUL | ||
endif | ||
|
||
|
||
+ifeq ($(USE_SYSTEM_V8),0) | ||
# We're gonna build static link. Rip it out after include Makefile | ||
SHLIB_LINK := $(filter-out -lv8, $(SHLIB_LINK)) | ||
|
||
@@ -101,6 +105,7 @@ else | ||
SHLIB_LINK += -lrt -std=c++14 | ||
endif | ||
endif | ||
+endif | ||
|
||
DATA = $(PLV8_DATA) | ||
ifndef DISABLE_DIALECT | ||
-- | ||
2.37.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
{ stdenv | ||
, lib | ||
, fetchFromGitHub | ||
, v8 | ||
, perl | ||
, postgresql | ||
# For test | ||
, runCommand | ||
, coreutils | ||
, gnugrep | ||
}: | ||
|
||
stdenv.mkDerivation (finalAttrs: { | ||
pname = "plv8"; | ||
# plv8 latest is https://github.com/plv8/plv8/releases/tag/v3.2.2 | ||
# FIXME we need to increment this build toward 3.2.2 | ||
# 3.1.7 is the highest version that can be built with pg 16 | ||
version = "3.1.7"; | ||
|
||
src = fetchFromGitHub { | ||
owner = "plv8"; | ||
repo = "plv8"; | ||
rev = "v${finalAttrs.version}"; | ||
hash = "sha256-kTID3Zo3YwNZUno8kdQE7ihtiddsIAZNuBN91IKgaC4="; | ||
}; | ||
|
||
patches = [ | ||
# Allow building with system v8. | ||
# https://github.com/plv8/plv8/pull/505 (rejected) | ||
./0001-build-Allow-using-V8-from-system.patch | ||
]; | ||
|
||
nativeBuildInputs = [ | ||
perl | ||
]; | ||
|
||
buildInputs = [ | ||
v8 | ||
postgresql | ||
]; | ||
|
||
buildFlags = [ "all" ]; | ||
|
||
makeFlags = [ | ||
# Nixpkgs build a v8 monolith instead of separate v8_libplatform. | ||
"USE_SYSTEM_V8=1" | ||
"SHLIB_LINK=-lv8" | ||
"V8_OUTDIR=${v8}/lib" | ||
]; | ||
|
||
installFlags = [ | ||
# PGXS only supports installing to postgresql prefix so we need to redirect this | ||
"DESTDIR=${placeholder "out"}" | ||
]; | ||
|
||
# No configure script. | ||
dontConfigure = true; | ||
|
||
postPatch = '' | ||
patchShebangs ./generate_upgrade.sh | ||
# https://github.com/plv8/plv8/pull/506 | ||
substituteInPlace generate_upgrade.sh \ | ||
--replace " 2.3.10 " " 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.15 " | ||
''; | ||
|
||
postInstall = '' | ||
# Move the redirected to proper directory. | ||
# There appear to be no references to the install directories | ||
# so changing them does not cause issues. | ||
mv "$out/nix/store"/*/* "$out" | ||
rmdir "$out/nix/store"/* "$out/nix/store" "$out/nix" | ||
''; | ||
|
||
passthru = { | ||
tests = | ||
let | ||
postgresqlWithSelf = postgresql.withPackages (_: [ | ||
finalAttrs.finalPackage | ||
]); | ||
in { | ||
smoke = runCommand "plv8-smoke-test" {} '' | ||
export PATH=${lib.makeBinPath [ | ||
postgresqlWithSelf | ||
coreutils | ||
gnugrep | ||
]} | ||
db="$PWD/testdb" | ||
initdb "$db" | ||
postgres -k "$db" -D "$db" & | ||
pid="$!" | ||
for i in $(seq 1 100); do | ||
if psql -h "$db" -d postgres -c "" 2>/dev/null; then | ||
break | ||
elif ! kill -0 "$pid"; then | ||
exit 1 | ||
else | ||
sleep 0.1 | ||
fi | ||
done | ||
psql -h "$db" -d postgres -c 'CREATE EXTENSION plv8; DO $$ plv8.elog(NOTICE, plv8.version); $$ LANGUAGE plv8;' 2> "$out" | ||
grep -q "${finalAttrs.version}" "$out" | ||
kill -0 "$pid" | ||
''; | ||
|
||
regression = stdenv.mkDerivation { | ||
name = "plv8-regression"; | ||
inherit (finalAttrs) src patches nativeBuildInputs buildInputs dontConfigure; | ||
|
||
buildPhase = '' | ||
runHook preBuild | ||
# The regression tests need to be run in the order specified in the Makefile. | ||
echo -e "include Makefile\nprint_regress_files:\n\t@echo \$(REGRESS)" > Makefile.regress | ||
REGRESS_TESTS=$(make -f Makefile.regress print_regress_files) | ||
${postgresql}/lib/pgxs/src/test/regress/pg_regress \ | ||
--bindir='${postgresqlWithSelf}/bin' \ | ||
--temp-instance=regress-instance \ | ||
--dbname=contrib_regression \ | ||
$REGRESS_TESTS | ||
runHook postBuild | ||
''; | ||
|
||
installPhase = '' | ||
runHook preInstall | ||
touch "$out" | ||
runHook postInstall | ||
''; | ||
}; | ||
}; | ||
}; | ||
|
||
meta = with lib; { | ||
description = "V8 Engine Javascript Procedural Language add-on for PostgreSQL"; | ||
homepage = "https://plv8.github.io/"; | ||
maintainers = with maintainers; [ marsam ]; | ||
platforms = [ "x86_64-linux" "aarch64-linux" ]; | ||
license = licenses.postgresql; | ||
broken = postgresql.jitSupport; | ||
}; | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.