Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 935750 - add virtual/lash for media-sound/lash and media-sound/ladish
Summary: add virtual/lash for media-sound/lash and media-sound/ladish
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Professional Audio Applications Maintainers
URL:
Whiteboard:
Keywords:
Depends on: 442916
Blocks:
  Show dependency tree
 
Reported: 2024-07-08 14:20 UTC by Dominique Michel
Modified: 2024-07-16 09:02 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
proposed virtual/lash ebuild (lash-0.ebuild,431 bytes, text/plain)
2024-07-08 19:16 UTC, Dominique Michel
Details
metadata.xml (metadata.xml,284 bytes, text/xml)
2024-07-08 19:20 UTC, Dominique Michel
Details
proposed virtual/lash ebuild v.2 (lash-0.ebuild,432 bytes, text/plain)
2024-07-08 19:45 UTC, Dominique Michel
Details
metadata with ladish USE description (metadata.xml,368 bytes, text/plain)
2024-07-08 19:51 UTC, Dominique Michel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dominique Michel 2024-07-08 14:20:40 UTC
ladish provide an ABI compatible lash infrastructure with some improvements. It have been out from years, and some software begun to support ladish instead of lash - see https://bugs.gentoo.org/932851 .

It would be great to also have ladish in the tree, see bug https://bugs.gentoo.org/442916 with the ABI report.

According to a discussion on #gentoo-dev-help the best solution is to implement a virtual.

Reproducible: Always
Comment 1 Dominique Michel 2024-07-08 15:50:24 UTC
Current list of the main tree's packages that depend on lash:

./media-plugins/calf/calf-0.90.3-r2.ebuild:	lash? ( media-sound/lash )
./media-plugins/calf/calf-9999.ebuild:	lash? ( media-sound/lash )
./media-sound/amsynth/amsynth-1.13.4.ebuild:	lash? ( media-sound/lash )
./media-sound/fluidsynth/fluidsynth-2.3.5.ebuild:		lash? ( media-sound/lash[${MULTILIB_USEDEP}] )
./media-sound/hydrogen/hydrogen-1.2.2-r1.ebuild:	lash? ( media-sound/lash )
./media-sound/hydrogen/hydrogen-9999.ebuild:	lash? ( media-sound/lash )
./media-sound/jack-keyboard/jack-keyboard-2.7.2-r1.ebuild:	lash? ( media-sound/lash )
./media-sound/jack-rack/jack-rack-1.4.8_rc1-r1.ebuild:	lash? ( media-sound/lash:= )
./media-sound/jack-smf-utils/jack-smf-utils-1.0-r1.ebuild:	lash? ( media-sound/lash )
./media-sound/seq24/seq24-0.9.3-r1.ebuild:	lash? ( media-sound/lash )
./media-sound/timemachine/timemachine-0.3.4.ebuild:	lash? ( >=media-sound/lash-0.5 )
./media-sound/vkeybd/vkeybd-0.1.18e.ebuild:	lash? ( media-sound/lash:= )"
./media-sound/zynaddsubfx/zynaddsubfx-3.0.6-r3.ebuild:	lash? ( media-sound/lash )
./media-sound/zynaddsubfx/zynaddsubfx-3.0.6-r4.ebuild:	lash? ( media-sound/lash )
Comment 2 Dominique Michel 2024-07-08 19:16:18 UTC
Created attachment 897336 [details]
proposed virtual/lash ebuild

As lash and ladish cannot be installed at the same time, this create a blocking that I solve into that virtual with a 'ladish' USE flag.
I find this more convenient for the user than to add that blocking into media-sound/[lash|ladish].
Comment 3 Dominique Michel 2024-07-08 19:20:56 UTC
Created attachment 897337 [details]
metadata.xml

It copied metadata.xml from virtual/jack. I feel it is correct to do so, because lash/ladish are used mostly for serious or intensive audio work.
Comment 4 Dominique Michel 2024-07-08 19:45:23 UTC
Created attachment 897346 [details]
proposed virtual/lash ebuild v.2

I read the devman page about USE flags, and it is no reason to not have a default 'IUSE=+ladish"'.

I find this to be adequate because on the long run, ladish will replace lash when ladish only software will be added into the tree.
Comment 5 Dominique Michel 2024-07-08 19:51:45 UTC
Created attachment 897347 [details]
metadata with ladish USE description

Please correct my English if needed or better.
Comment 6 Dominique Michel 2024-07-15 12:45:02 UTC
It is more we can say about ladish and that virtual.

As explained here: https://github.com/jackaudio/jackaudio.github.com/wiki/Suggested-packaging-approach only one jack server implementation can be installed at a given time.

But as a discussion with nedko on irc #ladi showed me, when ladish depend on jackd2[-classic dbus] it will work as, and be fully API compatible with lash.

In order for ladish to provide its full functionality, and to be API compatible with lash, a new package must be provided, jackdbus https://github.com/LADI/jackdbus that depend on media-sound/jack2[-classic -dbus].

It is even one more alternative: to provide both media-sound/jackdbus and ladi-jack2 from https://github.com/LADI/jack2
That package can be named media-sound/ladi-jack2 or media-sound/jack2-ladi
In that case, ladish that will depend on virtual-jack and jackdbus on ladi-jack.

I am working on a PR for ladish and virtual/lash
3 questions:
- I think it would be right to include at least media-sound/jackdbus into that PR, as it provide full ladish functionality. Should a bug report be made for that new package, or is it enough to mention it here and in the PR commit message?

- I am willing to also include media-sound/ladi-jack2 into that PR, which will imply to modify virtual/jack. Is it OK to do so now, and what is the best name for it, media-sound/jack2-ladi (I prefer that as it's an alternative to jack2 and can be easier to find for users) or media-sound/ladi-jack2 (nedko prefer that)?
Comment 7 Nedko Arnaudov 2024-07-16 09:02:16 UTC
Either of media-sound/ladi-jack2 or media-sound/jack2-ladi is fine. I tend to use "ladi" as prefix upstream, but using suffix is no less valid, as the real point is to mark alternative version (fork). Using prefix nicely matches the organization/project arrangement in modern web git hosting software.

The media-sound/jackdbus is useful for setups where virtual/jack is backed by JACK server implementations different from jack2. The history is that jackdbus code was created first for jack1 (media-sound/jack-audio-connection-kit) as fork. Then it was ported to jackdmp (a SMP reimplementation of jackd in C++) codebase by creating the JACK control.h API and its implementation in new library "libjackserver.so".

The resulting jackdbus binary in jack2, while using libjackserver.so, and thus de-facto separated at code level, was still bundled as part of jack source tree, which provided the configure time selection of jackd vs jackdbus setups.


Today, libjackserver.so is also available/installable for jack1 (in the ladi fork) and pipewire. While the pipewire implementation of jackserver.so is still barely functional, a new media-sound/jackdbus atom enables more options for gentoo users.

https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/819