summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Ostorga <vostorga@gentoo.org>2010-10-27 19:42:04 +0000
committerVictor Ostorga <vostorga@gentoo.org>2010-10-27 19:42:04 +0000
commite30837e23f46ad7847753419a5edd09f1bbbe8d6 (patch)
tree5d6a33113ff32911f8294127a0f68ade29ba1977 /lxde-base/lxlauncher
parentx86 stable per bug 341787 (diff)
downloadgentoo-2-e30837e23f46ad7847753419a5edd09f1bbbe8d6.tar.gz
gentoo-2-e30837e23f46ad7847753419a5edd09f1bbbe8d6.tar.bz2
gentoo-2-e30837e23f46ad7847753419a5edd09f1bbbe8d6.zip
Fixing segmentation fault, bug #341561
(Portage version: 2.1.8.3/cvs/Linux i686)
Diffstat (limited to 'lxde-base/lxlauncher')
-rw-r--r--lxde-base/lxlauncher/ChangeLog8
-rw-r--r--lxde-base/lxlauncher/files/lxlauncher-0.2.1-fix-segfault.patch124
-rw-r--r--lxde-base/lxlauncher/lxlauncher-0.2.1-r1.ebuild44
3 files changed, 175 insertions, 1 deletions
diff --git a/lxde-base/lxlauncher/ChangeLog b/lxde-base/lxlauncher/ChangeLog
index 54014c13363e..b2e810797124 100644
--- a/lxde-base/lxlauncher/ChangeLog
+++ b/lxde-base/lxlauncher/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for lxde-base/lxlauncher
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/lxde-base/lxlauncher/ChangeLog,v 1.8 2010/01/10 15:30:40 volkmar Exp $
+# $Header: /var/cvsroot/gentoo-x86/lxde-base/lxlauncher/ChangeLog,v 1.9 2010/10/27 19:42:03 vostorga Exp $
+
+*lxlauncher-0.2.1-r1 (27 Oct 2010)
+
+ 27 Oct 2010; Víctor Ostorga <vostorga@gentoo.org>
+ +lxlauncher-0.2.1-r1.ebuild, +files/lxlauncher-0.2.1-fix-segfault.patch:
+ Fixing segmentation fault, bug #341561
10 Jan 2010; Mounir Lamouri <volkmar@gentoo.org> lxlauncher-0.2.1.ebuild:
Stable for ppc, bug 292698
diff --git a/lxde-base/lxlauncher/files/lxlauncher-0.2.1-fix-segfault.patch b/lxde-base/lxlauncher/files/lxlauncher-0.2.1-fix-segfault.patch
new file mode 100644
index 000000000000..473b516b8a60
--- /dev/null
+++ b/lxde-base/lxlauncher/files/lxlauncher-0.2.1-fix-segfault.patch
@@ -0,0 +1,124 @@
+--- src/lxlauncher.c 2009-07-07 15:48:19.000000000 +0300
++++ src/lxlauncher.c.new 2010-06-09 21:09:24.000000000 +0300
+@@ -311,6 +311,7 @@
+ {
+ // Dirty hacks used to force pseudo-transparent background
+ gtk_widget_queue_draw( data->table );
++ return TRUE;
+ }
+
+ // Dirty hacks used to reduce unnecessary redrew during scroll
+@@ -662,18 +663,38 @@
+ gchar *file;
+
+ file = g_build_filename(user_dir, name, NULL);
+- if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE) {
+- return file;
+- }
++ if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE)
++ return file;
+ free(file);
+
+ for (dir = system_dirs; *dir; ++dir ) {
+- file = g_build_filename(*dir, name, NULL);
+- if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE) {
+- return file;
+- }
+- free(file);
++ file = g_build_filename(*dir, name, NULL);
++ if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE)
++ return file;
++ free(file);
++ }
++ return NULL;
++}
++
++static void on_menu_cache_reload(MenuCache* mc, gpointer user_data)
++{
++ GMainLoop* mainloop = (GMainLoop*)user_data;
++ g_main_loop_quit(mainloop);
++}
++
++MenuCache* _menu_cache_lookup_sync( const char* menu_name )
++{
++ MenuCache* mc = menu_cache_lookup(menu_name);
++ /* ensure that the menu cache is loaded */
++ if(! menu_cache_get_root_dir(mc)) /* if it's not yet loaded */
++ {
++ GMainLoop* mainloop = g_main_loop_new(NULL, FALSE);
++ gpointer notify_id = menu_cache_add_reload_notify(mc, on_menu_cache_reload, mainloop);
++ g_main_loop_run(mainloop);
++ g_main_loop_unref(mainloop);
++ menu_cache_remove_reload_notify(mc, notify_id);
+ }
++ return mc;
+ }
+
+ int main(int argc, char** argv)
+@@ -695,13 +716,14 @@
+ GError *error = NULL;
+ gchar *config_file = get_xdg_config_file(CONFIG_FILE);
+ if (config_file &&
+- g_key_file_load_from_file(key_file,
+- config_file,
+- G_KEY_FILE_NONE,
+- &error)) {
+- printf("Loaded %s\n", config_file);
+- } else {
+- perror("Error loading " CONFIG_FILE);
++ g_key_file_load_from_file(key_file,
++ config_file,
++ G_KEY_FILE_NONE,
++ &error)) {
++ printf("Loaded %s\n", config_file);
++ }
++ else {
++ perror("Error loading " CONFIG_FILE);
+ }
+ if (config_file)
+ free(config_file);
+@@ -711,21 +733,23 @@
+ // Add application specific properties
+ gtk_settings_install_property(g_param_spec_boolean("lxlauncher-enable-key",
+ _("Enable key navigation"),
+- _("Allow users to use up/down/left/right/tab/enter keys to operate the lxlaucher"),
++ _("Allow users to use up/down/left/right/tab/enter keys to operate the lxlauncher"),
+ FALSE,GTK_ARG_READWRITE));
+ // set up themes for notebook
+ gchar* gtkrc_file = get_xdg_config_file("lxlauncher/gtkrc");
+ gtk_rc_parse(gtkrc_file);
+ if (gtkrc_file) {
+- free(gtkrc_file);
++ free(gtkrc_file);
+ }
+
+ button_size = g_key_file_get_integer(key_file, "Main", "BUTTON_SIZE", NULL);
+ img_size = g_key_file_get_integer(key_file, "Main", "IMG_SIZE", NULL);
+
+ // to prevent from going without configure file
+- if(!button_size) button_size = BUTTON_SIZE_FALLBACK;
+- if(!img_size) img_size = IMG_SIZE_FALLBACK;
++ if(!button_size)
++ button_size = BUTTON_SIZE_FALLBACK;
++ if(!img_size)
++ img_size = IMG_SIZE_FALLBACK;
+
+ icon_size = gtk_icon_size_register( "ALIcon", img_size, img_size );
+
+@@ -756,9 +780,14 @@
+ gtk_container_add( (GtkContainer*)main_window, notebook );
+
+ g_setenv("XDG_MENU_PREFIX", "lxlauncher-", TRUE);
+- menu_tree = menu_cache_lookup( "applications.menu" );
++ menu_tree = _menu_cache_lookup_sync( "applications.menu" );
++ if(!menu_tree)
++ {
++ g_print("Unable to load application menu\n");
++ return 1;
++ }
++ root_dir = menu_cache_item_ref(menu_cache_get_root_dir( menu_tree ));
+ reload_notify_id = menu_cache_add_reload_notify( menu_tree, on_menu_tree_changed, NULL );
+- root_dir = menu_cache_ref(menu_cache_get_root_dir( menu_tree ));
+
+ create_notebook_pages();
+
diff --git a/lxde-base/lxlauncher/lxlauncher-0.2.1-r1.ebuild b/lxde-base/lxlauncher/lxlauncher-0.2.1-r1.ebuild
new file mode 100644
index 000000000000..84f971dce6fc
--- /dev/null
+++ b/lxde-base/lxlauncher/lxlauncher-0.2.1-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/lxde-base/lxlauncher/lxlauncher-0.2.1-r1.ebuild,v 1.1 2010/10/27 19:42:03 vostorga Exp $
+
+EAPI="1"
+
+inherit autotools eutils
+
+DESCRIPTION="An open source clone of the Asus launcher for EeePC"
+HOMEPAGE="http://lxde.sf.net/"
+SRC_URI="mirror://sourceforge/lxde/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-interix ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/glib:2
+ x11-libs/gtk+:2
+ gnome-base/gnome-menus
+ x11-libs/startup-notification"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ dev-util/intltool
+ sys-devel/gettext
+ lxde-base/menu-cache
+ !lxde-base/lxlauncher-gmenu"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${P}-intltool.patch
+ epatch "${FILESDIR}"/${P}-fix-segfault.patch
+
+ # Rerun autotools
+ einfo "Regenerating autotools files..."
+ eautoreconf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ dodoc AUTHORS ChangeLog README
+}