summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kernel-headers/default.nix
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2014-01-05 07:13:19 -0500
committerShea Levy <shea@shealevy.com>2014-01-05 07:13:19 -0500
commit139f8949e6a5898aa8f245b49c18a6c523dce24e (patch)
tree07eaae3112af64386c3dea40e27a15a85f798f76 /pkgs/os-specific/linux/kernel-headers/default.nix
parent010e63c69d4e240d01e319af392fbf6b03cf7490 (diff)
parentac2035287fbec30d92165fd3839d1bf71b8edd47 (diff)
downloadnixlib-139f8949e6a5898aa8f245b49c18a6c523dce24e.tar
nixlib-139f8949e6a5898aa8f245b49c18a6c523dce24e.tar.gz
nixlib-139f8949e6a5898aa8f245b49c18a6c523dce24e.tar.bz2
nixlib-139f8949e6a5898aa8f245b49c18a6c523dce24e.tar.lz
nixlib-139f8949e6a5898aa8f245b49c18a6c523dce24e.tar.xz
nixlib-139f8949e6a5898aa8f245b49c18a6c523dce24e.tar.zst
nixlib-139f8949e6a5898aa8f245b49c18a6c523dce24e.zip
Merge branch 'merge-kernel-builds' into upstream-master
This is a second attempt at unifying the generic and manual-config
kernel builds (see #412 for the last time).

The set of working kernel packages is a superset of those that work on
master, and as the only objection last time was the size of the $dev
closure and now both $out and $dev combined are 20M smaller than $out on
master (see message for ac2035287fbec30d92165fd3839d1bf71b8edd47), this
should be unobjectionable.

Signed-off-by: Shea Levy <shea@shealevy.com>
Diffstat (limited to 'pkgs/os-specific/linux/kernel-headers/default.nix')
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
new file mode 100644
index 000000000000..e4ce19457058
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, kernel, perl }:
+
+let
+  baseBuildFlags = [ "INSTALL_HDR_PATH=$(out)" "headers_install" ];
+in stdenv.mkDerivation {
+  name = "linux-headers-${kernel.version}";
+
+  inherit (kernel) src patches;
+
+  nativeBuildInputs = [ perl ];
+
+  buildFlags = [ "ARCH=${stdenv.platform.kernelArch}" ] ++ baseBuildFlags;
+
+  crossAttrs = {
+    inherit (kernel.crossDrv) src patches;
+    buildFlags = [ "ARCH=${stdenv.cross.platform.kernelArch}" ] ++ baseBuildFlags;
+  };
+
+  installPhase = ''
+    find $out \( -name ..install.cmd -o -name .install \) -print0 | xargs -0 rm
+  '';
+
+  # Headers shouldn't reference anything else
+  allowedReferences = [];
+}