[Distutils] Low Level API for translating distutils/setuptools metatdata to Debian metadata

David Lyon david.lyon at preisshare.net
Sun May 31 01:27:06 CEST 2009

On Fri, 29 May 2009 08:35:16 -0700, Andrew Straw <strawman at astraw.com>
> Brian Sutherland wrote:
>> I've just published a very small library that does three things so far:
>>     * Provides a mapping between python project names and Debian
>>       binary/source package names
>>     * Converts setuptools versions to Debian versions while maintaining
>>       sort order
>>     * Can introspect an .egg-info directory to figure out the Debian
>>       dependencies for use in the debian/control file. It can also
>>       handle/understand extras (I Hope!)
>> It's basically an attempt to find a common ground between all the
>> projects doing automated Python->Debian packaging. I have a feeling
>> everyone is re-implementing this code all the time.

Maybe not everybody - but I am sure there are a few...

at least there are many who would like to do it..

Recently I posted a suggestion to Andrea Gavana about py2exe on the
wxPython list about his excellent gui interface for py2exe.

My use case is this... I'm writing a package manager for python..
I want it to be deployed to every python platform... I dont have
all those platforms....

I want p2exe or distutils (Distribution Utils?? is that what it
stands for?) to take my program and make it for every platform...

 - windows
 - mac
 - linux (ubuntu,debian,suse,redhat)

It's actually not so many..

No, I am not talking jibberish or pie in the sky here..

Here's specifically what needs doing.....

 1) create a three page "wizard" style app in wxpython

 2) the app has checkboxes to allow the user to select the 
    operating systems that they want to deploy to

 3) p2app for mac, py2exe for windows.. whichever one
    for linux is driven.. much like gui2exe

 4) Cheetah templates are used to create the necessary
    output scripts from the meta information.

    (building scripts in code is so 1970s.. we don't
     want to do it that way again)

 5) The scripts get run and the user ends up with
    .debs .rpm... windows installer  
basic structure...

for plat in user_selected_platforms:

def build_for_platform(platform):
    if platform == "mac":
    elif ....

I think distutils has been in a "frozen" state for the
last few years. With no notable improvements apart
from bug fixes and internal work.

Given that the general consensus is largely to leave
package/application management to the operating 
system, what I describe above is a more modern way to 
accomplish what people are trying to do with less 
effort on the part of all...

If a user makes a python app... why shouldn't they
be able to run a distutils script to "distribute"
to a platform they don't have....

Building ubuntu or debian packages is no longer
a black art....

It's 2009 now nearly 2010...

When was the last time distutils ever got a
major upgrade....?

Is this not what "disutils" should be doing?

in this day and age?


More information about the Distutils-SIG mailing list