running a steam game i got the following error: ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.0.28/work/alsa-lib-1.0.28/src/dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so This is caused by missing 32 bit alsa plungins. However, the dependencies are not so clear to me, as alsa-lib does not require alsa-plugins to be installed and therefore cannot directly depend on 32 bit. Is there any other way to enforce 32 bit installation of alsa-plugins if alsa-lib is installed with 32 bit or should the package that requires 32 bit alsa-plugins enforce this? I do not think there is a use case where someone wants to install alsa-lib and alsa-plugins but only alsa-lib as 32 bit. Reproducible: Always
I don't think there is any reasonable way to accomplish what you are asking in the general case. However, in the case of pulseaudio, the PDEPEND on alsa-plugins could be updated to this: # This is a PDEPEND to avoid a circular dep PDEPEND="alsa? ( alsa-plugin? ( >=media-plugins/alsa-plugins-1.0.27-r1[pulseaudio,${MULITLIB_USEDEP}] ) )" Assuming you have abi_x86_32 enabled on pulseaudio, that would also force you to have alsa-plugins with abi_x86_32.
sounds reasonable and would actually solve my problem.
I was actually thinking about this in the past and then forgot about it. This not limited to ALSA but also extends to PAM, nss… Long story short, any plugin system doesn't force correct USE dependencies on Gentoo. One possible solution is to have abi_x86_32= flags on plugins, i.e. alsa-plugins would have: media-sound/alsa-lib[abi_x86_64(-)=,abi_x86_32(-)=,...] This would prevent installing alsa-plugins with 32-bit support disabled when it's enabled on ALSA itself. However, I suspect that in the most cases Portage would ask users to disable 32-bit alsa-lib rather than enable it on the plugins.