about summary refs log tree commit diff
path: root/nixpkgs/pkgs/build-support/kernel/modules-closure.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/build-support/kernel/modules-closure.nix')
-rw-r--r--nixpkgs/pkgs/build-support/kernel/modules-closure.nix15
1 files changed, 15 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/build-support/kernel/modules-closure.nix b/nixpkgs/pkgs/build-support/kernel/modules-closure.nix
new file mode 100644
index 000000000000..d82e279799ba
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/kernel/modules-closure.nix
@@ -0,0 +1,15 @@
+# Given a kernel build (with modules in $kernel/lib/modules/VERSION),
+# produce a module tree in $out/lib/modules/VERSION that contains only
+# the modules identified by `rootModules', plus their dependencies.
+# Also generate an appropriate modules.dep.
+
+{ stdenvNoCC, kernel, firmware, nukeReferences, rootModules
+, kmod, allowMissing ? false }:
+
+stdenvNoCC.mkDerivation {
+  name = kernel.name + "-shrunk";
+  builder = ./modules-closure.sh;
+  nativeBuildInputs = [ nukeReferences kmod ];
+  inherit kernel firmware rootModules allowMissing;
+  allowedReferences = ["out"];
+}