From cd972edfe4dc28607d13616c4c3ad416fca8fa7f Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Fri, 21 Mar 2025 18:49:59 +0100 Subject: [PATCH] postgresqlJitPackages.plv8: unbreak This was originally marked as broken, because plv8 hardcoded gcc in its Makefile. This has been resolved upstream in the meantime, so it builds fine. --- nixos/tests/postgresql/postgresql.nix | 61 ++++++++----------- .../sql/postgresql/ext/plv8/package.nix | 2 - 2 files changed, 25 insertions(+), 38 deletions(-) diff --git a/nixos/tests/postgresql/postgresql.nix b/nixos/tests/postgresql/postgresql.nix index 7741d14808eb..cc7205a777c0 100644 --- a/nixos/tests/postgresql/postgresql.nix +++ b/nixos/tests/postgresql/postgresql.nix @@ -15,41 +15,33 @@ let postgresql-clauses = makeEnsureTestFor package; }; - test-sql = - enablePLv8Test: - pkgs.writeText "postgresql-test" ( - '' - CREATE EXTENSION pgcrypto; -- just to check if lib loading works - CREATE TABLE sth ( - id int - ); - INSERT INTO sth (id) VALUES (1); - INSERT INTO sth (id) VALUES (1); - INSERT INTO sth (id) VALUES (1); - INSERT INTO sth (id) VALUES (1); - INSERT INTO sth (id) VALUES (1); - CREATE TABLE xmltest ( doc xml ); - INSERT INTO xmltest (doc) VALUES ('ok'); -- check if libxml2 enabled - '' - + lib.optionalString enablePLv8Test '' - -- check if hardening gets relaxed - CREATE EXTENSION plv8; - -- try to trigger the V8 JIT, which requires MemoryDenyWriteExecute - DO $$ - let xs = []; - for (let i = 0, n = 400000; i < n; i++) { - xs.push(Math.round(Math.random() * n)) - } - console.log(xs.reduce((acc, x) => acc + x, 0)); - $$ LANGUAGE plv8; - '' + test-sql = pkgs.writeText "postgresql-test" ('' + CREATE EXTENSION pgcrypto; -- just to check if lib loading works + CREATE TABLE sth ( + id int ); + INSERT INTO sth (id) VALUES (1); + INSERT INTO sth (id) VALUES (1); + INSERT INTO sth (id) VALUES (1); + INSERT INTO sth (id) VALUES (1); + INSERT INTO sth (id) VALUES (1); + CREATE TABLE xmltest ( doc xml ); + INSERT INTO xmltest (doc) VALUES ('ok'); -- check if libxml2 enabled + + -- check if hardening gets relaxed + CREATE EXTENSION plv8; + -- try to trigger the V8 JIT, which requires MemoryDenyWriteExecute + DO $$ + let xs = []; + for (let i = 0, n = 400000; i < n; i++) { + xs.push(Math.round(Math.random() * n)) + } + console.log(xs.reduce((acc, x) => acc + x, 0)); + $$ LANGUAGE plv8; + ''); makeTestForWithBackupAll = package: backupAll: - let - enablePLv8Check = !package.pkgs.plv8.meta.broken; - in makeTest { name = "postgresql${lib.optionalString backupAll "-backup-all"}-${package.name}"; meta = with lib.maintainers; { @@ -63,11 +55,9 @@ let inherit package; enable = true; enableJIT = lib.hasInfix "-jit-" package.name; - # plv8 doesn't support postgresql with JIT, so we only run the test - # for the non-jit variant. # TODO(@Ma27) split this off into its own VM test and move a few other # extension tests to use postgresqlTestExtension. - extensions = lib.mkIf enablePLv8Check (ps: with ps; [ plv8 ]); + extensions = ps: with ps; [ plv8 ]; }; services.postgresqlBackup = { @@ -94,7 +84,7 @@ let with subtest("Postgresql is available just after unit start"): machine.succeed( - "cat ${test-sql enablePLv8Check} | sudo -u postgres psql" + "cat ${test-sql} | sudo -u postgres psql" ) with subtest("Postgresql survives restart (bug #1735)"): @@ -184,7 +174,6 @@ let services.postgresql = { inherit package; enable = true; - enableJIT = lib.hasInfix "-jit-" package.name; ensureUsers = [ { name = "all-clauses"; diff --git a/pkgs/servers/sql/postgresql/ext/plv8/package.nix b/pkgs/servers/sql/postgresql/ext/plv8/package.nix index be8935f42357..7a0327061263 100644 --- a/pkgs/servers/sql/postgresql/ext/plv8/package.nix +++ b/pkgs/servers/sql/postgresql/ext/plv8/package.nix @@ -1,6 +1,5 @@ { fetchFromGitHub, - jitSupport, lib, nodejs_20, perl, @@ -140,6 +139,5 @@ postgresqlBuildExtension (finalAttrs: { "aarch64-linux" ]; license = lib.licenses.postgresql; - broken = jitSupport; }; })