nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
Bjørn Forsman cb7c920e24 virt-manager: add missing gsettings schema
Without this it'll complain and abort when clicking "Take Screenshot" or
"Browse Local" when creating a new VM and looking for an CD-ROM image to boot
from:

GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed
2014-05-11 01:03:27 +02:00

76 lines
2.5 KiB
Nix

{ stdenv, fetchurl, pythonPackages, intltool, libxml2Python, curl, python
, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc, vte
, gtk3, gobjectIntrospection, libvirt-glib, gsettings_desktop_schemas, glib
, avahi, dconf, spiceSupport ? true, spice_gtk
}:
with stdenv.lib;
with pythonPackages;
buildPythonPackage rec {
name = "virt-manager-${version}";
version = "1.0.1";
namePrefix = "";
src = fetchurl {
url = "http://virt-manager.org/download/sources/virt-manager/${name}.tar.gz";
sha256 = "1n248kack1fni8y17ysgq5xhvffcgy4l62hnd0zvr4kjw0579qq8";
};
propagatedBuildInputs =
[ eventlet greenlet gflags netaddr sqlalchemy carrot routes
paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
distutils_extra simplejson readline glance cheetah lockfile httplib2
urlgrabber virtinst pyGtkGlade pythonDBus gnome_python pygobject3
libvirt libxml2Python ipaddr vte
] ++ optional spiceSupport spice_gtk;
buildInputs =
[ mox
intltool
gtkvnc
gtk3
libvirt-glib
avahi
glib
gobjectIntrospection
];
configurePhase = ''
sed -i 's/from distutils.core/from setuptools/g' setup.py
sed -i 's/from distutils.command.install/from setuptools.command.install/g' setup.py
python setup.py configure --prefix=$out
'';
buildPhase = "true";
postInstall = ''
# GI_TYPELIB_PATH is needed at runtime for GObject stuff to work
for file in "$out"/bin/*; do
wrapProgram "$file" \
--prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH \
--prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" \
--prefix GSETTINGS_SCHEMA_DIR : $out/share/glib-2.0/schemas \
--prefix LD_LIBRARY_PATH : ${gtk3}/lib/:${libvirt-glib}/lib/:${vte}/lib:${gtkvnc}/lib${optionalString spiceSupport ":${spice_gtk}/lib"} \
--prefix XDG_DATA_DIRS : "$out/share:${gsettings_desktop_schemas}/share:${gtk3}/share:$GSETTINGS_SCHEMAS_PATH:\$XDG_DATA_DIRS"
done
${glib}/bin/glib-compile-schemas "$out"/share/glib-2.0/schemas
'';
# 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;
maintainers = with maintainers; [qknight offline];
};
}