From b3ce9a81ab6ed752bfd0a5eeee0dd3daf9b920e0 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Wed, 10 Jan 2018 10:01:51 +0100 Subject: 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(+) create mode 100644 xfce-base/xfce4-session/files/xfce4-session-4.13.0-add-edit-autostart-segv.patch create mode 100644 xfce-base/xfce4-session/xfce4-session-4.13.0-r1.ebuild (limited to 'xfce-base') 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 +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 +} -- cgit v1.2.3-65-gdbad