From 7d65133a8f4b74634f350e8bb65125340248ce4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Wed, 22 Jul 2026 00:59:02 +0300 Subject: [PATCH 1/3] feat(nix): publish site profile --- nix/packages/default.nix | 6 +++++- nix/packages/site-env.nix | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 nix/packages/site-env.nix diff --git a/nix/packages/default.nix b/nix/packages/default.nix index a452a9b784..6d39bd829e 100644 --- a/nix/packages/default.nix +++ b/nix/packages/default.nix @@ -1,6 +1,10 @@ { self, inputs, ... }: { - imports = [ ./postgres.nix ]; + imports = [ + ./postgres.nix + ./site-env.nix + ]; + perSystem = { inputs', diff --git a/nix/packages/site-env.nix b/nix/packages/site-env.nix new file mode 100644 index 0000000000..eca0b76d44 --- /dev/null +++ b/nix/packages/site-env.nix @@ -0,0 +1,34 @@ +# These are profiles (package sets per pg major version) deployed to instances and kept up to date via salt. +{ + perSystem = + { + self', + pkgs, + lib, + ... + }: + let + makeSiteEnv = + version: extraPaths: + pkgs.buildEnv { + name = "site-env-${version}"; + paths = [ self'.legacyPackages."psql_${version}".exts.supautils ] ++ extraPaths; + }; + + siteEnvs = { + + "site-env-15" = makeSiteEnv "15" [ ]; + + # gatekeeper is only available for pg 17+ on linux + + "site-env-17" = makeSiteEnv "17" (lib.optional pkgs.stdenv.isLinux [ self'.packages.gatekeeper ]); + + "site-env-orioledb-17" = makeSiteEnv "orioledb-17" ( + lib.optional (pkgs.stdenv.isLinux) [ self'.packages.gatekeeper ] + ); + }; + in + { + legacyPackages = siteEnvs; + }; +} From b7e5068055bb4ea9218c35c98cb676416524d5a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Wed, 22 Jul 2026 04:29:12 +0300 Subject: [PATCH 2/3] Update site-env.nix --- nix/packages/site-env.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/packages/site-env.nix b/nix/packages/site-env.nix index eca0b76d44..6aead0e17b 100644 --- a/nix/packages/site-env.nix +++ b/nix/packages/site-env.nix @@ -1,4 +1,4 @@ -# These are profiles (package sets per pg major version) deployed to instances and kept up to date via salt. +# These are profiles (package sets per pg major version) deployed to instances and updated regularly. { perSystem = { From f95fbbba5167d7801d0ba4d1e62c1c9943a8b55c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Thu, 23 Jul 2026 05:17:00 +0300 Subject: [PATCH 3/3] refactor(nix): rename site profile outputs to site-profile-* Rename the flake outputs and their module from site-env-* to site-profile-*, matching the /nix/var/nix/profiles/site profile they populate. Also use lib.optionals (not lib.optional) for the conditional gatekeeper path: lib.optional wrapped the singleton list into a nested list that buildEnv silently drops, so pg17/orioledb profiles would have shipped without pam_jit_pg. Co-Authored-By: Claude Opus 4.8 --- nix/packages/default.nix | 2 +- nix/packages/site-env.nix | 34 --------------------------------- nix/packages/site-profile.nix | 36 +++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 35 deletions(-) delete mode 100644 nix/packages/site-env.nix create mode 100644 nix/packages/site-profile.nix diff --git a/nix/packages/default.nix b/nix/packages/default.nix index 6d39bd829e..6e4f6f704c 100644 --- a/nix/packages/default.nix +++ b/nix/packages/default.nix @@ -2,7 +2,7 @@ { imports = [ ./postgres.nix - ./site-env.nix + ./site-profile.nix ]; perSystem = diff --git a/nix/packages/site-env.nix b/nix/packages/site-env.nix deleted file mode 100644 index 6aead0e17b..0000000000 --- a/nix/packages/site-env.nix +++ /dev/null @@ -1,34 +0,0 @@ -# These are profiles (package sets per pg major version) deployed to instances and updated regularly. -{ - perSystem = - { - self', - pkgs, - lib, - ... - }: - let - makeSiteEnv = - version: extraPaths: - pkgs.buildEnv { - name = "site-env-${version}"; - paths = [ self'.legacyPackages."psql_${version}".exts.supautils ] ++ extraPaths; - }; - - siteEnvs = { - - "site-env-15" = makeSiteEnv "15" [ ]; - - # gatekeeper is only available for pg 17+ on linux - - "site-env-17" = makeSiteEnv "17" (lib.optional pkgs.stdenv.isLinux [ self'.packages.gatekeeper ]); - - "site-env-orioledb-17" = makeSiteEnv "orioledb-17" ( - lib.optional (pkgs.stdenv.isLinux) [ self'.packages.gatekeeper ] - ); - }; - in - { - legacyPackages = siteEnvs; - }; -} diff --git a/nix/packages/site-profile.nix b/nix/packages/site-profile.nix new file mode 100644 index 0000000000..6ea983049b --- /dev/null +++ b/nix/packages/site-profile.nix @@ -0,0 +1,36 @@ +# These are profiles (package sets per pg major version) deployed to instances and updated regularly. +{ + perSystem = + { + self', + pkgs, + lib, + ... + }: + let + makeSiteProfile = + version: extraPaths: + pkgs.buildEnv { + name = "site-profile-${version}"; + paths = [ self'.legacyPackages."psql_${version}".exts.supautils ] ++ extraPaths; + }; + + siteProfiles = { + + "site-profile-15" = makeSiteProfile "15" [ ]; + + # gatekeeper is only available for pg 17+ on linux + + "site-profile-17" = makeSiteProfile "17" ( + lib.optionals pkgs.stdenv.isLinux [ self'.packages.gatekeeper ] + ); + + "site-profile-orioledb-17" = makeSiteProfile "orioledb-17" ( + lib.optionals pkgs.stdenv.isLinux [ self'.packages.gatekeeper ] + ); + }; + in + { + legacyPackages = siteProfiles; + }; +}