1{ stdenv, fetchgit, pkgconfig, libuuid, openssl }:
2
3stdenv.mkDerivation rec {
4 version = "20130507";
5 checkout = "25/50225/2";
6
7 name = "vboot_reference-${version}";
8
9 src = fetchgit {
10 url = https://chromium.googlesource.com/chromiumos/platform/vboot_reference;
11 rev = "refs/changes/${checkout}";
12 sha256 = "14d3a93ha5k4al4ib43nyn1ppx7kgb12xw6mkflhx8nxmx8827nc";
13 };
14
15 buildInputs = [ pkgconfig openssl stdenv.cc.libc.static ] ++
16 (if libuuid == null
17 then []
18 else [ (stdenv.lib.overrideDerivation libuuid
19 (args: { configureFlags = args.configureFlags + " --enable-static"; })) ]);
20
21 arch = if stdenv.system == "x86_64-linux" then "x86_64"
22 else if stdenv.system == "i686-linux" then "x86"
23 else throw "vboot_reference for: ${stdenv.system} not supported!";
24
25 buildPhase = ''
26 make ARCH=${arch} `pwd`/build/cgpt/cgpt
27 make ARCH=${arch} `pwd`/build/utility/vbutil_kernel
28 make ARCH=${arch} `pwd`/build/utility/vbutil_key
29 make ARCH=${arch} `pwd`/build/utility/vbutil_keyblock
30 make ARCH=${arch} `pwd`/build/utility/vbutil_firmware
31 '';
32
33 installPhase = ''
34 mkdir -p $out/bin
35 cp build/cgpt/cgpt $out/bin
36 cp build/utility/vbutil_kernel $out/bin
37 cp build/utility/vbutil_key $out/bin
38 cp build/utility/vbutil_keyblock $out/bin
39 cp build/utility/vbutil_firmware $out/bin
40 '';
41
42 meta = {
43 description = "Chrome OS partitioning and kernel signing tools";
44 license = stdenv.lib.licenses.bsd3;
45 platforms = stdenv.lib.platforms.linux;
46 };
47}