Created attachment 460248 [details] jack2-1.9.10-r1 Other operating systems, such as Debian, has the jack2 package containing both the legacy jackd server and the jackdbus dbus server. The current media-sound/jack2-1.9.10 does no support installing both at the same time. Proposing new use flags present in attached ebuild. USE="dbus-and-jackd" https://bugs.gentoo.org/show_bug.cgi?id=583844 - may be helpful in conjunction with this enhancement. It mentions how to add it to a local repository. media-sound/jack2 with attachment copied to directory and ebuild jack2-1.9.10-r2 manifest.
irc is not a tool I use. Feel free to delete this if it is unhelpful. I will let someone else hold that torch if it needs discussed on irc.
I can confirm that jackd is not built with the dbus use flag, but according to the ebuild, jackd should be built: $(usex dbus --dbus --classic) Which should build jackdbus and jackd. But it does not.
Solved it. It looks like $(usex dbus --dbus --classic) does not work. I added a +classic use flag, changed $(usex dbus --dbus --classic) to $(usex dbus --dbus) and added a new line for $(usex classic --classic). Possibly usex doesn't read more than one --config arg at a time? Posting ebuild, which should continue to support ieee1394, as my version does.
Created attachment 470974 [details] Working ebuild, + support for firewire Can be named jack2-1.9.10.ebuild, the result is the same.
The main question to me is how should this work by default and which USE flags would make sense to trigger which functionality. Right now there's a "dbus" USE flag, that can/should be used to enable building "jackdbus". Simply adding a USE flag "classic" would add the option to build "jackd". This would allow users to choose which of these two to build. This would also mean a REQUIRED_USE would be necessary Or do we always want to build "jackdbus" and only optionally build "jackd"? Note that building "jackd" would definitely cause a collision with jack1/jack-audio-connection-kit. Is this a problem? Or should jack2 with "classic" enable block jack-audio-connection-kit < 1.9?
@Tamus J Royce can you check if this works correctly for you using the 1.9.11_rc1 ebuild? It now has a dbus and a classic USE flag which you can both set at the same time. The only limitation is that it's currently not possible to define through the normal portag means if you want to use classic or dbus as the startup mechanism.
This is solved by setting USE="classic dbus", so I think we can close this now. @Simon, as you correctly point out REQUIRED_USE should be used, so that no confusion is caused.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a3341015bb81d31c2a9a295e1e5766c226c1a1d commit 1a3341015bb81d31c2a9a295e1e5766c226c1a1d Author: Karl Linden <karl.j.linden@gmail.com> AuthorDate: 2017-12-03 20:36:45 +0000 Commit: Alexis Ballier <aballier@gentoo.org> CommitDate: 2017-12-04 09:29:52 +0000 media-sound/jack2: require any of classic and dbus With no flags given the build system defaults to classic, but this addition to REQUIRED_USE will keep the installation in sync with the USE-flags. Bug: https://bugs.gentoo.org/605834 Package-Manager: Portage-2.3.16, Repoman-2.3.6 media-sound/jack2/jack2-1.9.11_rc1-r1.ebuild | 4 +++- media-sound/jack2/jack2-9999.ebuild | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-)}
(In reply to Larry the Git Cow from comment #8) > The bug has been referenced in the following commit(s): actually fixed
I'm not sure the REQUIRED_USE addition is the correct thing to do, because it's allowed to enable both classic and dbus at the same time. Should I create a new bug to revert this change?
(In reply to Simon from comment #10) > I'm not sure the REQUIRED_USE addition is the correct thing to do, because > it's allowed to enable both classic and dbus at the same time. Should I > create a new bug to revert this change? REQUIRED_USE="|| ( classic dbus )" is correct. It says that you need at least one of USE="classic" and USE="dbus". You may of course have both. Do not revert the change, because jack2 should be built with one of the flags. For sure without REQUIRED_USE and USE="-classic -dbus" the build succeeds, but it defaults to classic, so there will be a mis-sync between USE flags and actual installed binary.
(In reply to Karl Lindén from comment #11) > REQUIRED_USE="|| ( classic dbus )" is correct. It says that you need at > least one of USE="classic" and USE="dbus". You may of course have both. Do > not revert the change, because jack2 should be built with one of the flags. > > For sure without REQUIRED_USE and USE="-classic -dbus" the build succeeds, > but it defaults to classic, so there will be a mis-sync between USE flags > and actual installed binary. You're right, sorry for the confusion, "||" means "at least one of", it thought it meant just "one of". I would like to request though if a sane default can be set, in accordance with https://devmanual.gentoo.org/general-concepts/use-flags/index.html#conflicting-use-flags > Note: In order to avoid forcing users to micro-manage flags too much, > REQUIRED_USE should be used sparingly. > Follow the normal policy whenever it is possible to do a build > that will presumably suit the user's needs. because now every user has to define at least one of these USE flags. Shall I create a separate bug for that?
(In reply to Simon from comment #12) > (In reply to Karl Lindén from comment #11) > > REQUIRED_USE="|| ( classic dbus )" is correct. It says that you need at > > least one of USE="classic" and USE="dbus". You may of course have both. Do > > not revert the change, because jack2 should be built with one of the flags. > > > > For sure without REQUIRED_USE and USE="-classic -dbus" the build succeeds, > > but it defaults to classic, so there will be a mis-sync between USE flags > > and actual installed binary. > > You're right, sorry for the confusion, "||" means "at least one of", it > thought it meant just "one of". > > I would like to request though if a sane default can be set, in accordance > with > https://devmanual.gentoo.org/general-concepts/use-flags/index. > html#conflicting-use-flags > > > Note: In order to avoid forcing users to micro-manage flags too much, > > REQUIRED_USE should be used sparingly. > > Follow the normal policy whenever it is possible to do a build > > that will presumably suit the user's needs. > > because now every user has to define at least one of these USE flags. Shall > I create a separate bug for that? You could have +classic in IUSE to avoid the micro-management. If you think a bug is necessary feel free to file one. Otherwise you could just create a PR. If you make a PR, I would be glad if you @mention me.