Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 700870 - media-sound/pulseaudio-13 undefined symbol: pa_alsa_ucm_device_update_available
Summary: media-sound/pulseaudio-13 undefined symbol: pa_alsa_ucm_device_update_available
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo ALSA team
URL: https://gitlab.freedesktop.org/pulsea...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-11-21 11:02 UTC by crabbed halo ablution
Modified: 2019-11-25 21:14 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info pulseaudio (pulseaudio-emerginfo.txt,7.24 KB, text/plain)
2019-11-21 11:02 UTC, crabbed halo ablution
Details

Note You need to log in before you can comment on or make changes to this bug.
Description crabbed halo ablution 2019-11-21 11:02:39 UTC
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?
Comment 1 James Le Cuirot gentoo-dev 2019-11-22 23:18:27 UTC
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,
      |                                 ^~~~~~~~~~~~~~~~~~~~
Comment 3 James Le Cuirot gentoo-dev 2019-11-22 23:37:03 UTC
CC'ing alsa-bugs@g.o as this is serious and it's probably going to affect more than just PulseAudio.
Comment 4 James Le Cuirot gentoo-dev 2019-11-24 11:17:38 UTC
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.
Comment 5 James Le Cuirot gentoo-dev 2019-11-24 11:46:02 UTC
I went ahead and submitted a fix to PulseAudio. We'll see what they say.
Comment 6 James Le Cuirot gentoo-dev 2019-11-25 20:31:08 UTC
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
Comment 7 crabbed halo ablution 2019-11-25 20:55:00 UTC
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.
Comment 8 Larry the Git Cow gentoo-dev 2019-11-25 21:14:55 UTC
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(+)