Merge pull request #138054 from arcnmx/linuxkernel-let

linuxKernel: use the fixed point instead of let

authored by

Bernardo Meurer and committed by
GitHub
184f67e4 d16deecc

+24 -31
+24 -31
pkgs/top-level/linux-kernels.nix
··· 1 1 { pkgs 2 + , linuxKernel 2 3 , config 3 4 , buildPackages 4 5 , callPackage ··· 16 17 # - Update the rev in ../os-specific/linux/kernel/linux-libre.nix to the latest one. 17 18 # - Update linux_latest_hardened when the patches become available 18 19 19 - let 20 - kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { }; 20 + with linuxKernel; 21 21 22 + let 22 23 deblobKernel = kernel: callPackage ../os-specific/linux/kernel/linux-libre.nix { 23 24 linux = kernel; 24 25 }; 25 26 26 - kernels = lib.makeExtensible (self: with self; 27 + # Hardened Linux 28 + hardenedKernelFor = kernel': overrides: 29 + let kernel = kernel'.override overrides; 30 + in kernel.override { 31 + structuredExtraConfig = import ../os-specific/linux/kernel/hardened/config.nix { 32 + inherit lib; 33 + inherit (kernel) version; 34 + }; 35 + kernelPatches = kernel.kernelPatches ++ [ 36 + kernelPatches.hardened.${kernel.meta.branch} 37 + ]; 38 + modDirVersionArg = kernel.modDirVersion + (kernelPatches.hardened.${kernel.meta.branch}).extra; 39 + isHardened = true; 40 + }; 41 + in { 42 + kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { }; 43 + 44 + kernels = recurseIntoAttrs (lib.makeExtensible (self: with self; 27 45 let callPackage = newScope self; in { 28 46 29 47 linux_mptcp_95 = callPackage ../os-specific/linux/kernel/linux-mptcp-95.nix { ··· 204 222 linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { }; 205 223 linux_5_13_hardened = hardenedKernelFor kernels.linux_5_13 { }; 206 224 207 - }); 225 + })); 208 226 /* Linux kernel modules are inherently tied to a specific kernel. So 209 227 rather than provide specific instances of those packages for a 210 228 specific kernel, we have a function that builds those packages ··· 429 447 ati_drivers_x11 = throw "ati drivers are no longer supported by any kernel >=4.1"; # added 2021-05-18; 430 448 }); 431 449 432 - # Hardened Linux 433 - hardenedKernelFor = kernel': overrides: 434 - let kernel = kernel'.override overrides; 435 - in kernel.override { 436 - structuredExtraConfig = import ../os-specific/linux/kernel/hardened/config.nix { 437 - inherit lib; 438 - inherit (kernel) version; 439 - }; 440 - kernelPatches = kernel.kernelPatches ++ [ 441 - kernelPatches.hardened.${kernel.meta.branch} 442 - ]; 443 - modDirVersionArg = kernel.modDirVersion + (kernelPatches.hardened.${kernel.meta.branch}).extra; 444 - isHardened = true; 445 - }; 446 450 hardenedPackagesFor = kernel: overrides: packagesFor (hardenedKernelFor kernel overrides); 447 451 448 452 vanillaPackages = { ··· 471 475 linux_rpi4 = packagesFor kernels.linux_rpi4; 472 476 }; 473 477 474 - packages = vanillaPackages // rtPackages // rpiPackages // { 478 + packages = recurseIntoAttrs (vanillaPackages // rtPackages // rpiPackages // { 475 479 linux_mptcp_95 = packagesFor kernels.linux_mptcp_95; 476 480 477 481 # Intentionally lacks recurseIntoAttrs, as -rc kernels will quite likely break out-of-tree modules and cause failed Hydra builds. ··· 495 499 linux_libre = recurseIntoAttrs (packagesFor kernels.linux_libre); 496 500 497 501 linux_latest_libre = recurseIntoAttrs (packagesFor kernels.linux_latest_libre); 498 - }; 502 + }); 499 503 500 504 packageAliases = { 501 505 linux_default = packages.linux_5_10; ··· 509 513 510 514 manualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {}); 511 515 512 - in 513 - 514 - { 515 - packages = recurseIntoAttrs packages; 516 - kernels = recurseIntoAttrs kernels; 517 - inherit packageAliases; 518 - inherit vanillaPackages rtPackages rpiPackages; 519 - inherit kernelPatches packagesFor hardenedPackagesFor; 520 - 521 516 customPackage = { version, src, configfile, allowImportFromDerivation ? true }: 522 517 recurseIntoAttrs (packagesFor (manualConfig { 523 518 inherit version src configfile lib stdenv allowImportFromDerivation; 524 519 })); 525 - 526 - inherit manualConfig; 527 520 528 521 # Derive one of the default .config files 529 522 linuxConfig = {