FS#16172 - lib32-alsa-lib plugin dir is invalid

Attached to Project: Community Packages
Opened by txfx (txfx) - Sunday, 13 September 2009, 16:02 GMT
Last edited by Ionut Biru (wonder) - Saturday, 03 October 2009, 13:39 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Ionut Biru (wonder)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
The plugin dir for the package lib32-alsa-lib is set to /usr/lib/alsa-lib/ but this folder contain the 64bit plugin for alsa. Instead the /opt/lib32/usr/lib/alsa-lib/ should be used as it contains the 32bit plugins for alsa.

As a result it's not possible to use pulseaudio in wine because it will try to load the file /usr/lib/alsa-lib/libasound_module_pcm_pulse.so and failed because it's a 64bit library.


Additional info:
* package version(s) : 1.0.20-1


Steps to reproduce:
1) configure alsa to use the pulse plugin by default (cf http://wiki.archlinux.org/index.php/PulseAudio#Configuration_of_the_ALSA_PulseAudio_plugin)
2) launch winecfg from bin32-wine (or any other 32bit program using alsa) it will display an error on opening /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
This task depends upon

Closed by  Ionut Biru (wonder)
Saturday, 03 October 2009, 13:39 GMT
Reason for closing:  Won't implement
Additional comments about closing:  now we can't do much because we don't have a gcc multilib package. there is a plan that include this and build packages for x86_64 with that.
Comment by Ionut Biru (wonder) - Sunday, 13 September 2009, 16:45 GMT
you are totally wrong.
do pacman -Ql lib32-alsa-lib and you'll see that he are set up to /opt/lib32/usr/lib.
a proper bug report should be a feature request, asking to provide /usr/lib/alsa-lib/smixer/ in lib32-alsa-lib
Comment by txfx (txfx) - Sunday, 13 September 2009, 20:04 GMT
The bug is not where the lib32-alsa-lib is installed (as you said it's correctly put in /opt/lib32/usr/lib/) but where the lib will search for plugin (which are provided by lib32-alsa-plugins and are correctly installed in /opt/lib32/usr/lib/alsa-lib). When you look at the code of alsa-lib (http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm.c;h=29d4492dfb4becdaf8ca0d97f1f94d783bcfcc5e;hb=HEAD#l2140) you see that libasound will load plugin in the dir PLUGIN_DIR which is a compilation option of the alsa-lib package.
So as you used the official i686 package the PLUGIN_DIR is configured to be /usr/lib/alsa-lib, which is totally correct for an i686 platform, but will be wrong on x86_64.
The solution would be to compiled the i686 package with the option --with-plugindir=/opt/lib32/usr/lib/alsa-lib .
Comment by Ionut Biru (wonder) - Sunday, 13 September 2009, 20:44 GMT
so what are you trying to do is to break alsa-lib but doing that.
Comment by Ionut Biru (wonder) - Sunday, 13 September 2009, 20:47 GMT
and like i side note lib32-alsa-plugins are in aur(unsupported)
Comment by Ionut Biru (wonder) - Sunday, 13 September 2009, 20:53 GMT
btw are you using lib32-pulseaudio ?
Comment by txfx (txfx) - Sunday, 13 September 2009, 22:12 GMT
yes i'm using lib32-pulseaudio.

My solution was to build a "special" package to be used only for the x86_64 32bit compatibility but i don't know if it is easy to do :/.

Loading...