From 4ede302207b728e94bc4d24d2d783f49b69e086b Mon Sep 17 00:00:00 2001 From: "Ricardo M. Correia" Date: Fri, 10 Jan 2014 20:43:55 +0100 Subject: [PATCH] virt-manager: Add graphical support for the Spice protocol --- .../virtualization/virt-manager/default.nix | 8 ++- .../libraries/spice-gtk/default.nix | 55 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/libraries/spice-gtk/default.nix diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix index c205a09baf4b..9eee8c2ca4ea 100644 --- a/pkgs/applications/virtualization/virt-manager/default.nix +++ b/pkgs/applications/virtualization/virt-manager/default.nix @@ -1,5 +1,7 @@ -{ stdenv, fetchurl, pythonPackages, intltool, libxml2Python, curl, - python, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc, vte}: +{ stdenv, fetchurl, pythonPackages, intltool, libxml2Python, curl, python +, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc, vte +, spiceSupport ? true, spice_gtk +}: with stdenv.lib; @@ -21,7 +23,7 @@ stdenv.mkDerivation rec { # libxml2Python is a dependency of libvirt.py. libvirt libxml2Python urlgrabber virtinst pyGtkGlade pythonDBus gnome_python gtkvnc vte - ]; + ] ++ optional spiceSupport spice_gtk; buildInputs = [ pythonPackages.python diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix new file mode 100644 index 000000000000..60bf24dfd784 --- /dev/null +++ b/pkgs/development/libraries/spice-gtk/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, pkgconfig, gtk, spice_protocol, intltool, celt_0_5_1 +, openssl, pulseaudio, pixman, gobjectIntrospection, libjpeg_turbo, zlib +, cyrus_sasl, python, pygtk, autoconf, automake, libtool }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "spice-gtk-0.22"; + + src = fetchurl { + url = "http://www.spice-space.org/download/gtk/${name}.tar.bz2"; + sha256 = "0fpsn6qhy9a701lmd4yym6qz6zhpp8xp6vw42al0b4592pcybs85"; + }; + + buildInputs = [ + gtk spice_protocol celt_0_5_1 openssl pulseaudio pixman gobjectIntrospection + libjpeg_turbo zlib cyrus_sasl python pygtk + ]; + + nativeBuildInputs = [ pkgconfig intltool libtool autoconf automake ]; + + NIX_CFLAGS_COMPILE = "-fno-stack-protector"; + + preConfigure = '' + substituteInPlace gtk/Makefile.am \ + --replace '=codegendir pygtk-2.0' '=codegendir pygobject-2.0' + + autoreconf -v --force --install + intltoolize -f + ''; + + configureFlags = [ + "--disable-maintainer-mode" + "--with-gtk=2.0" + ]; + + dontDisableStatic = true; # Needed by the coroutine test + + enableParallelBuilding = true; + + meta = { + description = "A GTK+2 and GTK+3 SPICE widget"; + longDescription = '' + spice-gtk is a GTK+2 and GTK+3 SPICE widget. It features glib-based + objects for SPICE protocol parsing and a gtk widget for embedding + the SPICE display into other applications such as virt-manager. + Python bindings are available too. + ''; + + homepage = http://www.spice-space.org/; + license = licenses.lgpl21; + + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ac8ef80eec8c..5d450aff88db 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5741,6 +5741,8 @@ let inherit (pythonPackages) pyparsing; }; + spice_gtk = callPackage ../development/libraries/spice-gtk { }; + spice_protocol = callPackage ../development/libraries/spice-protocol { }; sratom = callPackage ../development/libraries/audio/sratom { };