From 4a8ef0e0cf75aaf5e65d726a1e87de833d2fd951 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 12:45:11 +0200 Subject: [PATCH 1/7] linux_6_16: remove EOL upstream. --- pkgs/os-specific/linux/kernel/kernels-org.json | 5 ----- pkgs/top-level/linux-kernels.nix | 11 ++--------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 144d74916ee7..b2addeb3c360 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -34,11 +34,6 @@ "hash": "sha256:0qny8c4r9rf55bvchs5vjplfldngmydn0j47a97c9vpgj0rws38v", "lts": true }, - "6.16": { - "version": "6.16.12", - "hash": "sha256:0vm257d76hmimnac8hzg66gd1mdg330sai39lywfn4m9bjydx93w", - "lts": false - }, "6.17": { "version": "6.17.4", "hash": "sha256:1nwi0hzikziwkxm9xzf819wb3lsz93i1ns1nzybpbfkgdqli42h1", diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 0a43f3394372..478387a5a167 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -204,14 +204,6 @@ in ]; }; - linux_6_16 = callPackage ../os-specific/linux/kernel/mainline.nix { - branch = "6.16"; - kernelPatches = [ - kernelPatches.bridge_stp_helper - kernelPatches.request_key_helper - ]; - }; - linux_6_17 = callPackage ../os-specific/linux/kernel/mainline.nix { branch = "6.17"; kernelPatches = [ @@ -299,6 +291,7 @@ in linux_6_13 = throw "linux 6.13 was removed because it has reached its end of life upstream"; linux_6_14 = throw "linux 6.14 was removed because it has reached its end of life upstream"; linux_6_15 = throw "linux 6.15 was removed because it has reached its end of life upstream"; + linux_6_16 = throw "linux 6.16 was removed because it has reached its end of life upstream"; linux_5_10_hardened = throw "linux_hardened on nixpkgs only contains latest stable and latest LTS"; linux_5_15_hardened = throw "linux_hardened on nixpkgs only contains latest stable and latest LTS"; @@ -735,7 +728,6 @@ in linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1); linux_6_6 = recurseIntoAttrs (packagesFor kernels.linux_6_6); linux_6_12 = recurseIntoAttrs (packagesFor kernels.linux_6_12); - linux_6_16 = recurseIntoAttrs (packagesFor kernels.linux_6_16); linux_6_17 = recurseIntoAttrs (packagesFor kernels.linux_6_17); } // lib.optionalAttrs config.allowAliases { @@ -746,6 +738,7 @@ in linux_6_13 = throw "linux 6.13 was removed because it reached its end of life upstream"; # Added 2025-06-22 linux_6_14 = throw "linux 6.14 was removed because it reached its end of life upstream"; # Added 2025-06-22 linux_6_15 = throw "linux 6.15 was removed because it reached its end of life upstream"; # Added 2025-08-23 + linux_6_16 = throw "linux 6.16 was removed because it reached its end of life upstream"; # Added 2025-10-22 }; rtPackages = { From 91eb7cd17eb54b567c14e75a490ba8bc4b3ae5a5 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 12:46:29 +0200 Subject: [PATCH 2/7] linux-rt_5_10: 5.10.240-rt134 -> 5.10.245-rt139 --- pkgs/os-specific/linux/kernel/linux-rt-5.10.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix index a4019bd33645..c3c11fd7cd94 100644 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix +++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix @@ -10,7 +10,7 @@ }@args: let - version = "5.10.240-rt134"; # updated by ./update-rt.sh + version = "5.10.245-rt139"; # updated by ./update-rt.sh branch = lib.versions.majorMinor version; kversion = builtins.elemAt (lib.splitString "-" version) 0; in @@ -25,7 +25,7 @@ buildLinux ( src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "04sdcf4aqsqchii38anzmk9f9x65wv8q1x3m9dandmi6fabw724d"; + sha256 = "17wxs8i8vd5ivv99ra0sri3wmkw5c22wsaw8nf1xcvys2kmpa7hk"; }; kernelPatches = @@ -34,7 +34,7 @@ buildLinux ( name = "rt"; patch = fetchurl { url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "0f2wq6w0707qn798a9lk7r31mfmdll6xwnxq8fy86574gl08ah79"; + sha256 = "1nqdshpcf775cmb1kqcq939b7qx6wsy91pf0l0vsd3rdpixidzyk"; }; }; in From 204eebe13471d96080918f515c9f708a97043f11 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 12:46:56 +0200 Subject: [PATCH 3/7] linux-rt_5_15: 5.15.189-rt87 -> 5.15.195-rt90 --- pkgs/os-specific/linux/kernel/linux-rt-5.15.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix index c930d86de797..822d06217b1e 100644 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix +++ b/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix @@ -10,7 +10,7 @@ }@args: let - version = "5.15.189-rt87"; # updated by ./update-rt.sh + version = "5.15.195-rt90"; # updated by ./update-rt.sh branch = lib.versions.majorMinor version; kversion = builtins.elemAt (lib.splitString "-" version) 0; in @@ -29,7 +29,7 @@ buildLinux ( src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "1hshd26ahn6dbw6jnqi0v5afpk672w7p09mk7iri93i7hxdh5l73"; + sha256 = "0hd4p76qv29zlr0iik4j9y9qynyqisk6bgfiqcwkk7gr6bf81l13"; }; kernelPatches = @@ -38,7 +38,7 @@ buildLinux ( name = "rt"; patch = fetchurl { url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "151vznvdcdmjsjsz3b4hfxw1v2jyigrh34k2qyxk3fkqg999fx9w"; + sha256 = "15n1l3b0yq7hl2zady3s3a3zym82clyycvf5icavvd68758sdp25"; }; }; in From 4e9fde93420a279e56486d950b725c36dc662732 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 12:47:25 +0200 Subject: [PATCH 4/7] linux-rt_6_1: 6.1.146-rt53 -> 6.1.156-rt56 --- pkgs/os-specific/linux/kernel/linux-rt-6.1.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix index 355a3a106199..508da7ec98cd 100644 --- a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix +++ b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix @@ -10,7 +10,7 @@ }@args: let - version = "6.1.146-rt53"; # updated by ./update-rt.sh + version = "6.1.156-rt56"; # updated by ./update-rt.sh branch = lib.versions.majorMinor version; kversion = builtins.elemAt (lib.splitString "-" version) 0; in @@ -29,7 +29,7 @@ buildLinux ( src = fetchurl { url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz"; - sha256 = "117gyi8zym09z2qarnv02i7v23v8596nqvllid07aydlcpihl9pv"; + sha256 = "13i2l04pmba7dksz2p5kwxgr5bydc5lp7284d4wfsnjf425i9fyl"; }; kernelPatches = @@ -38,7 +38,7 @@ buildLinux ( name = "rt"; patch = fetchurl { url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "1kz416nc8hd2pi87l9k496r2lig07dbapyh701lq81rilbzx9nmc"; + sha256 = "1smah5wa4lrgb13li025lpj80yxay4g13m7c4i09whxcgxhc294k"; }; }; in From df3ea7bfcd12f89912c22d42cf6e32b5fba1ae22 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 12:47:56 +0200 Subject: [PATCH 5/7] linux-rt_6_6: 6.6.101-rt59 -> 6.6.112-rt63 --- pkgs/os-specific/linux/kernel/linux-rt-6.6.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix index 5df3a1097066..5ce2e345bc97 100644 --- a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix +++ b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix @@ -10,7 +10,7 @@ }@args: let - version = "6.6.101-rt59"; # updated by ./update-rt.sh + version = "6.6.112-rt63"; # updated by ./update-rt.sh branch = lib.versions.majorMinor version; kversion = builtins.elemAt (lib.splitString "-" version) 0; in @@ -29,7 +29,7 @@ buildLinux ( src = fetchurl { url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz"; - sha256 = "1h71zbqlsxcafrk218s0rip9rdrj0fzqvsl81ndqnlrnjy3g4kwc"; + sha256 = "08la2f8w5w2x0l9nmvzsmbwa951xyshhvdhwwhfyjmka66zr4zbc"; }; kernelPatches = @@ -38,7 +38,7 @@ buildLinux ( name = "rt"; patch = fetchurl { url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "0w71nl8s0npcz6x3qavl5j3vcqwd5wcqx4dj5ck2qs7bzv9kbrwb"; + sha256 = "01z2dwl54hfqfyc8xmlz6kaw522s55jsdrdw31pjnzkn6rxf7zbf"; }; }; in From a943d89fb0228aced3f9007fe8cbf605001c38ba Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 13:03:55 +0200 Subject: [PATCH 6/7] linux_5_4: remove See https://endoflife.date/linux Will be end of life on 2025-12-31 which is well within the timespan of 25.11. --- .../manual/release-notes/rl-2511.section.md | 2 + nixos/tests/kernel-generic/default.nix | 1 - .../os-specific/linux/kernel/kernels-org.json | 5 -- .../os-specific/linux/kernel/linux-rt-5.4.nix | 60 ------------------- pkgs/top-level/linux-kernels.nix | 25 +++----- 5 files changed, 9 insertions(+), 84 deletions(-) delete mode 100644 pkgs/os-specific/linux/kernel/linux-rt-5.4.nix diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index d1285109a0ce..62d661579955 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -178,6 +178,8 @@ - `hardware.amdgpu.amdvlk` and the `amdvlk` package have been removed, as they have been deprecated by AMD. These have been replaced with the RADV driver from Mesa, which is enabled by default. +- Linux 5.4 and all its variants have been removed since mainline will reach its end of life within the support-span of 25.11. + - The `services.polipo` module has been removed as `polipo` is unmaintained and archived upstream. - `virtualisation.lxd` has been removed due to lack of Nixpkgs maintenance. Users can migrate to `virtualisation.incus`, a fork of LXD, as a replacement. See [Incus migration documentation](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for migration information. diff --git a/nixos/tests/kernel-generic/default.nix b/nixos/tests/kernel-generic/default.nix index 0fd9672d4006..60337d82bb70 100644 --- a/nixos/tests/kernel-generic/default.nix +++ b/nixos/tests/kernel-generic/default.nix @@ -81,7 +81,6 @@ let kernels = patchedPkgs.linuxKernel.vanillaPackages // { inherit (patchedPkgs.linuxKernel.packages) linux_6_12_hardened - linux_rt_5_4 linux_rt_5_10 linux_rt_5_15 linux_rt_6_1 diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index b2addeb3c360..ca53bfbc19ea 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -19,11 +19,6 @@ "hash": "sha256:17wxs8i8vd5ivv99ra0sri3wmkw5c22wsaw8nf1xcvys2kmpa7hk", "lts": true }, - "5.4": { - "version": "5.4.300", - "hash": "sha256:0nl1l689d4jq2l39v816yy7z5lzc5dvv8aqn85xlv4najc022jcr", - "lts": true - }, "6.6": { "version": "6.6.113", "hash": "sha256:07n494cblmlfmn8l3kjalwlnb1f9xxxf8c31kkfr5lb1wk9cz58z", diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix deleted file mode 100644 index e855b51903ee..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - lib, - buildLinux, - fetchurl, - kernelPatches ? [ ], - structuredExtraConfig ? { }, - extraMeta ? { }, - argsOverride ? { }, - ... -}@args: - -let - version = "5.4.296-rt100"; # updated by ./update-rt.sh - branch = lib.versions.majorMinor version; - kversion = builtins.elemAt (lib.splitString "-" version) 0; -in -buildLinux ( - args - // { - inherit version; - pname = "linux-rt"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "0fm73yqzbzclh2achcj8arpg428d412k2wgmlfmyy6xzb1762qrx"; - }; - - kernelPatches = - let - rt-patch = { - name = "rt"; - patch = fetchurl { - url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "0ggmgkhmnvx4xxb3smfdcafqr9m3qdyc40xp3h7586p4n3wwpw9d"; - }; - }; - in - [ rt-patch ] ++ kernelPatches; - - structuredExtraConfig = - with lib.kernel; - { - PREEMPT_RT = yes; - # Fix error: unused option: PREEMPT_RT. - EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt) - # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n'). - PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it. - # Fix error: unused option: RT_GROUP_SCHED. - RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch. - } - // structuredExtraConfig; - - isLTS = true; - - extraMeta = extraMeta // { - inherit branch; - }; - } - // argsOverride -) diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 478387a5a167..eea835790fac 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -116,22 +116,6 @@ in rpiVersion = 4; }; - linux_5_4 = callPackage ../os-specific/linux/kernel/mainline.nix { - branch = "5.4"; - kernelPatches = [ - kernelPatches.bridge_stp_helper - kernelPatches.request_key_helper - kernelPatches.rtl8761b_support - ]; - }; - - linux_rt_5_4 = callPackage ../os-specific/linux/kernel/linux-rt-5.4.nix { - kernelPatches = [ - kernelPatches.bridge_stp_helper - kernelPatches.request_key_helper - ]; - }; - linux_5_10 = callPackage ../os-specific/linux/kernel/mainline.nix { branch = "5.10"; kernelPatches = [ @@ -285,6 +269,7 @@ in linux_latest_libre = throw "linux_latest_libre has been removed due to lack of maintenance"; linux_4_19 = throw "linux 4.19 was removed because it will reach its end of life within 24.11"; + linux_5_4 = throw "linux 5.4 was removed because it will reach its end of life within 25.11"; linux_6_9 = throw "linux 6.9 was removed because it has reached its end of life upstream"; linux_6_10 = throw "linux 6.10 was removed because it has reached its end of life upstream"; linux_6_11 = throw "linux 6.11 was removed because it has reached its end of life upstream"; @@ -307,6 +292,8 @@ in linux_6_14_hardened = throw "linux 6.14 was removed because it has reached its end of life upstream"; linux_6_15_hardened = throw "linux 6.15 was removed because it has reached its end of life upstream"; + linux_rt_5_4 = throw "linux_rt 5.4 has been removed because it will reach its end of life within 25.11"; + linux_ham = throw "linux_ham has been removed in favour of the standard kernel packages"; } ) @@ -722,7 +709,6 @@ in vanillaPackages = { # recurse to build modules for the kernels - linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4); linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10); linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15); linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1); @@ -732,6 +718,7 @@ in } // lib.optionalAttrs config.allowAliases { linux_4_19 = throw "linux 4.19 was removed because it will reach its end of life within 24.11"; # Added 2024-09-21 + linux_5_4 = throw "linux 5.4 was removed because it will reach its end of life within 25.11"; # Added 2025-10-22 linux_6_9 = throw "linux 6.9 was removed because it reached its end of life upstream"; # Added 2024-08-02 linux_6_10 = throw "linux 6.10 was removed because it reached its end of life upstream"; # Added 2024-10-23 linux_6_11 = throw "linux 6.11 was removed because it reached its end of life upstream"; # Added 2025-03-23 @@ -743,11 +730,13 @@ in rtPackages = { # realtime kernel packages - linux_rt_5_4 = packagesFor kernels.linux_rt_5_4; linux_rt_5_10 = packagesFor kernels.linux_rt_5_10; linux_rt_5_15 = packagesFor kernels.linux_rt_5_15; linux_rt_6_1 = packagesFor kernels.linux_rt_6_1; linux_rt_6_6 = packagesFor kernels.linux_rt_6_6; + } + // lib.optionalAttrs config.allowAliases { + linux_rt_5_4 = throw "linux_rt 5.4 was removed because it will reach its end of life within 25.11"; # Added 2025-10-22 }; rpiPackages = { From bc693cf4b9083d97d49f4b398fe454e177ab6776 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 13:21:03 +0200 Subject: [PATCH 7/7] linux/common-config: only enable VFIO opts for 6.6 and later For older kernels (<=6.1) I get error: unused option: VFIO_DEVICE_CDEV while building `linux-config`. --- pkgs/os-specific/linux/kernel/common-config.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 03a8b930bc92..4fa16a094bdc 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -1003,8 +1003,8 @@ let # Enable CDEV and NOIOMMU support for VFIO, which is useful for # passthrough. - VFIO_DEVICE_CDEV = yes; - VFIO_NOIOMMU = yes; + VFIO_DEVICE_CDEV = whenAtLeast "6.6" yes; + VFIO_NOIOMMU = whenAtLeast "6.6" yes; }; media = {