Hi all

I have (unsuccessfully) been trying to build KDE trunk on FreeBSD for a 
few days now and believe to have located the problem. On FreeBSD, pretty 
much all libraries installed by third party applications reside in 
/usr/local/lib. This path must be included in the linker search path 
when building KDE 4 so that the third party libraries it depends on are 
found. However, /usr/local/lib is also where the KDE 3 libraries reside. 
And if this path happens to be searched before the location at which the 
KDE 4 libraries are installed, KDE 4 applications link to KDE 3 
libraries. Needless to say, this leads to broken binaries that segfault 
on start.

The linker search path is hard coded by CMake via the -rpath command 
line option. I have been able to disable this behavior by specifying 
-DCMAKE_SKIP_RPATH=YES, although I am not sure what other implications 
disabling -rpath has. Next, I set the following environment variables 
(with /kea/kde/install my KDE 4 installation prefix):

setenv LD_RUN_PATH $INSTALL_PATH/lib
setenv LD_LIBRARY_PATH $INSTALL_PATH/lib

With those settings, kdelibs and kdepimlibs from KDE 4 trunk finally 
stopped linking against KDE 3 libraries. Unfortunately, it did not help 
with kdenetwork. After compiling and installing kdenetwork/kopete trunk, 
I get:

%ldd -f "%A %p\n" ~/install/lib/*.so | grep /usr/local/lib/libk
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkdecore.so.6
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkdeui.so.6
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkutils.so.3
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkparts.so.3
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkio.so.6
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkabc.so.3
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkdefx.so.6
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkwalletclient.so.1
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkdesu.so.6
/kea/kde/install/lib/libkopete.so /usr/local/lib/libkresources.so.3
[...]

By the way - the odd .so version numbers are apparently due to the 
FreeBSD port maintainers bumping them higher than the official KDE numbers.

I would appreciate some help with fixing this. The question is: How can 
I make sure that in all linker invocations, the KDE 4 installation path 
and any temporary library paths used by CMake are accessed first, before 
system paths such as /usr/local/lib and /usr/X11R6/lib?

- Bartosz

PS: I will be at aKademy till the very end on Saturday, so if anybody is 
around and would like to see the problem "live", let me know.
_______________________________________________
Kde-buildsystem mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-buildsystem

Reply via email to