diff options
author | 2022-04-30 19:18:09 +0300 | |
---|---|---|
committer | 2022-05-01 20:48:53 +0100 | |
commit | 431a2f1ce462c3b915184beac83eb73181fcf2cd (patch) | |
tree | 82831c4c93c0f5836a31851b4d2d104c1b5ac88d /media-video | |
parent | sys-kernel/gentoo-kernel-bin: Bump to 5.15.37 (diff) | |
download | gentoo-431a2f1ce462c3b915184beac83eb73181fcf2cd.tar.gz gentoo-431a2f1ce462c3b915184beac83eb73181fcf2cd.tar.bz2 gentoo-431a2f1ce462c3b915184beac83eb73181fcf2cd.zip |
media-video/pipewire: Drop alsa-plugins[pulseaudio] blocker
Currently alsa-plugins[pulseaudio] installs pulse plugin which is only enabled
in alsa lib configuration if plugin can access pulseaudio server in runtime.
This is implemented using a runtime conf hook in 51-pulseaudio-probe.conf
Alsa lib runtime conf hooks are run after all static configuration is applied.
This causes a problem to coexistence of pipewire-alsa and pulse plugin:
- normally, pipewire-pulse is enabled which provides pulseaudio server
connection to libpulse users
- since pulseaudio server is accessible, pulse conf hook will override alsa
pcm.!default and ctl.!default to use pulse plugin.
To work around this, change pipewire-alsa plugin configuration from static conf
to conf hook which will run after pulse conf hook. To make sure user can still
override default device, make sure this new conf hook will also load
/etc/asound.conf and ~/.asoundrc again like it is done by pulse conf hook.
Since pipewire plugin will take precedence now if pipewire-alsa is installed,
drop the blocker with media-sound/alsa-plugins[pulseaudio]
Closes: https://bugs.gentoo.org/799881
Closes: https://bugs.gentoo.org/791499
Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/25269
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/pipewire/files/99-pipewire-default-hook.conf | 17 | ||||
-rw-r--r-- | media-video/pipewire/pipewire-0.3.51-r1.ebuild (renamed from media-video/pipewire/pipewire-0.3.51.ebuild) | 8 |
2 files changed, 23 insertions, 2 deletions
diff --git a/media-video/pipewire/files/99-pipewire-default-hook.conf b/media-video/pipewire/files/99-pipewire-default-hook.conf new file mode 100644 index 000000000000..172de5c27f60 --- /dev/null +++ b/media-video/pipewire/files/99-pipewire-default-hook.conf @@ -0,0 +1,17 @@ +# Load pipewire configuration at conf hook processing time. This allows to +# override pulseaudio defaults configuration which is also applied via hook. +# +# Note since hooks are run after /etc/asound.conf and ~/.asoundrc are applied, +# we load these again here make sure that user configuration takes precedence. + +@hooks [ + { + func load + files [ + "/usr/share/alsa/alsa.conf.d/99-pipewire-default.conf" + "/etc/asound.conf" + "~/.asoundrc" + ] + errors false + } +] diff --git a/media-video/pipewire/pipewire-0.3.51.ebuild b/media-video/pipewire/pipewire-0.3.51-r1.ebuild index e60bb1f87151..b22860800f14 100644 --- a/media-video/pipewire/pipewire-0.3.51.ebuild +++ b/media-video/pipewire/pipewire-0.3.51-r1.ebuild @@ -85,7 +85,6 @@ RDEPEND=" lv2? ( media-libs/lilv ) pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] - !media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] ) !pipewire-alsa? ( media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] ) ssl? ( dev-libs/openssl:= ) @@ -237,10 +236,15 @@ multilib_src_install_all() { if use pipewire-alsa; then dodir /etc/alsa/conf.d + + # Install pipewire conf loader hook + insinto /usr/share/alsa/alsa.conf.d + doins "${FILESDIR}"/99-pipewire-default-hook.conf + # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222 # And the current dosym8 -r implementation is likely affected by the same issue, too. dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf - dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/99-pipewire-default.conf + dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf fi if ! use systemd; then |