[Distutils] bdist_nsis, bdist_deb, bdist_msi, bdist_inno, bdist_pkgtool, bdist_sdux, bdist_mpkg, etc.

Bob Ippolito bob at redivi.com
Tue Dec 13 20:24:03 CET 2005

On Dec 13, 2005, at 11:13 AM, M.-A. Lemburg wrote:

> Bob Ippolito wrote:
>> On Dec 13, 2005, at 3:34 AM, M.-A. Lemburg wrote:
>>> M.-A. Lemburg wrote:
>>>> Hi,
>>>> I'd like to focus attention on these distribution formats
>>>> that distutils is missing:
>>> I'd like to another important candidate to the list:
>>> bdist_mpkg:
>>>    Mac OS X installer format
>>>    Part of py2app by Bob Ippolito
>>>    http://undefined.org/python/py2app.html#bdist-mpkg-documentation
>> bdist_mpkg is actually available on its own now, but I'm not sure  
>> adding
>> it to distutils is a great idea.  The current version is already  
>> moved
>> over to setuptools, and I'm pretty close to adding egg support to  
>> it.  I
>> may even require that the Python bits of the installation package are
>> eggs, as that would allow me to remove a bunch of code.  Eggs mostly
>> obsolete what bdist_mpkg is for, but it's also used to install things
>> like documentation and example code, so I'm not going to drop it
>> altogether.
> Looks like now is a good time to add it to distutils then :-)

No.  Definitely not.

> Eggs are nice for plugins and application add-ons, but I don't
> think they should be used for system wide installation of
> Python extensions - these need to be under the control of
> the system's installer which also deals with the Python
> installation itself.

Well you're wrong in the context of Mac OS X (and everywhere else,  
for the most part).  They solve real problems that the system package  
manager doesn't (dependencies, conflict detection, ...), and they  
provide metadata for py2app to use to build standalone applications  
reliably.  Even for platforms that have a better underlying system,  
the metadata provided by eggs is a huge step forward for Python and  
the sanity of users and application developers.

"eggs are nice for plugins" is certainly true -- bdist_mpkg provides  
itself as a setuptools plugin (via a distutils.commands entry point),  
which removes all the import hackery (hacking the Distribution object  
and the distutils packages to add the command)... of course it'll  
probably still be there but deprecated for a version due to backwards  
compatibility, but it'll go away soon.

In other words, I don't consent to adding bdist_mpkg to Python until  
it supports eggs.


More information about the Distutils-SIG mailing list