[Pkg-ia32-libs-maintainers] Bug#543484: Bug#543484: ia32-libs: failed to load 32bit version of dri lib (wrong version?)

Goswin von Brederlow goswin-v-b at web.de
Sun Jul 11 21:47:39 UTC 2010


reassign #543484 mesa
thanks

Nicolas <progweb at free.fr> writes:

> Le dimanche 11 juillet 2010 à 09:34 +0200, Goswin von Brederlow a
> écrit :
>> Nicolas VIVIEN <progweb at free.fr> writes:
>>
>> This is strange because google earth used to work.
>> 
>> The problem is that ia32-libs can not fix this. Policy forbids setting
>> LIBGL_DRIVERS_PATH (or any environment variable) globally and we can't
>> patch libgl because the prebuild i386 lib is used.
>> 
>> So this needs to be fixed properly in the libgl source package. So the
>> remaining question is what source package is that? The libgl is diverted
>> by the non-free nvidia driver, right? [ask dpkg about the lib please]
>> 
>> MfG
>>         Goswin
>
> Indeed, with non-free Nvidia driver, I haven't more issue. Because libgl
> is diverted by nvidia driver.
>
> But, if you don't use non-free nvidia driver (nouveau, ATI, Intel...) ;
> libgl will use DRI module 64 bits inside of 32 bits.
>
> Indeed, to fix this into ia32-libs, we have to fix it into :
> package : libgl1-mesa-glx_7.5-3_i386.deb
> So ; ./mesa_7.5.orig.tar.gz
>
> if (arch is x86-64) {
>   if (built in 64 bits)
>     path = /usr/lib/dri
>   else if (built in 32 bits)
>     path = /usr/lib32/dri
> }
> else if (arch is i386) 
>   path = /usr/lib32/dri
>
> Regards,
>
> Nicolas

And there lies the problem. The package is build for 64bit on amd64 only
and 32bit on i386. So it needs to be:

if (arch is x86-64) {
    path = /usr/lib64/dri:/usr/lib/dri
} else if (arch is i386) {
  path = /usr/lib32/dri:/usr/lib/dir
}

I.e. look in both places.

Alternatively this could switch over to use the multiarch directories:

path = /usr/lib/$(DEB_HOST_GNU_TYPE)/dri

MfG
        Goswin





More information about the Pkg-ia32-libs-maintainers mailing list