Created attachment 597046 [details] emerge --info pulseaudio While troubleshooting getting media-sound/pulseaudio-modules-bt to work, I came across this accidental finding in "journalctl -b" which may be pertinent: Nov 21 11:44:17 alfsgard pulseaudio[228945]: [pulseaudio] ltdl-bind-now.c: Failed to open module /usr/lib64/pulse-13.0/modules/module-alsa-card.so: /usr/lib64/pulse-13.0/modules/libalsa-util.so: undefined symbol: pa_alsa_ucm_device_update_available peter@alfsgard ~ $ ldd -r /usr/lib64/pulse-13.0/modules/libalsa-util.so linux-vdso.so.1 (0x00007ffeabfac000) libpulsecore-13.0.so => /usr/lib64/pulseaudio/libpulsecore-13.0.so (0x00007f53bc28a000) libpulse.so.0 => /usr/lib64/libpulse.so.0 (0x00007f53bc1e9000) libpulsecommon-13.0.so => /usr/lib64/pulseaudio/libpulsecommon-13.0.so (0x00007f53bc161000) libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007f53bc084000) libudev.so.1 => /lib64/libudev.so.1 (0x00007f53bc052000) libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007f53bc006000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f53bbfe0000) libm.so.6 => /lib64/libm.so.6 (0x00007f53bbe9f000) libc.so.6 => /lib64/libc.so.6 (0x00007f53bbcc9000) libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007f53bbcbd000) libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f53bbcb8000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f53bbb76000) libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x00007f53bbaf0000) liborc-0.4.so.0 => /usr/lib64/liborc-0.4.so.0 (0x00007f53bba74000) libspeexdsp.so.1 => /usr/lib64/libspeexdsp.so.1 (0x00007f53bba5f000) libgdbm.so.6 => /usr/lib64/libgdbm.so.6 (0x00007f53bba4e000) /lib64/ld-linux-x86-64.so.2 (0x00007f53bc386000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f53bba48000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f53bba1c000) libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f53bb9fb000) libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f53bb9f0000) libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00007f53bb9e8000) libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f53bb929000) libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f53bb91d000) libasyncns.so.0 => /usr/lib64/libasyncns.so.0 (0x00007f53bb917000) librt.so.1 => /lib64/librt.so.1 (0x00007f53bb90b000) libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007f53bb8cc000) libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007f53bb89e000) libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00007f53bb7f3000) libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007f53bb797000) libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007f53bb78a000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f53bb785000) libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f53bb77d000) libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007f53bb763000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f53bb75a000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f53bb743000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f53bb71a000) liblz4.so.1 => /usr/lib64/liblz4.so.1 (0x00007f53bb6f7000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f53bb6ef000) libgcrypt.so.20 => /usr/lib64/libgcrypt.so.20 (0x00007f53bb5cd000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f53bb5b4000) libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x00007f53bb58f000) undefined symbol: pa_alsa_ucm_device_update_available (/usr/lib64/pulse-13.0/modules/libalsa-util.so) I get audio output, but it may be what is preventing me from getting my bluetooth headset's microphone to work. I observe that a similar bug was filed in bug 686206, but the patch was dropped on version bumping, so does that patch need to be rebased to 13.0?
This has hit me on an arm and amd64 system. It's pretty bad and it's going to affect a lot of users. It seems to be a change in alsa-lib. 1.9.1 is okay. 1.2.1 and 1.2.1.1 are not. The aforementioned PulseAudio patches were already applied in 13.0 so it's not that. This is what I get from PulseAudio's config.log: configure:20948: checking alsa/use-case.h usability configure:20948: armv7a-unknown-linux-gnueabihf-gcc -c -mcpu=cortex-a9 -mfpu=neon -O3 -pipe -Wall -W -Wextra -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto -DFASTPATH -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 conftest.c >&5 In file included from conftest.c:185: /usr/include/alsa/use-case.h:461:36: error: unknown type name 'snd_ctl_elem_id_t' 461 | int snd_use_case_parse_ctl_elem_id(snd_ctl_elem_id_t *dst, | ^~~~~~~~~~~~~~~~~ /usr/include/alsa/use-case.h:472:33: error: unknown type name 'snd_mixer_selem_id_t' 472 | int snd_use_case_parse_selem_id(snd_mixer_selem_id_t *dst, | ^~~~~~~~~~~~~~~~~~~~
Okay, I think it's these. New includes are needed. https://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=5c88b183718ce3df11bc4753c76d95f3e9de6c7e https://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=cd4b07ffbdd4612989e63800528b18efe0039ad9
CC'ing alsa-bugs@g.o as this is serious and it's probably going to affect more than just PulseAudio.
I gather the main alsa-lib maintainer, Polynomial-C, is somewhat unavailable right now. In the mean time, I tried adding some includes to use-case.h but the list kept getting longer. I'm not sure if that's the right approach in any case. Upstream may say that you're expected to include other headers first/instead. PulseAudio could therefore add alsa/asoundlib.h to its AC_CHECK_HEADERS call so that all the headers are included before use-case.h is checked. I imagine they're going to stumble across this very soon if they haven't already and they'll decide what the right course of action is. A short term work around for us is passing ac_cv_header_alsa_use_case_h=yes to PulseAudio's econf call. I suggest we just do that for now. Technically it should be a revbump as the problem doesn't appear until runtime.
I went ahead and submitted a fix to PulseAudio. We'll see what they say.
ALSA has now fixed this instead so I closed the above merge request. I don't know when it'll be released though so maybe we should apply the patch now. https://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=1a4b362115b5e1bb4f5b888919ffd11736adbf0c
Patch confirmed working. First apply to alsa-lib, then recompile pulseaudio before it works. When it is applied to the tree, we should revbump pulseaudio also.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5883f1964b837ad24addc4c24b7bea731012979 commit e5883f1964b837ad24addc4c24b7bea731012979 Author: Lars Wendler <polynomial-c@gentoo.org> AuthorDate: 2019-11-25 21:13:32 +0000 Commit: Lars Wendler <polynomial-c@gentoo.org> CommitDate: 2019-11-25 21:14:48 +0000 media-libs/alsa-lib: Revbump to fix pulseaudio build Reported-by: crabbed halo ablution <crabbedhaloablution@icloud.com> Tested-by: crabbed halo ablution <crabbedhaloablution@icloud.com> Thanks-to: James Le Cuirot <chewi@gentoo.org> Closes: https://bugs.gentoo.org/700870 Package-Manager: Portage-2.3.79, Repoman-2.3.18 Signed-off-by: Lars Wendler <polynomial-c@gentoo.org> media-libs/alsa-lib/alsa-lib-1.2.1.1-r1.ebuild | 86 ++++++++++++++++++++++ .../alsa-lib-1.2.1.1-ucm_add_asoundlib_h.patch | 25 +++++++ 2 files changed, 111 insertions(+)