2009/4/14 David Hláčik david@hlacik.eu:
Hello guys,
I have patched my own libraries and override locations to them in ld.so.conf.d .
Let's just see an example:
[root@david ld.so.conf.d]# cat /etc/ld.so.conf.d/cairo-lcd-x86_64.conf /usr/lib64/cairo-lcd
Now , when I will execute ldd to check for shared library dependencies :
- gnome-terminal
[root@david ~]# ldd /usr/bin/gnome-terminal |grep libcairo libcairo.so.2 => /usr/lib64/cairo-lcd/libcairo.so.2 (0x00000032ef000000) -> OK
this is totally ok and works as expected , but :
- gimp
[root@david ~]# ldd /usr/bin/gimp |grep libcairo libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00000032ee800000) -> Totally WRONG
this is wrong and looks for original library instead as it should.
My question is : What is the cause of this problem? Does gimp and others uses hard-linked libraries and ld.so.conf is for nothing??
The cause is in gimp... rpmlint gimp output a lot of harcoded rpath in /usr/lib64 (on lib64 system).
No matter why you need to replace the cairo library... That remains a separate problem. Please submit a bug against gimp to be fixed according to the packaging guideline: http://fedoraproject.org/wiki/Packaging/Guidelines#Beware_of_Rpath
Nicolas (kwizart)