trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: March 2011

Building PyKDE3 (Solved???)

From: Darrell Anderson <humanreadable@...>
Date: Mon, 28 Mar 2011 14:42:58 -0700 (PDT)
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