[Python-Dev] PEP 376 - Open questions

P.J. Eby pje at telecommunity.com
Wed Jul 8 17:11:44 CEST 2009


At 01:13 PM 7/8/2009 +0100, Paul Moore wrote:
>An alternative solution would be for the bdist_xxx commands to ignore
>the RECORD file generated in the temp area, and build its own on the
>target machine when the installer is run. This is conceptuially far
>cleaner, it's in line with the implicit assumptions in the PEP, and it
>avoids a lot of the problems with path formats (the filenames in
>RECORD could be absolute local pathnames, and that's the end of the
>story). But - and it's a big but - this dumps RECORD file handling on
>the bdist_xxx command, and they all need to implement the same code,
>resulting in a lot of duplication and opportunity for inconsistency.

The PREFIXES approach I suggested doesn't have these problems; the 
bdist installer only needs to write a PREFIXES file, and doesn't need 
to touch RECORD (which would be generated by the install --root).  In 
fact, since PREFIXES is strictly advisory, it can be generated by the 
install --root and left alone at installation time.  And, if it's 
generated without the --root prefix included, RPMs would have a 
correct PREFIXES file without further manipulation.  Plus, the 
bdist_wininst .exe installer can easily write a PREFIXES file, since 
it has to know the prefixes in order to do an installation in the first place.

(We still need to hash out an initial list of prefixes, of course.)


At 08:59 AM 7/8/2009 -0400, Eric Smith wrote:
>I agree with this. For RPM's, there's a whole other database of what 
>files were installed. Is it really the intent that a file will be 
>managed by multiple different installers? That I can install with 
>RPM but remove with some python-installer (or other) tool? That way 
>lies madness. In fact, I see RECORD as an installer-specific detail 
>that doesn't need to be standardized at all.

This is a misunderstanding.  The purpose is to let an *installer* 
(like easy_install) know that these files belong to some other 
installer, and not allow overwriting them.  That's why there's also 
an INSTALLER file.



More information about the Python-Dev mailing list