Package: ia32-libs-gtk
Version: 2.1
Severity: normal

I believe that this bug has been reported before (#435455, #460169,
and #463701 all seem to refer to the same thing, but I'm not sure
and if they are they are looking in the wrong direction).

The bug that I ran into is in gdk_pixbuf_io_init, gdk-pixbuf-io.c:534:

    /* FIXME: using an absolute path requires patching Makefile.am */
    gchar *gdkpixbuf_module_files_d_str = g_build_filename (PIXBUF_LIBDIR,
                                                     "..",
                                                     "loader-files.d",
                                                     NULL);

Because PIXBUF_LIBDIR is "/usr/lib/gtk-2.0/2.10.0/loaders", this indirectly
causes the 64-bit libraries to be read instead of the 32-bit libraries.
In the case of ia32-libs-gtk, PIXBUF_LIBDIR should be
"/usr/lib32/gtk-2.0/2.10.0/loaders".

Excerpt from gdb:

(gdb) fr 0
#0  gdk_pixbuf_io_init () at 
/usr/src/gtk+2.0/gtk+2.0-2.12.7/gdk-pixbuf/gdk-pixbuf-io.c:532
532             gchar *gdkpixbuf_module_file_str = gdk_pixbuf_get_module_file 
();
(gdb) n
537                                                              NULL);
(gdb) p gdkpixbuf_module_file_str
$31 = (gchar *) 0x90626a0 "/etc/gtk-2.0/gdk-pixbuf.loaders.32"
(gdb) n
540             GError *error = NULL;
(gdb) p gdkpixbuf_module_files_d_str
$32 = (gchar *) 0x9062f58 "/usr/lib/gtk-2.0/2.10.0/loaders/../loader-files.d"

Isn't it possible to read /etc/gtk-2.0/gdk-pixbuf.loaders.32 and
extract the value of "LoaderDir" from it (which is added as comment),
or else read the first line starting with a quote and use the
directory part from that.  The start of /etc/gtk-2.0/gdk-pixbuf.loaders.32
is:

# GdkPixbuf Image Loader Modules file
# Automatically generated file, do not edit
# Created by gdk-pixbuf-query-loaders from gtk+-2.10.3
#
# LoaderDir = /usr/lib32/gtk-2.0/2.10.0/loaders
#
"/usr/lib32/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so"

I realize that for amd64 the value of PIXBUF_LIBDIR is different,
but that simply isn't sufficient.

(gdb) info shared
0xf70b28e0  0xf70c5124  Yes         
/opt2/firefox-chroot/usr/lib/libgdk_pixbuf-2.0.so.0

In other words, this is a 32-bit library that doesn't know that it
is running on a 64-bit machine other than by means of environment
variables.  Please, at least support PIXBUF_LIBDIR through an
environment variable, or else parse the file in gdkpixbuf_module_file_str.

Since this library was compiled inside a 32-bit chroot, it's really
part of libgtk2.0-0, but I thought it was better to report the bug against
ia32-libs-gtk.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages ia32-libs-gtk depends on:
ii  ia32-libs                     2.2        ia32 shared libraries for use on a

ia32-libs-gtk recommends no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to