Skip to content
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

[RFC] pipewire: update, add virtual session manager to pull in wireplumber without build cycle #41868

Closed
wants to merge 3 commits into from

Conversation

ahesford
Copy link
Member

@ahesford ahesford commented Jan 25, 2023

Note: This is not really intended as an update to 0.3.64; instead, if there is enough support for this proposal, I think #41846 should be merged with an INSTALL.msg warning people that pipewire-media-session will be dropped in the next release and that they should make sure they have a working wireplumber configuration before then.

pipewire will not work without a session manager; the previously included pipewire-media-session has long been deprecated and is now abandoned [1]. Making pipewire depend on wireplumber would create a cycle, so the cycle is broken with a rename and a new metapackage:

  1. Rename pipewire -> pipewire-utils to clear the pipewire name
  2. New pipewire meta depends on pipewire-utils and wireplumber

The rename is a violation of policy but allows existing pipewire users to see the new meta as an update that will pull in an updated real pipewire alongside the now-required wireplumber.

Continuing the work of #38521.

[1] https://gitlab.freedesktop.org/pipewire/media-session/-/releases/0.4.2

@ahesford
Copy link
Member Author

As per IRC discussion, we can avoid the rename and still break the cycle once #39868 is merged by declaring a pipewire-session-manager virtual that defaults to some dummy package like pipewire-session-manager-bootstrap with repository=bootstrap, than make wireplumber provide pipewire-session-manager.

@cinerea0
Copy link
Contributor

I would prefer to avoid the renaming scheme if possible. Would the implementation of the alternate proposal make intuitive sense if you generally understand xbps templates?

@cinerea0
Copy link
Contributor

Also, I recommend adding the following patch, which would replace pipewire-media-session with wireplumber in the default configuration files:

# Removes pipewire-media-session from default configs
diff --git a/src/daemon/meson.build b/src/daemon/meson.build
index 5d5914e4f4..85c1730427 100644
--- a/src/daemon/meson.build
+++ b/src/daemon/meson.build
@@ -9,7 +9,7 @@ pipewire_c_args = [
 conf_config = configuration_data()
 conf_config.set('VERSION', '"@0@"'.format(pipewire_version))
 conf_config.set('PIPEWIRE_CONFIG_DIR', pipewire_configdir)
-conf_config.set('session_manager_path', pipewire_bindir / 'pipewire-media-session')
+conf_config.set('session_manager_path', pipewire_bindir / 'wireplumber')
 conf_config.set('session_manager_args', '')
 conf_config.set('pipewire_path', pipewire_bindir / 'pipewire')
 conf_config.set('pipewire_pulse_path', pipewire_bindir / 'pipewire-pulse')

@ahesford
Copy link
Member Author

This branch has been restructured to use a virtual package to break the pipewire-wireplumber build cycle that would otherwise appear. It should NOT be merged until #39868 is merged and we can add repository=boostrap to the pipewire-session-manager-boostrap template.

@ahesford
Copy link
Member Author

I am not inclined to pull a patch that modifies default paths which seem only to appear in comments. Upstream should fix these paths if necessary because they made the decision to abandon pipewire-media-session and render these paths obsolete.

@ahesford ahesford force-pushed the pipewire branch 3 times, most recently from 33eac22 to 78daff3 Compare January 26, 2023 14:08
@ahesford ahesford changed the title [RFC] pipewire: update, rename pipewire-utils, add new meta to pull in wireplumber [RFC] pipewire: update, add virtual session manager to pull in wireplumber without build cycle Jan 26, 2023
@ahesford ahesford force-pushed the pipewire branch 4 times, most recently from c02e990 to 29045a3 Compare February 4, 2023 12:17
This dummy package will be the default provider for the the session
manager pulled in by pipewire, breaking a build cycle.
Also provide a desktop file for convenient autostart.

Continues work started in void-linux#38521.
@github-actions
Copy link

github-actions bot commented May 6, 2023

Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.

@github-actions github-actions bot added the Stale label May 6, 2023
@ahesford
Copy link
Member Author

ahesford commented May 6, 2023

Not stale yet!

@github-actions github-actions bot removed the Stale label May 7, 2023
@ahesford
Copy link
Member Author

Implemented in 43889c8

@ahesford ahesford closed this May 24, 2023
@ahesford ahesford deleted the pipewire branch May 24, 2023 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants