diff options
author | Jan Malakhovski <oxij@oxij.org> | 2017-09-15 21:07:14 +0000 |
---|---|---|
committer | Joachim Fasting <joachifm@fastmail.fm> | 2017-09-17 16:33:47 +0200 |
commit | 8525b78d054ac7ef2c43057d54403846b2d07ccc (patch) | |
tree | 07f597dd16a3cf0d47869b3f957271c11a8a0de9 /pkgs/os-specific | |
parent | 64bf283104fae7a73c4891956a009851bfa38979 (diff) | |
download | nixlib-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar nixlib-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.gz nixlib-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.bz2 nixlib-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.lz nixlib-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.xz nixlib-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.zst nixlib-8525b78d054ac7ef2c43057d54403846b2d07ccc.zip |
linuxPackages: properly propagate `features` and `extraConfig`
`kernel.override { features = ... }` didn't work before, now it works as expected.
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/kernel/generic.nix | 32 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-4.12.nix | 7 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-4.13.nix | 7 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-4.9.nix | 7 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix | 7 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-mptcp.nix | 8 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-rpi.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-samus-4.12.nix | 5 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix | 5 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-testing.nix | 5 |
10 files changed, 25 insertions, 64 deletions
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 379d3cad9705..3912d9d10f5e 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -36,6 +36,22 @@ let lib = stdenv.lib; + # Combine the `features' attribute sets of all the kernel patches. + kernelFeatures = lib.fold (x: y: (x.features or {}) // y) ({ + iwlwifi = true; + efiBootStub = true; + needsCifsUtils = true; + netfilterRPFilter = true; + } // features) kernelPatches; + + configWithPlatform = kernelPlatform: import ./common-config.nix { + inherit stdenv version kernelPlatform extraConfig; + features = kernelFeatures; # Ensure we know of all extra patches, etc. + }; + + config = configWithPlatform stdenv.platform; + configCross = configWithPlatform hostPlatform.platform; + kernelConfigFun = baseConfig: let configFromPatches = @@ -115,23 +131,17 @@ let }; passthru = { - # Combine the `features' attribute sets of all the kernel patches. - features = lib.fold (x: y: (x.features or {}) // y) features kernelPatches; + features = kernelFeatures; meta = kernel.meta // extraMeta; passthru = kernel.passthru // (removeAttrs passthru [ "passthru" "meta" ]); }; - configWithPlatform = kernelPlatform: import ./common-config.nix - { inherit stdenv version kernelPlatform extraConfig; - features = passthru.features; # Ensure we know of all extra patches, etc. - }; - - config = configWithPlatform stdenv.platform; - configCross = configWithPlatform hostPlatform.platform; - nativeDrv = lib.addPassthru kernel.nativeDrv passthru; crossDrv = lib.addPassthru kernel.crossDrv passthru; -in if kernel ? crossDrv then nativeDrv // { inherit nativeDrv crossDrv; } else lib.addPassthru kernel passthru + +in if kernel ? crossDrv + then nativeDrv // { inherit nativeDrv crossDrv; } + else lib.addPassthru kernel passthru diff --git a/pkgs/os-specific/linux/kernel/linux-4.12.nix b/pkgs/os-specific/linux/kernel/linux-4.12.nix index 876bbff119fe..640534aa2a6e 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.12.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.12.nix @@ -8,11 +8,4 @@ import ./generic.nix (args // rec { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; sha256 = "18sxw7mw4fya7381mkah70s3di6b8xxfigjhrhb7zcczrffb4vl9"; }; - - kernelPatches = args.kernelPatches; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.13.nix b/pkgs/os-specific/linux/kernel/linux-4.13.nix index fb53a278bd14..1d51b033dc14 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.13.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.13.nix @@ -8,11 +8,4 @@ import ./generic.nix (args // rec { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; sha256 = "1lgwgw9yp5ywbylnmahsmqzs98yfq53mvvqqdgp7ljiqg8bxqjh6"; }; - - kernelPatches = args.kernelPatches; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index 7e959241b9c2..5f4686a5ec65 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -8,11 +8,4 @@ import ./generic.nix (args // rec { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; sha256 = "0dhm5w7qa1hyqp254r41b4nhf10a8w7sv1mhd16f61inpb41829c"; }; - - kernelPatches = args.kernelPatches; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix index d5d4ebcdae51..3b9357ae35ed 100644 --- a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix +++ b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix @@ -27,11 +27,4 @@ import ./generic.nix (args // { repo = "linux-hardened"; rev = "${version}.${revision}"; }; - - kernelPatches = args.kernelPatches; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp.nix b/pkgs/os-specific/linux/kernel/linux-mptcp.nix index 7e6110bf4a39..dc4d10a04125 100644 --- a/pkgs/os-specific/linux/kernel/linux-mptcp.nix +++ b/pkgs/os-specific/linux/kernel/linux-mptcp.nix @@ -15,8 +15,6 @@ import ./generic.nix (args // rec { sha256 = "0vqjnkzcbbvyq24w3cryfmw7hhws1xqkkxqcv71szkbqqs6mcr14"; }; - kernelPatches = args.kernelPatches; - extraConfig = '' IPV6 y MPTCP y @@ -41,10 +39,6 @@ import ./generic.nix (args // rec { TCP_CONG_OLIA m TCP_CONG_WVEGAS m TCP_CONG_BALIA m - ''; - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; + '' + (args.extraConfig or ""); } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix index 4985e40f51d6..2d8a3f0afcdd 100644 --- a/pkgs/os-specific/linux/kernel/linux-rpi.nix +++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix @@ -15,9 +15,9 @@ stdenv.lib.overrideDerivation (import ./generic.nix (args // rec { sha256 = "1ly0x7a43zvig0fv7lc6rpq49pcdb7i9sdb78p4gi5485zap40kb"; }; - features.iwlwifi = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; + features = { + efiBootStub = false; + } // (args.features or {}); extraMeta.hydraPlatforms = []; })) (oldAttrs: { diff --git a/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix b/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix index 5599e1325d98..f262dfe34b79 100644 --- a/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix +++ b/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix @@ -14,10 +14,5 @@ import ./generic.nix (args // rec { sha256 = "1dr74i79p8r13522w2ppi8gnjd9bhngc9d2hsn91ji6f5a8fbxx9"; }; in "${upstream}/build/linux"; - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; - extraMeta.hydraPlatforms = []; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix index 77a2b62dbb4f..a104cc5393c3 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix @@ -16,11 +16,6 @@ import ./generic.nix (args // rec { BCACHEFS_FS m ''; - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; - # Should the testing kernels ever be built on Hydra? extraMeta.hydraPlatforms = []; diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index 57e2eda0e906..e97d5c47da25 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -10,11 +10,6 @@ import ./generic.nix (args // rec { sha256 = "0dhcsjgcy28pyyzwf2s0862p92bwb324kapli2y9n90bw0kl53gi"; }; - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; - # Should the testing kernels ever be built on Hydra? extraMeta.hydraPlatforms = []; |