summaryrefslogtreecommitdiff
path: root/pkgs/build-support/kernel/modules-closure.nix
blob: 611c01abe0188b63898184885df06e410717af17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 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,
  extraFirmwarePaths ? [ ],
}:

stdenvNoCC.mkDerivation {
  name = kernel.name + "-shrunk";
  builder = ./modules-closure.sh;
  nativeBuildInputs = [
    nukeReferences
    kmod
  ];
  inherit
    kernel
    firmware
    rootModules
    allowMissing
    extraFirmwarePaths
    ;
  allowedReferences = [ "out" ];
}