From 8166a4ae06c0ea57f2874a0ee329d503c9376889 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Mon, 29 Jun 2026 20:27:31 +0200 Subject: [PATCH 1/3] postgresql: refactor attributes There is no need to call the `withoutJIT` passthru explicitly here - the default is without JIT anyway. This allows us to change the passthru to work differently *without* affecting every `postgresql_xx` top-level package. (cherry picked from commit a0b09dd7a13cbdede8309cda5751a5c4e3f6382b) --- pkgs/servers/sql/postgresql/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index 495f8b2625c0..6c5cf66c33ba 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -23,7 +23,7 @@ let let attrName = if jitSupport then "${version}_jit" else version; postgresql = import path { inherit self; }; - attrValue = if jitSupport then postgresql.withJIT else postgresql.withoutJIT; + attrValue = if jitSupport then postgresql.withJIT else postgresql; in self.lib.nameValuePair attrName attrValue ) versions; From 26830a86ca63a39c8cbd73c7de45f3e0f7950c9c Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Mon, 29 Jun 2026 20:30:39 +0200 Subject: [PATCH 2/3] postgresql: return wrapper from `withoutJIT` passthru Before this change, we would return: - The postgresql derivation itself from `postgresql.withoutJIT`, - A wrapper without any extensions at all, from `postgresql_jit.withoutJIT`. This changes makes it that every call to `.withJIT` and `.withoutJIT` returns a wrapper and never the base derivation. More consistent and easier to reason about. (cherry picked from commit 5cf857ed827857ee6ade47a759985fd8dbc83ad7) --- pkgs/servers/sql/postgresql/generic.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/sql/postgresql/generic.nix b/pkgs/servers/sql/postgresql/generic.nix index 5b4b355c80f4..ad3b692bbea8 100644 --- a/pkgs/servers/sql/postgresql/generic.nix +++ b/pkgs/servers/sql/postgresql/generic.nix @@ -561,7 +561,7 @@ let psqlSchema = lib.versions.major version; withJIT = if jitSupport then this.withPackages (_: [ this.jit ]) else null; - withoutJIT = this; + withoutJIT = this.withPackages (_: [ ]); pkgs = let From 0c728d45769c332c45b93af531342dca37d07c73 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Mon, 29 Jun 2026 20:25:11 +0200 Subject: [PATCH 3/3] Reapply "`postgresql`: fix overrides being forgotten on `withPackages`" This reverts commit 6681cb540ea4cb364f520b9d707e906f75934614. (cherry picked from commit 6fcd01ff0e7307df770a3d3478ab4fffef504d84) --- pkgs/servers/sql/postgresql/generic.nix | 102 ++++++++++++------------ 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/pkgs/servers/sql/postgresql/generic.nix b/pkgs/servers/sql/postgresql/generic.nix index ad3b692bbea8..d083928971c6 100644 --- a/pkgs/servers/sql/postgresql/generic.nix +++ b/pkgs/servers/sql/postgresql/generic.nix @@ -551,65 +551,65 @@ let (withBlocksize == null && withWalBlocksize == null); installCheckTarget = "check-world"; - passthru = - let - this = self.callPackage generic args; - in - { - inherit dlSuffix; + passthru = { + inherit dlSuffix; - psqlSchema = lib.versions.major version; + psqlSchema = lib.versions.major version; - withJIT = if jitSupport then this.withPackages (_: [ this.jit ]) else null; - withoutJIT = this.withPackages (_: [ ]); + withJIT = + if jitSupport then + finalAttrs.finalPackage.withPackages (_: [ finalAttrs.finalPackage.jit ]) + else + null; + withoutJIT = finalAttrs.finalPackage.withPackages (_: [ ]); - pkgs = - let - scope = { - inherit - jitSupport - pythonSupport - perlSupport - tclSupport - ; - inherit (llvmPackages) llvm; - postgresql = this; - stdenv = stdenv'; - postgresqlTestExtension = newSuper.callPackage ./postgresqlTestExtension.nix { }; - postgresqlBuildExtension = newSuper.callPackage ./postgresqlBuildExtension.nix { }; - }; - newSelf = self // scope; - newSuper = { - callPackage = newScope (scope // this.pkgs); - }; - in - import ./ext.nix newSelf newSuper; - - withPackages = postgresqlWithPackages { - inherit buildEnv lib makeBinaryWrapper; - postgresql = this; - }; - - pg_config = buildPackages.callPackage ./pg_config.nix { - inherit (finalAttrs) finalPackage; - outputs = { - out = lib.getOutput "out" finalAttrs.finalPackage; - man = lib.getOutput "man" finalAttrs.finalPackage; + pkgs = + let + scope = { + inherit + jitSupport + pythonSupport + perlSupport + tclSupport + ; + inherit (llvmPackages) llvm; + postgresql = finalAttrs.finalPackage; + stdenv = stdenv'; + postgresqlTestExtension = newSuper.callPackage ./postgresqlTestExtension.nix { }; + postgresqlBuildExtension = newSuper.callPackage ./postgresqlBuildExtension.nix { }; }; - }; + newSelf = self // scope; + newSuper = { + callPackage = newScope (scope // finalAttrs.finalPackage.pkgs); + }; + in + import ./ext.nix newSelf newSuper; - tests = { - postgresql = nixosTests.postgresql.postgresql.passthru.override finalAttrs.finalPackage; - postgresql-replication = nixosTests.postgresql.postgresql-replication.passthru.override finalAttrs.finalPackage; - postgresql-tls-client-cert = nixosTests.postgresql.postgresql-tls-client-cert.passthru.override finalAttrs.finalPackage; - postgresql-wal-receiver = nixosTests.postgresql.postgresql-wal-receiver.passthru.override finalAttrs.finalPackage; - pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - } - // lib.optionalAttrs jitSupport { - postgresql-jit = nixosTests.postgresql.postgresql-jit.passthru.override finalAttrs.finalPackage; + withPackages = postgresqlWithPackages { + inherit buildEnv lib makeBinaryWrapper; + postgresql = finalAttrs.finalPackage; + }; + + pg_config = buildPackages.callPackage ./pg_config.nix { + inherit (finalAttrs) finalPackage; + outputs = { + out = lib.getOutput "out" finalAttrs.finalPackage; + man = lib.getOutput "man" finalAttrs.finalPackage; }; }; + tests = { + postgresql = nixosTests.postgresql.postgresql.passthru.override finalAttrs.finalPackage; + postgresql-replication = nixosTests.postgresql.postgresql-replication.passthru.override finalAttrs.finalPackage; + postgresql-tls-client-cert = nixosTests.postgresql.postgresql-tls-client-cert.passthru.override finalAttrs.finalPackage; + postgresql-wal-receiver = nixosTests.postgresql.postgresql-wal-receiver.passthru.override finalAttrs.finalPackage; + pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + } + // lib.optionalAttrs jitSupport { + postgresql-jit = nixosTests.postgresql.postgresql-jit.passthru.override finalAttrs.finalPackage; + }; + }; + meta = { homepage = "https://www.postgresql.org"; description = "Powerful, open source object-relational database system";