summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuli Suominen <ssuominen@gentoo.org>2013-03-31 04:49:14 +0000
committerSamuli Suominen <ssuominen@gentoo.org>2013-03-31 04:49:14 +0000
commitdd2b93e786109744be030c3280f9dfb69b25db01 (patch)
treec06b2479f2d3642e9b0b8e04509e1eeb9f365436 /xfce-base
parentFix .desktop file sed. (diff)
downloadgentoo-2-dd2b93e786109744be030c3280f9dfb69b25db01.tar.gz
gentoo-2-dd2b93e786109744be030c3280f9dfb69b25db01.tar.bz2
gentoo-2-dd2b93e786109744be030c3280f9dfb69b25db01.zip
Backport some crash fixes from upstream.
(Portage version: 2.2.0_alpha169/cvs/Linux x86_64, signed Manifest commit with key 4868F14D)
Diffstat (limited to 'xfce-base')
-rw-r--r--xfce-base/xfce4-appfinder/ChangeLog12
-rw-r--r--xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-icon-theme-segfault.patch63
-rw-r--r--xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-null-pointers.patch39
-rw-r--r--xfce-base/xfce4-appfinder/xfce4-appfinder-4.10.0-r1.ebuild41
4 files changed, 153 insertions, 2 deletions
diff --git a/xfce-base/xfce4-appfinder/ChangeLog b/xfce-base/xfce4-appfinder/ChangeLog
index f33838f73fbf..339125a5bcc8 100644
--- a/xfce-base/xfce4-appfinder/ChangeLog
+++ b/xfce-base/xfce4-appfinder/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for xfce-base/xfce4-appfinder
-# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/xfce-base/xfce4-appfinder/ChangeLog,v 1.16 2012/11/28 12:30:11 ssuominen Exp $
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/xfce-base/xfce4-appfinder/ChangeLog,v 1.17 2013/03/31 04:49:14 ssuominen Exp $
+
+*xfce4-appfinder-4.10.0-r1 (31 Mar 2013)
+
+ 31 Mar 2013; Samuli Suominen <ssuominen@gentoo.org>
+ +xfce4-appfinder-4.10.0-r1.ebuild,
+ +files/xfce4-appfinder-4.10.0-icon-theme-segfault.patch,
+ +files/xfce4-appfinder-4.10.0-null-pointers.patch:
+ Backport some crash fixes from upstream.
28 Nov 2012; Samuli Suominen <ssuominen@gentoo.org>
xfce4-appfinder-4.10.0.ebuild:
diff --git a/xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-icon-theme-segfault.patch b/xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-icon-theme-segfault.patch
new file mode 100644
index 000000000000..02e3e7b1256e
--- /dev/null
+++ b/xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-icon-theme-segfault.patch
@@ -0,0 +1,63 @@
+From eb46f5acd4b0b985a94bee6942d6527f9f620b84 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sat, 16 Mar 2013 18:03:01 +0000
+Subject: Detatch from icon theme to avoid segfault (bug #9730).
+
+---
+diff --git a/src/appfinder-window.c b/src/appfinder-window.c
+index d3cd567..b5ca272 100644
+--- a/src/appfinder-window.c
++++ b/src/appfinder-window.c
+@@ -129,6 +129,8 @@ struct _XfceAppfinderWindow
+
+ XfceAppfinderActions *actions;
+
++ GtkIconTheme *icon_theme;
++
+ GtkEntryCompletion *completion;
+
+ XfconfChannel *channel;
+@@ -204,7 +206,6 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
+ GtkWidget *bbox;
+ GtkWidget *button;
+ GtkEntryCompletion *completion;
+- GtkIconTheme *icon_theme;
+ gint integer;
+
+ window->channel = xfconf_channel_get ("xfce4-appfinder");
+@@ -400,9 +401,10 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
+ image = gtk_image_new_from_stock (GTK_STOCK_EXECUTE, GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image (GTK_BUTTON (button), image);
+
+- icon_theme = gtk_icon_theme_get_for_screen (gtk_window_get_screen (GTK_WINDOW (window)));
+- g_signal_connect_swapped (G_OBJECT (icon_theme), "changed",
++ window->icon_theme = gtk_icon_theme_get_for_screen (gtk_window_get_screen (GTK_WINDOW (window)));
++ g_signal_connect_swapped (G_OBJECT (window->icon_theme), "changed",
+ G_CALLBACK (xfce_appfinder_window_icon_theme_changed), window);
++ g_object_ref (G_OBJECT (window->icon_theme));
+
+ /* load categories in the model */
+ xfce_appfinder_window_category_set_categories (NULL, window);
+@@ -432,6 +434,11 @@ xfce_appfinder_window_finalize (GObject *object)
+ g_signal_handler_disconnect (window->channel, window->property_watch_id);
+ g_signal_handler_disconnect (window->model, window->categories_changed_id);
+
++ /* release our reference on the icon theme */
++ g_signal_handlers_disconnect_by_func (G_OBJECT (window->icon_theme),
++ xfce_appfinder_window_icon_theme_changed, window);
++ g_object_unref (G_OBJECT (window->icon_theme));
++
+ g_object_unref (G_OBJECT (window->model));
+ g_object_unref (G_OBJECT (window->category_model));
+ g_object_unref (G_OBJECT (window->completion));
+@@ -1520,6 +1527,8 @@ xfce_appfinder_window_row_activated (XfceAppfinderWindow *window)
+ static void
+ xfce_appfinder_window_icon_theme_changed (XfceAppfinderWindow *window)
+ {
++ appfinder_return_if_fail (XFCE_IS_APPFINDER_WINDOW (window));
++
+ if (window->icon_find != NULL)
+ g_object_unref (G_OBJECT (window->icon_find));
+ window->icon_find = xfce_appfinder_model_load_pixbuf (GTK_STOCK_FIND, XFCE_APPFINDER_ICON_SIZE_48);
+--
+cgit v0.9.1
diff --git a/xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-null-pointers.patch b/xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-null-pointers.patch
new file mode 100644
index 000000000000..fa333fd09464
--- /dev/null
+++ b/xfce-base/xfce4-appfinder/files/xfce4-appfinder-4.10.0-null-pointers.patch
@@ -0,0 +1,39 @@
+From 2a14564c8e1677c002ffac8643f706b334050988 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sat, 08 Sep 2012 09:55:19 +0000
+Subject: Protect against possible null pointers (bug #9109).
+
+(cherry picked from commit 424418316733e3f8b9b17cd7345fe6d967b06ef8)
+---
+diff --git a/src/appfinder-category-model.c b/src/appfinder-category-model.c
+index 483c4cc..3f3a060 100644
+--- a/src/appfinder-category-model.c
++++ b/src/appfinder-category-model.c
+@@ -589,6 +589,7 @@ xfce_appfinder_category_model_icon_theme_changed (XfceAppfinderCategoryModel *mo
+ for (li = model->categories, idx = 0; li != NULL; li = li->next, idx++)
+ {
+ item = li->data;
++ appfinder_assert (item != NULL);
+
+ if (item->pixbuf != NULL)
+ {
+diff --git a/src/appfinder-window.c b/src/appfinder-window.c
+index 155e011..4f99c6a 100644
+--- a/src/appfinder-window.c
++++ b/src/appfinder-window.c
+@@ -1453,8 +1453,11 @@ xfce_appfinder_window_icon_theme_changed (XfceAppfinderWindow *window)
+ window->icon_find = xfce_appfinder_model_load_pixbuf (GTK_STOCK_FIND, XFCE_APPFINDER_ICON_SIZE_48);
+
+ /* drop cached pixbufs */
+- xfce_appfinder_model_icon_theme_changed (window->model);
+- xfce_appfinder_category_model_icon_theme_changed (window->category_model);
++ if (G_LIKELY (window->model != NULL))
++ xfce_appfinder_model_icon_theme_changed (window->model);
++
++ if (G_LIKELY (window->category_model != NULL))
++ xfce_appfinder_category_model_icon_theme_changed (window->category_model);
+
+ /* update state */
+ xfce_appfinder_window_entry_changed (window);
+--
+cgit v0.9.0.3
diff --git a/xfce-base/xfce4-appfinder/xfce4-appfinder-4.10.0-r1.ebuild b/xfce-base/xfce4-appfinder/xfce4-appfinder-4.10.0-r1.ebuild
new file mode 100644
index 000000000000..3f3a1ea05ef9
--- /dev/null
+++ b/xfce-base/xfce4-appfinder/xfce4-appfinder-4.10.0-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/xfce-base/xfce4-appfinder/xfce4-appfinder-4.10.0-r1.ebuild,v 1.1 2013/03/31 04:49:14 ssuominen Exp $
+
+EAPI=5
+inherit xfconf
+
+DESCRIPTION="A tool to find and launch installed applications for the Xfce desktop environment"
+HOMEPAGE="http://www.xfce.org/projects/"
+SRC_URI="mirror://xfce/src/xfce/${PN}/${PV%.*}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="debug"
+
+RDEPEND=">=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.24
+ >=x11-libs/gtk+-2.20:2
+ >=xfce-base/garcon-0.2
+ >=xfce-base/libxfce4util-4.10
+ >=xfce-base/libxfce4ui-4.10
+ >=xfce-base/xfconf-4.10
+ !xfce-base/xfce-utils"
+DEPEND="${RDEPEND}
+ dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig"
+
+pkg_setup() {
+ PATCHES=(
+ "${FILESDIR}"/${P}-null-pointers.patch
+ "${FILESDIR}"/${P}-icon-theme-segfault.patch
+ )
+
+ XFCONF=(
+ $(xfconf_use_debug)
+ )
+
+ DOCS=( AUTHORS ChangeLog NEWS )
+}