summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2017-09-15 21:07:14 +0000
committerJoachim Fasting <joachifm@fastmail.fm>2017-09-17 16:33:47 +0200
commit8525b78d054ac7ef2c43057d54403846b2d07ccc (patch)
tree07f597dd16a3cf0d47869b3f957271c11a8a0de9 /pkgs
parent64bf283104fae7a73c4891956a009851bfa38979 (diff)
downloadnixpkgs-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar
nixpkgs-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.gz
nixpkgs-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.bz2
nixpkgs-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.lz
nixpkgs-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.xz
nixpkgs-8525b78d054ac7ef2c43057d54403846b2d07ccc.tar.zst
nixpkgs-8525b78d054ac7ef2c43057d54403846b2d07ccc.zip
linuxPackages: properly propagate `features` and `extraConfig`
`kernel.override { features = ... }` didn't work before, now it works as
expected.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix32
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.12.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.13.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-mptcp.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rpi.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-samus-4.12.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix5
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 379d3cad970..3912d9d10f5 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 876bbff119f..640534aa2a6 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 fb53a278bd1..1d51b033dc1 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 7e959241b9c..5f4686a5ec6 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 d5d4ebcdae5..3b9357ae35e 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 7e6110bf4a3..dc4d10a0412 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 4985e40f51d..2d8a3f0afcd 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 5599e1325d9..f262dfe34b7 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 77a2b62dbb4..a104cc5393c 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 57e2eda0e90..e97d5c47da2 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 = [];