[Distutils] PEP 345, PEP 376, PEP 386
david at ar.media.kyoto-u.ac.jp
Thu Jun 4 14:38:42 CEST 2009
Brian Sutherland wrote:
> 2009/6/4 Tarek Ziadé <ziade.tarek at gmail.com>:
>> Oups messed up sorry -> resending my answer
>> On Thu, Jun 4, 2009 at 11:52 AM, Brian Sutherland
>> <brian at vanguardistas.net> wrote:
>>>> - http://svn.python.org/projects/peps/trunk/pep-0386.txt
>>> ... < V('1.0.dev456')
>>> ... < V('1.0')
>>> ... < V('1.0.dev456post623')
>>> Looks like a typo or very un-intuitive. It doesn't seem right that a
>>> "dev" version sorts after a full release.
>> This is a dev version of a post-release version. Which is an edge case
>> submitted by Phillip.
>> How would you write it ?
> ... < V('1.0.dev456')
> ... < V('1.0.dev456post123') # post-release of a dev version
> ... < V('1.0')
> ... < V('1.0.post456dev623') # dev version of a post-release
> ... < V('1.0.post456') # post release
> i.e. that a postfix of "dev" means "before" and a postfix of "post" means after.
>>>> - PEP 376 | status : waiting for Phillip complementary feedback (and
>>>> anyone else of course)
>>> I can imagine distutils uninstalling files previously installed by dpkg
>>> as a shortcut to breaking a machine. Though I'm not sure what will
>>> actually happen in practice.
>> Distutils defines a standard for an EGG-INFO structure, and provides a
>> API for the uninstallation that is more likely to be a reference implementation.
>> Although, It is already providing an install feature.
>> If uninstalling a package with Distutils, while it was installed by dpkg breaks,
>> I can imagine that in the very same system, you can also break it
>> if you *install* packages with Distutils, easy_install, pip because
>> you shortcut dpkg
>> as well.
> Yep. Though I think that nowdays dpkg installs to a different directory than
> Distutils' default. So users have to specify extra options to break
> their systems.
That's unfortunately not true: by default (wo any --prefix option),
distutils install into /usr. So if a user just uses sudo with a
distutils-based package, he is very likely to mess up his system.
I think this should be considered as a distutils bug - by default, most
source distributions install into /usr/local (autoconf-based projects
> How should such a system stop distutils (acting as root) from doing an
Ideally, distutils should detect whether it installed the package itself
IMHO, uninstall is beyond the scope of distutils; it is very difficult
to get right, with so many ways to screw up a system badly.
More information about the Distutils-SIG