Missing gtk+ ia32 compatibility libs break stock icons

Bug #195928 reported by Ryan C. Gordon
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ia32-libs-gtk (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

The 32-bit GTK+ compatibility libraries shipped with Ubuntu 7.10 appear to be missing the svg decoder. This means that decoding some of the stock icons shipped with the system fail when running a 32-bit Gnome binary on an amd64 system.

I have attached a minimal test case to demonstrate this issue. Build the program like this:

   gcc -o testgtkicons testgtkicons.c `pkg-config gtk+-2.0 --cflags --libs`

If you build and run it on a 64-bit system, it should show a window containing the default icon used with "cancel" buttons in Gnome. Likewise on a 32-bit system. But if you build it on a 32-bit system and then try to run it on a 64-bit system, you'll get this error message to stderr:

(testgtkicons:24211): Gtk-WARNING **: Error loading theme icon 'gtk-cancel' for stock: Unable to load image-loading module: /usr/lib32/gtk-2.0/2.10.0/loaders/svg_loader.so: /usr/lib32/gtk-2.0/2.10.0/loaders/svg_loader.so: cannot open shared object file: No such file or directory

...and more importantly: the icon will show up as a "broken document" image since GTK+ couldn't load it.

If you were to copy the following libraries and symlinks from a 32-bit Ubuntu 7.10 install into the proper lib32 directories on the 64-bit system, the problem goes away:

   /usr/lib/libcroco-0.6.so.3
   /usr/lib/libcroco-0.6.so.3.0.1
   /usr/lib/libgsf-1.so.114
   /usr/lib/libgsf-1.so.114.0.7
   /usr/lib/librsvg-2.so.2
   /usr/lib/librsvg-2.so.2.18.2
   /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so

...so it seems like these files probably just need to be added to the ia32-libs-gtk package, if the solution is really that simple.

--ryan.

Revision history for this message
Ryan C. Gordon (icculus) wrote :
Revision history for this message
Jacob Peddicord (jpeddicord) wrote :

Thanks for the report. I am able to confirm this.

Changed in ia32-libs-gtk:
status: New → Confirmed
Revision history for this message
Vadim Peretokin (vperetokin) wrote :
Download full text (3.5 KiB)

I compiled the test case on a 32bit ubuntu 8.04, then ran on a 64bit ubuntu 8.10. I got the cancel button show just fine when I compiled on 64bit 8.10 and can on 64bit 8.10.

Please re-open if you're able to reproduce the issue though.

vadi@ubuntu:~/Systems$ ldd testgtkicons
ldd: warning: you do not have execution permission for `./testgtkicons'
 linux-gate.so.1 => (0xf7f3a000)
 libgtk-x11-2.0.so.0 => /usr/lib32/libgtk-x11-2.0.so.0 (0xf7b80000)
 libgdk-x11-2.0.so.0 => /usr/lib32/libgdk-x11-2.0.so.0 (0xf7af4000)
 libatk-1.0.so.0 => /usr/lib32/libatk-1.0.so.0 (0xf7ad7000)
 libgdk_pixbuf-2.0.so.0 => /usr/lib32/libgdk_pixbuf-2.0.so.0 (0xf7abd000)
 libm.so.6 => /lib32/libm.so.6 (0xf7a97000)
 libpangocairo-1.0.so.0 => /usr/lib32/libpangocairo-1.0.so.0 (0xf7a8c000)
 libpango-1.0.so.0 => /usr/lib32/libpango-1.0.so.0 (0xf7a49000)
 libcairo.so.2 => /usr/lib32/libcairo.so.2 (0xf79d5000)
 libgobject-2.0.so.0 => /usr/lib32/libgobject-2.0.so.0 (0xf7997000)
 libgmodule-2.0.so.0 => /usr/lib32/libgmodule-2.0.so.0 (0xf7992000)
 libdl.so.2 => /lib32/libdl.so.2 (0xf798e000)
 libglib-2.0.so.0 => /usr/lib32/libglib-2.0.so.0 (0xf78d7000)
 libc.so.6 => /lib32/libc.so.6 (0xf7779000)
 libX11.so.6 => /usr/lib32/libX11.so.6 (0xf768a000)
 libXcomposite.so.1 => /usr/lib32/libXcomposite.so.1 (0xf7685000)
 libXdamage.so.1 => /usr/lib32/libXdamage.so.1 (0xf7682000)
 libXfixes.so.3 => /usr/lib32/libXfixes.so.3 (0xf767d000)
 libgio-2.0.so.0 => /usr/lib32/libgio-2.0.so.0 (0xf7615000)
 libpangoft2-1.0.so.0 => /usr/lib32/libpangoft2-1.0.so.0 (0xf75ed000)
 libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf7576000)
 libz.so.1 => /usr/lib32/libz.so.1 (0xf7560000)
 libfontconfig.so.1 => /usr/lib32/libfontconfig.so.1 (0xf7533000)
 libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7524000)
 libXrender.so.1 => /usr/lib32/libXrender.so.1 (0xf751a000)
 libXinerama.so.1 => /usr/lib32/libXinerama.so.1 (0xf7516000)
 libXi.so.6 => /usr/lib32/libXi.so.6 (0xf750c000)
 libXrandr.so.2 => /usr/lib32/libXrandr.so.2 (0xf7505000)
 libXcursor.so.1 => /usr/lib32/libXcursor.so.1 (0xf74fc000)
 /lib/ld-linux.so.2 (0xf7f3b000)
 libpixman-1.so.0 => /usr/lib32/libpixman-1.so.0 (0xf74ba000)
 libpng12.so.0 => /usr/lib32/libpng12.so.0 (0xf7493000)
 libxcb-render-util.so.0 => /usr/lib32/libxcb-render-util.so.0 (0xf748e000)
 libxcb-render.so.0 => /usr/lib32/libxcb-render.so.0 (0xf7486000)
 libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf746d000)
 libpcre.so.3 => /lib32/libpcre.so.3 (0xf7443000)
 libxcb-xlib.so.0 => /usr/lib32/libxcb-xlib.so.0 (0xf743f000)
 libselinux.so.1 => /lib32/libselinux.so.1 (0xf7425000)
 libexpat.so.1 => /usr/lib32/libexpat.so.1 (0xf73fe000)
 libXau.so.6 => /usr/lib32/libXau.so.6 (0xf73fb000)
 libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf73f5000)
 libpthread.so.0 => /lib32/libpthread.so.0 (0xf73dc000)
vadi@ubuntu:~/Systems$ chmod +x test
test/ testgtkicons testgtkicons.c
vadi@ubuntu:~/Systems$ chmod +x testgtkicons
vadi@ubuntu:~/Systems$ ./testgtkicons
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so
/usr/lib/gio/modules/libgioremote-volume-monitor.so: w...

Read more...

Changed in ia32-libs-gtk:
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.