[PyKDE] sip/PyQt 3.9

Gerard Vermeulen gvermeul at grenoble.cnrs.fr
Wed Dec 10 20:41:01 GMT 2003


On Wed, 10 Dec 2003 17:55:36 +0000
Phil Thompson <phil at riverbankcomputing.co.uk> wrote:

[ .. ]
> >
> > I ran into the same problems when porting PyQwt back to sip-3.9,
> > because to make it work I have to set the RPATH to include the qt
> > module. (FYI: I used configure.py to build sip-3.9 AND PyQt-3.9, PyQwt
> > is still made with my own stuff)
> >
> > Why is this superfluous RPATH stuff needed? (now it is, because if
> > I remove the line containing
> >
> > self.rpaths.append(self.config.sip_mod_dir)
> >
> > from siputils.py, I get Pete's initial error messages)
> >
> > RPATH is meant to help ld.so, but ld.so is never(?) used, because
> > Python loads the appropriate modules (abused as libraries).
> >
> >
> > What did change? The module loading with Python-2.3 (but PyQwt worked
> > with sip-3.8 and Python-2.3 without the RPATH magic) or sip?
> 
> configure.py builds the sip module in-site then installs it (so you don't have 
> to be root). build.py built it in site-packages. That's the most obvious 
> difference.
>
Even with build.py you did not need to be root to compile PyQt. My personal
RPMs are made as a normal user and I invoke build.py like:
python build.py \
        -fno-exceptions \
        -b %{buildroot}/%{_bindir} \
        -d %{buildroot}/%{_libdir}/python%{pydir}/site-packages \
        -q %{qtdir} \
        -lqt-mt
where %{buildroot} is a macro point to a dir somewhere in my home. The rpm
install commands put the *.so files in site-packages.  Of course, it may be
possible that the rpm build process does some adjustments in the libraries
(will check this too). 
> 
> Can you try hacking siplib/Makefile so that it builds in site-packages (and 
> remove it from the install target) to see if that makes a difference? If it 
> does I'll revert to the previous behaviour (but not for SIP4 as it isn't 
> affected by this).
> 
Yes, I will try. Mandrake also messes with QMAKE_RPATH and since all distro's
copy from each other... I want to resolve the issue before releasing PyQwt-3.9
(allthough distutils also has some 'knowledge' of RPATH, but IMO it is less
 reliable).

Just some statistics from your sip-3.9/spec dir:

[packer at venus specs]$ ls -1 *win32*
win32-borland
win32-g++
win32-icc
win32-msvc
win32-msvc.net
win32-watcom
[packer at venus specs]$ ls -1 | wc
     52      52     570

So there are 46 Posix-like systems.

[packer at venus specs]$ grep RPATH * | wc
     37     104    1319

So there are 9 Posix systems without an entry QMAKE_RPATH, but I count also
7 Posix systems with an empty string on the rhs of = .

Gerard
 




More information about the PyQt mailing list