summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Lamm <expeditioneer@gentoo.org>2019-03-01 19:34:02 +0100
committerDennis Lamm <expeditioneer@gentoo.org>2019-03-01 19:34:19 +0100
commit3d6bb2617e6e5db6d21c9b1a3afd366f80d52c8d (patch)
tree3c280d5b46f42feb7995203908ec85613bb3519c
parentnet-wireless/unifi: 5.10.19 stable (diff)
downloadgentoo-3d6bb2617e6e5db6d21c9b1a3afd366f80d52c8d.tar.gz
gentoo-3d6bb2617e6e5db6d21c9b1a3afd366f80d52c8d.tar.bz2
gentoo-3d6bb2617e6e5db6d21c9b1a3afd366f80d52c8d.zip
net-misc/vino: fixed segfaults in wayland
Signed-off-by: Dennis Lamm <expeditioneer@gentoo.org> Bug: https://bugs.gentoo.org/617902 Bug: https://bugs.gentoo.org/639264 Package-Manager: Portage-2.3.51, Repoman-2.3.11
-rw-r--r--net-misc/vino/files/vino-return-error-if-X11-is-no-detected.patch41
-rw-r--r--net-misc/vino/files/vino-segfaults-on-wayland.patch30
-rw-r--r--net-misc/vino/vino-3.22.0-r1.ebuild72
3 files changed, 143 insertions, 0 deletions
diff --git a/net-misc/vino/files/vino-return-error-if-X11-is-no-detected.patch b/net-misc/vino/files/vino-return-error-if-X11-is-no-detected.patch
new file mode 100644
index 000000000000..171d8590e3c9
--- /dev/null
+++ b/net-misc/vino/files/vino-return-error-if-X11-is-no-detected.patch
@@ -0,0 +1,41 @@
+From 5e49ab2d125388b843eca4f1f47849d18ccabcd3 Mon Sep 17 00:00:00 2001
+From: Ondrej Holy <oholy@redhat.com>
+Date: Tue, 20 Feb 2018 12:26:18 +0100
+Subject: [PATCH] Return error if X11 is not detected
+
+Vino-server crashes on Wayland in XQueryExtension. Since vino-server is
+not expected to work on displays other than X11, let's exit immediately
+if GDK_IS_X11_DISPLAY fail.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=761120
+---
+ server/vino-main.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/server/vino-main.c b/server/vino-main.c
+index dd95de7..7be3fff 100644
+--- a/server/vino-main.c
++++ b/server/vino-main.c
+@@ -28,6 +28,7 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+ #include <locale.h>
++#include <gdk/gdkx.h>
+
+ #include "vino-input.h"
+ #include "vino-mdns.h"
+@@ -273,6 +274,12 @@ main (int argc, char **argv)
+ g_option_context_free (context);
+ }
+
++ if (!GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
++ {
++ g_printerr ("X11 is not detected\n");
++ return 1;
++ }
++
+ /* GSettings */
+ vino.settings = g_settings_new ("org.gnome.Vino");
+
+--
+2.16.2
diff --git a/net-misc/vino/files/vino-segfaults-on-wayland.patch b/net-misc/vino/files/vino-segfaults-on-wayland.patch
new file mode 100644
index 000000000000..ee161ae6fb98
--- /dev/null
+++ b/net-misc/vino/files/vino-segfaults-on-wayland.patch
@@ -0,0 +1,30 @@
+From c5e3011b7364729fa2cd4f11761bf1f001a931a4 Mon Sep 17 00:00:00 2001
+From: Ondrej Holy <oholy@redhat.com>
+Date: Tue, 22 May 2018 20:45:45 +0200
+Subject: [PATCH] Do not restart service after unclean exit code
+
+Currently, the vino-server.service has Restart=on-failure, which means
+that it is restarted in abnormal cases, but also in case of non-zero
+exit code. It is restarted 5 times e.g. in case when X11 is not detected,
+which doesn't make sense. Non-zero exit code is used only for states
+which won't change with restart (invalid commandline, wayland and some
+sanity checks). Change the value to Restart=on-abnormal in order to
+prevent the useless restarts and to not spam journal.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=761120
+---
+ server/vino-server.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/server/vino-server.service.in b/server/vino-server.service.in
+index a48b813..49e9c1f 100644
+--- a/server/vino-server.service.in
++++ b/server/vino-server.service.in
+@@ -5,4 +5,4 @@ Description=Vino VNC server
+ Type=dbus
+ BusName=org.gnome.Vino
+ ExecStart=@libexecdir@/vino-server
+-Restart=on-failure
++Restart=on-abnormal
+--
+2.17.0
diff --git a/net-misc/vino/vino-3.22.0-r1.ebuild b/net-misc/vino/vino-3.22.0-r1.ebuild
new file mode 100644
index 000000000000..9f17a92230a7
--- /dev/null
+++ b/net-misc/vino/vino-3.22.0-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 systemd
+
+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 debug gnome-keyring ipv6 jpeg ssl systemd +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
+
+ 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:= )
+ systemd? ( sys-apps/dbus[user-session] )
+ telepathy? (
+ dev-libs/dbus-glib
+ >=net-libs/telepathy-glib-0.18 )
+ zeroconf? ( >=net-dns/avahi-0.6:=[dbus] )
+ zlib? ( sys-libs/zlib:= )
+"
+DEPEND="${RDEPEND}
+ app-crypt/libsecret
+ dev-util/glib-utils
+ >=dev-util/intltool-0.50
+ virtual/pkgconfig
+"
+# libsecret is always required at build time per bug 322763
+
+PATCHES=(
+ "${FILESDIR}/${PN}-segfaults-on-wayland.patch"
+ "${FILESDIR}/${PN}-return-error-if-X11-is-no-detected.patch"
+)
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_enable ipv6) \
+ $(use_with crypt gcrypt) \
+ $(usex debug --enable-debug=yes ' ') \
+ $(use_with gnome-keyring secret) \
+ $(use_with jpeg) \
+ $(use_with ssl gnutls) \
+ $(use_with telepathy) \
+ $(use_with zeroconf avahi) \
+ $(use_with zlib) \
+ --with-systemduserunitdir="$(systemd_get_userunitdir)"
+}