Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 605834 - media-sound/jack2-1.9.10 - install jackd legacy server and jackdbus together
Summary: media-sound/jack2-1.9.10 - install jackd legacy server and jackdbus together
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Gentoo Sound Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-16 05:37 UTC by Tamus J Royce
Modified: 2017-12-12 15:30 UTC (History)
3 users (show)

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


Attachments
jack2-1.9.10-r1 (jack2-1.9.10-r1.ebuild,2.41 KB, text/plain)
2017-01-16 05:37 UTC, Tamus J Royce
Details
Working ebuild, + support for firewire (jack-audio-connection-kit-1.9.10.ebuild,2.44 KB, text/plain)
2017-04-26 20:03 UTC, Audiodef
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tamus J Royce 2017-01-16 05:37:38 UTC
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.
Comment 1 Tamus J Royce 2017-01-16 05:39:54 UTC
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.
Comment 2 Audiodef 2017-04-26 19:44:11 UTC
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.
Comment 3 Audiodef 2017-04-26 20:00:43 UTC
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.
Comment 4 Audiodef 2017-04-26 20:03:10 UTC
Created attachment 470974 [details]
Working ebuild, + support for firewire

Can be named jack2-1.9.10.ebuild, the result is the same.
Comment 5 Simon 2017-06-17 20:28:30 UTC
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?
Comment 6 Simon 2017-06-22 19:13:07 UTC
@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.
Comment 7 Karl Lindén 2017-12-03 20:30:52 UTC
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.
Comment 8 Larry the Git Cow gentoo-dev 2017-12-04 09:30:50 UTC
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(-)}
Comment 9 Alexis Ballier gentoo-dev 2017-12-04 09:32:19 UTC
(In reply to Larry the Git Cow from comment #8)
> The bug has been referenced in the following commit(s):


actually fixed
Comment 10 Simon 2017-12-12 13:14:23 UTC
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?
Comment 11 Karl Lindén 2017-12-12 14:48:17 UTC
(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.
Comment 12 Simon 2017-12-12 15:07:58 UTC
(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?
Comment 13 Karl Lindén 2017-12-12 15:30:26 UTC
(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.