Add `libpulse` and `pulseaudio-alsa` mandatory dependencies to the `songrec` package
Hello,
I am the developer of the SongRec application, which has a package in the extra
Arch repositories (https://archlinux.org/packages/extra/x86_64/songrec/).
It has been reported lately by users that the application has trouble working on certain Arch-based setups with PipeWire (https://github.com/marin-m/SongRec/issues/151)
I would request to make the following changes to the songrec
package, which seem to address the known issues:
- Turn the existing optional
libpulse
dependency into a mandatory dependency.
-
Why: because in SongRec 0.4.0, the code used to display the combo box present on the right panel of the UI in order to select an audio input device (microphone or speakers/headset) has been rewritten in order to use
libpulse
(instead the pre-existing solution using a mix of using a) the CPAL Rust crate, which relies on a libasound/ALSA-based interface is also used for recording audio input but will not list all devices present on the system - for example, an headset and an integrated microphone - when queried to do so, but will instead return a list of various aliases for the default PulseAudio/PipeWire device on the system b) thepactl
binary called as an external interface for the checkbox allowing to switch the current PulseAudio/PipeWire device used by SongRec to monitor mode, which was not functional with all PipeWire setup and presented some functional discrepancies). -
Hence, the
libpulse
library is now SO-linked to the SongRec ELF binary, and is no more a more option allowing to call thepactl
binary when needed. -
The
songrec
executable will not link correctly on the target system when this shared library is not present.
- Add the
pulseaudio-alsa
package (which will also match thepipewire-alsa
package, which has the former package in itsProvides:
list) to the mandatory dependencies for SongRec.
Why: because not having these compatibility layer packages seems to be a consistent source of issues (application not working/not recording sound/crashing when trying to switch devices in the UI):
- https://github.com/marin-m/SongRec/issues/151#issuecomment-1907004878
- https://aur.archlinux.org/packages/songrec-git#comment-952101
They seem to be required to have PipeWire to work correctly with CPAL/libasound (the ALSA API), which are used to record audio input in SongRec (libpulse
is only used to select the audio recording device for the current process).
The mentioned packages are installed by default in other Arch-based distros such as Manjaro, where these issues are not present.
I have already made the changes in the songrec-git
package in AUR which I maintain.
Regards,