postgresql_11: remove

As described in the release lifecycle docs from postgresql[1], v11 will
stop receiving fixes as of Nov 9 2023. This means it's EOL throughout
the entire lifetime of 23.11, so let's drop it now.

A lot of examples are also referencing postgresql_11. Where it's
sensible, use postgresql_15 as example now to avoid confusion.

This is also handy because the LLVM 16 fix for postgresql is not
available for postgresql 11 ;-)

[1] https://www.postgresql.org/support/versioning/

+27 -40
+2
nixos/doc/manual/release-notes/rl-2311.section.md
··· 488 489 If you use this feature, updates to CoreDNS may require updating `vendorHash` by following these steps again. 490 491 - `ffmpeg` default upgraded from `ffmpeg_5` to `ffmpeg_6`. 492 493 - `fusuma` now enables the following plugins: [appmatcher](https://github.com/iberianpig/fusuma-plugin-appmatcher), [keypress](https://github.com/iberianpig/fusuma-plugin-keypress), [sendkey](https://github.com/iberianpig/fusuma-plugin-sendkey), [tap](https://github.com/iberianpig/fusuma-plugin-tap) and [wmctrl](https://github.com/iberianpig/fusuma-plugin-wmctrl).
··· 488 489 If you use this feature, updates to CoreDNS may require updating `vendorHash` by following these steps again. 490 491 + - `postgresql_11` has been removed since it'll stop receiving fixes on November 9 2023. 492 + 493 - `ffmpeg` default upgraded from `ffmpeg_5` to `ffmpeg_6`. 494 495 - `fusuma` now enables the following plugins: [appmatcher](https://github.com/iberianpig/fusuma-plugin-appmatcher), [keypress](https://github.com/iberianpig/fusuma-plugin-keypress), [sendkey](https://github.com/iberianpig/fusuma-plugin-sendkey), [tap](https://github.com/iberianpig/fusuma-plugin-tap) and [wmctrl](https://github.com/iberianpig/fusuma-plugin-wmctrl).
+2 -2
nixos/modules/services/backup/postgresql-wal-receiver.nix
··· 7 options = { 8 postgresqlPackage = mkOption { 9 type = types.package; 10 - example = literalExpression "pkgs.postgresql_11"; 11 description = lib.mdDoc '' 12 PostgreSQL package to use. 13 ''; ··· 124 example = literalExpression '' 125 { 126 main = { 127 - postgresqlPackage = pkgs.postgresql_11; 128 directory = /mnt/pg_wal/main/; 129 slot = "main_wal_receiver"; 130 connection = "postgresql://user@somehost";
··· 7 options = { 8 postgresqlPackage = mkOption { 9 type = types.package; 10 + example = literalExpression "pkgs.postgresql_15"; 11 description = lib.mdDoc '' 12 PostgreSQL package to use. 13 ''; ··· 124 example = literalExpression '' 125 { 126 main = { 127 + postgresqlPackage = pkgs.postgresql_15; 128 directory = /mnt/pg_wal/main/; 129 slot = "main_wal_receiver"; 130 connection = "postgresql://user@somehost";
+16 -16
nixos/modules/services/databases/postgresql.md
··· 17 To enable PostgreSQL, add the following to your {file}`configuration.nix`: 18 ``` 19 services.postgresql.enable = true; 20 - services.postgresql.package = pkgs.postgresql_11; 21 ``` 22 - Note that you are required to specify the desired version of PostgreSQL (e.g. `pkgs.postgresql_11`). Since upgrading your PostgreSQL version requires a database dump and reload (see below), NixOS cannot provide a default value for [](#opt-services.postgresql.package) such as the most recent release of PostgreSQL. 23 24 <!-- 25 After running {command}`nixos-rebuild`, you can verify ··· 119 120 ## Plugins {#module-services-postgres-plugins} 121 122 - Plugins collection for each PostgreSQL version can be accessed with `.pkgs`. For example, for `pkgs.postgresql_11` package, its plugin collection is accessed by `pkgs.postgresql_11.pkgs`: 123 ```ShellSession 124 $ nix repl '<nixpkgs>' 125 126 Loading '<nixpkgs>'... 127 Added 10574 variables. 128 129 - nix-repl> postgresql_11.pkgs.<TAB><TAB> 130 - postgresql_11.pkgs.cstore_fdw postgresql_11.pkgs.pg_repack 131 - postgresql_11.pkgs.pg_auto_failover postgresql_11.pkgs.pg_safeupdate 132 - postgresql_11.pkgs.pg_bigm postgresql_11.pkgs.pg_similarity 133 - postgresql_11.pkgs.pg_cron postgresql_11.pkgs.pg_topn 134 - postgresql_11.pkgs.pg_hll postgresql_11.pkgs.pgjwt 135 - postgresql_11.pkgs.pg_partman postgresql_11.pkgs.pgroonga 136 ... 137 ``` 138 139 To add plugins via NixOS configuration, set `services.postgresql.extraPlugins`: 140 ``` 141 - services.postgresql.package = pkgs.postgresql_11; 142 - services.postgresql.extraPlugins = with pkgs.postgresql_11.pkgs; [ 143 pg_repack 144 postgis 145 ]; ··· 148 You can build custom PostgreSQL-with-plugins (to be used outside of NixOS) using function `.withPackages`. For example, creating a custom PostgreSQL package in an overlay can look like: 149 ``` 150 self: super: { 151 - postgresql_custom = self.postgresql_11.withPackages (ps: [ 152 ps.pg_repack 153 ps.postgis 154 ]); ··· 158 Here's a recipe on how to override a particular plugin through an overlay: 159 ``` 160 self: super: { 161 - postgresql_11 = super.postgresql_11.override { this = self.postgresql_11; } // { 162 - pkgs = super.postgresql_11.pkgs // { 163 - pg_repack = super.postgresql_11.pkgs.pg_repack.overrideAttrs (_: { 164 name = "pg_repack-v20181024"; 165 src = self.fetchzip { 166 url = "https://github.com/reorg/pg_repack/archive/923fa2f3c709a506e111cc963034bf2fd127aa00.tar.gz";
··· 17 To enable PostgreSQL, add the following to your {file}`configuration.nix`: 18 ``` 19 services.postgresql.enable = true; 20 + services.postgresql.package = pkgs.postgresql_15; 21 ``` 22 + Note that you are required to specify the desired version of PostgreSQL (e.g. `pkgs.postgresql_15`). Since upgrading your PostgreSQL version requires a database dump and reload (see below), NixOS cannot provide a default value for [](#opt-services.postgresql.package) such as the most recent release of PostgreSQL. 23 24 <!-- 25 After running {command}`nixos-rebuild`, you can verify ··· 119 120 ## Plugins {#module-services-postgres-plugins} 121 122 + Plugins collection for each PostgreSQL version can be accessed with `.pkgs`. For example, for `pkgs.postgresql_15` package, its plugin collection is accessed by `pkgs.postgresql_15.pkgs`: 123 ```ShellSession 124 $ nix repl '<nixpkgs>' 125 126 Loading '<nixpkgs>'... 127 Added 10574 variables. 128 129 + nix-repl> postgresql_15.pkgs.<TAB><TAB> 130 + postgresql_15.pkgs.cstore_fdw postgresql_15.pkgs.pg_repack 131 + postgresql_15.pkgs.pg_auto_failover postgresql_15.pkgs.pg_safeupdate 132 + postgresql_15.pkgs.pg_bigm postgresql_15.pkgs.pg_similarity 133 + postgresql_15.pkgs.pg_cron postgresql_15.pkgs.pg_topn 134 + postgresql_15.pkgs.pg_hll postgresql_15.pkgs.pgjwt 135 + postgresql_15.pkgs.pg_partman postgresql_15.pkgs.pgroonga 136 ... 137 ``` 138 139 To add plugins via NixOS configuration, set `services.postgresql.extraPlugins`: 140 ``` 141 + services.postgresql.package = pkgs.postgresql_12; 142 + services.postgresql.extraPlugins = with pkgs.postgresql_12.pkgs; [ 143 pg_repack 144 postgis 145 ]; ··· 148 You can build custom PostgreSQL-with-plugins (to be used outside of NixOS) using function `.withPackages`. For example, creating a custom PostgreSQL package in an overlay can look like: 149 ``` 150 self: super: { 151 + postgresql_custom = self.postgresql_12.withPackages (ps: [ 152 ps.pg_repack 153 ps.postgis 154 ]); ··· 158 Here's a recipe on how to override a particular plugin through an overlay: 159 ``` 160 self: super: { 161 + postgresql_15 = super.postgresql_15.override { this = self.postgresql_15; } // { 162 + pkgs = super.postgresql_15.pkgs // { 163 + pg_repack = super.postgresql_15.pkgs.pg_repack.overrideAttrs (_: { 164 name = "pg_repack-v20181024"; 165 src = self.fetchzip { 166 url = "https://github.com/reorg/pg_repack/archive/923fa2f3c709a506e111cc963034bf2fd127aa00.tar.gz";
+5 -5
nixos/modules/services/databases/postgresql.nix
··· 55 56 package = mkOption { 57 type = types.package; 58 - example = literalExpression "pkgs.postgresql_11"; 59 description = lib.mdDoc '' 60 PostgreSQL package to use. 61 ''; ··· 78 dataDir = mkOption { 79 type = types.path; 80 defaultText = literalExpression ''"/var/lib/postgresql/''${config.services.postgresql.package.psqlSchema}"''; 81 - example = "/var/lib/postgresql/11"; 82 description = lib.mdDoc '' 83 The data directory for PostgreSQL. If left as the default value 84 this directory will automatically be created before the PostgreSQL server starts, otherwise ··· 387 extraPlugins = mkOption { 388 type = types.listOf types.path; 389 default = []; 390 - example = literalExpression "with pkgs.postgresql_11.pkgs; [ postgis pg_repack ]"; 391 description = lib.mdDoc '' 392 List of PostgreSQL plugins. PostgreSQL version for each plugin should 393 match version for `services.postgresql.package` value. ··· 399 default = {}; 400 description = lib.mdDoc '' 401 PostgreSQL configuration. Refer to 402 - <https://www.postgresql.org/docs/11/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE> 403 for an overview of `postgresql.conf`. 404 405 ::: {.note} ··· 461 base = if versionAtLeast config.system.stateVersion "23.11" then pkgs.postgresql_15 462 else if versionAtLeast config.system.stateVersion "22.05" then pkgs.postgresql_14 463 else if versionAtLeast config.system.stateVersion "21.11" then pkgs.postgresql_13 464 - else if versionAtLeast config.system.stateVersion "20.03" then pkgs.postgresql_11 465 else if versionAtLeast config.system.stateVersion "17.09" then mkThrow "9_6" 466 else mkThrow "9_5"; 467 in
··· 55 56 package = mkOption { 57 type = types.package; 58 + example = literalExpression "pkgs.postgresql_15"; 59 description = lib.mdDoc '' 60 PostgreSQL package to use. 61 ''; ··· 78 dataDir = mkOption { 79 type = types.path; 80 defaultText = literalExpression ''"/var/lib/postgresql/''${config.services.postgresql.package.psqlSchema}"''; 81 + example = "/var/lib/postgresql/15"; 82 description = lib.mdDoc '' 83 The data directory for PostgreSQL. If left as the default value 84 this directory will automatically be created before the PostgreSQL server starts, otherwise ··· 387 extraPlugins = mkOption { 388 type = types.listOf types.path; 389 default = []; 390 + example = literalExpression "with pkgs.postgresql_15.pkgs; [ postgis pg_repack ]"; 391 description = lib.mdDoc '' 392 List of PostgreSQL plugins. PostgreSQL version for each plugin should 393 match version for `services.postgresql.package` value. ··· 399 default = {}; 400 description = lib.mdDoc '' 401 PostgreSQL configuration. Refer to 402 + <https://www.postgresql.org/docs/15/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE> 403 for an overview of `postgresql.conf`. 404 405 ::: {.note} ··· 461 base = if versionAtLeast config.system.stateVersion "23.11" then pkgs.postgresql_15 462 else if versionAtLeast config.system.stateVersion "22.05" then pkgs.postgresql_14 463 else if versionAtLeast config.system.stateVersion "21.11" then pkgs.postgresql_13 464 + else if versionAtLeast config.system.stateVersion "20.03" then mkThrow "11" 465 else if versionAtLeast config.system.stateVersion "17.09" then mkThrow "9_6" 466 else mkThrow "9_5"; 467 in
+2 -2
pkgs/applications/misc/glom/default.nix
··· 28 , isocodes 29 , gtksourceview 30 , gtksourceviewmm 31 - , postgresql_11 32 , gobject-introspection 33 , yelp-tools 34 , wrapGAppsHook ··· 93 python3.pkgs.pygobject3 94 gtksourceview 95 gtksourceviewmm 96 - postgresql_11 # for pg_config 97 ]; 98 99 enableParallelBuilding = true;
··· 28 , isocodes 29 , gtksourceview 30 , gtksourceviewmm 31 + , postgresql_15 32 , gobject-introspection 33 , yelp-tools 34 , wrapGAppsHook ··· 93 python3.pkgs.pygobject3 94 gtksourceview 95 gtksourceviewmm 96 + postgresql_15 # for pg_config 97 ]; 98 99 enableParallelBuilding = true;
-11
pkgs/servers/sql/postgresql/default.nix
··· 344 }; 345 346 mkPackages = self: { 347 - # TODO: remove ahead of 23.11 branchoff 348 - # "PostgreSQL 11 will stop receiving fixes on November 9, 2023" 349 - postgresql_11 = self.callPackage generic { 350 - version = "11.21"; 351 - psqlSchema = "11.1"; # should be 11, but changing it is invasive 352 - hash = "sha256-B7CDdHHV3XeyUWazRxjzuhCBa2rWHmkeb8VHzz/P+FA="; 353 - this = self.postgresql_11; 354 - thisAttr = "postgresql_11"; 355 - inherit self; 356 - }; 357 - 358 postgresql_12 = self.callPackage generic { 359 version = "12.16"; 360 psqlSchema = "12";
··· 344 }; 345 346 mkPackages = self: { 347 postgresql_12 = self.callPackage generic { 348 version = "12.16"; 349 psqlSchema = "12";
-4
pkgs/top-level/all-packages.nix
··· 27080 timescaledb-tune = callPackage ../development/tools/database/timescaledb-tune { }; 27081 27082 inherit (import ../servers/sql/postgresql pkgs) 27083 - postgresql_11 27084 postgresql_12 27085 postgresql_13 27086 postgresql_14 27087 postgresql_15 27088 postgresql_16 27089 27090 - postgresql_11_jit 27091 postgresql_12_jit 27092 postgresql_13_jit 27093 postgresql_14_jit ··· 27098 postgresql_jit = postgresql_15_jit.override { this = postgresql_jit; }; 27099 postgresqlPackages = recurseIntoAttrs postgresql.pkgs; 27100 postgresqlJitPackages = recurseIntoAttrs postgresql_jit.pkgs; 27101 - postgresql11Packages = recurseIntoAttrs postgresql_11.pkgs; 27102 postgresql12Packages = recurseIntoAttrs postgresql_12.pkgs; 27103 postgresql13Packages = recurseIntoAttrs postgresql_13.pkgs; 27104 postgresql14Packages = recurseIntoAttrs postgresql_14.pkgs; 27105 postgresql16Packages = recurseIntoAttrs postgresql_16.pkgs; 27106 - postgresql11JitPackages = recurseIntoAttrs postgresql_11_jit.pkgs; 27107 postgresql12JitPackages = recurseIntoAttrs postgresql_12_jit.pkgs; 27108 postgresql13JitPackages = recurseIntoAttrs postgresql_13_jit.pkgs; 27109 postgresql14JitPackages = recurseIntoAttrs postgresql_14_jit.pkgs;
··· 27080 timescaledb-tune = callPackage ../development/tools/database/timescaledb-tune { }; 27081 27082 inherit (import ../servers/sql/postgresql pkgs) 27083 postgresql_12 27084 postgresql_13 27085 postgresql_14 27086 postgresql_15 27087 postgresql_16 27088 27089 postgresql_12_jit 27090 postgresql_13_jit 27091 postgresql_14_jit ··· 27096 postgresql_jit = postgresql_15_jit.override { this = postgresql_jit; }; 27097 postgresqlPackages = recurseIntoAttrs postgresql.pkgs; 27098 postgresqlJitPackages = recurseIntoAttrs postgresql_jit.pkgs; 27099 postgresql12Packages = recurseIntoAttrs postgresql_12.pkgs; 27100 postgresql13Packages = recurseIntoAttrs postgresql_13.pkgs; 27101 postgresql14Packages = recurseIntoAttrs postgresql_14.pkgs; 27102 postgresql16Packages = recurseIntoAttrs postgresql_16.pkgs; 27103 postgresql12JitPackages = recurseIntoAttrs postgresql_12_jit.pkgs; 27104 postgresql13JitPackages = recurseIntoAttrs postgresql_13_jit.pkgs; 27105 postgresql14JitPackages = recurseIntoAttrs postgresql_14_jit.pkgs;