I made some progress with building PyKDE3. I had to cheat. I think.
The problem seems to be that building Trinity to install in /opt/trinity confuses the PyKDE3 build process. Last autumn when I built Trinity 3.5.12 to install in /usr I had no problems building PyKDE3.
Since then I have not tried to build any packages to install in /usr. I have been focusing on installing in /opt/trinity in order to coexist with KDE4/QT4.
When Trinity is installed in /opt/trinity the build always fails with this kind of error:
========================================= /usr/bin/ld: cannot find -lDCOP collect2: ld returned 1 exit status make[1]: *** [dcop.so] Error 1 make[1]: Leaving directory `/dev/shm/PyKDE-3.16.7/dcop' make: *** [all] Error 2 =========================================
I then create a sym link in /usr/lib to the allegedly not found library:
ln -s /opt/trinity/lib/libDCOP.so libDCOP.so
The next build proceeds past that error but again fails with a similar not found error message about the next module, kdecore.
I create another sym link. The package proceeds to build to the next module, kdefx, and again fails.
Rinse. Repeat. For each module:
dcop kdecore kdefx kdeui kio kresources kabc kutils kfile kparts khtml kspell kdeprint kmdi
I modified my build script to temporarily create the sym links on-the-fly and remove them after make completes.
The package then builds without failure. Yet I wonder whether this will break the package libraries. Are they linked to /usr/lib rather than /opt/trinity/lib?
Seems something in the PyKDE3 configuration is hard-coded to /usr/lib. I already have the following in my build script:
sed -i -e "s:/usr:${PREFIX}:" configure.py
where $PREFIX is /opt/trinity
/etc/ld.so.conf contains /opt/trinity/lib, which was inserted from the kdelib package (and runs ldconfig, but I have run ldconfig manually too). Running ldconfig -v shows the allegedly not found libraries in /opt/trinity/lib.
The build script configure output says the following:
KDE base directory is /opt/trinity KDE include directory is /opt/trinity/include KDE lib directory is /opt/trinity/lib/kde3 lib directory is /opt/trinity/lib
Everything seems to indicate the libraries should be found. Yet the package refuses to build without the temporary sym links. Seems make should find the libraries in /opt/trinity/lib.
Exporting LD_LIBRARY_PATH in the build script does not help.
Any ideas what is happening? Any ideas how to fix?
Darrell