1{ lib
2, buildGoModule
3, fetchFromGitHub
4, nix
5, virt-viewer
6, fetchpatch
7, makeWrapper }:
8
9let
10 # Upstream patches fail with newer virt-viewer. These are own ports to the
11 # newest virt-viewer version, see:
12 # https://github.com/jollheef/appvm/issues/28
13 virt-manager-without-menu = virt-viewer.overrideAttrs(oldAttrs: {
14 patches = oldAttrs.patches ++ [
15 ./0001-Remove-menu-bar.patch
16 ./0002-Do-not-grab-keyboard-mouse.patch
17 ./0003-Use-name-of-appvm-applications-as-a-title.patch
18 ./0004-Use-title-application-name-as-subtitle.patch
19 ];
20 });
21in
22buildGoModule rec {
23 pname = "appvm";
24 version = "unstable-2021-12-20";
25
26 src = fetchFromGitHub {
27 owner = "jollheef";
28 repo = pname;
29 rev = "17f17be7846d872e7e26d5cb6759a52ea4113587";
30 sha256 = "sha256-FL5olOy1KufULyqI2dJeS0OnKzC3LfPWxnia2i4f4yY=";
31 };
32
33 vendorHash = "sha256-8eU+Mf5dxL/bAMMShXvj8I1Kdd4ysBTWvgYIXwLStPI=";
34
35 nativeBuildInputs = [ makeWrapper ];
36
37 postFixup = ''
38 wrapProgram $out/bin/appvm \
39 --prefix PATH : "${lib.makeBinPath [ nix virt-manager-without-menu ]}"
40 '';
41
42 meta = with lib; {
43 description = "Nix-based app VMs";
44 homepage = "https://code.dumpstack.io/tools/${pname}";
45 maintainers = with maintainers; [ dump_stack cab404 onny ];
46 license = licenses.gpl3;
47 };
48}