diff options
author | Victor Ostorga <vostorga@gentoo.org> | 2010-10-27 19:42:04 +0000 |
---|---|---|
committer | Victor Ostorga <vostorga@gentoo.org> | 2010-10-27 19:42:04 +0000 |
commit | e30837e23f46ad7847753419a5edd09f1bbbe8d6 (patch) | |
tree | 5d6a33113ff32911f8294127a0f68ade29ba1977 /lxde-base/lxlauncher | |
parent | x86 stable per bug 341787 (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | lxde-base/lxlauncher/files/lxlauncher-0.2.1-fix-segfault.patch | 124 | ||||
-rw-r--r-- | lxde-base/lxlauncher/lxlauncher-0.2.1-r1.ebuild | 44 |
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 +} |