summary refs log tree commit diff
path: root/pkgs/applications/virtualization
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-12-17 17:49:39 +0000
committerAlyssa Ross <hi@alyssa.is>2019-12-24 17:23:52 +0000
commitc76deaef9caa3156a25b2df2a036b4994f9ed7a7 (patch)
tree47d70d576a4f1e89150b0936de70fcf24b8d4153 /pkgs/applications/virtualization
parent0c62e73b37fa86b87ee28a10e2ca727419992436 (diff)
downloadnixpkgs-c76deaef9caa3156a25b2df2a036b4994f9ed7a7.tar
nixpkgs-c76deaef9caa3156a25b2df2a036b4994f9ed7a7.tar.gz
nixpkgs-c76deaef9caa3156a25b2df2a036b4994f9ed7a7.tar.bz2
nixpkgs-c76deaef9caa3156a25b2df2a036b4994f9ed7a7.tar.lz
nixpkgs-c76deaef9caa3156a25b2df2a036b4994f9ed7a7.tar.xz
nixpkgs-c76deaef9caa3156a25b2df2a036b4994f9ed7a7.tar.zst
nixpkgs-c76deaef9caa3156a25b2df2a036b4994f9ed7a7.zip
crosvm: 77.12371.0.0-rc1 -> 79.12607.0.0-rc4
Replaced src munging with a custom unpackPhase because the previous
approach couldn't handle a newly introduced path with a space, and
this is cleaner anyway (but was impossible at the time due to
unpackPhase not being forwarded to fetchcargo).
Diffstat (limited to 'pkgs/applications/virtualization')
-rw-r--r--pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.diff (renamed from pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.patch)12
-rw-r--r--pkgs/applications/virtualization/crosvm/default.nix67
-rw-r--r--pkgs/applications/virtualization/crosvm/upstream-info.json14
3 files changed, 49 insertions, 44 deletions
diff --git a/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.patch b/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.diff
index 46b091b3a35..f1aa50ee102 100644
--- a/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.patch
+++ b/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.diff
@@ -1,9 +1,9 @@
-diff --git a/src/main.rs b/src/main.rs
-index 81f20a7..481ebd7 100644
---- a/src/main.rs
-+++ b/src/main.rs
-@@ -158,7 +158,9 @@ impl Default for Config {
-             wayland_dmabuf: false,
+diff --git a/src/crosvm.rs b/src/crosvm.rs
+index b7055df..5989c87 100644
+--- a/src/crosvm.rs
++++ b/src/crosvm.rs
+@@ -141,7 +141,9 @@ impl Default for Config {
+             x_display: None,
              shared_dirs: Vec::new(),
              sandbox: !cfg!(feature = "default-no-sandbox"),
 -            seccomp_policy_dir: PathBuf::from(SECCOMP_POLICY_DIR),
diff --git a/pkgs/applications/virtualization/crosvm/default.nix b/pkgs/applications/virtualization/crosvm/default.nix
index 5c10614e856..5035b65f981 100644
--- a/pkgs/applications/virtualization/crosvm/default.nix
+++ b/pkgs/applications/virtualization/crosvm/default.nix
@@ -11,32 +11,15 @@ let
     else if isx86_64 then "x86_64"
     else throw "no seccomp policy files available for host platform";
 
-  # used to turn symlinks into real files because write permissions are necessary for the vendoring process
-  delink = src: runCommand "${src.name}-delinked" {
-    preferLocalBuild = true;
-    allowSubstitutes = false;
-  } ''
-    cp -prL --reflink=auto ${src} $out
-  '';
-
-  # used to place subtrees into the location they have in the Chromium monorepo
-  move = src: target: runCommand "moved-${src.name}" {
-    preferLocalBuild = true;
-    allowSubstitutes = false;
-  } ''
-    mkdir -p $(dirname $out/${target})
-    ln -s ${src} $out/${target}
-  '';
-
-  # used to check out subtrees from the Chromium monorepo
-  chromiumSource = name: subtrees: delink (symlinkJoin {
-    inherit name;
-    paths = stdenv.lib.mapAttrsToList (
-      location: { url, rev, sha256, fetchSubmodules, ... }:
-      move (fetchgit {
-        inherit url rev sha256 fetchSubmodules;
-      }) location) subtrees;
-  });
+  crosvmSrc = fetchgit {
+    inherit (upstreamInfo.components."chromiumos/platform/crosvm")
+      url rev sha256 fetchSubmodules;
+  };
+
+  adhdSrc = fetchgit {
+    inherit (upstreamInfo.components."chromiumos/third_party/adhd")
+      url rev sha256 fetchSubmodules;
+  };
 
 in
 
@@ -44,15 +27,33 @@ in
     pname = "crosvm";
     inherit (upstreamInfo) version;
 
-    src = chromiumSource "${pname}-sources" upstreamInfo.components;
+    unpackPhase = ''
+      runHook preUnpack
+
+      mkdir -p chromiumos/platform chromiumos/third_party
+
+      pushd chromiumos/platform
+      unpackFile ${crosvmSrc}
+      mv ${crosvmSrc.name} crosvm
+      popd
+
+      pushd chromiumos/third_party
+      unpackFile ${adhdSrc}
+      mv ${adhdSrc.name} adhd
+      popd
 
-    sourceRoot = "${src.name}/chromiumos/platform/crosvm";
+      chmod -R u+w -- "$sourceRoot"
+
+      runHook postUnpack
+    '';
+
+    sourceRoot = "chromiumos/platform/crosvm";
 
     patches = [
-      ./default-seccomp-policy-dir.patch
+      ./default-seccomp-policy-dir.diff
     ];
 
-    cargoSha256 = "16cfp79c13ng5jjcrvz00h3cg7cc9ywhjiq02vsm757knn9jgr1v";
+    cargoSha256 = "1d7y07wkliy5qnlyx5zj6ni39avhs3s48sqgvwxm5g5zrahg2a85";
 
     nativeBuildInputs = [ pkgconfig ];
 
@@ -72,7 +73,11 @@ in
       cp seccomp/${arch}/* $out/share/policy/
     '';
 
-    passthru.updateScript = ./update.py;
+    passthru = {
+      inherit adhdSrc;
+      src = crosvmSrc;
+      updateScript = ./update.py;
+    };
 
     meta = with stdenv.lib; {
       description = "A secure virtual machine monitor for KVM";
diff --git a/pkgs/applications/virtualization/crosvm/upstream-info.json b/pkgs/applications/virtualization/crosvm/upstream-info.json
index 01921f9460a..690eca38bff 100644
--- a/pkgs/applications/virtualization/crosvm/upstream-info.json
+++ b/pkgs/applications/virtualization/crosvm/upstream-info.json
@@ -1,18 +1,18 @@
 {
-  "version": "77.12371.0.0-rc1",
+  "version": "79.12607.0.0-rc4",
   "components": {
     "chromiumos/platform/crosvm": {
       "url": "https://chromium.googlesource.com/chromiumos/platform/crosvm",
-      "rev": "f5285c647acacb4f25ef8cf9334254b976e71686",
-      "date": "2019-07-25T22:15:48+00:00",
-      "sha256": "1ccjd540xmpad082w9ri13q78wkg95xxmq38b8ybcrj4f7lsxm6w",
+      "rev": "cfb7db44eb9e5a0bca9a22bfb985252ef74ab251",
+      "date": "2019-10-17T23:22:08+00:00",
+      "sha256": "0gm1ggyzh9qfizm36jmh71c3anygxj1840cm94h71kzg9kiw0330",
       "fetchSubmodules": false
     },
     "chromiumos/third_party/adhd": {
       "url": "https://chromium.googlesource.com/chromiumos/third_party/adhd",
-      "rev": "a1c0d93d991daffb042b979ac807bbe9c1f9a3ee",
-      "date": "2019-07-25T20:38:50-07:00",
-      "sha256": "11bijqd876adarq96syywn6znfbiflqssgb2j4w032iw2vfnnsyy",
+      "rev": "a8df1c52bde3bfd2aebc1d7adcd6f195eb212cb1",
+      "date": "2019-10-17T18:53:18+00:00",
+      "sha256": "1hyvnvwr5ka9zw4h7hhl6fpsfl2acp3zy4wr5qrw8s1cn8ljr9vy",
       "fetchSubmodules": false
     }
   }