Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / virtualization / virt-viewer / default.nix
blob58d9edb269a46764a345975b473d87c715ac90f8
1 { lib
2 , stdenv
3 , bash-completion
4 , fetchurl
5 , fetchpatch
6 , gdbm
7 , glib
8 , gsettings-desktop-schemas
9 , gtk-vnc
10 , gtk3
11 , intltool
12 , libcap
13 , libgovirt
14   # Currently unsupported. According to upstream, libgovirt is for a very narrow
15   # use-case and we don't currently cover it in Nixpkgs. It's safe to disable.
16   # https://gitlab.com/virt-viewer/virt-viewer/-/issues/100#note_1265011223
17   # Can be enabled again once this is merged:
18   # https://gitlab.com/virt-viewer/virt-viewer/-/merge_requests/129
19 , ovirtSupport ? false
20 , libvirt
21 , libvirt-glib
22 , libxml2
23 , meson
24 , ninja
25 , pkg-config
26 , python3
27 , shared-mime-info
28 , spice-gtk
29 , spice-protocol
30 , spiceSupport ? true
31 , vte
32 , wrapGAppsHook
35 with lib;
37 stdenv.mkDerivation rec {
38   pname = "virt-viewer";
39   version = "11.0";
41   src = fetchurl {
42     url = "https://releases.pagure.org/virt-viewer/virt-viewer-${version}.tar.xz";
43     sha256 = "sha256-pD+iMlxMHHelyMmAZaww7wURohrJjlkPIjQIabrZq9A=";
44   };
46   patches = [
47     # Fix build with meson 0.61. Should be fixed in the next release.
48     # https://gitlab.com/virt-viewer/virt-viewer/-/merge_requests/120
49     (fetchpatch {
50       url = "https://gitlab.com/virt-viewer/virt-viewer/-/commit/98d9f202ef768f22ae21b5c43a080a1aa64a7107.patch";
51       sha256 = "sha256-3AbnkbhWOh0aNjUkmVoSV/9jFQtvTllOr7plnkntb2o=";
52     })
53   ];
55   nativeBuildInputs = [
56     glib
57     intltool
58     meson
59     ninja
60     pkg-config
61     python3
62     shared-mime-info
63     wrapGAppsHook
64   ];
66   buildInputs = [
67     bash-completion
68     glib
69     gsettings-desktop-schemas
70     gtk-vnc
71     gtk3
72     libvirt
73     libvirt-glib
74     libxml2
75     vte
76   ] ++ optionals ovirtSupport [
77     libgovirt
78   ] ++ optionals spiceSupport ([
79     gdbm
80     spice-gtk
81     spice-protocol
82   ] ++ optionals stdenv.isLinux [
83     libcap
84   ]);
86   # Required for USB redirection PolicyKit rules file
87   propagatedUserEnvPkgs = optional spiceSupport spice-gtk;
89   mesonFlags = [
90     (lib.mesonEnable "ovirt" ovirtSupport)
91   ];
93   strictDeps = true;
95   postPatch = ''
96     patchShebangs build-aux/post_install.py
97   '';
99   meta = {
100     description = "A viewer for remote virtual machines";
101     maintainers = with maintainers; [ raskin atemu ];
102     platforms = with platforms; linux ++ darwin;
103     license = licenses.gpl2;
104   };
105   passthru = {
106     updateInfo = {
107       downloadPage = "https://virt-manager.org/download.html";
108     };
109   };