Ping On Mon, Mar 22, 2021 at 04:00:36PM +0000, Dimitri Karamazov wrote: > On Mon, Mar 22, 2021 at 11:34:27AM +0000, Stuart Henderson wrote: > > On 2021/03/21 16:19, Dimitri Karamazov wrote: > > > On Sun, Mar 21, 2021 at 11:46:48AM +0000, Stuart Henderson wrote: > > > > On 2021/03/21 11:30, Solene Rapenne wrote: > > > > > On Thu, 18 Mar 2021 17:36:55 +0000 > > > > > Dimitri Karamazov <deserter...@danwin1210.me>: > > > > > > > > > > > Ping > > > > > > > > > > > > > > > > hello, in zyn-fusion I'd add audio/zynaddsubfx as a RUN_DEP because > > > > > it seems mandatory to use zyn-fusion. > > > > > > > > The problem is that the dependency is sort-of circular. zynaddsubfx > > > > requires zyn-fusion or another UI to be useful, and zyn-fusion requires > > > > zynaddsubfx to be useful. > > > > > > > > AUR deals with this by including zynaddsubfx in zyn-fusion (and having > > > > them conflict) but that doesn't seem ideal either. > > > > > > > > Thinking about what happens if other UIs are added though, having > > > > zynaddsubfx depend on zyn-fusion doesn't work because the user might > > > > want > > > > a different UI. > > > > > > > > Maybe the answer is to have zyn-fusion depend on zynaddsubfx and move > > > > the README to zynaddsubfx ("this package provides the backenx > > > > synthesizer, > > > > you must also install a user interface") - or even just including it in > > > > DESCR. > > > > > > > > The other way is to use meta-packages but that's messier .. > > > > > > There is a configure option -DGuiModule in zynaddsubfx which can be set to > > > zest(zyn-fusion), ntk or fltk. So making zyn-fusion depend on zynaddsubfx > > > will not work(restrict our options to zest). Also zyn-fusion has no real > > > dependency on zynaddsubfx it is not needed during build or runtime. It > > > is a hollow ui and is supposed to be so. > > > > > > zyn-fusion(zest) is a runtime dependency, while on the other hand fltk > > > and ntk are linked with zynaddsubfx. Only one of these frontends can be > > > installed at a time. > > > > > > Since files created vary with the value of GuiModule, I will have to use > > > MULTI_PACKAGES, and then set dependencies and CONFIGURE_ARGS for each > > > subpackage(like fltk,ntk and zyn-fusion). I see no other possibility to > > > allow Gui choices but to make zynaddsubfx depend on zyn-fusion, then add > > > other frontends with MULTI_PACKAGES. > > > > If I understand correctly this setting changes existing built files? > > For example bin/zynaddsubfx (or some other file) would be present in > > each build but would be different depending on the build option? > > If so then that would be FLAVOR not MULTI_PACKAGES. > > > > MULTI_PACKAGES is used when you have a core set of files that are > > identical for all build options, and additional/missing files depending > > on the build options. For example where you have a bunch of dlopen()'d > > .so modules which are present or not depending on the build option, > > but the main binary doesn't change. > > So I was mistaken. It needs a mix of both, for different options some > common files are differently linked (zynaddsubfx will either call zyn-fusion > or zynaddsubfx-ext-gui) and an additional bin/zynaddsubfx-ext-gui > file is present for fltk and ntk. Not possible? > > If it is not, there is no real need to fret at it, aside from the rabbit > hole of tabs the rest of the Gui's will lead you into there is nothing > interesting they offer. Only Zyn-Fusion has been good enough for them to > monetize it. > > > > > The result should not be same. Check the images I've attached. > > > `zyn-fusion` - image1.png > > > > > > This interface has no connection with the backend and hence is utterly > > > useless. > > > > How about the attached set of ports: > > > > meta/zyn-fusion > > audio/zynaddsubfx > > x11/mruby-zest > > > > (If you unpack in /usr/ports/mystuff you'll need to copy or symlink > > meta/Makefile.inc from the main ports tree into mystuff/meta/Makefile.inc) > > > > x11/mruby-zest is your x11/zyn-fusion port renamed, and with the binary > > moved into libexec (so it's out of the normal path, which should remove > > most confusion). I used just the date in the version number for this. > > > > meta/zyn-fusion provides a "zyn-fusion" meta-package which only depends > > on both zynaddsubfx+mruby-zest. It's kind-of pointless but gives something > > so that people can pkg_add zyn-fusion. > > > > audio/zynaddsubfx is patched slightly to search in libexec for zyn-fusion. > > (Also fixed a 0/nullptr mismatch that is a warning in clang 10 and I guess > > might possibly break in clang 11). > > > > I also changed from SUBST_CMD to sed (using /usr/X11R6 / /usr/local in the > > patch) so that if you run "make update-patches" after building it doesn't > > undo the subst. > > > > If other guis are added later then we would add FLAVORS in zynaddsubfx and > > tighten/adjust the dependency in meta/zyn-fusion. > > > > This seems a good balance of not changing too much, and reducing user > > confusion (seems better to head off problems by making it so people don't > > run into them if possible, rather than hope they will read pkg-readme, > > some will but I know many won't and will just think it's broken when they > > don't get the bank lists etc showing up..) What do you think? I'm OK with > > importing like this. > > I'm perfectly fine with your changes. > > regards, > Dimitri