On Jan 06, 2020: 12:10, Stuart Henderson wrote:
On 2020/01/05 09:56, Heppler, J. Scott wrote:
of flavors
Reply-To: Organization:
jgmenu has a new release with a major feature bump - it's own C-coded
menu generator that relegates python3+pmenu and lx+menu-cache to
options. The new "apps" modules will also reference xfce4 garcon menus.
Since version 2.1 a third build option will generate an xfce4-panel menu
plugin.
For more details, see
https://github.com/johanmalm/jgmenu/blob/master/docs/relnotes/4.0.txt
From the porters's handbook
"You won't care about some options. It makes no sense to disable some
stuff if it always works, and if the dependencies are quite small."
My questions revolve around "small" and how to to provide for community
testing. I suspect cwm users would be very interested in a jgmenu-apps
flavor and if it tests well in cwm and other lightweight WM's drop the
python3, menu-cache, libfm dependencies. pmenu always works, is slower
and python3 is not "quite small" although python2 will loose support
later this year and python3 tends to get installed by other ports.
menu-cache, libfm and gnome/mate-menus are smaller and have always
worked and may be helpful to porters who run lightweight desktops but
need to test ports with freedesktop *.desktop entries.
I'm leaning towards 2 flavors initially:
jgmenu-apps
and
jgmenu-lx.
Comments? Suggestions?
--
J. Scott Heppler
These are all separate programs aren't they? That would indicate using
"multi-packages" - enabling everything in the port build, but split
the various executables into separate packages which can each have their
own dependencies. See FLAVORS AND MULTI_PACKAGES in bsd.port.mk(5)
and see x11/xkbset for the simplest example I could find of a port using
this.
./configure --help
Produce a config.mk file to be sourced by Makefile
--with-xfce4-panel-applet Include xfce4-panel-applet. This has quite different
runtime dependencies, so consider building
separately.
--with-gtktheme Include gtktheme module
--with-lx Include lx module
--with-pmenu Include pmenu module
--all, -a Include all contrib/ packages above
--enable-asan Enable address sanitizer (only during development)
--prefix=<dir> Install architecture-independent files in $prefix
(e.g. --prefix=$HOME')
Dependencies
------------
## src/ programs
- jgmenu
* libx11, libxrandr, cairo, pango, librsvg, glib-2.0
- apps
* Nothing - not even a menu package :)
- ob
* libxml2
## contrib/ programs
- lx
* glib-2.0, libmenu-cache (>=1.1.0)
* A `menu package` such as lxmenu-data or gnome-menus. Xfce's libgarcon-common
does not yet work with lx.
- pmenu
* python3
* A `menu package` is optional. If none is installed, all applications will be
shown in the menu's root directory.
- xfce-panel
* xfce4-panel
Upstreams position:
"contrib/ software
The tools and helpers in this directory:
are stand-alone, hopefully interesting and sometimes experimental;
are included in the git-repo to give users easier access to them;
have sometimes been entirely contributed by others;
are not installed by default, but can optionally be added to make &&
make install (those that are considered mature enough, can be given as
options to the configure script - e.g. --with-lx)
may have completely different dependencies to the core jgmenu
application (e.g. ff-bookmarks depends on sqlite3 and arguably also
firefox/iceweasel);
do not always adhere to the jgmenu coding guidelines.
Although I will try to maintain this code, my main focus will remain on
the jgmenu app itself (the code in the src/ directory)."
Reference Porters Handbook:
"In the ideal case, build options will simply create new files, with new
dependencies, and not affect other stuff. This is a fairly common
scenario for plugin frameworks: you add one library, you end up with a
new plugin. This also happens fairly often for core applications with a
graphics front-end: the console application is built every time, and the
x11 interface shows up as a separate binary."
My read of this is that the Core program is jgmenu/apps/ob
and the potential subpackages lx, pmenu and xfce4-panel.
I'll dismiss xfce4-panel due to the runtime dependencies.
PKGNAME-main=jgmenu
PKGNAME-lx=jgmenu-lx
PKGNAME-pmenu=jgmenu-pmenu
I'm testing the apps module now and will hopefully have a modified port
by the end of the week.
Thanks
--
J. Scott Heppler