From 8022865f39f4725a2d9a41330c53420f144843b2 Mon Sep 17 00:00:00 2001 From: Krzysztof Mrozowicz Date: Wed, 9 Nov 2022 18:29:58 +0000 Subject: [PATCH] - rebuilding with libfm-1.3.2 --- ...1.1.0-0001-Support-gcc10-compilation.patch | 107 ++++++++++++++++++ menu-cache.spec | 6 +- upstream-libmenu-cache_Fix-memory-leaks.patch | 38 +++++++ 3 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 menu-cache-1.1.0-0001-Support-gcc10-compilation.patch create mode 100644 upstream-libmenu-cache_Fix-memory-leaks.patch diff --git a/menu-cache-1.1.0-0001-Support-gcc10-compilation.patch b/menu-cache-1.1.0-0001-Support-gcc10-compilation.patch new file mode 100644 index 0000000..f7fce3b --- /dev/null +++ b/menu-cache-1.1.0-0001-Support-gcc10-compilation.patch @@ -0,0 +1,107 @@ +From 1ce739649b4d66339a03fc0ec9ee7a2f7c141780 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA +Date: Fri, 24 Jan 2020 13:33:00 +0900 +Subject: [PATCH] Support gcc10 compilation + +gcc10 now defaults to -fno-common, and with gcc10 menu-cache compilation fails like + +/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:167: multiple definition of `DirDirs'; main.o:menu-cache-gen/menu-tags.h:167: first defined here +/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:164: multiple definition of `AppDirs'; main.o:menu-cache-gen/menu-tags.h:164: first defined here +/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:52: multiple definition of `menuTag_Layout'; main.o:menu-cache-gen/menu-tags.h:52: first defined here +.... + +This patch fixes compilation with gcc10: properly declaring variables in header with "extern", and also removing some unneeded variables in header files. +--- + menu-cache-gen/menu-tags.h | 55 ++++++++++++-------------------------- + 1 file changed, 17 insertions(+), 38 deletions(-) + +diff --git a/menu-cache-gen/menu-tags.h b/menu-cache-gen/menu-tags.h +index f3fd7d3..f71c0bc 100644 +--- a/menu-cache-gen/menu-tags.h ++++ b/menu-cache-gen/menu-tags.h +@@ -22,38 +22,17 @@ + #include + #include + +-FmXmlFileTag menuTag_Menu; +-FmXmlFileTag menuTag_AppDir; +-FmXmlFileTag menuTag_DefaultAppDirs; +-FmXmlFileTag menuTag_DirectoryDir; +-FmXmlFileTag menuTag_DefaultDirectoryDirs; +-FmXmlFileTag menuTag_Include; +-FmXmlFileTag menuTag_Exclude; +-FmXmlFileTag menuTag_Filename; +-FmXmlFileTag menuTag_Or; +-FmXmlFileTag menuTag_And; +-FmXmlFileTag menuTag_Not; +-FmXmlFileTag menuTag_Category; +-FmXmlFileTag menuTag_MergeFile; +-FmXmlFileTag menuTag_MergeDir; +-FmXmlFileTag menuTag_DefaultMergeDirs; +-FmXmlFileTag menuTag_Directory; +-FmXmlFileTag menuTag_Name; +-FmXmlFileTag menuTag_Deleted; +-FmXmlFileTag menuTag_NotDeleted; +-FmXmlFileTag menuTag_OnlyUnallocated; +-FmXmlFileTag menuTag_NotOnlyUnallocated; +-FmXmlFileTag menuTag_All; +-FmXmlFileTag menuTag_LegacyDir; +-FmXmlFileTag menuTag_KDELegacyDirs; +-FmXmlFileTag menuTag_Move; +-FmXmlFileTag menuTag_Old; +-FmXmlFileTag menuTag_New; +-FmXmlFileTag menuTag_Layout; +-FmXmlFileTag menuTag_DefaultLayout; +-FmXmlFileTag menuTag_Menuname; +-FmXmlFileTag menuTag_Separator; +-FmXmlFileTag menuTag_Merge; ++extern FmXmlFileTag menuTag_AppDir; ++extern FmXmlFileTag menuTag_DirectoryDir; ++extern FmXmlFileTag menuTag_Include; ++extern FmXmlFileTag menuTag_Exclude; ++extern FmXmlFileTag menuTag_Filename; ++extern FmXmlFileTag menuTag_Or; ++extern FmXmlFileTag menuTag_And; ++extern FmXmlFileTag menuTag_Not; ++extern FmXmlFileTag menuTag_Category; ++extern FmXmlFileTag menuTag_All; ++extern FmXmlFileTag menuTag_LegacyDir; + + typedef enum { + MERGE_NONE, /* starting value */ +@@ -152,19 +131,19 @@ typedef struct { + } MenuRule; + + /* requested language(s) */ +-char **languages; ++extern char **languages; + + /* list of menu files to monitor */ +-GSList *MenuFiles; ++extern GSList *MenuFiles; + + /* list of menu dirs to monitor */ +-GSList *MenuDirs; ++extern GSList *MenuDirs; + + /* list of available app dirs */ +-GSList *AppDirs; ++extern GSList *AppDirs; + + /* list of available dir dirs */ +-GSList *DirDirs; ++extern GSList *DirDirs; + + /* parse and merge menu files */ + MenuMenu *get_merged_menu(const char *file, FmXmlFile **xmlfile, GError **error); +@@ -177,7 +156,7 @@ gboolean save_menu_cache(MenuMenu *layout, const char *menuname, const char *fil + void _free_layout_items(GList *data); + + /* verbosity level */ +-gint verbose; ++extern gint verbose; + + #define DBG if (verbose) g_debug + #define VDBG if (verbose > 1) g_debug +-- +2.24.1 diff --git a/menu-cache.spec b/menu-cache.spec index 82081ca..55cec01 100644 --- a/menu-cache.spec +++ b/menu-cache.spec @@ -2,11 +2,13 @@ Summary: Library for caching freedesktop defined application menus Summary(pl.UTF-8): Biblioteka do buforowania menu freedesktop.org Name: menu-cache Version: 1.1.0 -Release: 1 +Release: 2 License: LGPL v2.1+ Group: Libraries Source0: http://downloads.sourceforge.net/lxde/%{name}-%{version}.tar.xz # Source0-md5: 99999a0bca48b980105208760c8fd893 +Patch0: upstream-libmenu-cache_Fix-memory-leaks.patch +Patch1: menu-cache-1.1.0-0001-Support-gcc10-compilation.patch URL: http://www.lxde.org/ BuildRequires: glib2-devel >= 1:2.16.0 BuildRequires: gtk-doc >= 1.14 @@ -86,6 +88,8 @@ Dokumentacja API biblioteki menu-cache. %prep %setup -q +%patch0 -p1 +%patch1 -p1 %build %configure \ diff --git a/upstream-libmenu-cache_Fix-memory-leaks.patch b/upstream-libmenu-cache_Fix-memory-leaks.patch new file mode 100644 index 0000000..80b146e --- /dev/null +++ b/upstream-libmenu-cache_Fix-memory-leaks.patch @@ -0,0 +1,38 @@ +From 97e5de8682c0c44fe4e6a2df864c5fdf76cd77cc Mon Sep 17 00:00:00 2001 +From: Palo Kisa +Date: Thu, 30 Nov 2017 11:36:18 +0100 +Subject: [PATCH] libmenu-cache: Fix memory leaks + +--- + libmenu-cache/menu-cache.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/libmenu-cache/menu-cache.c b/libmenu-cache/menu-cache.c +index 5025d72..273b503 100644 +--- a/libmenu-cache/menu-cache.c ++++ b/libmenu-cache/menu-cache.c +@@ -379,11 +379,15 @@ static MenuCacheItem* read_item(GDataInputStream* f, MenuCache* cache, + else /* separator */ + { + item->type = MENU_CACHE_TYPE_SEP; ++ g_free(line); + return item; + } + } + else ++ { ++ g_free(line); + return NULL; ++ } + + item->id = g_strndup( line + 1, len - 1 ); + g_free(line); +@@ -923,6 +927,7 @@ gboolean menu_cache_item_unref(MenuCacheItem* item) + else + { + MenuCacheApp* app = MENU_CACHE_APP(item); ++ g_free(app->generic_name); + g_free( app->exec ); + g_free(app->try_exec); + g_free(app->working_dir); + -- 2.44.0