[PyKDE] Root vs. non-root builds

Ricardo Javier Cardenes Medina rcardenes at debian.org
Fri Aug 23 10:16:00 BST 2002


On Thu, Aug 22, 2002 at 10:27:11PM -0700, Jim Bublitz wrote:
> On 23-Aug-02 Steve Simmons wrote:
> So why do you need to be root to run make in this system? I
> actually haven't looked that far yet, being pleased just to have
> the whole thing working. I suspect it's because the 'all' target 
> (the one 'make' runs) in the module-level Makefiles includes the
> target that performs the deletion of old libs and
> copy-to-destination of new libs, and the destination directory is
> owned by root and only root has write privileges there (as it
> should be). I only think this because someone asked a question here
> a day or two ago which led me to look at the Makefiles and form the
> impression that that is in fact the case. I haven't looked any
> further, and might still be wrong about that.

Well... The only reason for being root at compile time is that right now
you're looking for libqtcmodule.so to find out which Qt version (threaded
or not) PyQt were compiled against. You expect it to be in the same place
where PyKDE is to be installed (modDir), and that is often the
site-packages inside your favorite Python version's directory, which uses
to be owned by root.

Of course, if you set a ~/python/site-packages (for example) and set that
path as the install directory at compile time (-d option) for sip, PyQt
and PyKDE, there will be no need to be root at compile time.

That's a solution for local compilations :-) For packagers (as myself),
it use to be a little more tricky, as the destination directory (I can't
speak for rpm, because I only know the Debian packaging style) is a fake
root directory inside the package's build path, and is likely to be
compiled by a non-root user (in my case, Debian policy forbids me the
use of root privileges for anything during build/installation time).

I'll send you later a tiny patch with the changes I've made for this
behaviour.




More information about the PyQt mailing list