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
This commit is contained in:
Maximilian Bosch 2024-10-05 13:31:09 +02:00
parent 8536e7c5a4
commit 19b9676383
No known key found for this signature in database
2 changed files with 8 additions and 1 deletions

View File

@ -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 = {

View File

@ -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