-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
media-video/{pipewire,wireplumber}: add system-service USE flag #23972
Conversation
4d161be
to
4908405
Compare
Pull Request assignmentSubmitter: @zx2c4 acct-group/pipewire: @gentoo/proxy-maint (new package) Linked bugsNo bugs to link found. If your pull request references any of the Gentoo bug reports, please add appropriate GLEP 66 tags to the commit message and request reassignment. If you do not receive any reply to this pull request, please open or link a bug to attract the attention of maintainers. In order to force reassignment and/or bug reference scan, please append Docs: Code of Conduct ● Copyright policy (expl.) ● Devmanual ● GitHub PRs ● Proxy-maint guide |
4908405
to
ac56e57
Compare
Pull request CI reportReport generated at: 2022-01-26 21:50 UTC There are existing issues already. Please look into the report to make sure none of them affect the packages in question: |
A few things:
|
They've already mentioned in various comments that system mode is used by people and works fine. There's nothing to wait for here. The feature is there. It works. It's ready.
I can add mention of that to the ewarn if you want, no problem.
Okay. I can do that.
Right, this is relevant. I can include that in the ewarn too.
Yes, and it works incredibly well. Basically no complaints. Once this lands, I can augment the Gentoo wiki with my experience and configuration if you want.
It also pulls in the acct-{user,group}, so it's not just installation of two files that should be done unconditionally. |
I'm not sure if there's many people using it. Most real users are proper embedded deployments like AGL (Automotive Grade Linux). What I'm referring to is upstream specifically documenting the know-how related to doing such deployments properly. The reason Gentoo has arguably good PIpeWire experience is that we have the know-how for desktop deployments, and, I think, we should also have the know-how for embedded deployments, before we offer that (assuming Gentoo supports embedded at all, which is not what I heard from Gentoo developers when this last came up). No, do not warn that RTKit won't work (people won't know or care, etc). Instead explain what they need to do to fix their possible xrun issues (or do it for them if you can i.e. include a PipeWire specific and correct limits.d file that gives pipewire user the required realtime capabilities; but in that case only change the 9999 ebuilds for now since no released version currently has the unified module-rt which uses RLIMITs first and then falls back to RTKit). From what I know I would not expect this to work, because software will still be looking for /run/user//pulse/native and /run/user//pipewire-0 sockets rather than the ones provided by the system daemon. Speaking of which, does this even work with, say, Wayland and OBS? Something tells me this has never been attempted/tested with the system daemons and therefore should be also documented, if it does not work. Extra stuff being documented at Wiki or upstream is fine. But, if something needs to be always done to work at all, please, have the elog/ewarn print those instructions as briefly and as uniformly applicably as possibly (i.e. nothing specific to particular shell or window manager). From what I can tell, acct-{user,group}/ is still not changing the build configuration, so it still falls under the same rule that it would, IMO, need a QA exception but perhaps I'm wrong. |
Note that I have in mind server usage rather than embedded usage. Anyway, I'm fine masking the USE flag until whatever point in the future you're comfortable with.
Streaming to a tcp server actually works quite well. |
To me this means it really should be behind Update: Since my original reasoning behind re-using the realtime group was to avoid creating a dedicated pipewire group, we could just install the upstream example and RDEPEND on acct-group/pipewire unconditionally. And then you need to worry about QA and what might other people think/say/want. |
I'll rebase this on the new version of pipewire that was just released when the ebuild is bumped, and I'll try to synthesize your input into something I think makes sense. I think I have an idea of what you're getting at, so I'll do my best and you can comment on the updated PR when it's ready. I had one question though:
I like this idea of installing the rlimit file, but I was wondering: is it better to do this as part of acct-user/pipewire or media-video/pipewire? I was thinking it'd be better to do this as part of acct-user, since wireplumber uses that same user in system mode. But maybe there's a policy concern about installing files with user accounts? |
I'm a proxy maintainer (of WirePlumber), and I'm not really well versed in the fine details of Gentoo packaging rules but, yes, I would not have acct-{user,group} install files, if it can be helped. Luckily media-video/pipewire is the actual user of RLIMITs. Specifically And in the impossible situation that WirePlumber was installed without PipeWire being present, making pipewire group lack the appropriate RLIMITs, it's not a catastrophic failure. Just an increased chance of Bluetooth issues (this is an imaginary scenario since wireplumber.service will probably not even try to start due to missing pipewire.service provider). |
ac56e57
to
b825c26
Compare
I've rebased this on the latest ebuild and incorporated a few suggestions and made some decisions:
@thesamesam please pull! |
please fix CI issue, I'd like to still mask it for now to discourage use but we can revisit (If unmasked I'd want to make sure we had docs on wiki and maybe in pkg_postinst) Sorry, on mobile due to HW issues but will pull in this evening! Thank you! |
Oh wow 506 got taken in the intervening time. Fixing QA issues, will add USE mask, and will resubmit. |
Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org>
b825c26
to
bc7f0bd
Compare
Alright, all set. Fingers crossed that CI is green this time. |
Pull request CI reportReport generated at: 2022-02-04 20:36 UTC There are existing issues already. Please look into the report to make sure none of them affect the packages in question: |
As long as it's package.use.masked I'm okay with this being merged, so ACK from me. :) Regarding upstream support state, let's say it's not not-supported. However upstream themselves are only using this with Automotive Grade Linux, which generally involves exceptionally old software by desktoop Linux standards in a true embedded deployment. And I would be surprised if there's any system service specific CI being done to ward against breaking changes. On top of that it's also almost(?) entirely undocumented, requires manual setup and while it's probably safe for networking a headless server, it may pose a security issue if someone decided to have multiple local users sharing the same system daemon. All of those are good reasons why it should not be a USE flag that users can toggle without having at least had a proper warning in the form of needing to unmask the flag. |
Not one commit per package? :( |
Closes: #23972 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org>
Closes: #23972 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org>
Closes: #23972 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org>
CC @thesamesam