commit:     b3ce9a81ab6ed752bfd0a5eeee0dd3daf9b920e0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 10 09:01:51 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 10 09:02:49 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b3ce9a81

xfce-base/xfce4-session: Backport autostart dialog segv fix

Closes: https://bugs.gentoo.org/628324

 ...e4-session-4.13.0-add-edit-autostart-segv.patch | 57 ++++++++++++++++
 .../xfce4-session/xfce4-session-4.13.0-r1.ebuild   | 78 ++++++++++++++++++++++
 2 files changed, 135 insertions(+)

diff --git 
a/xfce-base/xfce4-session/files/xfce4-session-4.13.0-add-edit-autostart-segv.patch
 
b/xfce-base/xfce4-session/files/xfce4-session-4.13.0-add-edit-autostart-segv.patch
new file mode 100644
index 00000000000..ff5b805d322
--- /dev/null
+++ 
b/xfce-base/xfce4-session/files/xfce4-session-4.13.0-add-edit-autostart-segv.patch
@@ -0,0 +1,57 @@
+From 193b09a9c159d1d16ad69e4298f48c2b531e9392 Mon Sep 17 00:00:00 2001
+From: Eric Koegel <eric.koe...@gmail.com>
+Date: Mon, 1 May 2017 06:55:05 +0300
+Subject: Add/Edit Application Autostart Entries (Bug #13271)
+
+With xfce4-session built from git (after the gtk3
+migration work), trying to add or edit an application
+autostart entry results in a segmentation fault after a
+"(xfce4-session-settings:9094): Gtk-CRITICAL **:
+gtk_entry_get_text: assertion 'GTK_IS_ENTRY (entry)'
+failed" message.
+
+It appears that when the "notify::text" signal callbacks
+for the "command_entry" and "name_entry" GtkEntry objects
+are created, they are called immediately, before the second
+GtkEntry object is created resulting in a failure in the
+xfae_dialog_update() function to properly process the objects.
+Thanks to ToZ for reporting and providing the fix.
+---
+ settings/xfae-dialog.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/settings/xfae-dialog.c b/settings/xfae-dialog.c
+index af860b9..7442634 100644
+--- a/settings/xfae-dialog.c
++++ b/settings/xfae-dialog.c
+@@ -98,8 +98,7 @@ xfae_dialog_init (XfaeDialog *dialog)
+   dialog->name_entry = g_object_new (GTK_TYPE_ENTRY,
+                                      "activates-default", TRUE,
+                                      NULL);
+-  g_signal_connect_swapped (G_OBJECT (dialog->name_entry), "notify::text",
+-                            G_CALLBACK (xfae_dialog_update), dialog);
++
+   gtk_grid_attach (GTK_GRID (grid), dialog->name_entry, 1, 0, 1, 1);
+   gtk_widget_show (dialog->name_entry);
+ 
+@@ -132,11 +131,15 @@ xfae_dialog_init (XfaeDialog *dialog)
+   dialog->command_entry = g_object_new (GTK_TYPE_ENTRY,
+                                         "activates-default", TRUE,
+                                         NULL);
+-  g_signal_connect_swapped (G_OBJECT (dialog->command_entry), "notify::text",
+-                            G_CALLBACK (xfae_dialog_update), dialog);
++
+   gtk_box_pack_start (GTK_BOX (hbox), dialog->command_entry, TRUE, TRUE, 0);
+   gtk_widget_show (dialog->command_entry);
+ 
++  g_signal_connect_swapped (G_OBJECT (dialog->name_entry), "notify::text",
++                            G_CALLBACK (xfae_dialog_update), dialog);
++  g_signal_connect_swapped (G_OBJECT (dialog->command_entry), "notify::text",
++                            G_CALLBACK (xfae_dialog_update), dialog);
++
+   button = g_object_new (GTK_TYPE_BUTTON,
+                          "can-default", FALSE,
+                          NULL);
+-- 
+cgit v1.1
+

diff --git a/xfce-base/xfce4-session/xfce4-session-4.13.0-r1.ebuild 
b/xfce-base/xfce4-session/xfce4-session-4.13.0-r1.ebuild
new file mode 100644
index 00000000000..2d045a1e7c0
--- /dev/null
+++ b/xfce-base/xfce4-session/xfce4-session-4.13.0-r1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit gnome2-utils
+
+DESCRIPTION="A session manager for the Xfce desktop environment"
+HOMEPAGE="https://docs.xfce.org/xfce/xfce4-session/start";
+SRC_URI="mirror://xfce/src/xfce/${PN}/${PV%.*}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 
~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="nls policykit systemd +xscreensaver"
+
+COMMON_DEPEND="x11-apps/iceauth
+       x11-libs/gtk+:3=
+       x11-libs/libSM:=
+       x11-libs/libwnck:3=
+       x11-libs/libX11:=
+       >=xfce-base/libxfce4util-4.12:=
+       >=xfce-base/libxfce4ui-4.12.1:=[gtk3(+)]
+       >=xfce-base/xfconf-4.12:=
+       policykit? ( >=sys-auth/polkit-0.102:= )"
+RDEPEND="${COMMON_DEPEND}
+       x11-apps/xrdb
+       nls? ( x11-misc/xdg-user-dirs )
+       xscreensaver? ( || (
+               >=x11-misc/xscreensaver-5.26
+               x11-misc/light-locker
+               >=x11-misc/xlockmore-5.43
+               x11-misc/slock
+               x11-misc/alock[pam]
+       ) )"
+DEPEND="${COMMON_DEPEND}
+       dev-util/intltool
+       sys-devel/gettext
+       virtual/pkgconfig"
+
+REQUIRED_USE="systemd? ( policykit )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.10.1-alock_support_to_xflock4.patch
+# TODO: this patch needs updating for the new version, and finding
+# upstream bug.
+#      "${FILESDIR}"/${PN}-4.12.1-light-locker_support_to_xflock4.patch
+
+       "${FILESDIR}"/${P}-add-edit-autostart-segv.patch
+)
+
+src_configure() {
+       local myconf=(
+               $(use_enable policykit polkit)
+               --with-xsession-prefix="${EPREFIX}"/usr
+       )
+
+       econf "${myconf[@]}"
+}
+
+src_install() {
+       default
+       find "${ED}" -name '*.la' -delete || die
+
+       local sessiondir=/etc/X11/Sessions
+       echo startxfce4 > "${T}"/Xfce4 || die
+       exeinto ${sessiondir}
+       doexe "${T}"/Xfce4
+       dosym Xfce4 ${sessiondir}/Xfce
+}
+
+pkg_postinst() {
+       gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+       gnome2_icon_cache_update
+}

Reply via email to