···260260261261This leaves a small gap of a couple of weeks after the latest minor release and the end of our support window for the .05 release, in which there could be an emergency release to other major versions of PostgreSQL - but not the oldest major we have in that branch. In that case: If we can't trivially patch the issue, we will mark the package/version as insecure **immediately**.
262262263263+## `pg_config` {#module-services-postgres-pg_config}
264264+265265+`pg_config` is not part of the `postgresql`-package itself.
266266+It is available under `postgresql_<major>.pg_config` and `libpq.pg_config`.
267267+Use the `pg_config` from the postgresql package you're using in your build.
268268+269269+Also, `pg_config` is a shell-script that replicates the behavior of the upstream `pg_config` and ensures at build-time that the output doesn't change.
270270+271271+This approach is done for the following reasons:
272272+273273+* By using a shell script, cross compilation of extensions is made easier.
274274+275275+* The separation allowed a massive reduction of the runtime closure's size.
276276+ Any attempts to move `pg_config` into `$dev` resulted in brittle and more complex solutions
277277+ (see commits [`0c47767`](https://github.com/NixOS/nixpkgs/commit/0c477676412564bd2d5dadc37cf245fe4259f4d9), [`435f51c`](https://github.com/NixOS/nixpkgs/commit/435f51c37faf74375134dfbd7c5a4560da2a9ea7)).
278278+279279+* `pg_config` is only needed to build extensions or in some exceptions for building client libraries linking to `libpq.so`.
280280+ If such a build works without `pg_config`, this is strictly preferable over adding `pg_config` to the build environment.
281281+282282+ With the current approach it's now explicit that this is needed.
283283+284284+263285## Options {#module-services-postgres-options}
264286265287A complete list of options for the PostgreSQL module may be found [here](#opt-services.postgresql.enable).
···3232 '';
3333 description = ''
3434 The homebox configuration as Environment variables. For definitions and available options see the upstream
3535- [documentation](https://homebox.software/en/configure-homebox.html).
3535+ [documentation](https://homebox.software/en/configure/#configure-homebox).
3636 '';
3737 };
3838 database = {
···11531153 linuxPackages_latest_xen_dom0_hardened = linuxPackages_latest_hardened;
1154115411551155 # Added 2021-08-16
11561156+ linuxPackages_6_13_hardened = linuxKernel.packages.linux_6_13_hardened;
11571157+ linux_6_13_hardened = linuxKernel.kernels.linux_6_13_hardened;
11581158+ linuxPackages_6_14_hardened = linuxKernel.packages.linux_6_14_hardened;
11591159+ linux_6_14_hardened = linuxKernel.kernels.linux_6_14_hardened;
11561160 linuxPackages_latest_hardened = throw ''
11571161 The attribute `linuxPackages_hardened_latest' was dropped because the hardened patches
11581162 frequently lag behind the upstream kernel. In some cases this meant that this attribute
···211211 ];
212212 };
213213214214- linux_6_13 = callPackage ../os-specific/linux/kernel/mainline.nix {
215215- branch = "6.13";
216216- kernelPatches = [
217217- kernelPatches.bridge_stp_helper
218218- kernelPatches.request_key_helper
219219- ];
220220- };
221221-222222- linux_6_14 = callPackage ../os-specific/linux/kernel/mainline.nix {
223223- branch = "6.14";
224224- kernelPatches = [
225225- kernelPatches.bridge_stp_helper
226226- kernelPatches.request_key_helper
227227- ];
228228- };
229229-230214 linux_6_15 = callPackage ../os-specific/linux/kernel/mainline.nix {
231215 branch = "6.15";
232216 kernelPatches = [
···318302 linux_6_1_hardened = hardenedKernelFor kernels.linux_6_1 { };
319303 linux_6_6_hardened = hardenedKernelFor kernels.linux_6_6 { };
320304 linux_6_12_hardened = hardenedKernelFor kernels.linux_6_12 { };
321321- linux_6_13_hardened = hardenedKernelFor kernels.linux_6_13 { };
322322- linux_6_14_hardened = hardenedKernelFor kernels.linux_6_14 { };
323305324306 }
325307 // lib.optionalAttrs config.allowAliases {
···327309 linux_6_9 = throw "linux 6.9 was removed because it has reached its end of life upstream";
328310 linux_6_10 = throw "linux 6.10 was removed because it has reached its end of life upstream";
329311 linux_6_11 = throw "linux 6.11 was removed because it has reached its end of life upstream";
312312+ linux_6_13 = throw "linux 6.13 was removed because it has reached its end of life upstream";
313313+ linux_6_14 = throw "linux 6.14 was removed because it has reached its end of life upstream";
330314331315 linux_4_19_hardened = throw "linux 4.19 was removed because it will reach its end of life within 24.11";
332316 linux_6_9_hardened = throw "linux 6.9 was removed because it has reached its end of life upstream";
333317 linux_6_10_hardened = throw "linux 6.10 was removed because it has reached its end of life upstream";
334318 linux_6_11_hardened = throw "linux 6.11 was removed because it has reached its end of life upstream";
319319+ linux_6_13_hardened = throw "linux 6.13 was removed because it has reached its end of life upstream";
320320+ linux_6_14_hardened = throw "linux 6.14 was removed because it has reached its end of life upstream";
335321336322 linux_ham = throw "linux_ham has been removed in favour of the standard kernel packages";
337323 }
···624610625611 tp_smapi = callPackage ../os-specific/linux/tp_smapi { };
626612613613+ tt-kmd = callPackage ../os-specific/linux/tt-kmd { };
614614+627615 turbostat = callPackage ../os-specific/linux/turbostat { };
628616629617 corefreq = callPackage ../os-specific/linux/corefreq { };
···742730 linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
743731 linux_6_6 = recurseIntoAttrs (packagesFor kernels.linux_6_6);
744732 linux_6_12 = recurseIntoAttrs (packagesFor kernels.linux_6_12);
745745- linux_6_13 = recurseIntoAttrs (packagesFor kernels.linux_6_13);
746746- linux_6_14 = recurseIntoAttrs (packagesFor kernels.linux_6_14);
747733 linux_6_15 = recurseIntoAttrs (packagesFor kernels.linux_6_15);
748734 }
749735 // lib.optionalAttrs config.allowAliases {
···751737 linux_6_9 = throw "linux 6.9 was removed because it reached its end of life upstream"; # Added 2024-08-02
752738 linux_6_10 = throw "linux 6.10 was removed because it reached its end of life upstream"; # Added 2024-10-23
753739 linux_6_11 = throw "linux 6.11 was removed because it reached its end of life upstream"; # Added 2025-03-23
740740+ linux_6_13 = throw "linux 6.13 was removed because it reached its end of life upstream"; # Added 2025-06-22
741741+ linux_6_14 = throw "linux 6.14 was removed because it reached its end of life upstream"; # Added 2025-06-22
754742 };
755743756744 rtPackages = {
···786774 linux_6_1_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_1_hardened);
787775 linux_6_6_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_6_hardened);
788776 linux_6_12_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_12_hardened);
789789- linux_6_13_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_13_hardened);
790790- linux_6_14_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_14_hardened);
791777792778 linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
793779 linux_lqx = recurseIntoAttrs (packagesFor kernels.linux_lqx);
···805791 linux_6_9_hardened = throw "linux 6.9 was removed because it has reached its end of life upstream";
806792 linux_6_10_hardened = throw "linux 6.10 was removed because it has reached its end of life upstream";
807793 linux_6_11_hardened = throw "linux 6.11 was removed because it has reached its end of life upstream";
794794+ linux_6_13_hardened = throw "linux 6.13 was removed because it has reached its end of life upstream";
795795+ linux_6_14_hardened = throw "linux 6.14 was removed because it has reached its end of life upstream";
808796 linux_ham = throw "linux_ham has been removed in favour of the standard kernel packages";
809797 }
810798 );