summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Dartiguelongue <eva@gentoo.org>2011-11-13 21:13:50 +0000
committerGilles Dartiguelongue <eva@gentoo.org>2011-11-13 21:13:50 +0000
commit12332a3a25096279b6eb283bdd3bd7fb73ef8ad9 (patch)
tree7d73c88cc56bb4ce83adfc9419a3ccd84ed748d0 /net-libs
parentwhitespace (diff)
downloadgentoo-2-12332a3a25096279b6eb283bdd3bd7fb73ef8ad9.tar.gz
gentoo-2-12332a3a25096279b6eb283bdd3bd7fb73ef8ad9.tar.bz2
gentoo-2-12332a3a25096279b6eb283bdd3bd7fb73ef8ad9.zip
Version bump. Add support for vala bindings. Clean up old revisions.
(Portage version: 2.2.0_alpha73/cvs/Linux x86_64)
Diffstat (limited to 'net-libs')
-rw-r--r--net-libs/gtk-vnc/ChangeLog13
-rw-r--r--net-libs/gtk-vnc/files/gtk-vnc-0.4.2-fb-bounds-fix.patch78
-rw-r--r--net-libs/gtk-vnc/files/gtk-vnc-0.4.2-gnutls-crash-fix.patch62
-rw-r--r--net-libs/gtk-vnc/files/gtk-vnc-0.4.2-memory-leak-fix.patch43
-rw-r--r--net-libs/gtk-vnc/files/gtk-vnc-0.4.2-pre-conn-crash-fix.patch36
-rw-r--r--net-libs/gtk-vnc/files/gtk-vnc-0.4.2-shared-flag.patch34
-rw-r--r--net-libs/gtk-vnc/gtk-vnc-0.4.2-r2.ebuild66
-rw-r--r--net-libs/gtk-vnc/gtk-vnc-0.4.3.ebuild62
-rw-r--r--net-libs/gtk-vnc/gtk-vnc-0.4.4.ebuild146
-rw-r--r--net-libs/gtk-vnc/metadata.xml1
10 files changed, 159 insertions, 382 deletions
diff --git a/net-libs/gtk-vnc/ChangeLog b/net-libs/gtk-vnc/ChangeLog
index 0afe1beeed40..fe7c047a366e 100644
--- a/net-libs/gtk-vnc/ChangeLog
+++ b/net-libs/gtk-vnc/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for net-libs/gtk-vnc
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/gtk-vnc/ChangeLog,v 1.74 2011/11/07 06:12:13 nirbheek Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/gtk-vnc/ChangeLog,v 1.75 2011/11/13 21:13:49 eva Exp $
+
+*gtk-vnc-0.4.4 (13 Nov 2011)
+
+ 13 Nov 2011; Gilles Dartiguelongue <eva@gentoo.org> -gtk-vnc-0.4.2-r2.ebuild,
+ -files/gtk-vnc-0.4.2-fb-bounds-fix.patch,
+ -files/gtk-vnc-0.4.2-gnutls-crash-fix.patch,
+ -files/gtk-vnc-0.4.2-memory-leak-fix.patch,
+ -files/gtk-vnc-0.4.2-pre-conn-crash-fix.patch,
+ -files/gtk-vnc-0.4.2-shared-flag.patch, -gtk-vnc-0.4.3.ebuild,
+ +gtk-vnc-0.4.4.ebuild, metadata.xml:
+ Version bump. Add support for vala bindings. Clean up old revisions.
07 Nov 2011; Nirbheek Chauhan <nirbheek@gentoo.org> Manifest:
Fix manifest
diff --git a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-fb-bounds-fix.patch b/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-fb-bounds-fix.patch
deleted file mode 100644
index c983456dcbf4..000000000000
--- a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-fb-bounds-fix.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From f3fc5e57a78d4be9872f1394f697b9929873a737 Mon Sep 17 00:00:00 2001
-From: Daniel P. Berrange <dan@berrange.com>
-Date: Tue, 23 Nov 2010 22:59:37 +0000
-Subject: Fix framebuffer update boundary check
-
-Framebuffer boundary checks need to take into account offset,
-in addition to width/height
-
-* src/vncconnection.c: Fix boundary check
----
-diff --git a/src/vncconnection.c b/src/vncconnection.c
-index 433256a..165a5f1 100644
---- a/src/vncconnection.c
-+++ b/src/vncconnection.c
-@@ -2653,13 +2653,14 @@ static void vnc_connection_ext_key_event(VncConnection *conn)
-
-
- static gboolean vnc_connection_validate_boundary(VncConnection *conn,
-+ guint16 x, guint16 y,
- guint16 width, guint16 height)
- {
- VncConnectionPrivate *priv = conn->priv;
-
-- if (width > priv->width || height > priv->height) {
-- VNC_DEBUG("Framebuffer update %dx%d outside boundary %dx%d",
-- width, height, priv->width, priv->height);
-+ if ((x + width) > priv->width || (y + height) > priv->height) {
-+ VNC_DEBUG("Framebuffer update %dx%d at %d,%d outside boundary %dx%d",
-+ width, height, x, y, priv->width, priv->height);
- priv->has_error = TRUE;
- }
-
-@@ -2681,37 +2682,37 @@ static gboolean vnc_connection_framebuffer_update(VncConnection *conn, gint32 et
-
- switch (etype) {
- case VNC_CONNECTION_ENCODING_RAW:
-- if (!vnc_connection_validate_boundary(conn, width, height))
-+ if (!vnc_connection_validate_boundary(conn, x, y, width, height))
- break;
- vnc_connection_raw_update(conn, x, y, width, height);
- vnc_connection_update(conn, x, y, width, height);
- break;
- case VNC_CONNECTION_ENCODING_COPY_RECT:
-- if (!vnc_connection_validate_boundary(conn, width, height))
-+ if (!vnc_connection_validate_boundary(conn, x, y, width, height))
- break;
- vnc_connection_copyrect_update(conn, x, y, width, height);
- vnc_connection_update(conn, x, y, width, height);
- break;
- case VNC_CONNECTION_ENCODING_RRE:
-- if (!vnc_connection_validate_boundary(conn, width, height))
-+ if (!vnc_connection_validate_boundary(conn, x, y, width, height))
- break;
- vnc_connection_rre_update(conn, x, y, width, height);
- vnc_connection_update(conn, x, y, width, height);
- break;
- case VNC_CONNECTION_ENCODING_HEXTILE:
-- if (!vnc_connection_validate_boundary(conn, width, height))
-+ if (!vnc_connection_validate_boundary(conn, x, y, width, height))
- break;
- vnc_connection_hextile_update(conn, x, y, width, height);
- vnc_connection_update(conn, x, y, width, height);
- break;
- case VNC_CONNECTION_ENCODING_ZRLE:
-- if (!vnc_connection_validate_boundary(conn, width, height))
-+ if (!vnc_connection_validate_boundary(conn, x, y, width, height))
- break;
- vnc_connection_zrle_update(conn, x, y, width, height);
- vnc_connection_update(conn, x, y, width, height);
- break;
- case VNC_CONNECTION_ENCODING_TIGHT:
-- if (!vnc_connection_validate_boundary(conn, width, height))
-+ if (!vnc_connection_validate_boundary(conn, x, y, width, height))
- break;
- vnc_connection_tight_update(conn, x, y, width, height);
- vnc_connection_update(conn, x, y, width, height);
---
-cgit v0.8.3.1
diff --git a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-gnutls-crash-fix.patch b/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-gnutls-crash-fix.patch
deleted file mode 100644
index d9dff3e80d34..000000000000
--- a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-gnutls-crash-fix.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5760a2a28d85cb79e39063cfd8ee8aee975caf24 Mon Sep 17 00:00:00 2001
-From: Daniel P. Berrange <dan@berrange.com>
-Date: Mon, 22 Nov 2010 21:44:56 +0000
-Subject: Avoid crash in TLS cleanup code on shutdown
-
-The gnutls_bye() method may try to send data on the socket todo
-graceful TLS shutdown. The priv->sock variable is possibly
-already NULL at this point if the close was triggered via the
-vnc_connection_shutdown() method. Change the latter so that
-it only calls g_socket_close, not actually free'ing the
-priv->sock object immediately. Also put sanity check code in
-the TLS push/pull functions to catch future bugs in this area
----
-diff --git a/src/vncconnection.c b/src/vncconnection.c
-index 4a0c53c..433256a 100644
---- a/src/vncconnection.c
-+++ b/src/vncconnection.c
-@@ -939,6 +939,12 @@ static ssize_t vnc_connection_tls_push(gnutls_transport_ptr_t transport,
- int ret;
- GError *error = NULL;
-
-+ if (!priv->sock) {
-+ VNC_DEBUG("Unexpected TLS push on closed socket");
-+ errno = EBADF;
-+ return -1;
-+ }
-+
- ret = g_socket_send(priv->sock, data, len, NULL, &error);
- if (ret < 0) {
- if (error) {
-@@ -962,6 +968,12 @@ static ssize_t vnc_connection_tls_pull(gnutls_transport_ptr_t transport,
- int ret;
- GError *error = NULL;
-
-+ if (!priv->sock) {
-+ VNC_DEBUG("Unexpected TLS pull on closed socket");
-+ errno = EBADF;
-+ return -1;
-+ }
-+
- ret = g_socket_receive(priv->sock, data, len, NULL, &error);
- if (ret < 0) {
- if (error) {
-@@ -4461,11 +4473,12 @@ void vnc_connection_shutdown(VncConnection *conn)
- VNC_DEBUG("Waking up couroutine to shutdown gracefully");
- g_io_wakeup(&priv->wait);
-
-- if (priv->sock) {
-+ /* Closing the socket triggers an I/O error in the
-+ * event loop resulting...eventually.. in a call
-+ * to vnc_connection_close for full cleanup
-+ */
-+ if (priv->sock)
- g_socket_close(priv->sock, NULL);
-- g_object_unref(priv->sock);
-- priv->sock = NULL;
-- }
- }
-
- gboolean vnc_connection_is_open(VncConnection *conn)
---
-cgit v0.8.3.1
diff --git a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-memory-leak-fix.patch b/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-memory-leak-fix.patch
deleted file mode 100644
index b852feff8b25..000000000000
--- a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-memory-leak-fix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 968968c9cf705f5bc96764399ea17a27a454c1c5 Mon Sep 17 00:00:00 2001
-From: Daniel P. Berrange <berrange@redhat.com>
-Date: Tue, 14 Dec 2010 12:41:01 +0000
-Subject: Fix leak of GSource objects which causes performance problems
-
-The GLib event loop scales poorly as the number of GSource objects
-increases. A missing unref on the GSource objects used in the VNC
-connection meant that many unused instances accumulated, slowing
-down the event loop processing.
-
-* src/vncconnection.c: Unref all GSource objects
----
-diff --git a/src/vncconnection.c b/src/vncconnection.c
-index 165a5f1..51b8b8d 100644
---- a/src/vncconnection.c
-+++ b/src/vncconnection.c
-@@ -234,6 +234,7 @@ static GIOCondition g_io_wait(GSocket *sock, GIOCondition cond)
- g_source_set_callback(src, (GSourceFunc)g_io_wait_helper, coroutine_self(), NULL);
- g_source_attach(src, NULL);
- ret = coroutine_yield(NULL);
-+ g_source_unref(src);
- return *ret;
- }
-
-@@ -254,6 +255,7 @@ static GIOCondition g_io_wait_interruptable(struct wait_queue *wait,
- id = g_source_attach(src, NULL);
- wait->waiting = TRUE;
- ret = coroutine_yield(NULL);
-+ g_source_unref(src);
- wait->waiting = FALSE;
-
- if (ret == NULL) {
-@@ -334,6 +336,8 @@ static gboolean g_condition_wait(g_condition_wait_func func, gpointer data)
- g_source_attach(src, NULL);
- g_source_set_callback(src, g_condition_wait_helper, coroutine_self(), NULL);
- coroutine_yield(NULL);
-+ g_source_unref(src);
-+
- return TRUE;
- }
-
---
-cgit v0.8.3.1
diff --git a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-pre-conn-crash-fix.patch b/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-pre-conn-crash-fix.patch
deleted file mode 100644
index e3a77c11886e..000000000000
--- a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-pre-conn-crash-fix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From f23f0ebf1b659208d5036e10ab1f32249a2e1a4c Mon Sep 17 00:00:00 2001
-From: Daniel P. Berrange <dan@berrange.com>
-Date: Mon, 22 Nov 2010 21:18:29 +0000
-Subject: Avoid crash in motion event & vnc_display_get_pixbuf
-
-If a mouse event occurs before a connection completes setup
-priv->fb will be NULL and a crash can occur. Likewise if
-vnc_display_get_pixbuf() is called before priv->fb is set,
-then a crash occurs. Add checks for NULL in both cases
----
-diff --git a/src/vncdisplay.c b/src/vncdisplay.c
-index 55fbcf4..0b7e800 100644
---- a/src/vncdisplay.c
-+++ b/src/vncdisplay.c
-@@ -557,6 +557,9 @@ static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion)
- if (priv->conn == NULL || !vnc_connection_is_initialized(priv->conn))
- return FALSE;
-
-+ if (!priv->fb)
-+ return FALSE;
-+
- fbw = vnc_framebuffer_get_width(VNC_FRAMEBUFFER(priv->fb));
- fbh = vnc_framebuffer_get_height(VNC_FRAMEBUFFER(priv->fb));
-
-@@ -2050,6 +2053,9 @@ GdkPixbuf *vnc_display_get_pixbuf(VncDisplay *obj)
- !vnc_connection_is_initialized(priv->conn))
- return NULL;
-
-+ if (!priv->fb)
-+ return NULL;
-+
- fb = VNC_FRAMEBUFFER(priv->fb);
- surface = vnc_cairo_framebuffer_get_surface(priv->fb);
- content = cairo_surface_get_content(surface) | CAIRO_CONTENT_COLOR;
---
-cgit v0.8.3.1
diff --git a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-shared-flag.patch b/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-shared-flag.patch
deleted file mode 100644
index 16d5cd9017f7..000000000000
--- a/net-libs/gtk-vnc/files/gtk-vnc-0.4.2-shared-flag.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ba169973b875f90bf787158588ee4258b71a6ba6 Mon Sep 17 00:00:00 2001
-From: Sébastien Granjoux <seb.sfo@free.fr>
-Date: Thu, 13 Jan 2011 16:36:33 +0000
-Subject: Fix setup of 'shared flag' when opening connection
-
-The VncDisplay class forgot to pass the 'shared flag' onto
-the VncConnection class when establishing a connection
----
-diff --git a/src/vncdisplay.c b/src/vncdisplay.c
-index deab4d8..f8ee9ea 100644
---- a/src/vncdisplay.c
-+++ b/src/vncdisplay.c
-@@ -1407,6 +1407,9 @@ gboolean vnc_display_open_fd(VncDisplay *obj, int fd)
- if (vnc_connection_is_open(priv->conn))
- return FALSE;
-
-+ if (!vnc_connection_set_shared(priv->conn, priv->shared_flag))
-+ return FALSE;
-+
- if (!vnc_connection_open_fd(priv->conn, fd))
- return FALSE;
-
-@@ -1422,6 +1425,9 @@ gboolean vnc_display_open_host(VncDisplay *obj, const char *host, const char *po
- if (vnc_connection_is_open(priv->conn))
- return FALSE;
-
-+ if (!vnc_connection_set_shared(priv->conn, priv->shared_flag))
-+ return FALSE;
-+
- if (!vnc_connection_open_host(priv->conn, host, port))
- return FALSE;
-
---
-cgit v0.8.3.1
diff --git a/net-libs/gtk-vnc/gtk-vnc-0.4.2-r2.ebuild b/net-libs/gtk-vnc/gtk-vnc-0.4.2-r2.ebuild
deleted file mode 100644
index 7725572bb2e9..000000000000
--- a/net-libs/gtk-vnc/gtk-vnc-0.4.2-r2.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/gtk-vnc/gtk-vnc-0.4.2-r2.ebuild,v 1.6 2011/03/22 19:41:58 ranger Exp $
-
-EAPI="2"
-PYTHON_DEPEND="python? 2:2.4"
-
-inherit base gnome.org python
-
-DESCRIPTION="VNC viewer widget for GTK."
-HOMEPAGE="http://live.gnome.org/gtk-vnc"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~x86-fbsd"
-IUSE="examples +introspection python sasl"
-
-# libview is used in examples/gvncviewer -- no need
-# TODO: review nsplugin when it will be considered less experimental
-
-RDEPEND=">=dev-libs/glib-2.10:2
- >=net-libs/gnutls-1.4
- >=x11-libs/cairo-1.2
- >=x11-libs/gtk+-2.18:2
- x11-libs/libX11
- introspection? ( >=dev-libs/gobject-introspection-0.9.4 )
- python? ( >=dev-python/pygtk-2:2 )
- sasl? ( dev-libs/cyrus-sasl )"
-DEPEND="${RDEPEND}
- >=dev-lang/perl-5
- dev-perl/Text-CSV
- dev-util/pkgconfig
- sys-devel/gettext
- >=dev-util/intltool-0.40"
-
-pkg_setup() {
- python_set_active_version 2
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${P}-pre-conn-crash-fix.patch
- epatch "${FILESDIR}"/${P}-gnutls-crash-fix.patch
- epatch "${FILESDIR}"/${P}-fb-bounds-fix.patch
- epatch "${FILESDIR}"/${P}-memory-leak-fix.patch
- epatch "${FILESDIR}"/${P}-shared-flag.patch
-}
-
-src_configure() {
- econf \
- $(use_with examples) \
- $(use_enable introspection) \
- $(use_with python) \
- $(use_with sasl) \
- --with-coroutine=gthread \
- --without-libview \
- --with-gtk=2.0 \
- --disable-static
-}
-
-src_install() {
- # bug #328273
- MAKEOPTS="${MAKEOPTS} -j1" \
- base_src_install
- python_clean_installation_image
- dodoc AUTHORS ChangeLog NEWS README || die
-}
diff --git a/net-libs/gtk-vnc/gtk-vnc-0.4.3.ebuild b/net-libs/gtk-vnc/gtk-vnc-0.4.3.ebuild
deleted file mode 100644
index 1a6bf67d7077..000000000000
--- a/net-libs/gtk-vnc/gtk-vnc-0.4.3.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/gtk-vnc/gtk-vnc-0.4.3.ebuild,v 1.5 2011/10/05 17:01:49 xarthisius Exp $
-
-EAPI="3"
-PYTHON_DEPEND="python? 2:2.4"
-
-inherit base gnome.org python
-
-DESCRIPTION="VNC viewer widget for GTK."
-HOMEPAGE="http://live.gnome.org/gtk-vnc"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~x86-fbsd"
-IUSE="examples +introspection python sasl"
-
-# libview is used in examples/gvncviewer -- no need
-# TODO: review nsplugin when it will be considered less experimental
-
-RDEPEND=">=dev-libs/glib-2.10:2
- >=net-libs/gnutls-1.4
- >=x11-libs/cairo-1.2
- >=x11-libs/gtk+-2.18:2
- x11-libs/libX11
- introspection? ( >=dev-libs/gobject-introspection-0.9.4 )
- python? ( >=dev-python/pygtk-2:2 )
- sasl? ( dev-libs/cyrus-sasl )"
-DEPEND="${RDEPEND}
- >=dev-lang/perl-5
- dev-perl/Text-CSV
- dev-util/pkgconfig
- sys-devel/gettext
- >=dev-util/intltool-0.40"
-
-pkg_setup() {
- python_set_active_version 2
-}
-
-src_prepare() {
- python_convert_shebangs -r 2 .
-}
-
-src_configure() {
- econf \
- $(use_with examples) \
- $(use_enable introspection) \
- $(use_with python) \
- $(use_with sasl) \
- --with-coroutine=gthread \
- --without-libview \
- --with-gtk=2.0 \
- --disable-static
-}
-
-src_install() {
- # bug #328273
- MAKEOPTS="${MAKEOPTS} -j1" \
- base_src_install
- python_clean_installation_image
- dodoc AUTHORS ChangeLog NEWS README || die
-}
diff --git a/net-libs/gtk-vnc/gtk-vnc-0.4.4.ebuild b/net-libs/gtk-vnc/gtk-vnc-0.4.4.ebuild
new file mode 100644
index 000000000000..62a3a79f7f14
--- /dev/null
+++ b/net-libs/gtk-vnc/gtk-vnc-0.4.4.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-libs/gtk-vnc/gtk-vnc-0.4.4.ebuild,v 1.1 2011/11/13 21:13:49 eva Exp $
+
+EAPI="3"
+GNOME_TARBALL_SUFFIX="xz"
+
+inherit base eutils gnome.org python
+
+DESCRIPTION="VNC viewer widget for GTK"
+HOMEPAGE="http://live.gnome.org/gtk-vnc"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="examples gtk3 +introspection python sasl vala"
+
+# libview is used in examples/gvncviewer -- no need
+# TODO: review nsplugin when it will be considered less experimental
+
+COMMON_DEPEND=">=dev-libs/glib-2.10:2
+ >=net-libs/gnutls-1.4
+ >=x11-libs/cairo-1.2
+ >=x11-libs/gtk+-2.18:2
+ x11-libs/libX11
+ gtk3? ( >=x11-libs/gtk+-2.91.3:3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.4 )
+ python? ( >=dev-python/pygtk-2:2 )
+ sasl? ( dev-libs/cyrus-sasl )"
+RDEPEND="${COMMON_DEPEND}"
+DEPEND="${COMMON_DEPEND}
+ >=dev-lang/perl-5
+ dev-util/pkgconfig
+ sys-devel/gettext
+ >=dev-util/intltool-0.40
+ vala? (
+ dev-lang/vala:0.14[vapigen]
+ >=dev-libs/gobject-introspection-0.9.4 )
+"
+
+GTK2_BUILDDIR="${WORKDIR}/${P}_gtk2"
+GTK3_BUILDDIR="${WORKDIR}/${P}_gtk3"
+
+pkg_setup() {
+ python_set_active_version 2
+
+ if use vala && ! use gtk3; then
+ ewarn "You must set USE=gtk3 to enable vala bindings support."
+ fi
+}
+
+src_prepare() {
+ python_convert_shebangs -r 2 .
+ mkdir "${GTK2_BUILDDIR}" || die
+ mkdir "${GTK3_BUILDDIR}" || die
+
+ # Remove a few files that were autogenerated during distcheck.
+ # Having these around in srcdir breaks out of tree build since they're
+ # expected to be in builddir, which is correct for trunk builds since
+ # they're generated files, not source files. Funny false dichotomy.
+ rm -vf "${S}"/src/{vncconnectionenums.[ch],vncdisplayenums.[ch]}
+
+ # Fix incorrect codegendir check: h2def.py is in pygobject, not pygtk
+ sed -e 's/codegendir pygtk-2.0/codegendir pygobject-2.0/g' \
+ -i src/Makefile.* || die
+}
+
+src_configure() {
+ local myconf
+ myconf="
+ $(use_with examples) \
+ $(use_enable introspection) \
+ $(use_with sasl) \
+ --with-coroutine=gthread \
+ --without-libview \
+ --disable-static \
+ --disable-vala"
+
+ cd ${GTK2_BUILDDIR}
+ einfo "Running configure in ${GTK2_BUILDDIR}"
+ ECONF_SOURCE="${S}" econf ${myconf} \
+ $(use_with python) \
+ --with-gtk=2.0
+
+ if use gtk3; then
+ if use vala; then
+ myconf="${myconf} \
+ --enable-introspection \
+ --enable-vala \
+ VAPIGEN=$(type -p vapigen-0.14)"
+ fi
+
+ cd ${GTK3_BUILDDIR}
+ einfo "Running configure in ${GTK3_BUILDDIR}"
+ # Python support is via gobject-introspection
+ # Ex: from gi.repository import GtkVnc
+ ECONF_SOURCE="${S}" econf ${myconf} \
+ --with-python=no \
+ --with-gtk=3.0
+ fi
+}
+
+src_compile() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make in ${GTK2_BUILDDIR}"
+ emake || die
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make in ${GTK3_BUILDDIR}"
+ emake || die
+ fi
+}
+
+src_test() {
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make check in ${GTK2_BUILDDIR}"
+ emake check || die
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make check in ${GTK3_BUILDDIR}"
+ emake check || die
+ fi
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog NEWS README || die
+
+ cd ${GTK2_BUILDDIR}
+ einfo "Running make install in ${GTK2_BUILDDIR}"
+ # bug #328273
+ MAKEOPTS="${MAKEOPTS} -j1" base_src_install
+
+ if use gtk3; then
+ cd ${GTK3_BUILDDIR}
+ einfo "Running make install in ${GTK3_BUILDDIR}"
+ # bug #328273
+ MAKEOPTS="${MAKEOPTS} -j1" base_src_install
+ fi
+
+ python_clean_installation_image
+
+ # Remove .la files
+ find "${ED}" -name '*.la' -exec rm -f '{}' + || die
+}
diff --git a/net-libs/gtk-vnc/metadata.xml b/net-libs/gtk-vnc/metadata.xml
index 21064efa27ad..e54548dae0dc 100644
--- a/net-libs/gtk-vnc/metadata.xml
+++ b/net-libs/gtk-vnc/metadata.xml
@@ -6,5 +6,6 @@
<flag name="gtk3">Build the gtk3 gtk-vnc library and other gtk3 assets</flag>
<flag name="introspection">Use <pkg>dev-libs/gobject-introspection</pkg>
for introspection</flag>
+ <flag name="vala">Enable bindings for <pkg>dev-lang/vala</pkg></flag>
</use>
</pkgmetadata>