summary refs log tree commit diff
path: root/pkgs/os-specific/linux/spectrum/spectrum-vm/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/spectrum/spectrum-vm/default.nix')
-rw-r--r--pkgs/os-specific/linux/spectrum/spectrum-vm/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/spectrum/spectrum-vm/default.nix b/pkgs/os-specific/linux/spectrum/spectrum-vm/default.nix
new file mode 100644
index 00000000000..c56d2537c63
--- /dev/null
+++ b/pkgs/os-specific/linux/spectrum/spectrum-vm/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, makeWrapper, utillinux, crosvm, linux, sys-vms }:
+
+stdenv.mkDerivation {
+  name = "spectrum-vm";
+
+  src = ./spectrum-vm.in;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = ''
+    cp $src spectrum-vm.in
+  '';
+
+  configurePhase = ''
+    substituteAll spectrum-vm.in spectrum-vm
+    chmod +x spectrum-vm
+  '';
+
+  getopt = "${lib.getBin utillinux}/bin/getopt";
+  crosvm = "${lib.getBin crosvm}/bin/crosvm";
+  kernel = "${sys-vms.comp.linux}/bzImage";
+  rootfs = sys-vms.comp.rootfs.squashfs;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp spectrum-vm $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Utility for testing Spectrum VM components";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.gpl3Plus;
+    inherit (crosvm.meta) platforms;
+  };
+}