OK, after more debugging and reading ubuntu sources I found the precise
reason and how to workaround it.


Reason: Ubuntu's method of creating the 32bit versions of these packages for 
the 64bit ubuntu has a bug (see debian/rules of ia32-libs). It does not 
recompile the libraries, but simply take the packages from the 32 bit ubuntu, 
and repackages by extracting them, moving things from /usr/lib to /usr/lib32, 
and repackaging them.

This in general works. Unfortunately, the gdk-pixbuf library has a hard-
coded path under /usr/lib to look for several modules loaded at runtime.
This works under 32bit Ubuntu. Obviously, the described method to change
32-bit into 64-bit packages does not and cannot change this path.
Therefore, the library under /usr/lib32 still loads the module catalog
from /usr/lib and thus the modules from /usr/lib -> bang.



Workaround 1: Fortunately the gdk-pixbuf allows to override the hard
coded path to the catalog file with an environment variable. Set

export GDK_PIXBUF_MODULE_FILE=/usr/lib32/gdk-
pixbuf-2.0/2.10.0/loaders.cache


Workaround 2: Fortunately, the gdk-pixbuf tries to load loaders.cache.32
before loaders.cache. Set a Symlink from

/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache.32 to
/usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders.cache



My next problem would be to find a package maintainer feeling somewhat 
responsible or in charge to fix that bug or at least put the workaround 2 in 
the package.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/781870

Title:
  32-bit libraries erroneously load 64-bit libraries

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to