Results 1 to 2 of 2
Enjoy an ad free experience by logging in. Not a member yet? Register.
[Solved] Continuing problem with gdk-pixbuf
Problem: I have a program that runs correctly when linked at run-time against gdk_pixbuf-2.22.1, but fails to load icons with gdk_pixbuf-2.23.3. I can say this with confidence because I now have the older version in /opt/lib (the newer one is in /usr/lib) and can link to it by setting LD_LIBRARY_PATH to /opt/lib.
If I copy libgdk_pixbuf.so.0.2300.3 into /opt/lib and change the soname link to point to it, the error resurfaces, so it definitely is the libgdk_pixbuf file that is at fault here. It is not libgdk_pixbuf_xlib or the png pixbuf loader. Temporarily replacing either of those by the newer version does not cause the error.
The strange thing is that standard gtk-based apps like geany and the Gimp are not affected; they display their icons normally.
Although the LD_LIBRARY_PATH trick gives me a simple work-around for the problem, I would still like to know what causes it. How would I go about finding out? There's no simple way of getting relevant source code because the current downloadable versions of this package are 2.24.1 and 2.25.2
What a silly little woman I am! Of course I can get source. I already have the source code of 2.22.1 because it's part of Crux. And I should be able to get 2.23.3 from the Slackware repository because that's where I got the binary from. Time for some serious diffing!
Last edited by hazel; 02-26-2012 at 05:57 PM.
It's Slackware-specific! I found only 7 files that were different between 2.22 and 2.23 in the actual code, not just in comments, and tested them all by building hybrid packages. All of them came out clean. There's nothing wrong with the vanilla gdk-pixbuf-2.23.3 code.
So I built 2.23 by hand, using configure, make and make install rather the Slackbuild script (which patches the Makefile at one point) and installed that in /opt. My program picked up all its icons when linked against this and none of them when linked against the Slackware version of 2.23 in /usr/lib.