[Distutils] Re: [Python-Dev] Killing off bdist_dumb

M.-A. Lemburg mal@lemburg.com
Thu Nov 14 12:43:56 2002


A.M. Kuchling wrote:
> On Wednesday, November 13, 2002, at 05:24 PM, Guido van Rossum wrote:
> 
>> Why do you want to lose bdist_dumb?
> 
> Bug #410541 is that the .zip archive created by bdist_dumb is useless
> because it contains filenames relative to the root directory.  Because 
> Python can
> be installed anywhere on Windows, the .zip files are therefore useless
> for Windows installation.  They might be usable on Unix platforms, as 
> long as
> you're sure about whether Python is in /usr/ or /usr/local, and if tying 
> it to a
> single version is OK (because the path will be 
> /usr/lib/pythonX.Y/site-packages).

You are forgetting the the power of distutils lies in the ability
to subclass these commands, e.g. I use the following to create
Zope product packages:

class mx_bdist_zope(bdist_dumb):

     """ Build binary Zope product distribution.
     """

     def finalize_options (self):

         # Default to ZIP as format on all platforms
         if self.format is None:
             self.format = 'zip'
         bdist_dumb.finalize_options(self)

     # Hack to reuse bdist_dumb for our purposes; .run() calls
     # reinitialize_command() with 'install' as command.
     def reinitialize_command(self, command, reinit_subcommands=0):

         cmdobj = bdist_dumb.reinitialize_command(self, command,
                                                  reinit_subcommands)
         if command == 'install':
             cmdobj.install_lib = 'lib/python'
             cmdobj.install_data = 'lib/python'
         return cmdobj

> This could be fixed by making it possible to use relative paths, of course,
> so you'd have to unpack the resulting .zip in site-packages, but if no 
> one uses .zip files for this purpose, why bother?

bdist_dumb is useful on other platforms as well. The fact
that it basically zips up a binary installation tree is
very handy when you are targetting non-installer platforms
or when you want to deploy to custom Python installations.

> If bdist_wininst wasn't around, then bdist_dumb would be the only way to 
> install on Windows, and clearly this would have to fixed.  With 
> bdist_wininst,
> I don't know if anyone cares.  On Unix bdist_dumb also doesn't handle 
> scripts, apparently.
> 
> Andrew MacIntyre's use of .zip files on OS/2 may save bdist_dumb, though.
> Andrew, was the use of full paths the problem that kept you from using it?
> 
> The options are:
>   1) leave it as-is, broken and useless.  (The current state; this seems 
> pointless.)
>   2) fix it

I all you want is to have the ability to make the paths
relative, I suggest you add an option for this to the
command.

>   3) rip it out

You can't rip out code that's currently in use without providing
at least some kind of alternative. I also don't see any gain
from such an approach.

-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
_______________________________________________________________________
eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,...
Python Consulting:                               http://www.egenix.com/
Python Software:                    http://www.egenix.com/files/python/