The attached diff updates jgmenu. The update matches Debian testing and is one minor version beyond FreeBSD.
This update add a fourth method of menu generation - apps. "apps" is an internal menu generator that duplicates the function of x11/menu-cache while being significantly faster. Builds/runs amd64. make ports-lib-depends-check produced Extra/ menu-cache.1 pkg/README updated for apps. -- J. Scott Heppler
Index: x11/jgmenu/Makefile =================================================================== RCS file: /cvs/ports/x11/jgmenu/Makefile,v retrieving revision 1.13 diff -u -p -u -r1.13 Makefile --- x11/jgmenu/Makefile 13 Nov 2022 15:30:22 -0000 1.13 +++ x11/jgmenu/Makefile 20 Nov 2022 23:34:02 -0000 @@ -3,8 +3,7 @@ CATEGORIES = x11 GH_ACCOUNT = johanmalm GH_PROJECT = jgmenu -GH_TAGNAME = v2.1 -REVISION = 6 +GH_TAGNAME = v4.4.1 # GPLv2 only PERMIT_PACKAGE = Yes @@ -26,7 +25,7 @@ LIB_DEPENDS = x11/gnome/librsvg \ RUN_DEPENDS = devel/desktop-file-utils \ x11/gtk+3,-guic -CONFIGURE_STYLE = none +CONFIGURE_STYLE = gnu USE_GMAKE = Yes MAKE_FLAGS = VERBOSE=1 Index: x11/jgmenu/distinfo =================================================================== RCS file: /cvs/ports/x11/jgmenu/distinfo,v retrieving revision 1.2 diff -u -p -u -r1.2 distinfo --- x11/jgmenu/distinfo 26 Feb 2019 16:16:05 -0000 1.2 +++ x11/jgmenu/distinfo 20 Nov 2022 23:34:02 -0000 @@ -1,2 +1,2 @@ -SHA256 (jgmenu-2.1.tar.gz) = rtB7PRVsAn4uS2Kvv5b4+RstWRRvT22Hc8SNMV81rz8= -SIZE (jgmenu-2.1.tar.gz) = 330256 +SHA256 (jgmenu-4.4.1.tar.gz) = FkGU652nzO3M+0d5ZWCyprD3NK5sXDh47BhPfP5/jzI= +SIZE (jgmenu-4.4.1.tar.gz) = 382258 Index: x11/jgmenu/patches/patch-Makefile =================================================================== RCS file: /cvs/ports/x11/jgmenu/patches/patch-Makefile,v retrieving revision 1.2 diff -u -p -u -r1.2 patch-Makefile --- x11/jgmenu/patches/patch-Makefile 11 Mar 2022 20:16:09 -0000 1.2 +++ x11/jgmenu/patches/patch-Makefile 20 Nov 2022 23:34:02 -0000 @@ -1,42 +1,32 @@ Index: Makefile --- Makefile.orig +++ Makefile -@@ -24,7 +24,7 @@ else - datarootdir= $(prefix)/share - endif - --CFLAGS += -g -Wall -Os -std=gnu89 -+CFLAGS += -Wall -std=gnu89 - CFLAGS += -Wextra -Wdeclaration-after-statement -Wno-format-zero-length \ - -Wold-style-definition -Woverflow -Wpointer-arith \ - -Wstrict-prototypes -Wunused -Wvla -Wunused-result -@@ -100,18 +100,18 @@ $(DEPDIR)/%.d: ; +@@ -80,17 +80,17 @@ $(DEPDIR)/%.d: ; .PRECIOUS: $(DEPDIR)/%.d - install: checkdeps $(PROGS) + install: $(PROGS) - @install -d $(DESTDIR)$(bindir) - @install -m755 jgmenu src/jgmenu_run $(DESTDIR)$(bindir) -- @install -d $(DESTDIR)$(libexecdir) -- @install -m755 $(PROGS_LIBEXEC) $(SCRIPTS_LIBEXEC) $(DESTDIR)$(libexecdir) -- @./scripts/set-exec-path.sh $(DESTDIR)$(bindir)/jgmenu_run $(libexecdir) +- @install -d $(DESTDIR)$(libexecdir)/jgmenu +- @install -m755 $(PROGS_LIBEXEC) $(SCRIPTS_LIBEXEC) $(DESTDIR)$(libexecdir)/jgmenu +- @./scripts/set-exec-path.sh $(DESTDIR)$(bindir)/jgmenu_run $(libexecdir)/jgmenu - @$(MAKE) --no-print-directory -C docs/manual/ prefix=$(prefix) install - @install -d $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ - @install -d $(DESTDIR)$(datarootdir)/applications/ - @install -m644 ./data/jgmenu.svg $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ - @install -m644 ./data/jgmenu.desktop $(DESTDIR)$(datarootdir)/applications/ +- @for dir in $(CONTRIB_DIRS); do \ + install -d $(DESTDIR)$(bindir) + install -m755 jgmenu src/jgmenu_run $(DESTDIR)$(bindir) -+ install -d $(DESTDIR)$(libexecdir) -+ install -m755 $(PROGS_LIBEXEC) $(SCRIPTS_LIBEXEC) $(DESTDIR)$(libexecdir) -+ ./scripts/set-exec-path.sh $(DESTDIR)$(bindir)/jgmenu_run $(libexecdir) ++ install -d $(DESTDIR)$(libexecdir)/jgmenu ++ install -m755 $(PROGS_LIBEXEC) $(SCRIPTS_LIBEXEC) $(DESTDIR)$(libexecdir)/jgmenu ++ ./scripts/set-exec-path.sh $(DESTDIR)$(bindir)/jgmenu_run $(libexecdir)/jgmenu + $(MAKE) --no-print-directory -C docs/manual/ prefix=$(prefix) install + install -d $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ + install -d $(DESTDIR)$(datarootdir)/applications/ + install -m644 ./data/jgmenu.svg $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ + install -m644 ./data/jgmenu.desktop $(DESTDIR)$(datarootdir)/applications/ - ifeq ($(NO_LX),1) -- @echo "info: lx module not included as libmenu-cache >=1.1.0 not found" -+ echo "info: lx module not included as libmenu-cache >=1.1.0 not found" - endif ++ for dir in $(CONTRIB_DIRS); do \ + $(MAKE) -C contrib/$$dir install || exit 1; \ + done - # We are not brave enough to uninstall in /usr/, /usr/local/ etc Index: x11/jgmenu/patches/patch-docs_manual_Makefile =================================================================== RCS file: /cvs/ports/x11/jgmenu/patches/patch-docs_manual_Makefile,v retrieving revision 1.2 diff -u -p -u -r1.2 patch-docs_manual_Makefile --- x11/jgmenu/patches/patch-docs_manual_Makefile 11 Mar 2022 20:16:09 -0000 1.2 +++ x11/jgmenu/patches/patch-docs_manual_Makefile 20 Nov 2022 23:34:02 -0000 @@ -1,7 +1,7 @@ Index: docs/manual/Makefile --- docs/manual/Makefile.orig +++ docs/manual/Makefile -@@ -11,7 +11,7 @@ man7pages = jgmenututorial.7 +@@ -4,7 +4,7 @@ man7pages = jgmenututorial.7 jgmenuunicode.7 manpages = $(man1pages) $(man7pages) prefix ?= /usr/local Index: x11/jgmenu/patches/patch-src_jgmenu_run =================================================================== RCS file: /cvs/ports/x11/jgmenu/patches/patch-src_jgmenu_run,v retrieving revision 1.2 diff -u -p -u -r1.2 patch-src_jgmenu_run --- x11/jgmenu/patches/patch-src_jgmenu_run 11 Mar 2022 20:16:09 -0000 1.2 +++ x11/jgmenu/patches/patch-src_jgmenu_run 20 Nov 2022 23:34:02 -0000 @@ -1,7 +1,7 @@ Index: src/jgmenu_run --- src/jgmenu_run.orig +++ src/jgmenu_run -@@ -57,7 +57,7 @@ then +@@ -58,7 +58,7 @@ then if test -e ${JGMENU_LOCKFILE} then send_tint2_env_vars_to_jgmenu Index: x11/jgmenu/pkg/PLIST =================================================================== RCS file: /cvs/ports/x11/jgmenu/pkg/PLIST,v retrieving revision 1.3 diff -u -p -u -r1.3 PLIST --- x11/jgmenu/pkg/PLIST 11 Mar 2022 20:16:09 -0000 1.3 +++ x11/jgmenu/pkg/PLIST 20 Nov 2022 23:34:02 -0000 @@ -1,22 +1,26 @@ @bin bin/jgmenu bin/jgmenu_run lib/jgmenu/ -lib/jgmenu/jgmenu-config.py +@bin lib/jgmenu/jgmenu-apps +@bin lib/jgmenu/jgmenu-config @bin lib/jgmenu/jgmenu-greeneye +lib/jgmenu/jgmenu-hide-app.sh @bin lib/jgmenu/jgmenu-i18n lib/jgmenu/jgmenu-init.sh -@bin lib/jgmenu/jgmenu-lx @bin lib/jgmenu/jgmenu-ob -lib/jgmenu/jgmenu-pmenu.py +@bin lib/jgmenu/jgmenu-obtheme @bin lib/jgmenu/jgmenu-socket +lib/jgmenu/jgmenu-themes.sh lib/jgmenu/jgmenu-unity-hack.py -@man man/man1/jgmenu-config.1 +@man man/man1/jgmenu-apps.1 +@man man/man1/jgmenu-i18n.1 @man man/man1/jgmenu-lx.1 @man man/man1/jgmenu-ob.1 @man man/man1/jgmenu-pmenu.1 @man man/man1/jgmenu.1 @man man/man1/jgmenu_run.1 @man man/man7/jgmenututorial.7 +@man man/man7/jgmenuunicode.7 share/applications/jgmenu.desktop share/doc/pkg-readmes/${PKGSTEM} share/icons/hicolor/scalable/apps/jgmenu.svg Index: x11/jgmenu/pkg/README =================================================================== RCS file: /cvs/ports/x11/jgmenu/pkg/README,v retrieving revision 1.2 diff -u -p -u -r1.2 README --- x11/jgmenu/pkg/README 11 Mar 2022 20:16:09 -0000 1.2 +++ x11/jgmenu/pkg/README 20 Nov 2022 23:34:02 -0000 @@ -5,10 +5,15 @@ jgmenu options ============== -This jgmenu port can generate an X11 application menu three different ways: - 1) 'jgmenu_run lx' using additional packages menu-cache and gnome(mate)-menus - 2) 'jgmenu_run ob' from an existing openbox menu.xml file - 3) 'jgmenu_run pmenu' with python3 text parsing +This jgmenu port can generate an X11 application menu four different ways: + 1) 'jgmenu_run apps' utilizes an internal menu cache which utilize + gnome(mate)-menu. It is faster than the remaining options. + 2) 'jgmenu_run lx' using additional packages menu-cache and gnome(mate)-menus + 3) 'jgmenu_run ob' from an existing openbox menu.xml file + 4) 'jgmenu_run pmenu' with python3 text parsing + +Since v2.1, there have been some ~/.config/jgmenu/jgmenurc syntax changes +detailed in jgmenu(1). For those running Openbox, the first method provides automatic, FreeDesktop compliant, menu generation. The second method will source a manually edited