[Python-Dev] PEP 376 - RECORD format proposal

Tarek Ziadé ziade.tarek at gmail.com
Tue Jul 7 23:21:27 CEST 2009


Hello,

Let's state that we don't allow absolute paths in RECORD file and see
what we can
do with other paths.

First as a reminder, here's the full list of directories used by
Distutils at installation time.
The "install" command uses five options to decide where to install the files.

The default values are:

Unix:

 install_purelib: sys.prefix/lib/python2.6/site-packages
 install_platlib: sys.exec_prefix/lib/python2.6/site-packages
 install_headers: sys.prefix/include/python2.6/docutils
 install_scripts: sys.prefix/bin
 install_data   : sys.prefix

Unix, using the home option, instead of sys.prefix/sys.exec_prefix:

 install_purelib: home/lib/python
 install_platlib: home/lib/python
 install_headers: home/include/python/$dist_name
 install_scripts: home/bin
 install_data   : home

Windows:

 install_purelib: sys.prefix/Lib/site-packages
 install_platlib: sys.prefix/Lib/site-packages
 install_headers: sys.prefix/Include/python2.6/docutils
 install_scripts: sys.prefix/bin
 install_data   : sys.prefix

There are also some old scheme for os.name in ('mac', 'os2') I need to
cleanup asap in there,
but I won't mention them.

Last, there's now the new per user site-package that adds more
potential locations. e.g. replaces
sys.prefix and sys.exec_prefix with two user directories.

So they are all located under two root locations at the max.

But since these are all overridable options (in pydistutils.cfg,
distutils.cfg, etc) files can be located under *five* different
roots.

So my proposal is to write those five roots in a header line in the
RECORD file, and use them as prefixes
to locate the files that are not under the directory where the
egg-info dir is located (which will be kept : relative paths)

purelib,xxx,headers,xxx,scripts,xxx,install_data,xxx
...
$purelib/some/file
...


How does that  sounds ?

Tarek.

-- 
Tarek Ziadé | http://ziade.org


More information about the Python-Dev mailing list