diff options
author | Samuli Suominen <ssuominen@gentoo.org> | 2013-03-31 04:49:14 +0000 |
---|---|---|
committer | Samuli Suominen <ssuominen@gentoo.org> | 2013-03-31 04:49:14 +0000 |
commit | dd2b93e786109744be030c3280f9dfb69b25db01 (patch) | |
tree | c06b2479f2d3642e9b0b8e04509e1eeb9f365436 /xfce-base | |
parent | Fix .desktop file sed. (diff) | |
download | gentoo-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')
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 ) +} |