summary refs log tree commit diff
path: root/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/chromium-os/crosvm/default.nix')
-rw-r--r--pkgs/os-specific/linux/chromium-os/crosvm/default.nix20
1 files changed, 15 insertions, 5 deletions
diff --git a/pkgs/os-specific/linux/chromium-os/crosvm/default.nix b/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
index d54c050d308..681526356ea 100644
--- a/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
+++ b/pkgs/os-specific/linux/chromium-os/crosvm/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, rustPlatform, fetchFromGitiles, upstreamInfo
-, pkgconfig, minijail, dtc, libusb1, libcap, linux
+, pkgconfig, minigbm, minijail, wayland, wayland-protocols, dtc, libusb1, libcap
+, linux
 }:
 
 let
@@ -13,6 +14,7 @@ let
     "src/platform/crosvm"
     "src/third_party/adhd"
     "src/aosp/external/minijail"
+    "src/platform2"
   ] getSrc;
 in
 
@@ -37,20 +39,25 @@ in
 
     sourceRoot = "src/platform/crosvm";
 
+    cargoPatches = [ ./Regenerate-Cargo.lock.patch ];
+
     patches = [
       ./default-seccomp-policy-dir.diff
-      ./0001-crosvm-support-setting-guest-MAC-from-tap-fd.patch
+      ./VIRTIO_NET_F_MAC.patch
     ];
 
-    cargoSha256 = "0wzqn2n4vyv3bk39079yg1zbnriagi5xns928bzdqmq9djdcj21i";
+    cargoSha256 = "0rrhgchrf6ac5393rxlkff0kd3xs7xixxshcdpag3lxjgg0j62af";
 
-    nativeBuildInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkgconfig wayland ];
 
-    buildInputs = [ dtc libcap libusb1 minijail ];
+    buildInputs = [ dtc libcap libusb1 minigbm minijail wayland wayland-protocols ];
 
     postPatch = ''
       sed -i "s|/usr/share/policy/crosvm/|$out/share/policy/|g" \
              seccomp/*/*.policy
+
+      # No /dev/log in the sandbox.
+      sed -i '/^[[:space:]]*syslog::init().unwrap();$/d' tests/boot.rs
     '';
 
     preBuild = ''
@@ -62,6 +69,9 @@ in
       cp seccomp/${arch}/* $out/share/policy/
     '';
 
+    # Boot test often hangs on AMD.
+    doCheck = !stdenv.buildPlatform.isx86_64;
+
     CROSVM_CARGO_TEST_KERNEL_BINARY =
       lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform)
         "${linux}/${stdenv.hostPlatform.platform.kernelTarget}";