summary refs log tree commit diff
path: root/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-05-30 18:48:02 +0000
committerAlyssa Ross <hi@alyssa.is>2020-06-02 03:25:34 +0000
commita1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece (patch)
tree0c88f4d30121baa7234432ad9c91649b845e326c /pkgs/os-specific/linux/chromium-os/crosvm/default.nix
parente72c23ff066a947473ef18973bed07ce192ec3b2 (diff)
downloadnixpkgs-a1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece.tar
nixpkgs-a1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece.tar.gz
nixpkgs-a1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece.tar.bz2
nixpkgs-a1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece.tar.lz
nixpkgs-a1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece.tar.xz
nixpkgs-a1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece.tar.zst
nixpkgs-a1f01bb6ca7c14bb2aa14d1930525dd20e0d0ece.zip
chromiumOSPackages: 81.12871.0.0-rc1 -> 83.13020.0.0-rc1
crosvm now needs the Minijail sources.  However, it'll notice that a
Minijail package is provided via pkg-config, and then not actually use
those sources or build its own Minijail.  It would be nice if the
Minijail we provide could be the same version as in Chromium OS, which
means bringing Minijail under chromiumOSPackages.

A couple of backports are no longer required; one to common-mk and one
to Linux.  A new patch to fix a parallel build failure has been
introduced.

Message-Id: <20200602005619.31128-1-hi@alyssa.is>
Thanks-to: Michael Raskin <7c6f434c@mail.ru>
Reviewed-by: Cole Helbling <cole.e.helbling@outlook.com>
Tested-by: Cole Helbling <cole.e.helbling@outlook.com>
Diffstat (limited to 'pkgs/os-specific/linux/chromium-os/crosvm/default.nix')
-rw-r--r--pkgs/os-specific/linux/chromium-os/crosvm/default.nix34
1 files changed, 16 insertions, 18 deletions
diff --git a/pkgs/os-specific/linux/chromium-os/crosvm/default.nix b/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
index 8698ef67a83..d64dc316772 100644
--- a/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
+++ b/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
@@ -8,11 +8,12 @@ let
     else if isx86_64 then "x86_64"
     else throw "no seccomp policy files available for host platform";
 
-  crosvmSrc = fetchFromGitiles
-    upstreamInfo.components."src/platform/crosvm";
-
-  adhdSrc = fetchFromGitiles
-    upstreamInfo.components."src/third_party/adhd";
+  getSrc = path: fetchFromGitiles upstreamInfo.components.${path};
+  srcs = lib.genAttrs [
+    "src/platform/crosvm"
+    "src/third_party/adhd"
+    "src/aosp/external/minijail"
+  ] getSrc;
 in
 
   rustPlatform.buildRustPackage rec {
@@ -22,28 +23,25 @@ in
     unpackPhase = ''
       runHook preUnpack
 
-      mkdir -p chromiumos/platform chromiumos/third_party
-
-      pushd chromiumos/platform
-      unpackFile ${crosvmSrc}
-      popd
-
-      pushd chromiumos/third_party
-      unpackFile ${adhdSrc}
-      popd
+      ${lib.concatStringsSep "\n" (lib.mapAttrsToList (path: src: ''
+        mkdir -p ${dirOf path}
+        pushd ${dirOf path}
+        unpackFile ${src}
+        popd
+      '') srcs)}
 
       chmod -R u+w -- "$sourceRoot"
 
       runHook postUnpack
     '';
 
-    sourceRoot = "chromiumos/platform/crosvm";
+    sourceRoot = "src/platform/crosvm";
 
     patches = [
       ./default-seccomp-policy-dir.diff
     ];
 
-    cargoSha256 = "0lhivwvdihslwp81i3sa5q88p5hr83bzkvklrcgf6x73arwk8kdz";
+    cargoSha256 = "0wzqn2n4vyv3bk39079yg1zbnriagi5xns928bzdqmq9djdcj21i";
 
     nativeBuildInputs = [ pkgconfig ];
 
@@ -68,8 +66,8 @@ in
         "${linux}/${stdenv.hostPlatform.platform.kernelTarget}";
 
     passthru = {
-      inherit adhdSrc;
-      src = crosvmSrc;
+      inherit srcs;
+      src = srcs.${sourceRoot};
       updateScript = ../update.py;
     };