Unverified Commit 7913ebc8 authored by Adam Joseph's avatar Adam Joseph Committed by GitHub
Browse files

Merge pull request #221091 from alyssais/crosvm-111.1

crosvm: 107.1 -> 111.1
parents eec97855 7215a820
Loading
Loading
Loading
Loading
+8 −22
Original line number Diff line number Diff line
{ stdenv, lib, rust, rustPlatform, fetchgit, fetchpatch
, clang, pkg-config, protobuf, python3, wayland-scanner
{ lib, rustPlatform, fetchgit, pkg-config, protobuf, python3, wayland-scanner
, libcap, libdrm, libepoxy, minijail, virglrenderer, wayland, wayland-protocols
}:

rustPlatform.buildRustPackage rec {
  pname = "crosvm";
  version = "107.1";
  version = "111.1";

  src = fetchgit {
    url = "https://chromium.googlesource.com/chromiumos/platform/crosvm";
    rev = "5a49a836e63aa6e9ae38b80daa09a013a57bfb7f";
    sha256 = "F+5i3R7Tbd9xF63Olnyavzg/hD+8HId1duWm8bvAmLA=";
    rev = "9ad89972330f70fca5a29967f226cf905977bf7f";
    sha256 = "hvP3V7kzfPXOIe+6GBWupfhW5SM3ifoqmx7dyTgSTeU=";
    fetchSubmodules = true;
  };

  separateDebugInfo = true;

  patches = [
    # Backport seccomp sandbox update for recent Glibc.
    # fetchpatch is not currently gerrit/gitiles-compatible, so we
    # have to use the mirror.
    # https://github.com/NixOS/nixpkgs/pull/133604
    (fetchpatch {
      url = "https://github.com/google/crosvm/commit/aae01416807e7c15270b3d44162610bcd73952ff.patch";
      sha256 = "nQuOMOwBu8QvfwDSuTz64SQhr2dF9qXt2NarbIU55tU=";
    })
  ];

  cargoSha256 = "1jg9x5adz1lbqdwnzld4xg4igzmh90nd9xm287cgkvh5fbmsjfjv";
  cargoSha256 = "S8zeOB+S5ZTuHqWNjxDIa4ev24ose/fByYwPrhR9OY8=";

  nativeBuildInputs = [ clang pkg-config protobuf python3 wayland-scanner ];
  nativeBuildInputs = [
    pkg-config protobuf python3 rustPlatform.bindgenHook wayland-scanner
  ];

  buildInputs = [
    libcap libdrm libepoxy minijail virglrenderer wayland wayland-protocols
@@ -37,12 +27,8 @@ rustPlatform.buildRustPackage rec {

  preConfigure = ''
    patchShebangs third_party/minijail/tools/*.py
    substituteInPlace build.rs --replace '"clang"' '"${stdenv.cc.targetPrefix}clang"'
  '';

  "CARGO_TARGET_${lib.toUpper (builtins.replaceStrings ["-"] ["_"] (rust.toRustTarget stdenv.hostPlatform))}_LINKER" =
    "${stdenv.cc.targetPrefix}cc";

  # crosvm mistakenly expects the stable protocols to be in the root
  # of the pkgdatadir path, rather than under the "stable"
  # subdirectory.