diff options
author | Alyssa Ross <hi@alyssa.is> | 2024-02-13 12:25:07 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2024-02-13 12:25:07 +0100 |
commit | a5e1520e4538e29ecfbd4b168306f890566d7bfd (patch) | |
tree | 28099c268b5d4b1e33c2b29f0714c45f0b961382 /nixpkgs/pkgs/os-specific/linux/kernel/generic.nix | |
parent | 822f7c15c04567fbdc27020e862ea2b70cfbf8eb (diff) | |
parent | 3560d1c8269d0091b9aae10731b5e85274b7bbc1 (diff) | |
download | nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.gz nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.bz2 nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.lz nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.xz nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.zst nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.zip |
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/nixos/modules/services/mail/rss2email.nix nixpkgs/pkgs/build-support/go/module.nix
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/kernel/generic.nix')
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/kernel/generic.nix | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix index df67005dd816..8ff8dcff0b38 100644 --- a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix +++ b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix @@ -9,6 +9,9 @@ , pahole , lib , stdenv +, rustc +, rustPlatform +, rust-bindgen , # The kernel source tarball. src @@ -37,7 +40,7 @@ modDirVersion ? null , # An attribute set whose attributes express the availability of - # certain features in this kernel. E.g. `{iwlwifi = true;}' + # certain features in this kernel. E.g. `{ia32Emulation = true;}' # indicates a kernel that provides Intel wireless support. Used in # NixOS to implement kernel-specific behaviour. features ? {} @@ -89,9 +92,7 @@ let # Combine the `features' attribute sets of all the kernel patches. kernelFeatures = lib.foldr (x: y: (x.features or {}) // y) ({ - iwlwifi = true; efiBootStub = true; - needsCifsUtils = true; netfilterRPFilter = true; ia32Emulation = true; } // features) kernelPatches; @@ -117,6 +118,8 @@ let map ({extraConfig ? "", ...}: extraConfig) kernelPatches; in lib.concatStringsSep "\n" ([baseConfigStr] ++ configFromPatches); + withRust = ((configfile.moduleStructuredConfig.settings.RUST or {}).tristate or null) == "y"; + configfile = stdenv.mkDerivation { inherit ignoreConfigErrors autoModules preferBuiltin kernelArch extraMakeFlags; pname = "linux-config"; @@ -130,7 +133,11 @@ let depsBuildBuild = [ buildPackages.stdenv.cc ]; nativeBuildInputs = [ perl gmp libmpc mpfr ] ++ lib.optionals (lib.versionAtLeast version "4.16") [ bison flex ] - ++ lib.optional (lib.versionAtLeast version "5.2") pahole; + ++ lib.optional (lib.versionAtLeast version "5.2") pahole + ++ lib.optionals withRust [ rust-bindgen rustc ] + ; + + RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc; platformName = stdenv.hostPlatform.linux-kernel.name; # e.g. "defconfig" @@ -202,7 +209,7 @@ let inherit kernelPatches randstructSeed extraMakeFlags extraMeta configfile; pos = builtins.unsafeGetAttrPos "version" args; - config = { CONFIG_MODULES = "y"; CONFIG_FW_LOADER = "m"; }; + config = { CONFIG_MODULES = "y"; CONFIG_FW_LOADER = "m"; } // lib.optionalAttrs withRust { CONFIG_RUST = "y"; }; } // lib.optionalAttrs (modDirVersion != null) { inherit modDirVersion; }); passthru = basicArgs // { @@ -224,7 +231,7 @@ let override = args: lib.warn ( "override is stubbed for NixOS kernel tests, not applying changes these arguments: " - + toString (lib.attrNames (if lib.isAttrs args then args else args {})) + + toString (lib.attrNames (lib.toFunction args { })) ) overridableKernel; }; in [ (nixosTests.kernel-generic.passthru.testsForKernel overridableKernel) ] ++ kernelTests; |