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
