diff options
-rw-r--r-- | net-misc/vino/files/vino-3.16.0-fix-crash.patch | 53 | ||||
-rw-r--r-- | net-misc/vino/files/vino-3.16.0-name-resolution.patch | 47 | ||||
-rw-r--r-- | net-misc/vino/vino-3.16.0-r1.ebuild | 77 |
3 files changed, 177 insertions, 0 deletions
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 000000000000..bf0d190cb653 --- /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 <amigadave@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 000000000000..2989ffabd567 --- /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 <dtarassenko@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 000000000000..0b338c3449eb --- /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) +} |