summary refs log tree commit diff
path: root/pkgs/os-specific/linux/chromium-os/default.nix
blob: 862e6f27b7b4488460c42589bf517e069418a346 (plain) (blame)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{ lib, newScope, fetchFromGitiles, symlinkJoin
, linux_4_19, makeLinuxHeaders, modemmanager
}:

let
  self = with self; {
    callPackage = newScope self;

    upstreamInfo = lib.importJSON ./upstream-info.json;

    chromiumos-overlay = (fetchFromGitiles
      upstreamInfo.components."chromiumos/overlays/chromiumos-overlay") // {
        passthru.updateScript = ./update.py;
      };

    common-mk = callPackage ./common-mk { };

    crosvm = callPackage ./crosvm { };

    dbus-properties = callPackage ./dbus-properties { };

    dbus-interfaces = symlinkJoin {
      name = "dbus-interfaces";
      paths = [ dbus-properties self.modemmanager modemmanager-next ];
      passthru.updateScript = ./update.py;
    };

    linux_4_19 = callPackage ../kernel/linux-cros.nix {
      inherit (linux_4_19) kernelPatches;
    };

    linux = self.linux_4_19;

    linuxHeaders = (makeLinuxHeaders {
      inherit (linux) version src;
    }).overrideAttrs ({ nativeBuildInputs, ... }: {
      # makeLinuxHeaders is designed for Linux 5.5, which has a
      # different header build system from 4.19, currently used by
      # Chromium OS.  When the Chromium OS kernel bumps to a new major
      # version, try removing this override to see if it's still
      # necessary.  If it builds without it, the override can go.
      buildPhase = ''
        make headers_install $makeFlags
      '';
    });

    minigbm = callPackage ./minigbm { };

    modemmanager = callPackage ./modem-manager {
      inherit modemmanager;
    };

    modemmanager-next = callPackage ./modem-manager/next.nix {
      inherit modemmanager;
    };

    modp_b64 = callPackage ./modp_b64 { };

    protofiles = callPackage ./protofiles { };

    sommelier = callPackage ./sommelier { };

    vm_protos = callPackage ./vm_protos { };
  };

in self // (with self; {
  inherit (upstreamInfo) version;
})