[Distutils] permissions and GNU stow (was: PEP 376 for Distutils)

zooko zooko at zooko.com
Wed Feb 25 04:42:39 CET 2009

On Feb 24, 2009, at 12:48 PM, Andrew Straw wrote:

> But that is already implemented via file/dir permissions.

That's what's beautiful about GNU stow.  Look:

sudo mkdir /usr/local/stow/grozz
sudo chown `whoami` /usr/local/stow/grozz
python ./setup.py install --prefix=/usr/local/stow/grozz # LOOK NO SUDO
cd /usr/local/stow
sudo stow grozz

The important point is that the install process doesn't have  
permission to write into the system, but GNU stow does.  GNU stow is  
more trusted to behave well than the install scripts of the grozz  
package are, and it is extremely simple and fail-safe -- all it does  
is make symlinks from /usr/local/x/y -> /usr/local/stow/grozz/x/y .

Note that GNU stow can therefore completely and correctly *uninstall*  
everything that it installed, by examining all of /usr/local looking  
for symlinks into /usr/local/stow/grozz and removing them.   
(Therefore it doesn't need a "RECORD" file -- the filesystem itself  
contains the exact record.)

I hope that this new distutils work will make it possible to use GNU  
stow to manage Python packages (by making it so that installation  
consists only of *adding* files to the system, not requiring  
*editing* files such as .pth files).


Tahoe, the Least-Authority Filesystem -- http://allmydata.org
store your data: $10/month -- http://allmydata.com/?tracking=zsig

More information about the Distutils-SIG mailing list