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

    From Sam James@21:1/5 to All on Tue Jul 26 22:10:01 2022
    Bug: https://bugs.gentoo.org/744622
    Bug: https://bugs.gentoo.org/859280
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    .../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 0000000..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 <sam@gentoo.org>
    +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 PulseA
  • From Andrew Ammerlaan@21:1/5 to Sam James on Tue Jul 26 22:50:01 2022
    On July 26, 2022 10:08:39 PM GMT+02:00, Sam James <sam@gentoo.org> wrote:
    Bug: https://bugs.gentoo.org/744622
    Bug: https://bugs.gentoo.org/859280
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    .../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 0000000..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 <sam@gentoo.org>
    +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:
    + $ 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 likely want to run the following commands, again >+ for the purposes of non-audio PipeWire use:
    + $ systemctl --user --now enable pipewire.socket
    + $ systemctl --user --now --force enable wireplumber.service
    +
    +
    +Further resources:
    +* https://wiki.gentoo.org/wiki/PipeWire

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Seifert@21:1/5 to Sam James on Tue Jul 26 22:30:02 2022
    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 <sam@gentoo.org>
    ---
     .../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 0000000..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 <sam@gentoo.org>
    +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:
    +   ```
    +   media-video/pipewire -sound-server
    +   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 likely want to run the following commands, again
    +   for the purposes of non-audio PipeWire use:
    +   $ systemctl --user --now enable pipewire.socket
    +   $ systemctl --user --now --force enable wireplumber.service
    +
    +
    +Further resources:
    +* https://wiki.gentoo.org/wiki/PipeWire

    LGTM

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulrich Mueller@21:1/5 to All on Wed Jul 27 01:50:01 2022
    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

    -----BEGIN PGP SIGNATURE-----

    iQFDBAEBCAAtFiEEtDnZ1O9xIP68rzDbUYgzUIhBXi4FAmLge/8PHHVsbUBnZW50 b28ub3JnAAoJEFGIM1CIQV4ubIwIAKr32ELbVw3JLiN+YluAVXxy8+nwMK/Ex4cE jXaPVKZQL94+a00qTNWPAqRcQwXdCWMcQW+tMKWdC2CuDb4aFxelIiJqxIH+SROX Hu5h+qEpn5Be2bufj9XA8KnEa3ntNAx5kgHCMV7SmHJaxqfdVb/kikvRshv8+NgO R3RWuRzUBnR8th8IWtBx9PD5cC+qd01mkce5lA0XXOIFwjnxzd/eoPoTVkpCSoqj 02/fzS4TsaWvIS4j+S37SZQVRlXyXMSC+KnFm9NVwPj34tGA3IEYxlXg20ONhB5/ L9we44sCuMkEoj2vXbfPaoJfQvi1c+voBjEuCYWjDrMfzfpOewo=
    =2dLK
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Madhu@21:1/5 to All on Wed Jul 27 08:20:01 2022
    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]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to All on Wed Jul 27 09:20:02 2022
    On 27 Jul 2022, at 07:18, Madhu <enometh@meer.net> 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.

    -----BEGIN PGP SIGNATURE-----

    iNUEARYKAH0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCYuDm4V8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MAAKCRBzhAn1IN+R kBa2AP9XOoR7XSxC96zyJkB22wYCIzoTEAFHAnr3K9SmnDSVtAD+Lsybd6qLtIDT SZBT1/GCkOnsKZeE4hSRY2r+tAs8uAI=
    =ue7F
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)