commit:     6c693e0a73b17ba7b4d4ab202e66f96181ffc366
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 24 07:44:31 2015 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Oct 24 07:45:30 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c693e0a

net-misc/vino: Apply upstream fixes, also including a fix for a crash when 
gnome-control-center is not present (#561786 by Mikhail Kurinnoi)

Package-Manager: portage-2.2.23

 net-misc/vino/files/vino-3.16.0-fix-crash.patch    | 53 +++++++++++++++
 .../vino/files/vino-3.16.0-name-resolution.patch   | 47 +++++++++++++
 net-misc/vino/vino-3.16.0-r1.ebuild                | 77 ++++++++++++++++++++++
 3 files changed, 177 insertions(+)

diff --git a/net-misc/vino/files/vino-3.16.0-fix-crash.patch 
b/net-misc/vino/files/vino-3.16.0-fix-crash.patch
new file mode 100644
index 0000000..bf0d190
--- /dev/null
+++ b/net-misc/vino/files/vino-3.16.0-fix-crash.patch
@@ -0,0 +1,53 @@
+From 22f6575b32675ae38567efd3ed8e2362bbc9240d Mon Sep 17 00:00:00 2001
+From: David King <amigad...@amigadave.com>
+Date: Mon, 19 Oct 2015 14:48:44 +0100
+Subject: Avoid a crash when showing the preferences
+
+Show an error message when the preferences desktop file is not found,
+such as if gnome-control-center is not installed.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=756654
+---
+ server/vino-status-icon.c      | 5 +++++
+ server/vino-status-tube-icon.c | 9 ++++++++-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/server/vino-status-icon.c b/server/vino-status-icon.c
+index 53eec02..aaab0af 100644
+--- a/server/vino-status-icon.c
++++ b/server/vino-status-icon.c
+@@ -202,6 +202,11 @@ vino_status_icon_preferences (VinoStatusIcon *icon)
+   info = g_desktop_app_info_new ("gnome-sharing-panel.desktop");
+   if (info == NULL)
+     info = g_desktop_app_info_new ("vino-preferences.desktop");
++  if (info == NULL)
++    {
++      vino_util_show_error (NULL, _("Error displaying preferences"), NULL);
++      return;
++    }
+   context = gdk_display_get_app_launch_context (gdk_screen_get_display 
(screen));
+   if (!g_app_info_launch (G_APP_INFO (info), NULL, G_APP_LAUNCH_CONTEXT 
(context), &error))
+     {
+diff --git a/server/vino-status-tube-icon.c b/server/vino-status-tube-icon.c
+index 0a23a23..e5cbb11 100644
+--- a/server/vino-status-tube-icon.c
++++ b/server/vino-status-tube-icon.c
+@@ -165,7 +165,14 @@ vino_status_tube_icon_preferences (VinoStatusTubeIcon 
*icon)
+   GError *error = NULL;
+ 
+   screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon));
+-  info = g_desktop_app_info_new ("vino-preferences.desktop");
++  info = g_desktop_app_info_new ("gnome-sharing-panel.desktop");
++  if (info == NULL)
++    info = g_desktop_app_info_new ("vino-preferences.desktop");
++  if (info == NULL)
++    {
++      vino_util_show_error (NULL, _("Error displaying preferences"), NULL);
++      return;
++    }
+   context = gdk_display_get_app_launch_context (gdk_screen_get_display 
(screen));
+   if (!g_app_info_launch (G_APP_INFO (info), NULL, G_APP_LAUNCH_CONTEXT 
(context), &error))
+     {
+-- 
+cgit v0.11.2
+

diff --git a/net-misc/vino/files/vino-3.16.0-name-resolution.patch 
b/net-misc/vino/files/vino-3.16.0-name-resolution.patch
new file mode 100644
index 0000000..2989ffa
--- /dev/null
+++ b/net-misc/vino/files/vino-3.16.0-name-resolution.patch
@@ -0,0 +1,47 @@
+From bdd14508f9ea46372fcef93e17a9c14bcb8b4c83 Mon Sep 17 00:00:00 2001
+From: Dimitri Tarassenko <dtarasse...@gmail.com>
+Date: Fri, 28 Aug 2015 17:02:15 +0100
+Subject: Improve handling of name resolution failure
+
+Ensure that the host string for a client is always filled with a valid
+string, by calling getnameinfo() a second time (ensuring a numeric host
+is returned) if the first call fails.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=754194
+---
+ server/libvncserver/rfbserver.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/server/libvncserver/rfbserver.c b/server/libvncserver/rfbserver.c
+index 1295219..0a60fb2 100644
+--- a/server/libvncserver/rfbserver.c
++++ b/server/libvncserver/rfbserver.c
+@@ -150,7 +150,7 @@ rfbNewClient(rfbScreenInfoPtr rfbScreen,
+     struct sockaddr_storage addr;
+     socklen_t addrlen = sizeof(addr);
+     int i;
+-    char host[NI_MAXHOST];
++    char host[NI_MAXHOST] = "(unresolved)";
+     const char *prt = "unknown";
+ 
+     cl = (rfbClientPtr)calloc(sizeof(rfbClientRec),1);
+@@ -166,11 +166,11 @@ rfbNewClient(rfbScreenInfoPtr rfbScreen,
+ 
+       getpeername(sock, (struct sockaddr *)&addr, &addrlen);
+ 
+-      getnameinfo((struct sockaddr *)&addr,
+-                  addrlen,
+-                  host, sizeof(host),
+-                  NULL, 0,
+-                  0);
++      if (getnameinfo((struct sockaddr *)&addr, addrlen,
++                      host, sizeof(host), NULL, 0, 0)) {
++        getnameinfo((struct sockaddr *)&addr, addrlen,
++                    host, sizeof(host), NULL, 0, NI_NUMERICHOST);
++      }
+ 
+       cl->host = strdup(host);
+ 
+-- 
+cgit v0.11.2
+

diff --git a/net-misc/vino/vino-3.16.0-r1.ebuild 
b/net-misc/vino/vino-3.16.0-r1.ebuild
new file mode 100644
index 0000000..0b338c3
--- /dev/null
+++ b/net-misc/vino/vino-3.16.0-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="yes"
+
+inherit eutils gnome2
+
+DESCRIPTION="An integrated VNC server for GNOME"
+HOMEPAGE="https://wiki.gnome.org/Projects/Vino";
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="crypt gnome-keyring ipv6 jpeg ssl +telepathy zeroconf +zlib"
+# bug #394611; tight encoding requires zlib encoding
+REQUIRED_USE="jpeg? ( zlib )"
+
+# cairo used in vino-fb
+# libSM and libICE used in eggsmclient-xsmp
+RDEPEND="
+       >=dev-libs/glib-2.26:2
+       >=dev-libs/libgcrypt-1.1.90:0=
+       >=x11-libs/gtk+-3:3
+
+       dev-libs/dbus-glib
+       x11-libs/cairo:=
+       x11-libs/libICE
+       x11-libs/libSM
+       x11-libs/libX11
+       x11-libs/libXdamage
+       x11-libs/libXext
+       x11-libs/libXfixes
+       x11-libs/libXtst
+       x11-libs/pango[X]
+
+       >=x11-libs/libnotify-0.7.0:=
+
+       crypt? ( >=dev-libs/libgcrypt-1.1.90:0= )
+       gnome-keyring? ( app-crypt/libsecret )
+       jpeg? ( virtual/jpeg:0= )
+       ssl? ( >=net-libs/gnutls-2.2.0:= )
+       telepathy? ( >=net-libs/telepathy-glib-0.18 )
+       zeroconf? ( >=net-dns/avahi-0.6:=[dbus] )
+       zlib? ( sys-libs/zlib:= )
+"
+DEPEND="${RDEPEND}
+       >=dev-lang/perl-5
+       >=dev-util/intltool-0.50
+       virtual/pkgconfig
+       app-crypt/libsecret
+"
+# libsecret is always required at build time per bug 322763
+
+src_prepare() {
+       # Improve handling of name resolution failure (from 'master')
+       epatch "${FILESDIR}"/${P}-name-resolution.patch
+
+       # Avoid a crash when showing the preferences (from 'master')
+       epatch "${FILESDIR}"/${P}-fix-crash.patch
+
+       gnome2_src_prepare
+}
+
+src_configure() {
+       gnome2_src_configure \
+               --with-gcrypt \
+               $(use_enable ipv6) \
+               $(use_with crypt gcrypt) \
+               $(use_with gnome-keyring secret) \
+               $(use_with jpeg) \
+               $(use_with ssl gnutls) \
+               $(use_with telepathy) \
+               $(use_with zeroconf avahi) \
+               $(use_with zlib)
+}

Reply via email to