wireplumber: Improve configuration

By default, the WirePlumber lua scripts try to access a session DBus, which
is not available if WirePlumber is run system wide. Add a small script
that turns off the bits that require session DBus. These involve reserving
ALSA devices (only useful in multi-user desktop setups) and Flatpak.

Also, fix the configuration file paths (WirePlumber uses /usr/share instead
of /etc) and add the correct files to CONFFILES:${PN}.

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Carlos Rafael Giani
2022-02-16 21:55:02 +01:00
committed by Khem Raj
parent 5c379cf625
commit 6c6b8d97b4
2 changed files with 15 additions and 7 deletions
@@ -0,0 +1,5 @@
-- These features require a session DBus instance, which is not available
-- by default in OE generated images. The absence of such a DBus instance
-- causes WirePlumber to fail to start. Turn these off to prevent that.
alsa_monitor.properties["alsa.reserve"] = false
default_access.properties["enable-flatpak-portal"] = false
@@ -13,7 +13,8 @@ DEPENDS = "glib-2.0 glib-2.0-native lua pipewire \
SRCREV = "e14bb72dcc85e2130d0ea96768e5ae3b375a041e"
SRC_URI = "git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https \
"
file://90-OE-disable-session-dbus-dependent-features.lua \
"
S = "${WORKDIR}/git"
@@ -50,6 +51,12 @@ PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
WP_MODULE_SUBDIR = "wireplumber-0.4"
add_custom_lua_config_scripts() {
install -m 0644 ${WORKDIR}/90-OE-disable-session-dbus-dependent-features.lua ${D}${datadir}/wireplumber/main.lua.d
}
do_install[postfuncs] += "add_custom_lua_config_scripts"
python split_dynamic_packages () {
# Create packages for each WirePlumber module.
wp_module_libdir = d.expand('${libdir}/${WP_MODULE_SUBDIR}')
@@ -117,12 +124,8 @@ PACKAGES_DYNAMIC = "^${PN}-modules.*"
SYSTEMD_SERVICE:${PN} = "wireplumber.service"
CONFFILES:${PN} += " \
${sysconfdir}/wireplumber/config.lua \
${sysconfdir}/wireplumber/config.lua.d/* \
"
FILES:${PN} += " \
${sysconfdir}/wireplumber/config.lua \
${sysconfdir}/wireplumber/config.lua.d/* \
${datadir}/wireplumber/wireplumber.conf \
${datadir}/wireplumber/*.lua.d/* \
"
# Add pipewire to RRECOMMENDS, since WirePlumber expects a PipeWire daemon to
# be present. While in theory any application that uses libpipewire can configure