summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2018-01-10 10:01:51 +0100
committerMichał Górny <mgorny@gentoo.org>2018-01-10 10:02:49 +0100
commitb3ce9a81ab6ed752bfd0a5eeee0dd3daf9b920e0 (patch)
tree55c5e0e8a2c1b812ed05b945460879fe62325a90 /xfce-base
parentwww-apps/rutorrent: version bump to 9999 (diff)
downloadgentoo-b3ce9a81ab6ed752bfd0a5eeee0dd3daf9b920e0.tar.gz
gentoo-b3ce9a81ab6ed752bfd0a5eeee0dd3daf9b920e0.tar.bz2
gentoo-b3ce9a81ab6ed752bfd0a5eeee0dd3daf9b920e0.zip
xfce-base/xfce4-session: Backport autostart dialog segv fix
Closes: https://bugs.gentoo.org/628324
Diffstat (limited to 'xfce-base')
-rw-r--r--xfce-base/xfce4-session/files/xfce4-session-4.13.0-add-edit-autostart-segv.patch57
-rw-r--r--xfce-base/xfce4-session/xfce4-session-4.13.0-r1.ebuild78
2 files changed, 135 insertions, 0 deletions
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 000000000000..ff5b805d3225
--- /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.koegel@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 000000000000..2d045a1e7c0e
--- /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
+}