community/pipewire: fix launcher to only start installed components
Alpine is using pipewire.conf to start components, but this is apparently not supported upstream. And it leads to strange issues when the component doesn't actually exist: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1527)
The launcher will now run pipewire-media-session after starting pipewire, and only start pipewire-pulse if the config exists for it.. rather than use pipewire to spawn child processes (which isn't supported upstream...).
This fixes the following two issues:
-
An issue where pipewire starts a defunct process when trying to start pipewire-media-session if that binary doesn't exist, which in turn causes pipewire to ignore signals to stop on shutdown (makes shutdown take 90 seconds longer)
-
An issue where pipewire is started with -c pipewire-pulse.conf even if that config doesn't exist, and is lead suspect in a number of audio-related issues we are experiencing in pmOS