Red Hat Bugzilla – Bug 133197
GTK2 fails libpng install with old libpngs in /usr/local/lib
Last modified: 2007-11-30 17:10:49 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2)
Description of problem:
After an autoupdate the next time I turned on my pc, I couldn't get to
a login box, as BlueCurve couldn't recognise the png's it wanted.
It gave an error saying it couldn't recognise the file type for
My system has been through the typical Redhat-Fedora series of
releases, and somehow I have gotten duplicate versions of libpngs in
/usr/local/lib, that in a fresh Fedora 2 install are only in /usr/lib
/usr/local/lib/libpng12.so -> libpng12.so.0
/usr/local/lib/libpng12.so.0 -> libpng12.so.0.1.2.5.bak
/usr/local/lib/libpng.a -> libpng12.a
/usr/local/lib/libpng.so -> libpng.so.3
/usr/local/lib/libpng.so.3 -> libpng.so.188.8.131.52
When autoupdating or trying to install gtk2, it happily installs the
rpm but gives an error saying that g_module_load (or something)
failed, giving the location of the /usr/local/lib/libpng12.so.0 in the
I removed these files (well moved them to /tmp while I was testing)
and did a forced reinstall of the latest gtk2 rpms (and -devel) :
eg rpm -Uvh --force gtk2-*
And then all was well.
I was going to report this as a bug and then I resolved the problem,
so just putting here for other peoples benefit.
Hope this helps somebody.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. try to install gtk2 with old /usr/local/lib/libpng shared objects
Actual Results: gtk installs happily, but pngs stop working.
This stops the user logging in as BlueCurve can't find it's png's and
fails. This might be something for the team to look at, if an image
doesn't display...keep going!
Expected Results: pngs should have displayed, the login box should
have come up.
If /usr/lib is the default place for libraries, why was the gtk2 rpm
finding a library that existed in /usr/lib in /usr/local/lib first?
Perhaps the search path should be /lib -> /usr/lib -> /usr/local/lib
(unless mine is different to the standard for some reason)