Re: [gentoo-dev] [PATCH] 2022-07-28-pipewire-sound-server: add item

2022-07-27 Thread Sam James


> On 27 Jul 2022, at 07:18, Madhu  wrote:
> 
> 
>>> On Tue, 26 Jul 2022, Sam James wrote:
>> 
>>> +2. To use PulseAudio's daemon for sound, users should disable
>>> USE=sound-server for PipeWire, + enable USE=daemon on
>>> media-sound/pulseaudio, and add media-sound/pulseaudio-daemon to
>>> their world file:
>> 
>> "The text body should be wrapped at 72 characters."
>> https://www.gentoo.org/glep/glep-0042.html#news-item-body
> 
> This is unecessarily restrictive to force the user to choose between
> pipewire and pulseaudio for the sound server.  It is possible (I am
> running it now), and should be possible for gentoo to have both
> installed simultaneously and run one or the other at any given time,
> through configuration files.
> 
> [I think the only patch that is required is for
> alsa-plugins/pulse/conf_pulse.c: (conf_pulse_hook_load_if_running)
> which can be taught to check if the pipewire daemon is running and
> quit that particular module. but it is not pipewire aware yet]
> 

Patches welcome but this is the status quo and documenting the status
quo is important.

But... making it easy to choose one or the other is important.

Your described method doesn't sound like it would be deterministic
or predictable.


signature.asc
Description: Message signed with OpenPGP


Re: [gentoo-dev] [PATCH] 2022-07-28-pipewire-sound-server: add item

2022-07-26 Thread Ulrich Mueller
> On Tue, 26 Jul 2022, Sam James wrote:

> +2. To use PulseAudio's daemon for sound, users should disable 
> USE=sound-server for PipeWire,
> +  enable USE=daemon on media-sound/pulseaudio, and add 
> media-sound/pulseaudio-daemon to
> +  their world file:

"The text body should be wrapped at 72 characters."
https://www.gentoo.org/glep/glep-0042.html#news-item-body


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH] 2022-07-28-pipewire-sound-server: add item

2022-07-26 Thread Andrew Ammerlaan



On July 26, 2022 10:08:39 PM GMT+02:00, Sam James  wrote:
>Bug: https://bugs.gentoo.org/744622
>Bug: https://bugs.gentoo.org/859280
>Signed-off-by: Sam James 
>---
> .../2022-07-28-pipewire-sound-server.en.txt   | 130 ++
> 1 file changed, 130 insertions(+)
> create mode 100644 
> 2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound-server.en.txt
>
>diff --git 
>a/2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound-server.en.txt 
>b/2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound-server.en.txt
>new file mode 100644
>index 000..6ebe676
>--- /dev/null
>+++ b/2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound-server.en.txt
>@@ -0,0 +1,130 @@
>+Title: Pipewire sound server migration
>+Author: Sam James 
>+Posted: 2022-07-28
>+Revision: 1
>+News-Item-Format: 2.0
>+Display-If-Installed: media-video/pipewire
>+Display-If-Installed: media-sound/pulseaudio
>+Display-If-Installed: media-sound/pulseaudio-daemon
>+Display-If-Installed: media-libs/libpulse
>+
>+PipeWire has gained a new USE flag "sound-server" for enabling/disabling its
>+sound server capabilities.
>+
>+This change is needed to avoid PipeWire and PulseAudio conflicting over 
>control
>+of audio devices. Before this change, OpenRC users were in some cases 
>accidentally
>+migrated to PipeWire which was difficult to override without manually editing
>+launcher files.
>+
>+For non-audio purposes, PipeWire is installed in many configurations as more
>+and more software depends on it for e.g. screensharing, sandboxing,
>+and window previews, so users will need to act based on their preferred
>+setup rather than simply avoiding installing PipeWire, as it is
>+increasingly required as a dependency.
>+
>+Packages needing PulseAudio's APIs will be migrated from the now-meta package
>+media-sound/pulseaudio to depending on media-libs/libpulse. The runtime
>+PulseAudio server can be provided by either PipeWire (media-video/piepwire)
>+or the original PulseAudio (media-sound/pulseaudio-daemon).

Small typo here: piepwire --> pipewire


>+
>+The new sound-server USE flag for PipeWire allows easily controlling
>+this behavior.
>+
>+There are several options available:
>+
>+1. To use PipeWire for sound, users should enable USE=sound-server for 
>PipeWire:
>+
>+  Place the following entries in /etc/portage/package.use:
>+  ```
>+  media-video/pipewire sound-server
>+  media-sound/pulseaudio -daemon
>+  ```
>+
>+  First, sync:
>+  $ emerge --sync
>+
>+  Deselect media-sound/pulseaudio-daemon:
>+  $ emerge --deselect media-sound/pulseaudio-daemon
>+
>+  Then perform a world upgrade:
>+  $ emerge --ask --update --changed-use --deep @world
>+
>+  Then depclean:
>+  $ emerge --ask --depclean
>+
>+  OpenRC users on an XDG-compliant desktop which respects autostart files
>+  will not need to take any further action.
>+
>+  OpenRC users using a minimal desktop which does not respect autostart
>+  files will need to run `gentoo-pipewire-launcher &` in e.g.
>+  `~/.xprofile`.
>+
>+  systemd users will also need to run the following commands:
>+  $ systemctl --user --now disable pulseaudio.service pulseaudio.socket
>+  $ systemctl --user --now enable pipewire.socket pipewire-pulse.socket
>+  $ systemctl --user --now disable pipewire-media-session.service
>+  $ systemctl --user --force enable wireplumber.service
>+
>+2. To use PulseAudio's daemon for sound, users should disable 
>USE=sound-server for PipeWire,
>+  enable USE=daemon on media-sound/pulseaudio, and add 
>media-sound/pulseaudio-daemon to
>+  their world file:
>+
>+  Place the following entries in /etc/portage/package.use:
>+  ```
>+  media-video/pipewire -sound-server
>+  media-sound/pulseaudio daemon
>+  ```
>+
>+  Add media-sound/pulseaudio-daemon to @world:
>+  $ emerge --noreplace media-sound/pulseaudio-daemon
>+
>+  Then perform a world upgrade:
>+  $ emerge --ask --update --changed-use --deep @world
>+
>+  Then depclean:
>+  $ emerge --ask --depclean
>+
>+  OpenRC users on an XDG-compliant desktop which respects autostart files
>+  will not need to take any further action.
>+
>+  OpenRC users using a minimal desktop which does not respect autostart
>+  files should consider adding `gentoo-pipewire-launcher &` in e.g.
>+  `~/.xprofile` but it's not strictly required in terms of audio
>+  handling. It may be required in future for the non-audio usecases
>+  described above.
>+
>+  systemd users will also need to run the following commands:
>+  $ systemctl --user --now enable pulseaudio.service pulseaudio.socket
>+  $ systemctl --user --now disable pipewire.socket pipewire-pulse.socket
>+
>+3. For users without sound on their system, those using JACK without
>+   PipeWire, or those using pure ALSA without PipeWire, the following steps
>+   are recommended:
>+
>+   Place the following entries in /etc/portage/package.use:
>+   ```
>+   media-video/pipewire -sound-server
>+   media-sound/pulseaudio -daemon
>+   ```
>+
>+   Then perform a world upgrade:
>+   $ 

Re: [gentoo-dev] [PATCH] 2022-07-28-pipewire-sound-server: add item

2022-07-26 Thread David Seifert
On Tue, 2022-07-26 at 21:08 +0100, Sam James wrote:
> Bug: https://bugs.gentoo.org/744622
> Bug: https://bugs.gentoo.org/859280
> Signed-off-by: Sam James 
> ---
>  .../2022-07-28-pipewire-sound-server.en.txt   | 130
> ++
>  1 file changed, 130 insertions(+)
>  create mode 100644 2022-07-28-pipewire-sound-server/2022-07-28-
> pipewire-sound-server.en.txt
> 
> diff --git a/2022-07-28-pipewire-sound-server/2022-07-28-pipewire-
> sound-server.en.txt b/2022-07-28-pipewire-sound-server/2022-07-28-
> pipewire-sound-server.en.txt
> new file mode 100644
> index 000..6ebe676
> --- /dev/null
> +++ b/2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound-
> server.en.txt
> @@ -0,0 +1,130 @@
> +Title: Pipewire sound server migration
> +Author: Sam James 
> +Posted: 2022-07-28
> +Revision: 1
> +News-Item-Format: 2.0
> +Display-If-Installed: media-video/pipewire
> +Display-If-Installed: media-sound/pulseaudio
> +Display-If-Installed: media-sound/pulseaudio-daemon
> +Display-If-Installed: media-libs/libpulse
> +
> +PipeWire has gained a new USE flag "sound-server" for
> enabling/disabling its
> +sound server capabilities.
> +
> +This change is needed to avoid PipeWire and PulseAudio conflicting
> over control
> +of audio devices. Before this change, OpenRC users were in some cases
> accidentally
> +migrated to PipeWire which was difficult to override without manually
> editing
> +launcher files.
> +
> +For non-audio purposes, PipeWire is installed in many configurations
> as more
> +and more software depends on it for e.g. screensharing, sandboxing,
> +and window previews, so users will need to act based on their
> preferred
> +setup rather than simply avoiding installing PipeWire, as it is
> +increasingly required as a dependency.
> +
> +Packages needing PulseAudio's APIs will be migrated from the now-meta
> package
> +media-sound/pulseaudio to depending on media-libs/libpulse. The
> runtime
> +PulseAudio server can be provided by either PipeWire (media-
> video/piepwire)
> +or the original PulseAudio (media-sound/pulseaudio-daemon).
> +
> +The new sound-server USE flag for PipeWire allows easily controlling
> +this behavior.
> +
> +There are several options available:
> +
> +1. To use PipeWire for sound, users should enable USE=sound-server
> for PipeWire:
> +
> +  Place the following entries in /etc/portage/package.use:
> +  ```
> +  media-video/pipewire sound-server
> +  media-sound/pulseaudio -daemon
> +  ```
> +
> +  First, sync:
> +  $ emerge --sync
> +
> +  Deselect media-sound/pulseaudio-daemon:
> +  $ emerge --deselect media-sound/pulseaudio-daemon
> +
> +  Then perform a world upgrade:
> +  $ emerge --ask --update --changed-use --deep @world
> +
> +  Then depclean:
> +  $ emerge --ask --depclean
> +
> +  OpenRC users on an XDG-compliant desktop which respects autostart
> files
> +  will not need to take any further action.
> +
> +  OpenRC users using a minimal desktop which does not respect
> autostart
> +  files will need to run `gentoo-pipewire-launcher &` in e.g.
> +  `~/.xprofile`.
> +
> +  systemd users will also need to run the following commands:
> +  $ systemctl --user --now disable pulseaudio.service
> pulseaudio.socket
> +  $ systemctl --user --now enable pipewire.socket pipewire-
> pulse.socket
> +  $ systemctl --user --now disable pipewire-media-session.service
> +  $ systemctl --user --force enable wireplumber.service
> +
> +2. To use PulseAudio's daemon for sound, users should disable
> USE=sound-server for PipeWire,
> +  enable USE=daemon on media-sound/pulseaudio, and add media-
> sound/pulseaudio-daemon to
> +  their world file:
> +
> +  Place the following entries in /etc/portage/package.use:
> +  ```
> +  media-video/pipewire -sound-server
> +  media-sound/pulseaudio daemon
> +  ```
> +
> +  Add media-sound/pulseaudio-daemon to @world:
> +  $ emerge --noreplace media-sound/pulseaudio-daemon
> +
> +  Then perform a world upgrade:
> +  $ emerge --ask --update --changed-use --deep @world
> +
> +  Then depclean:
> +  $ emerge --ask --depclean
> +
> +  OpenRC users on an XDG-compliant desktop which respects autostart
> files
> +  will not need to take any further action.
> +
> +  OpenRC users using a minimal desktop which does not respect
> autostart
> +  files should consider adding `gentoo-pipewire-launcher &` in e.g.
> +  `~/.xprofile` but it's not strictly required in terms of audio
> +  handling. It may be required in future for the non-audio usecases
> +  described above.
> +
> +  systemd users will also need to run the following commands:
> +  $ systemctl --user --now enable pulseaudio.service
> pulseaudio.socket
> +  $ systemctl --user --now disable pipewire.socket pipewire-
> pulse.socket
> +
> +3. For users without sound on their system, those using JACK without
> +   PipeWire, or those using pure ALSA without PipeWire, the following
> steps
> +   are recommended:
> +
> +   Place the following entries in /etc/portage/package.use:
> +   ```
> +