From 19b9676383c4e473b16bafa5e3a704a01639420f Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 5 Oct 2024 13:31:09 +0200 Subject: [PATCH] linux: mark <6.12 with Rust as broken, assert on <6.7 with Rust Linux 6.7 is the oldest kernel with Rust support, so the config part should fail hard if 6.6 or older requests the Rust feature. Until now this was silently ignored[1]. It turned out that Rust for Linux 6.11 or older fails for unknown reasons[2]. We decided to not bother since it's not a longterm kernel and 6.12 seems fine again. As a result, marking this as broken. [1] https://github.com/NixOS/nixpkgs/pull/345534#discussion_r1781392312 [2] https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381 --- pkgs/os-specific/linux/kernel/common-config.nix | 6 +++++- pkgs/os-specific/linux/kernel/manual-config.nix | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index ee3862052135..8051876960b8 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -34,7 +34,11 @@ let # Currently not enabling Rust by default, as upstream requires rustc 1.81 defaultRust = false; - withRust = (forceRust || defaultRust) && kernelSupportsRust; + withRust = + assert lib.assertMsg (!(forceRust && !kernelSupportsRust)) '' + Kernels below 6.7 (the kernel being built is ${version}) don't support Rust. + ''; + (forceRust || defaultRust) && kernelSupportsRust; options = { diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 5544409a74d6..f69de86fd1a6 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -396,6 +396,9 @@ let requiredSystemFeatures = [ "big-parallel" ]; meta = { + # https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381 + broken = withRust && lib.versionOlder version "6.12"; + description = "The Linux kernel" + (if kernelPatches == [] then "" else