From a943d89fb0228aced3f9007fe8cbf605001c38ba Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Oct 2025 13:03:55 +0200 Subject: [PATCH] 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 = {