At 10:18 PM 6/11/2007 +0200, Jerome Alet wrote:
>On Mon, Jun 11, 2007 at 04:00:34PM -0400, Phillip J. Eby wrote:
> > >
> > >Wouldn't it be better to use the effective user id when expanding
> > >the user's home directory in setuptools or in Python ?
> >
> > That wouldn't fix your problem.  The egg cache location is determined
> > exactly *once* for the life of the process, unless you explicitly
> > create and use ResourceManagers -- and unfortunately the process of
> > importing C code from a zipped egg uses only the default ResourceManager.
>
>So you mean that if for example another (different) module installed
>with setuptools was imported *before* the seteuid() call, then the
>mysqldb module import (done *after* the seteuid() call) would
>succeed ?

No.  I'm saying that the directory for the default ResourceManager's 
cache is determined exactly once, and can't be changed thereafter for 
the effective life of the process.  Thus, you must choose a location 
that is readable and writable by every user id that the process will 
be executing as, whether real or effective.


>Then maybe setuptools should continue to work without creating/writing
>any file in an user's .python-eggs directory if this is not allowed
>to do so because of permissions (or different effective user).
>
>Instead it fails hard. Any plan to improve this ?

You have several options.  First, setuptools can build RPMs which 
install files in the usual way.  Second, you can install eggs 
containing C code as directories instead of files (using easy_install 
--always-unzip), which then avoids the need for the use of the egg 
cache.  Third, you can select an appropriate cache directory, either 
with the environment variable, or programmatically.

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to