SHA256
4
0
forked from pool/menu-cache

- Update to 1.1.1:

* Fixed memory leaks
  * GCC 10 compilation support
  * Removed unused libmenu-cache-uninstalled.pc.in
- Drop upstreamed:
  * menu-cache-1.1.0-0001-Support-gcc10-compilation.patch
  * upstream-libmenu-cache_Fix-memory-leaks.patch

OBS-URL: https://build.opensuse.org/package/show/X11:lxde/menu-cache?expand=0&rev=67
This commit is contained in:
2025-02-21 15:39:31 +00:00
committed by Git OBS Bridge
commit f5e7aba7e9
8 changed files with 566 additions and 0 deletions
+299
View File
@@ -0,0 +1,299 @@
-------------------------------------------------------------------
Fri Feb 21 15:34:24 UTC 2025 - Michael Vetter <mvetter@suse.com>
- Update to 1.1.1:
* Fixed memory leaks
* GCC 10 compilation support
* Removed unused libmenu-cache-uninstalled.pc.in
- Drop upstreamed:
* menu-cache-1.1.0-0001-Support-gcc10-compilation.patch
* upstream-libmenu-cache_Fix-memory-leaks.patch
-------------------------------------------------------------------
Fri Nov 13 08:26:15 UTC 2020 - munix9@googlemail.com
- Added upstream-libmenu-cache_Fix-memory-leaks.patch
* libmenu-cache: Fix memory leaks
- Added menu-cache-1.1.0-0001-Support-gcc10-compilation.patch
* gcc10 now defaults to -fno-common, and with gcc10 menu-cache
compilation fails with "multiple definition of ..."
-------------------------------------------------------------------
Fri Nov 3 09:45:02 UTC 2017 - mvetter@suse.com
- Update to 1.1.0:
* Fixed crash with invalid <Name> tag in a menu.
* Added new API menu_cache_app_get_generic_name() to get generic
name for application.
* Fixed potential access violation, use runtime user dir instead of tmp dir.
It limits libmenu-cache compatibility to menu-cached >= 0.7.0.
* Directory $XDG_DATA_HOME/applications will be created if it does not
exist so it will be monitored in any case.
* Fixed issue when subdirectories added would be skipped in monitoring.
* Fixed potential file descriptors leak.
* Reduced inactivity timer to 6 seconds (from 600 seconds).
* Fixed an issue with multiple daemons started: test if daemon is already
running on socket before killing old socket file.
* Fixed 100% CPU load by menu-cached due to invalid dup2() call.
- Remove menu-cache-1.0.2-until-fd52af6.patch: upstreamed
-------------------------------------------------------------------
Wed Sep 13 12:57:27 UTC 2017 - mvetter@suse.com
- boo#boo#1044483:
- Add menu-cache-1.0.2-until-fd52af6.patch
We need a6763eb which tests for multiple daemons.
Other fixes are also important/related/good-to-have
-------------------------------------------------------------------
Sun Dec 25 13:29:36 UTC 2016 - trcs@gmx.com
- New upstream release 1.0.2
* Fixed crash in menu-cached if cache regeneration fails
* Fixed 100% CPU load by menu-cached in some rare conditions
* Invalid empty <DefaultLayout> should be ignored, see
specification
* Fixed crash in menu-cache-gen on <MergeFile type="parent"/> if
no file to merge found
* Fixed showing empty Other menu in some cases
* The option --disable-debug is now default, instead of
--enable-debug
-------------------------------------------------------------------
Mon Dec 7 16:42:24 UTC 2015 - trcs@gmx.com
- New upstream release 1.0.1
* Fixed crash on generating menu with both tags <DefaultAppDirs/>
and <KDELegacyDirs/> present.
* Fixed crash when menu-cache-gen ran manually without
CACHE_GEN_VERSION.
* Fixed crash in menu-cache-gen on <Filename> in menu layout with
<OnlyUnallocated/> tag present.
* Fixed incorrect processing of <Merge type=”files”> in
menu-cache-gen.
* Added safeguards against environment variables containing
newlines.
* Fixed case when cache was not updated while it should, it was
claimed to be fixed in 1.0.0 but apparently fix was incomplete.
* Fixed ignored <Filename> tags inside of <Layout>.
* Fixed memory corruption in scanning <LegacyDir> addressed
directory.
* Removed menu-cache-1.0.0-Fix-crash-on-generating-menu.patch
* Removed menu-cache-1.0.0-Fix-crash-CACHE_GEN_VERSION.patch
-------------------------------------------------------------------
Sat Oct 31 11:47:39 UTC 2015 - trcs@gmx.com
- Added menu-cache-1.0.0-Fix-crash-on-generating-menu.patch
* Fix crash on generating menu with both tags <DefaultAppDirs/>
and <KDELegacyDirs/> present
- Added menu-cache-1.0.0-Fix-crash-CACHE_GEN_VERSION.patch
* Fix crash when menu-cache-gen ran manually without
CACHE_GEN_VERSION
-------------------------------------------------------------------
Mon Sep 29 20:52:33 UTC 2014 - trcs@gmx.com
- update to pre-release version 1.0.0
* A little code optimization
* Fix compilation warning
* Fix DISTCLEANFILES in docs - generated files should be cleaned
* Add Log Domain "Menu-Cache" for better library logging
messages
* Fixed bug when cache was not updated while it should
* Added new cache file format generation support with changes:
- invisible directories (NoDisplay=true or empty) can be put
into the cache too but with flag (not displayed) set;
- content of TryExec field is added to contents of cache file;
- the working dir to execute application is added to cache
file;
- list of categories is added to contents of cache file;
- list of keywords is added to contents of cache file.
* Fixed crash in menu_cache_item_get_file_dirname() for a
non-existent file (might happen for directories without
.directory file).
* Made menu_cache_app_get_working_dir() actually work.
* Made menu_cache_lookup() faster (do not load cache immediately
but on idle instead).
* Eliminated secondary cache reload in menu_cache_lookup_sync()
- server response in such case will be ahead of idle reload
(since main thread is in wait ATM) and therefore idle call
will be supressed.
* Added new API menu_cache_app_get_categories() to get list of
categories for the application.
* Added new APIs for applications:
menu_cache_list_all_for_category() and
menu_cache_list_all_for_keyword() that return list of
applications matching criteria.
* Fixed problem if some string in the desktop entry file
contained a new line character. That broke cache file format,
now it's replaced with a "\n" string and converted back into
new line in the library.
- applied spec-cleaner
-------------------------------------------------------------------
Sat Sep 6 18:11:33 UTC 2014 - trcs@gmx.com
- New upstream release 0.7.0
* autogen.sh: do not do configure until $DOCONGIGURE is set to
non-empty
* menu-cache-gen: don't fail on improper menu sctructure when
verbose=0
* Be more verbose on file loading failures. May be better not
fail at all?
* menu-cache-gen: don't fail if <MergeFile> file isn't found,
just skip it
* Fix menu-cached crash after menu-cache-gen failure
* Handles menu-cached failures more gracefully in libmenu-cache
* Add a parameter for menu-cached to specify socket path
* Fix unrequested empty directories in default mode
* Fix support for <Move> tag - it should move not into <New> but
to <New> instead
* debian: add libfm-dev into build dependencies
* debian: dh-autoreconf was missing in debian/control file
* Fix './configure --help' formatting and update NEWS file
* Update output of 'menu-cache-gen -h' command
* menu-cache-gen: implement inline_alias attribute support
* Take show_empty attribute into consideration in _stage2()
* Add option --verbose for menu-cache-gen (quiet by default, max
3 verbosity level)
* Support NoDisplay in <Directory> files (menu-cache-gen) to
hide folder
* Update AUTHORS and README files
* Fixing memory problems in menu-cache-gen
* Pass LegacyDir prefix to menu-cache-gen composer using XML
comment
* menu-cache-gen: add support for <KDELegacyDirs> tag
* Implement support for 'inline' attribute of <Menuname> tag in
menu-cache-gen
* Fix check for duplicates in menu-cache-gen merging
* Add support into menu-cache-gen for <LegacyDir> tag
* Fix few parsing issues in ragards to desktop menu
specifications
* libmenu-cache: send languages list to menu-cache-gen instead
of single lang code
* Support for <Move> tag in menu-cache-gen
* Check for mandatory <Name> for <Menu> tags
* First draft on menu-cache-gen, it works now it seems
* Add main() function to menu-cache-gen
* Make save_menu_cache() safe - rename temp file into it if no
errors only
* The 'menu-cache-gen': new implementation based on FmXmlFile
parser
-------------------------------------------------------------------
Tue Aug 26 17:16:17 UTC 2014 - trcs@gmx.com
- new upstream version 0.6.1
* Fixed invalid memory access after cache reload.
* A little cleanup of dist tarball: removed unused files
menu-cache.h and libmenu-cache-uninstalled.pc.in.
-------------------------------------------------------------------
Sun Aug 3 22:22:07 UTC 2014 - trcs@gmx.com
- new upstream version 0.6.0
* Fixed few GLIB compatibility issues.
* Changed default tarball format to XZ instead of GZIP.
* Fixed build without --enable-gtk-doc.
* Fixed crash on access root_dir with empty cache (no menu).
* Allowed menu_cache_get_desktop_env_flag() accept colon-separated list in accordance to
freedesktop.org specification for the environment variable XDG_CURRENT_DESKTOP.
* The case if user deleted cache file is handled: it will be regenerated.
-------------------------------------------------------------------
Fri Jul 4 08:06:50 UTC 2014 - andrea@opensuse.org
- Spec file clean up, we should not provide and obsolete libmenu-cache2
-------------------------------------------------------------------
Sun Jan 5 11:49:27 UTC 2014 - trcs@eresmas.com
- minor changes
* Fixed build on systems where MAXSYMLINKS isn't defined.
* Fixed menu-cached crash in some rare cases.
- Complete changelog in http://blog.lxde.org/?p=1057
-------------------------------------------------------------------
Wed Sep 4 14:24:49 UTC 2013 - i@marguerite.su
- update version 0.5.0
* Added a possibility to include NoDisplay files into cache file
* New macro MENU_CACHE_CHECK_VERSION()
* Added new APIs: menu_cache_find_item_by_id, menu_cache_find_child_by_id,
menu_cache_find_child_by_name.
* bugfixes
-------------------------------------------------------------------
Wed Dec 19 09:59:10 UTC 2012 - andrea@opensuse.org
- new upstream version 0.4.1
* The libmenu-cache is made thread-safe. Thread-unsafe APIs are marked
as deprecated now and should be never used in any multithreaded application.
* Added creation of HTML developers documentation. It is triggered
by configure script option enable-gtk-doc.
* The libmenu-cache is made more responsible by moving some time-critical
operations into thread. Also it preloads saved cache file if it exists
so it is available near instantly after menu_cache_lookup().
Caller still will get updates by adding notifier to the cache.
* Added automatic shutdown of menu-cached server after some inactivity
timeout (i.e. all clients were unregistered).
* Fixed few memory problems (referencing errors and memory leaks).
* Fix for bug #3501347: use g_get_tmp_dir() instead of hardcoded “/tmp”.
* The libmenu-cache ABI bumped to 2.
-------------------------------------------------------------------
Tue May 29 12:40:04 UTC 2012 - andrea@opensuse.org
- New upstream version 0.3.3
* bug fix release
- added URL tag in spec file
-------------------------------------------------------------------
Thu Dec 8 11:16:14 UTC 2011 - coolo@suse.com
- fix license to be in spdx.org format
-------------------------------------------------------------------
Mon Aug 2 10:59:43 UTC 2010 - andrea@opensuse.org
- fixed libmenu-cache1 RPM Group
-------------------------------------------------------------------
Mon Jun 7 14:21:59 UTC 2010 - andrea@opensuse.org
- changed RPM Group to System/GUI/LXDE on main package
-------------------------------------------------------------------
Sat Feb 27 09:19:32 UTC 2010 - andrea@opensuse.org
- new upstream version 0.3.2
* several bug fix
* API changes
* soname changed
-------------------------------------------------------------------
Wed Feb 17 15:48:41 UTC 2010 - andrea@opensuse.org
- new upstream version 0.3.1
* important bug fix
* menu-generation is now client side
* speed up and lower memory usage
-------------------------------------------------------------------
Fri Dec 11 19:19:58 UTC 2009 - andrea@opensuse.org
- clean up spec file
- used chrpath to purge from rpath linking
- bzipped source code
-------------------------------------------------------------------
Sun Nov 8 15:44:30 UTC 2009 - andrea@opensuse.org
- new upstream version 0.2.6
- Security fix
-------------------------------------------------------------------
Sat May 23 15:44:23 UTC 2009 - andrea@opensuse.org
- new package
+92
View File
@@ -0,0 +1,92 @@
#
# spec file for package menu-cache
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: menu-cache
Version: 1.1.1
Release: 0
Summary: A tool speed up menus
License: GPL-2.0-or-later AND LGPL-2.1-or-later
Group: System/GUI/LXDE
URL: https://www.lxde.org
Source0: https://github.com/lxde/%{name}/archive/%{version}.tar.gz
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: gtk-doc
BuildRequires: gtk2-devel
BuildRequires: intltool
BuildRequires: libtool
#BuildRequires: m4
BuildRequires: pkgconfig(libfm-extra)
%description
Libmenu-cache is a library creating and utilizing caches to speed up
the manipulation for freedesktop.org defined application menus.
It can be used as a replacement of libgnome-menu of gnome-menus.
%package devel
Summary: Menu-cache Headers
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: libmenu-cache3 = %{version}
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(libfm-extra)
%description devel
%{name} development files
%package -n libmenu-cache3
Summary: Menu-cache libraries
Group: System/Libraries
%description -n libmenu-cache3
%{name} libraries for development
%prep
%autosetup -p1
sh autogen.sh
%build
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
%configure --disable-static
make %{?_smp_mflags}
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%fdupes %{buildroot}
%post -n libmenu-cache3 -p /sbin/ldconfig
%postun -n libmenu-cache3 -p /sbin/ldconfig
%files
%license COPYING
%doc README AUTHORS NEWS
%{_libexecdir}/%{name}
%files devel
%{_includedir}/%{name}
%{_libdir}/libmenu-cache.so
%{_libdir}/pkgconfig/libmenu-cache.pc
%files -n libmenu-cache3
%{_libdir}/libmenu-cache.so.3
%{_libdir}/libmenu-cache.so.3.2.0
%changelog
+23
View File
@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
+1
View File
@@ -0,0 +1 @@
.osc
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:990857aa61a2894730e3749b6bc0f905967eed0c21aa2b62a7694007bdccbe8d
size 68203
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e8af90467df271c3c8700c840ca470ca2915699c6f213c502a87d74608748f08
size 68090
@@ -0,0 +1,108 @@
From 1ce739649b4d66339a03fc0ec9ee7a2f7c141780 Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
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 <libfm/fm-extra.h>
#include <menu-cache.h>
-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
@@ -0,0 +1,37 @@
From 97e5de8682c0c44fe4e6a2df864c5fdf76cd77cc Mon Sep 17 00:00:00 2001
From: Palo Kisa <palo.kisa@gmail.com>
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);