aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix72
1 files changed, 72 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
new file mode 100644
index 000000000000..9673e93d0cc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, python3Packages, intltool, file
+, wrapGAppsHook, gtk-vnc, vte, avahi, dconf
+, gobject-introspection, libvirt-glib, system-libvirt
+, gsettings-desktop-schemas, glib, libosinfo, gnome3
+, gtksourceview4, docutils
+, spiceSupport ? true, spice-gtk ? null
+, cpio, e2fsprogs, findutils, gzip
+}:
+
+with stdenv.lib;
+
+python3Packages.buildPythonApplication rec {
+ pname = "virt-manager";
+ version = "3.1.0";
+
+ src = fetchurl {
+ url = "http://virt-manager.org/download/sources/virt-manager/${pname}-${version}.tar.gz";
+ sha256 = "0al34lxlywqnj98hdm72a38zk8ns91wkqgrc3h1mhv1kikd8pjfc";
+ };
+
+ nativeBuildInputs = [
+ intltool file
+ gobject-introspection # for setup hook populating GI_TYPELIB_PATH
+ docutils
+ ];
+
+ buildInputs = [
+ wrapGAppsHook
+ libvirt-glib vte dconf gtk-vnc gnome3.adwaita-icon-theme avahi
+ gsettings-desktop-schemas libosinfo gtksourceview4
+ gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
+ ] ++ optional spiceSupport spice-gtk;
+
+ propagatedBuildInputs = with python3Packages;
+ [
+ pygobject3 ipaddress libvirt libxml2 requests
+ ];
+
+ patchPhase = ''
+ sed -i 's|/usr/share/libvirt/cpu_map.xml|${system-libvirt}/share/libvirt/cpu_map.xml|g' virtinst/capabilities.py
+ sed -i "/'install_egg_info'/d" setup.py
+ '';
+
+ postConfigure = ''
+ ${python3Packages.python.interpreter} setup.py configure --prefix=$out
+ '';
+
+ setupPyGlobalFlags = [ "--no-update-icon-cache" ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(--set PYTHONPATH "$PYTHONPATH")
+ # these are called from virt-install in initrdinject.py
+ gappsWrapperArgs+=(--prefix PATH : "${makeBinPath [ cpio e2fsprogs file findutils gzip ]}")
+ '';
+
+ # Failed tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://virt-manager.org";
+ description = "Desktop user interface for managing virtual machines";
+ longDescription = ''
+ The virt-manager application is a desktop user interface for managing
+ virtual machines through libvirt. It primarily targets KVM VMs, but also
+ manages Xen and LXC (linux containers).
+ '';
+ license = licenses.gpl2;
+ # exclude Darwin since libvirt-glib currently doesn't build there
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ qknight offline fpletz globin ];
+ };
+}