summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-misc/spice-gtk
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-misc/spice-gtk')
-rw-r--r--net-misc/spice-gtk/Manifest4
-rw-r--r--net-misc/spice-gtk/files/0.12-parallel-install.patch16
-rw-r--r--net-misc/spice-gtk/files/0.14-Deal-with-libusbredirparser.pc-rename-to-libusbredir.patch57
-rw-r--r--net-misc/spice-gtk/files/0001-build-sys-fix-out-of-tree-build-with-vala.patch35
-rw-r--r--net-misc/spice-gtk/files/spice-gtk-0.20-add-spice-channel-string-to-type.patch84
-rw-r--r--net-misc/spice-gtk/files/spice-gtk-0.21-fix-g-clear-pointer-on-old-glib.patch22
-rw-r--r--net-misc/spice-gtk/files/spice-gtk-0.25-Do-not-depend-on-libsoup-directly.patch29
-rw-r--r--net-misc/spice-gtk/files/spice-gtk-0.25-Introduce-enable-disable-webdav-option.patch54
-rw-r--r--net-misc/spice-gtk/files/spice-gtk-0.25-missing_gio_libs.patch12
-rw-r--r--net-misc/spice-gtk/files/spice.protocol12
-rw-r--r--net-misc/spice-gtk/files/spice.schemas41
-rw-r--r--net-misc/spice-gtk/metadata.xml27
-rw-r--r--net-misc/spice-gtk/spice-gtk-0.20-r1.ebuild170
-rw-r--r--net-misc/spice-gtk/spice-gtk-0.21.ebuild174
-rw-r--r--net-misc/spice-gtk/spice-gtk-0.25-r1.ebuild180
-rw-r--r--net-misc/spice-gtk/spice-gtk-0.28.ebuild159
16 files changed, 1076 insertions, 0 deletions
diff --git a/net-misc/spice-gtk/Manifest b/net-misc/spice-gtk/Manifest
new file mode 100644
index 000000000000..a20f392993fe
--- /dev/null
+++ b/net-misc/spice-gtk/Manifest
@@ -0,0 +1,4 @@
+DIST spice-gtk-0.20.tar.bz2 1210694 SHA256 b1355823b0ceb2e118c1f9a9a602ccab78e1e2edf2d93f71fa42d3bc85ca75df SHA512 db07d05d93bf5639c193f374b6eb3fe9f6bb198f0146e64f8e6e6c03d12e931c1f18a353aed123fe28535a95eb8448ef8a8babc66bdd283f951b8433839d6b9e WHIRLPOOL 82ea2e7a1ebec0155c6aadd03143456498db332e64f4a2c5cb15beb47e0371790ee5fc29b7ff1b40dba34c63dd021cecf6f27cd1aaa1c58c465f9bb2d22ca50e
+DIST spice-gtk-0.21.tar.bz2 1191082 SHA256 73d418ffa97d6cf5edb1920d46f1d51fc40d14a8d4edfab3be6041e25062c564 SHA512 970c5de33c5f2117c4c4c0864da4d3796226771be54fdcc5393d17eefecb297cdc0767003699afa03db7e72a9810de4d157217e40de62013e410b90c8c759151 WHIRLPOOL caabfcc4654077dce70d9f82d7ccd77bd390d365c23f6c82c906b5490c1dd135c82c48e2aab486b699470829b24b3253dcb39c22921c13132dc16a03369d62f9
+DIST spice-gtk-0.25.tar.bz2 1242457 SHA256 0730c6a80ad9f5012f65927d443377019f300573f7ccc93db84eadec462ad087 SHA512 5d44ffa784af3c94492e80129b7350065f4d108c8e3bc42be673fc1f42b47023757d0b8131d047432b7c59c03662db0652759cb4bdf677062a6d1e0508d02bd9 WHIRLPOOL 63002ec6d309c949d296e70ff5e22a7cf9e8300e7001e37a4a5b2de6ccb833915d884798347e04a06c60ea4508f85f265b3d4b4dc1c00a3a8e036ddf21e003f8
+DIST spice-gtk-0.28.tar.bz2 1274095 SHA256 15aeeb63422cb3bfaa2edbf4602ed2025baa4455abfd1677f631245a0d0f81c4 SHA512 a183ab3d9a463de13acc3333d6927fbaba00f184b40f4346d1fd4de94a3394a6cdfeb51b02666be9154d9f65184d1499560f2aa5a387a526915671e951e1493f WHIRLPOOL 96e25ec39b060136b9e6b1cbb5c38c06f319aeb582742acc2741abb29ea45853fe2fe5f2c2da5a0c61176bdd68e37a7be1f64d0b02b1e8db6754514a2a20bfe5
diff --git a/net-misc/spice-gtk/files/0.12-parallel-install.patch b/net-misc/spice-gtk/files/0.12-parallel-install.patch
new file mode 100644
index 000000000000..04a22bdf066d
--- /dev/null
+++ b/net-misc/spice-gtk/files/0.12-parallel-install.patch
@@ -0,0 +1,16 @@
+diff --git a/gtk/Makefile.am b/gtk/Makefile.am
+index 7b29e61..86b3939 100644
+--- a/gtk/Makefile.am
++++ b/gtk/Makefile.am
+@@ -505,6 +505,11 @@ vncdisplaykeymap_win322xtkbd.c:
+ if WITH_PYTHON
+ pyexec_LTLIBRARIES = SpiceClientGtk.la
+
++# workaround for broken parallel install support in automake with LTLIBRARIES
++# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328
++install_pyexecLTLIBRARIES = install-pyexecLTLIBRARIES
++$(install_pyexecLTLIBRARIES): install-libLTLIBRARIES
++
+ SpiceClientGtk_la_LIBADD = libspice-client-gtk-2.0.la libspice-client-glib-2.0.la $(PYGTK_LIBS)
+ SpiceClientGtk_la_CFLAGS = $(GTK_CFLAGS) $(PYTHON_INCLUDES) $(PYGTK_CFLAGS) $(WARN_PYFLAGS)
+ SpiceClientGtk_la_LDFLAGS = -module -avoid-version -fPIC
diff --git a/net-misc/spice-gtk/files/0.14-Deal-with-libusbredirparser.pc-rename-to-libusbredir.patch b/net-misc/spice-gtk/files/0.14-Deal-with-libusbredirparser.pc-rename-to-libusbredir.patch
new file mode 100644
index 000000000000..046794531803
--- /dev/null
+++ b/net-misc/spice-gtk/files/0.14-Deal-with-libusbredirparser.pc-rename-to-libusbredir.patch
@@ -0,0 +1,57 @@
+From a8a6ac1d0f4893860efad48833ce6168f684054a Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 25 Sep 2012 12:59:13 +0200
+Subject: [PATCH 01/21] Deal with libusbredirparser.pc rename to
+ libusbredirparser-0.5.pc
+
+The usbredir 0.5 release introduced the new API for 64 bit packet ids, but
+it kept the libusbredirparser.pc name as is, meaning that older versions of
+qemu will still have their pkg-config check for usbredirparser fulfilled,
+and build with the usb-redir device. Due to the API change there will be
+some compiler warnings, but the build will succeed, however the usb-redir
+device will be broken on 32 bit machines.
+
+To solve this, the usbredir-0.5.2 release renames the libusbredirparser.pc
+file to libusbredirparser-0.5.pc, so that it will no longer fulfill the
+pkg-config check of the qemu-1.2 and older releases, stopping the (silent)
+breakage.
+
+spice-gtk does not use the changed parts of the API, but does
+use libusbredirparser for the usbredirfilter* functions. This patch adapts
+spice-gtk's configure to accept both the libusbredirparser-0.5 and the
+libusbredirparser pkg-config names.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ configure.ac | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c7367cc..7c59575 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -349,10 +349,17 @@ AC_ARG_ENABLE([usbredir],
+ if test "x$enable_usbredir" = "xno"; then
+ have_usbredir="no"
+ else
+- PKG_CHECK_MODULES([USBREDIR],
+- [libusb-1.0 >= 1.0.9 libusbredirhost >= 0.4.2 libusbredirparser >= 0.4],
+- [have_usbredir=yes],
+- [have_usbredir=no])
++ if ${PKG_CONFIG} libusbredirparser-0.5; then
++ PKG_CHECK_MODULES([USBREDIR],
++ [libusb-1.0 >= 1.0.9 libusbredirhost libusbredirparser-0.5],
++ [have_usbredir=yes],
++ [have_usbredir=no])
++ else
++ PKG_CHECK_MODULES([USBREDIR],
++ [libusb-1.0 >= 1.0.9 libusbredirhost >= 0.4.2 libusbredirparser >= 0.4],
++ [have_usbredir=yes],
++ [have_usbredir=no])
++ fi
+ if test "x$have_usbredir" = "xno" && test "x$enable_usbredir" = "xyes"; then
+ AC_MSG_ERROR([usbredir support explicitly requested, but some required packages are not available])
+ fi
+--
+1.7.12.1
+
diff --git a/net-misc/spice-gtk/files/0001-build-sys-fix-out-of-tree-build-with-vala.patch b/net-misc/spice-gtk/files/0001-build-sys-fix-out-of-tree-build-with-vala.patch
new file mode 100644
index 000000000000..92be8ccc5aa4
--- /dev/null
+++ b/net-misc/spice-gtk/files/0001-build-sys-fix-out-of-tree-build-with-vala.patch
@@ -0,0 +1,35 @@
+From 6d454e4100a01499c13d55057fdd9307437a5f87 Mon Sep 17 00:00:00 2001
+From: Andrew Hughes <gnu.andrew@redhat.com>
+Date: Wed, 16 Jan 2013 22:47:18 +0000
+Subject: build-sys: fix out-of-tree build with vala
+
+---
+diff --git a/gtk/controller/Makefile.am b/gtk/controller/Makefile.am
+index f2abf93..00552e8 100644
+--- a/gtk/controller/Makefile.am
++++ b/gtk/controller/Makefile.am
+@@ -76,14 +76,16 @@ spice_controller_dump_SOURCES = dump.c
+ spice_controller_dump_LDADD = libspice-controller.la
+
+ controller.vala.stamp: $(libspice_controller_la_VALASOURCES) custom.vapi
+- @if test -z "$(VALAC)"; then \
+- echo "" ; \
+- echo " *** Error: missing valac!" ; \
++ @if test -z "$(VALAC)"; then \
++ echo "" ; \
++ echo " *** Error: missing valac!" ; \
+ echo " *** You must run autogen.sh or configure --enable-vala" ; \
+- echo "" ; \
+- exit 1 ; \
++ echo "" ; \
++ exit 1 ; \
+ fi
+- $(VALA_V)$(VALAC) $(VALAFLAGS) $(AM_VALAFLAGS) $(libspice_controller_la_VALASOURCES) -H spice-controller.h
++ $(VALA_V)$(VALAC) $(VALAFLAGS) $(AM_VALAFLAGS) \
++ $(addprefix $(srcdir)/,$(libspice_controller_la_VALASOURCES)) \
++ -H spice-controller.h
+ @touch $@
+
+ $(libspice_controller_la_BUILT_SOURCES): controller.vala.stamp
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/net-misc/spice-gtk/files/spice-gtk-0.20-add-spice-channel-string-to-type.patch b/net-misc/spice-gtk/files/spice-gtk-0.20-add-spice-channel-string-to-type.patch
new file mode 100644
index 000000000000..3375d801ab2d
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice-gtk-0.20-add-spice-channel-string-to-type.patch
@@ -0,0 +1,84 @@
+From b85ca792af72d5f1e10aa6af9515eb96a044fc5c Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Wed, 26 Jun 2013 15:39:39 +0000
+Subject: Add spice_channel_string_to_type to map files
+
+And document both spice_channel_string_to_type and
+spice_channel_type_to_string.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+diff --git a/doc/reference/spice-gtk-sections.txt b/doc/reference/spice-gtk-sections.txt
+index e1e2833..8d61aa9 100644
+--- a/doc/reference/spice-gtk-sections.txt
++++ b/doc/reference/spice-gtk-sections.txt
+@@ -98,6 +98,7 @@ spice_channel_disconnect
+ spice_channel_test_capability
+ spice_channel_test_common_capability
+ spice_channel_type_to_string
++spice_channel_string_to_type
+ spice_channel_set_capability
+ spice_channel_flush_async
+ spice_channel_flush_finish
+diff --git a/gtk/map-file b/gtk/map-file
+index a0b7330..a69eb40 100644
+--- a/gtk/map-file
++++ b/gtk/map-file
+@@ -11,6 +11,7 @@ spice_channel_get_type;
+ spice_channel_new;
+ spice_channel_open_fd;
+ spice_channel_set_capability;
++spice_channel_string_to_type;
+ spice_channel_test_capability;
+ spice_channel_test_common_capability;
+ spice_channel_type_to_string;
+diff --git a/gtk/spice-channel.c b/gtk/spice-channel.c
+index 0a32d6c..093b292 100644
+--- a/gtk/spice-channel.c
++++ b/gtk/spice-channel.c
+@@ -1884,6 +1884,15 @@ static const char *to_string[] = {
+ [ SPICE_CHANNEL_PORT ] = "port",
+ };
+
++/**
++ * spice_channel_type_to_string:
++ * @type: a channel-type property value
++ *
++ * Convert a channel-type property value to a string.
++ *
++ * Returns: string representation of @type.
++ * Since: 0.20
++ **/
+ const gchar* spice_channel_type_to_string(gint type)
+ {
+ const char *str = NULL;
+@@ -1895,6 +1904,15 @@ const gchar* spice_channel_type_to_string(gint type)
+ return str ? str : "unknown channel type";
+ }
+
++/**
++ * spice_channel_string_to_type:
++ * @str: a string representation of the channel-type property
++ *
++ * Convert a channel-type property value to a string.
++ *
++ * Returns: the channel-type property value for a @str channel
++ * Since: 0.21
++ **/
+ gint spice_channel_string_to_type(const gchar *str)
+ {
+ int i;
+diff --git a/gtk/spice-glib-sym-file b/gtk/spice-glib-sym-file
+index 2b172d0..8540307 100644
+--- a/gtk/spice-glib-sym-file
++++ b/gtk/spice-glib-sym-file
+@@ -14,6 +14,7 @@ spice_channel_set_capability
+ spice_channel_test_capability
+ spice_channel_test_common_capability
+ spice_channel_type_to_string
++spice_channel_string_to_type
+ spice_client_error_quark
+ spice_cursor_channel_get_type
+ spice_display_channel_get_type
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/net-misc/spice-gtk/files/spice-gtk-0.21-fix-g-clear-pointer-on-old-glib.patch b/net-misc/spice-gtk/files/spice-gtk-0.21-fix-g-clear-pointer-on-old-glib.patch
new file mode 100644
index 000000000000..83e51db67d8b
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice-gtk-0.21-fix-g-clear-pointer-on-old-glib.patch
@@ -0,0 +1,22 @@
+From f31bc2a9a6700bebc258130e802f40180af77d8e Mon Sep 17 00:00:00 2001
+From: Marc-André Lureau <marcandre.lureau@redhat.com>
+Date: Fri, 20 Sep 2013 15:54:58 +0000
+Subject: build-sys: fix g_clear_pointer usage on old glib
+
+As pointed out and verified on the ML after 0.21 release by Klaus
+Hochlehnert.
+---
+diff --git a/gtk/channel-cursor.c b/gtk/channel-cursor.c
+index 0443b9f..bbfb3c9 100644
+--- a/gtk/channel-cursor.c
++++ b/gtk/channel-cursor.c
+@@ -15,6 +15,7 @@
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
++#include "glib-compat.h"
+ #include "spice-client.h"
+ #include "spice-common.h"
+
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/net-misc/spice-gtk/files/spice-gtk-0.25-Do-not-depend-on-libsoup-directly.patch b/net-misc/spice-gtk/files/spice-gtk-0.25-Do-not-depend-on-libsoup-directly.patch
new file mode 100644
index 000000000000..fe24734ed0d5
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice-gtk-0.25-Do-not-depend-on-libsoup-directly.patch
@@ -0,0 +1,29 @@
+From 1dcf7acb4288a27f125458bfa86cf614437657d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tiziano.mueller@stepping-stone.ch>
+Date: Tue, 20 May 2014 18:49:28 +0200
+Subject: [PATCH 2/2] Do not depend on libsoup directly
+
+The libsoup-dependency is not directly used but comes in as a dependency
+of phodav and phodav has libsoup correctly recorded in its pkg-config
+file.
+---
+ configure.ac | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 70ab75c..f47ee20 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -267,9 +267,6 @@ PKG_CHECK_MODULES(GTHREAD, gthread-2.0 > 2.0.0)
+ AC_SUBST(GTHREAD_CFLAGS)
+ AC_SUBST(GTHREAD_LIBS)
+
+-PKG_CHECK_MODULES(SOUP, libsoup-2.4)
+-AC_SUBST(SOUP_CFLAGS)
+-AC_SUBST(SOUP_LIBS)
+ AC_ARG_ENABLE([webdav],
+ AS_HELP_STRING([--enable-webdav=@<:@auto/yes/no@:>@],
+ [Enable webdav support @<:@default=auto@:>@]),
+--
+1.9.2
+
diff --git a/net-misc/spice-gtk/files/spice-gtk-0.25-Introduce-enable-disable-webdav-option.patch b/net-misc/spice-gtk/files/spice-gtk-0.25-Introduce-enable-disable-webdav-option.patch
new file mode 100644
index 000000000000..817a9b0a6d0a
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice-gtk-0.25-Introduce-enable-disable-webdav-option.patch
@@ -0,0 +1,54 @@
+From f25626a68a2fb83b02ee7a13dd4887d1305bc068 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tiziano.mueller@stepping-stone.ch>
+Date: Tue, 20 May 2014 18:48:05 +0200
+Subject: [PATCH 1/2] Introduce --enable/disable-webdav option
+
+This makes the phodav dependency configureable.
+And name it after the corresponding channel.
+---
+ configure.ac | 21 +++++++++++++++++----
+ 1 file changed, 17 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d89bd6f..70ab75c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -270,10 +270,23 @@ AC_SUBST(GTHREAD_LIBS)
+ PKG_CHECK_MODULES(SOUP, libsoup-2.4)
+ AC_SUBST(SOUP_CFLAGS)
+ AC_SUBST(SOUP_LIBS)
++AC_ARG_ENABLE([webdav],
++ AS_HELP_STRING([--enable-webdav=@<:@auto/yes/no@:>@],
++ [Enable webdav support @<:@default=auto@:>@]),
++ [],
++ [enable_webdav="auto"])
++
++if test "x$enable_webdav" = "xno"; then
++ have_phodav="no"
++else
++ PKG_CHECK_MODULES(PHODAV, [libphodav-1.0], [have_phodav=yes], [have_phodav=no])
++ AC_SUBST(PHODAV_CFLAGS)
++ AC_SUBST(PHODAV_LIBS)
+
+-PKG_CHECK_MODULES(PHODAV, [libphodav-1.0], [have_phodav=yes], [have_phodav=no])
+-AC_SUBST(PHODAV_CFLAGS)
+-AC_SUBST(PHODAV_LIBS)
++ if test "x$have_phodav" = "xno" && test "x$enable_webdav" = "xyes"; then
++ AC_MSG_ERROR([webdav support explicitly requested, but some required packages are not available])
++ fi
++fi
+ AS_IF([test "x$have_phodav" = "xyes"],
+ AC_DEFINE(USE_PHODAV, [1], [Define if supporting phodav]))
+
+@@ -754,7 +767,7 @@ AC_MSG_NOTICE([
+ Smartcard support: ${have_smartcard}
+ USB redirection support: ${have_usbredir} ${with_usbredir_hotplug}
+ DBus: ${have_dbus}
+- PhoDAV: ${have_phodav}
++ WebDAV support: ${have_phodav}
+
+ Now type 'make' to build $PACKAGE
+
+--
+1.9.2
+
diff --git a/net-misc/spice-gtk/files/spice-gtk-0.25-missing_gio_libs.patch b/net-misc/spice-gtk/files/spice-gtk-0.25-missing_gio_libs.patch
new file mode 100644
index 000000000000..8429afd50609
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice-gtk-0.25-missing_gio_libs.patch
@@ -0,0 +1,12 @@
+diff --git a/gtk/Makefile.am b/gtk/Makefile.am
+index 8da1a11..6332db9 100644
+--- a/gtk/Makefile.am
++++ b/gtk/Makefile.am
+@@ -189,6 +189,7 @@ libspice_client_glib_2_0_la_LIBADD = \
+ $(top_builddir)/spice-common/common/libspice-common-client.la \
+ $(GLIB2_LIBS) \
+ $(SOUP_LIBS) \
++ $(GIO_LIBS) \
+ $(GOBJECT2_LIBS) \
+ $(CELT051_LIBS) \
+ $(OPUS_LIBS) \
diff --git a/net-misc/spice-gtk/files/spice.protocol b/net-misc/spice-gtk/files/spice.protocol
new file mode 100644
index 000000000000..348247f8ca12
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice.protocol
@@ -0,0 +1,12 @@
+[Protocol]
+exec=/usr/bin/spicy --uri="%u"
+protocol=spice
+input=none
+output=none
+helper=true
+listing=
+reading=false
+writing=false
+makedir=false
+deleting=false
+
diff --git a/net-misc/spice-gtk/files/spice.schemas b/net-misc/spice-gtk/files/spice.schemas
new file mode 100644
index 000000000000..43b12171c847
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice.schemas
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<gconfschemafile>
+<schemalist>
+<schema>
+ <key>/schemas/desktop/gnome/url-handlers/spice/enabled</key>
+ <applyto>/desktop/gnome/url-handlers/spice/enabled</applyto>
+ <owner>spice</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>How to handle spice URLs</short>
+ <long>Set to true to have a program specified in command handle spice URLs</long>
+ </locale>
+</schema>
+
+ <schema>
+ <key>/schemas/desktop/gnome/url-handlers/spice/command</key>
+ <applyto>/desktop/gnome/url-handlers/spice/command</applyto>
+ <owner>spice</owner>
+ <type>string</type>
+ <default>/usr/bin/spicy --uri="%s"</default>
+ <locale name="C">
+ <short>URL handler for spice URIs</short>
+ <long>URL handler for spice URIs</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/gnome/url-handlers/spice/need-terminal</key>
+ <applyto>/desktop/gnome/url-handlers/spice/need-terminal</applyto>
+ <owner>spice</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Run program in terminal</short>
+ <long>True if the program to handle this URL should be run in a terminal</long>
+ </locale>
+ </schema>
+</schemalist>
+</gconfschemafile>
+
diff --git a/net-misc/spice-gtk/metadata.xml b/net-misc/spice-gtk/metadata.xml
new file mode 100644
index 000000000000..ef05c1f54b7e
--- /dev/null
+++ b/net-misc/spice-gtk/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>virtualization</herd>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+ <use>
+ <flag name="dbus">Support for desktop integration such as
+ automounting and other APIs exposed by your DE via D-Bus</flag>
+ <flag name="gtk3">Link against <pkg>x11-libs/gtk+:3</pkg> instead of
+ <pkg>x11-libs/gtk+:2</pkg></flag>
+ <flag name="lz4">Enable support for LZ4 compression using <pkg>app-arch/lz4</pkg></flag>
+ <flag name="policykit">Enable <pkg>sys-auth/polkit</pkg> support for the
+ usbredir acl helper</flag>
+ <flag name="usbredir">Use <pkg>sys-apps/usbredir</pkg> to redirect USB
+ devices to another machine over TCP</flag>
+ <flag name="vala">Generate <pkg>dev-lang/vala</pkg> bindings using
+ vapigen and regenerate .vala files using valac</flag>
+ <flag name="webdav">Support for folder-sharing between guest and client
+ using <pkg>net-libs/phodav</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="gitorious">spice-gtk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-misc/spice-gtk/spice-gtk-0.20-r1.ebuild b/net-misc/spice-gtk/spice-gtk-0.20-r1.ebuild
new file mode 100644
index 000000000000..e447d1bddce0
--- /dev/null
+++ b/net-misc/spice-gtk/spice-gtk-0.20-r1.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+WANT_AUTOMAKE="1.12"
+VALA_MIN_API_VERSION="0.14"
+VALA_USE_DEPEND="vapigen"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-single-r1 vala
+
+DESCRIPTION="Set of GObject and Gtk objects for connecting to Spice servers and a client GUI"
+HOMEPAGE="http://spice-space.org http://gitorious.org/spice-gtk"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+SRC_URI="http://spice-space.org/download/gtk/${P}.tar.bz2"
+KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86"
+IUSE="dbus doc gstreamer gtk3 +introspection policykit pulseaudio
+python sasl smartcard static-libs usbredir vala"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ ?? ( pulseaudio gstreamer )"
+
+# TODO:
+# * check if sys-freebsd/freebsd-lib (from virtual/acl) provides acl/libacl.h
+# * use external pnp.ids as soon as that means not pulling in gnome-desktop
+RDEPEND="${PYTHON_DEPS}
+ pulseaudio? ( media-sound/pulseaudio[glib] )
+ gstreamer? (
+ media-libs/gstreamer:0.10
+ media-libs/gst-plugins-base:0.10 )
+ >=x11-libs/pixman-0.17.7
+ >=media-libs/celt-0.5.1.1:0.5.1
+ dev-libs/openssl
+ gtk3? ( x11-libs/gtk+:3[introspection?] )
+ x11-libs/gtk+:2[introspection?]
+ >=dev-libs/glib-2.26:2
+ >=x11-libs/cairo-1.2
+ virtual/jpeg
+ sys-libs/zlib
+ dbus? ( dev-libs/dbus-glib )
+ introspection? ( dev-libs/gobject-introspection )
+ python? ( dev-python/pygtk:2 )
+ sasl? ( dev-libs/cyrus-sasl )
+ smartcard? ( app-emulation/libcacard )
+ usbredir? (
+ sys-apps/hwids
+ >=sys-apps/usbredir-0.4.2
+ virtual/libusb:1
+ virtual/libgudev:=
+ policykit? (
+ sys-apps/acl
+ >=sys-auth/polkit-0.101 )
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/python
+ dev-python/pyparsing
+ dev-perl/Text-CSV
+ >=dev-util/intltool-0.40.0
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )"
+
+# Hard-deps while building from git:
+# dev-lang/vala:0.14
+# dev-lang/perl
+
+GTK2_BUILDDIR="${WORKDIR}/${P}_gtk2"
+GTK3_BUILDDIR="${WORKDIR}/${P}_gtk3"
+
+src_prepare() {
+ use vala && vala_src_prepare
+ mkdir ${GTK2_BUILDDIR} ${GTK3_BUILDDIR} || die
+
+ epatch "${FILESDIR}"/${P}-add-spice-channel-string-to-type.patch
+}
+
+src_configure() {
+ local myconf
+ local audio="no"
+
+ use gstreamer && audio="gstreamer"
+ use pulseaudio && audio="pulse"
+
+ if use vala ; then
+ # force vala regen for MinGW, etc
+ rm -fv gtk/controller/controller.{c,vala.stamp} gtk/controller/menu.c
+ fi
+
+ myconf="
+ $(use_enable static-libs static) \
+ $(use_enable introspection) \
+ --with-audio=${audio} \
+ $(use_with python) \
+ $(use_with sasl) \
+ $(use_enable smartcard) \
+ $(use_enable usbredir) \
+ $(use_with usbredir usb-ids-path /usr/share/misc/usb.ids) \
+ $(use_with usbredir usb-acl-helper-dir /usr/libexec) \
+ $(use_enable policykit polkit) \
+ $(use_enable vala) \
+ $(use_enable dbus) \
+ $(use_enable doc gtk-doc) \
+ --disable-werror \
+ --enable-pie"
+
+ cd ${GTK2_BUILDDIR}
+ echo "Running configure in ${GTK2_BUILDDIR}"
+ ECONF_SOURCE="${S}" econf --disable-maintainer-mode \
+ --with-gtk=2.0 \
+ ${myconf}
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ echo "Running configure in ${GTK3_BUILDDIR}"
+ ECONF_SOURCE="${S}" econf --disable-maintainer-mode \
+ --with-gtk=3.0 \
+ ${myconf}
+ fi
+}
+
+src_compile() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make in ${GTK3_BUILDDIR}"
+ default
+ fi
+}
+
+src_test() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make check in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make check in ${GTK3_BUILDDIR}"
+ default
+ fi
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog NEWS README THANKS TODO
+
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make check in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make install in ${GTK3_BUILDDIR}"
+ default
+ fi
+
+ # Remove .la files if they're not needed
+ use static-libs || prune_libtool_files
+
+ use python && rm -rf "${ED}"/usr/lib*/python*/site-packages/*.la
+
+ make_desktop_entry spicy Spicy "utilities-terminal" "Network;RemoteAccess;"
+}
diff --git a/net-misc/spice-gtk/spice-gtk-0.21.ebuild b/net-misc/spice-gtk/spice-gtk-0.21.ebuild
new file mode 100644
index 000000000000..efdc40452655
--- /dev/null
+++ b/net-misc/spice-gtk/spice-gtk-0.21.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+WANT_AUTOMAKE="1.12"
+VALA_MIN_API_VERSION="0.14"
+VALA_USE_DEPEND="vapigen"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-single-r1 vala
+
+DESCRIPTION="Set of GObject and Gtk objects for connecting to Spice servers and a client GUI"
+HOMEPAGE="http://spice-space.org http://gitorious.org/spice-gtk"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+SRC_URI="http://spice-space.org/download/gtk/${P}.tar.bz2"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86"
+IUSE="dbus doc gstreamer gtk3 +introspection policykit pulseaudio
+python sasl smartcard static-libs usbredir vala"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ ?? ( pulseaudio gstreamer )"
+
+# TODO:
+# * check if sys-freebsd/freebsd-lib (from virtual/acl) provides acl/libacl.h
+# * use external pnp.ids as soon as that means not pulling in gnome-desktop
+RDEPEND="${PYTHON_DEPS}
+ pulseaudio? ( media-sound/pulseaudio[glib] )
+ gstreamer? (
+ media-libs/gstreamer:0.10
+ media-libs/gst-plugins-base:0.10 )
+ >=x11-libs/pixman-0.17.7
+ >=media-libs/celt-0.5.1.1:0.5.1
+ dev-libs/openssl
+ gtk3? ( x11-libs/gtk+:3[introspection?] )
+ x11-libs/gtk+:2[introspection?]
+ >=dev-libs/glib-2.26:2
+ >=x11-libs/cairo-1.2
+ virtual/jpeg
+ sys-libs/zlib
+ dbus? ( dev-libs/dbus-glib )
+ introspection? ( dev-libs/gobject-introspection )
+ python? ( dev-python/pygtk:2 )
+ sasl? ( dev-libs/cyrus-sasl )
+ smartcard? ( app-emulation/libcacard )
+ usbredir? (
+ sys-apps/hwids
+ >=sys-apps/usbredir-0.4.2
+ virtual/libusb:1
+ virtual/libgudev:=
+ policykit? (
+ sys-apps/acl
+ >=sys-auth/polkit-0.110-r1
+ !~sys-auth/polkit-0.111 )
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/python
+ dev-python/pyparsing
+ dev-perl/Text-CSV
+ >=dev-util/intltool-0.40.0
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )"
+
+# Hard-deps while building from git:
+# dev-lang/vala:0.14
+# dev-lang/perl
+
+GTK2_BUILDDIR="${WORKDIR}/${P}_gtk2"
+GTK3_BUILDDIR="${WORKDIR}/${P}_gtk3"
+
+src_prepare() {
+
+ epatch "${FILESDIR}"/spice-gtk-0.21-fix-g-clear-pointer-on-old-glib.patch
+
+ epatch_user
+
+ use vala && vala_src_prepare
+ mkdir ${GTK2_BUILDDIR} ${GTK3_BUILDDIR} || die
+}
+
+src_configure() {
+ local myconf
+ local audio="no"
+
+ use gstreamer && audio="gstreamer"
+ use pulseaudio && audio="pulse"
+
+ if use vala ; then
+ # force vala regen for MinGW, etc
+ rm -fv gtk/controller/controller.{c,vala.stamp} gtk/controller/menu.c
+ fi
+
+ myconf="
+ $(use_enable static-libs static) \
+ $(use_enable introspection) \
+ --with-audio=${audio} \
+ $(use_with python) \
+ $(use_with sasl) \
+ $(use_enable smartcard) \
+ $(use_enable usbredir) \
+ $(use_with usbredir usb-ids-path /usr/share/misc/usb.ids) \
+ $(use_with usbredir usb-acl-helper-dir /usr/libexec) \
+ $(use_enable policykit polkit) \
+ $(use_enable vala) \
+ $(use_enable dbus) \
+ $(use_enable doc gtk-doc) \
+ --disable-werror \
+ --enable-pie"
+
+ cd ${GTK2_BUILDDIR}
+ echo "Running configure in ${GTK2_BUILDDIR}"
+ ECONF_SOURCE="${S}" econf --disable-maintainer-mode \
+ --with-gtk=2.0 \
+ ${myconf}
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ echo "Running configure in ${GTK3_BUILDDIR}"
+ ECONF_SOURCE="${S}" econf --disable-maintainer-mode \
+ --with-gtk=3.0 \
+ ${myconf}
+ fi
+}
+
+src_compile() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make in ${GTK3_BUILDDIR}"
+ default
+ fi
+}
+
+src_test() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make check in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make check in ${GTK3_BUILDDIR}"
+ default
+ fi
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog NEWS README THANKS TODO
+
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make check in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make install in ${GTK3_BUILDDIR}"
+ default
+ fi
+
+ # Remove .la files if they're not needed
+ use static-libs || prune_libtool_files
+
+ use python && rm -rf "${ED}"/usr/lib*/python*/site-packages/*.la
+
+ make_desktop_entry spicy Spicy "utilities-terminal" "Network;RemoteAccess;"
+}
diff --git a/net-misc/spice-gtk/spice-gtk-0.25-r1.ebuild b/net-misc/spice-gtk/spice-gtk-0.25-r1.ebuild
new file mode 100644
index 000000000000..5ddbfec96193
--- /dev/null
+++ b/net-misc/spice-gtk/spice-gtk-0.25-r1.ebuild
@@ -0,0 +1,180 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+WANT_AUTOMAKE="1.12"
+VALA_MIN_API_VERSION="0.14"
+VALA_USE_DEPEND="vapigen"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils python-single-r1 vala
+
+DESCRIPTION="Set of GObject and Gtk objects for connecting to Spice servers and a client GUI"
+HOMEPAGE="http://spice-space.org http://gitorious.org/spice-gtk"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+SRC_URI="http://spice-space.org/download/gtk/${P}.tar.bz2"
+KEYWORDS="alpha amd64 arm ppc ppc64 sparc ~x86"
+IUSE="dbus doc gstreamer gtk3 +introspection policykit pulseaudio
+python sasl smartcard static-libs usbredir vala webdav"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ ?? ( pulseaudio gstreamer )"
+
+# TODO:
+# * check if sys-freebsd/freebsd-lib (from virtual/acl) provides acl/libacl.h
+# * use external pnp.ids as soon as that means not pulling in gnome-desktop
+RDEPEND="${PYTHON_DEPS}
+ pulseaudio? ( media-sound/pulseaudio[glib] )
+ gstreamer? (
+ media-libs/gstreamer:0.10
+ media-libs/gst-plugins-base:0.10 )
+ >=x11-libs/pixman-0.17.7
+ >=media-libs/celt-0.5.1.1:0.5.1
+ media-libs/opus
+ dev-libs/openssl
+ gtk3? ( x11-libs/gtk+:3[introspection?] )
+ x11-libs/gtk+:2[introspection?]
+ >=dev-libs/glib-2.26:2
+ >=x11-libs/cairo-1.2
+ virtual/jpeg
+ sys-libs/zlib
+ dbus? ( dev-libs/dbus-glib )
+ introspection? ( dev-libs/gobject-introspection )
+ python? ( dev-python/pygtk:2 )
+ sasl? ( dev-libs/cyrus-sasl )
+ smartcard? ( app-emulation/qemu[smartcard] )
+ usbredir? (
+ sys-apps/hwids
+ >=sys-apps/usbredir-0.4.2
+ virtual/libusb:1
+ virtual/libgudev:=
+ policykit? (
+ sys-apps/acl
+ >=sys-auth/polkit-0.110-r1
+ !~sys-auth/polkit-0.111 )
+ )
+ webdav? ( net-libs/phodav:1.0 )"
+DEPEND="${RDEPEND}
+ dev-lang/python
+ dev-python/pyparsing
+ dev-perl/Text-CSV
+ >=dev-util/intltool-0.40.0
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )"
+
+# Hard-deps while building from git:
+# dev-lang/vala:0.14
+# dev-lang/perl
+
+GTK2_BUILDDIR="${WORKDIR}/${P}_gtk2"
+GTK3_BUILDDIR="${WORKDIR}/${P}_gtk3"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${P}-Introduce-enable-disable-webdav-option.patch" \
+ "${FILESDIR}/${P}-Do-not-depend-on-libsoup-directly.patch" \
+ "${FILESDIR}/${P}-missing_gio_libs.patch"
+ epatch_user
+
+ AT_NO_RECURSIVE="yes" eautoreconf
+
+ use vala && vala_src_prepare
+ mkdir ${GTK2_BUILDDIR} ${GTK3_BUILDDIR} || die
+}
+
+src_configure() {
+ local myconf
+ local audio="no"
+
+ use gstreamer && audio="gstreamer"
+ use pulseaudio && audio="pulse"
+
+ if use vala ; then
+ # force vala regen for MinGW, etc
+ rm -fv gtk/controller/controller.{c,vala.stamp} gtk/controller/menu.c
+ fi
+
+ myconf="
+ $(use_enable static-libs static) \
+ $(use_enable introspection) \
+ --with-audio=${audio} \
+ $(use_with python) \
+ $(use_with sasl) \
+ $(use_enable smartcard) \
+ $(use_enable usbredir) \
+ $(use_with usbredir usb-ids-path /usr/share/misc/usb.ids) \
+ $(use_with usbredir usb-acl-helper-dir /usr/libexec) \
+ $(use_enable policykit polkit) \
+ $(use_enable vala) \
+ $(use_enable webdav) \
+ $(use_enable dbus) \
+ $(use_enable doc gtk-doc) \
+ --disable-werror \
+ --enable-pie"
+
+ cd ${GTK2_BUILDDIR}
+ echo "Running configure in ${GTK2_BUILDDIR}"
+ ECONF_SOURCE="${S}" econf --disable-maintainer-mode \
+ --with-gtk=2.0 \
+ ${myconf}
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ echo "Running configure in ${GTK3_BUILDDIR}"
+ ECONF_SOURCE="${S}" econf --disable-maintainer-mode \
+ --with-gtk=3.0 \
+ ${myconf}
+ fi
+}
+
+src_compile() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make in ${GTK3_BUILDDIR}"
+ default
+ fi
+}
+
+src_test() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make check in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make check in ${GTK3_BUILDDIR}"
+ default
+ fi
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog NEWS README THANKS TODO
+
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make check in ${GTK2_BUILDDIR}"
+ default
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make install in ${GTK3_BUILDDIR}"
+ default
+ fi
+
+ # Remove .la files if they're not needed
+ use static-libs || prune_libtool_files
+
+ use python && rm -rf "${ED}"/usr/lib*/python*/site-packages/*.la
+
+ make_desktop_entry spicy Spicy "utilities-terminal" "Network;RemoteAccess;"
+}
diff --git a/net-misc/spice-gtk/spice-gtk-0.28.ebuild b/net-misc/spice-gtk/spice-gtk-0.28.ebuild
new file mode 100644
index 000000000000..33656b080ca0
--- /dev/null
+++ b/net-misc/spice-gtk/spice-gtk-0.28.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+WANT_AUTOMAKE="1.12"
+VALA_MIN_API_VERSION="0.14"
+VALA_USE_DEPEND="vapigen"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils multibuild python-single-r1 vala
+
+DESCRIPTION="Set of GObject and Gtk objects for connecting to Spice servers and a client GUI"
+HOMEPAGE="http://spice-space.org http://gitorious.org/spice-gtk"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+SRC_URI="http://spice-space.org/download/gtk/${P}.tar.bz2"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="dbus gstreamer gtk3 +introspection lz4 policykit pulseaudio python sasl smartcard static-libs usbredir vala webdav"
+
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ ?? ( pulseaudio gstreamer )
+"
+
+# TODO:
+# * check if sys-freebsd/freebsd-lib (from virtual/acl) provides acl/libacl.h
+# * use external pnp.ids as soon as that means not pulling in gnome-desktop
+RDEPEND="
+ ${PYTHON_DEPS}
+ pulseaudio? ( media-sound/pulseaudio[glib] )
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0 )
+ >=x11-libs/pixman-0.17.7
+ >=media-libs/celt-0.5.1.1:0.5.1
+ media-libs/opus
+ dev-libs/openssl:=
+ gtk3? ( x11-libs/gtk+:3[introspection?] )
+ x11-libs/gtk+:2[introspection?]
+ >=dev-libs/glib-2.28:2
+ >=x11-libs/cairo-1.2
+ virtual/jpeg:=
+ sys-libs/zlib
+ introspection? ( dev-libs/gobject-introspection )
+ lz4? ( app-arch/lz4 )
+ python? ( dev-python/pygtk:2 )
+ sasl? ( dev-libs/cyrus-sasl )
+ smartcard? ( app-emulation/qemu[smartcard] )
+ usbredir? (
+ sys-apps/hwids
+ >=sys-apps/usbredir-0.4.2
+ virtual/libusb:1
+ virtual/libgudev:=
+ policykit? (
+ sys-apps/acl
+ >=sys-auth/polkit-0.110-r1
+ !~sys-auth/polkit-0.111 )
+ )
+ webdav? (
+ net-libs/phodav:2.0
+ >=dev-libs/glib-2.43.90:2
+ >=net-libs/libsoup-2.49.91 )
+"
+DEPEND="${RDEPEND}
+ dev-lang/python
+ dev-python/pyparsing
+ dev-perl/Text-CSV
+ >=dev-util/gtk-doc-am-1.14
+ >=dev-util/intltool-0.40.0
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+"
+
+# Hard-deps while building from git:
+# dev-lang/vala:0.14
+# dev-lang/perl
+
+src_prepare() {
+ epatch_user
+
+ AT_NO_RECURSIVE="yes" eautoreconf
+
+ use vala && vala_src_prepare
+}
+
+src_configure() {
+ local myconf
+ local audio="no"
+
+ use gstreamer && audio="gstreamer"
+ use pulseaudio && audio="pulse"
+
+ if use vala ; then
+ # force vala regen for MinGW, etc
+ rm -fv gtk/controller/controller.{c,vala.stamp} gtk/controller/menu.c
+ fi
+
+ myconf="
+ --disable-maintainer-mode \
+ $(use_enable static-libs static) \
+ $(use_enable introspection) \
+ --with-audio=${audio} \
+ $(use_with sasl) \
+ $(use_enable smartcard) \
+ $(use_enable usbredir) \
+ $(use_with usbredir usb-ids-path /usr/share/misc/usb.ids) \
+ $(use_with usbredir usb-acl-helper-dir /usr/libexec) \
+ $(use_enable policykit polkit) \
+ $(use_enable vala) \
+ $(use_enable webdav) \
+ $(use_enable dbus) \
+ --disable-gtk-doc \
+ --disable-werror \
+ --enable-pie"
+
+ # Parameter of --with-gtk
+ MULTIBUILD_VARIANTS=( 2.0 )
+ use gtk3 && MULTIBUILD_VARIANTS+=( 3.0 )
+
+ configure() {
+ local myconf=()
+ myconf+=( --with-gtk=${MULTIBUILD_VARIANT} )
+
+ if [[ ${MULTIBUILD_ID} =~ "2.0" ]] ; then
+ myconf+=( $(use_with python) )
+ else
+ myconf+=( --without-python )
+ fi
+
+ ECONF_SOURCE="${S}" econf $@ ${myconf[@]}
+ }
+ multibuild_foreach_variant run_in_build_dir configure ${myconf}
+}
+
+src_compile() {
+ multibuild_foreach_variant run_in_build_dir default
+}
+
+src_test() {
+ multibuild_foreach_variant run_in_build_dir default
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog NEWS README THANKS TODO
+
+ multibuild_foreach_variant run_in_build_dir default
+
+ # Remove .la files if they're not needed
+ use static-libs || prune_libtool_files
+
+ use python && rm -rf "${ED}"/usr/lib*/python*/site-packages/*.la
+
+ make_desktop_entry spicy Spicy "utilities-terminal" "Network;RemoteAccess;"
+}