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