ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library /usr/lib/alsa-lib/libasound_module_conf_pulse.so
ALSA lib control.c:951:(snd_ctl_open_noupdate) Invalid CTL default
cannot open mixer: No such file or directory
while the requested plugin obviously is in /usr/lib64, not /usr/lib.
The file /usr/share/alsa/alsa.conf.d/51-pulseaudio-probe.conf references that path.
Should I mention it's Gentoo-installed file and thus there's nothing upstream can do about it?
CC ford_prefect@ as pulseaudio maintainer
should be all set now in the tree; thanks for the report!
Commit message: Fix hardcoded /usr/lib/ path to use multilib paths
I think that the proper fix here is to be multilib friendly and:
1. reference the soname only in 51-pulseaudio-probe.conf
2. use $(get_all_libdirs) to generate a proper LDPATH and save it into /etc/env.d
Or 32bit applications (like Wine) on amd64-multilib just won't work.
See the alsa-plugins ebuild in the sabayon-distro overlay.
The change mentioned in comment 4 only changes /usr/lib/alsa-lib/libasound_module_conf_pulse.so into /usr/lib64/alsa-lib/libasound_module_conf_pulse.so , which does not make it any more usable for 32-bit applications.
In my testing, lxnay's suggestion in comment 5 of just specifying the filename works fine.
Reopening as per comment 6. I can't really fix this myself any more, but the suggestion does seem to make sense.
(In reply to Fabio Erculiani from comment #5)
> 2. use $(get_all_libdirs) to generate a proper LDPATH and save it into
I'm wondering if we specifically need to play with global LDPATH for this. Wouldn't it be better to alter RPATH of libasound?
Changing the line
in /usr/share/alsa/alsa.conf.d/51-pulseaudio-probe.conf appears to be sufficient, even when the exact path to the .so is not listed in ld.so.cache or in env.d/
Yeah, I can reproduce that as well.
+*alsa-plugins-1.0.27-r1 (30 Nov 2013)
+ 30 Nov 2013; Michał Górny <email@example.com> +alsa-plugins-1.0.27-r1.ebuild:
+ Fix pulseaudio plugin for multilib, bug #410261, comment 5+.
Please replace the sed call with updated file when old versions are gone.