[Python-Dev] Packaging and binary distributions

Vinay Sajip vinay_sajip at yahoo.co.uk
Mon Oct 31 09:07:12 CET 2011


Paul Moore <p.f.moore <at> gmail.com> writes:

> Hang on. I'm talking here about repackaging the binary files in the
> MSI file for use in a pysetup install invocation. As pysetup has no
> GUI, and doesn't integrate with Add/Remove, there's no issue here. If
> you want a GUI and Add/Remove integration, just run the MSI. Or am I
> missing something? We seem to be at cross purposes here, I suspect I'm
> missing your point.

As you say later in your post, we're probably just coming at this from two
different perspectives. I think you mentioned the possible need to install to a
temporary location just to extract files from the CAB; then you would
presumably need to uninstall again to remove the Add/Remove Programs entry
created when you installed to the temporary location (or else I misunderstood
your meaning here).
 
>> It would be important to retain the flexibility offered by setup.cfg
>> hooks, as I don't believe any out-of-the-box approach will work for the
>> range of use cases on Windows (think Powershell scripts, Visio templates
>> and other Microsoft Office integration components).
> 
> Why? Again, if this is purely as a means to consume bdist_xxx files,
> then the only flexibility needed is enough to cater for any variations
> in data stored in the bdist_xxx format. The wininst format is easy
> here - it has directories PLATLIB, PURELIB, DATA, SCRIPTS and HEADERS
> (corresponding to the installation --install-xxx parameters) and
> that's all. As long as the module is flexible enough to deal with
> that, it can read anything bdist_wininst can produce.

My point is really that a one-size-fits-all DATA location is unlikely to cater
to all use cases. The flexibility offered by setup.cfg together with hooks gets
around the limitation of a single location for data.

> Ah, I think I see what you are getting at. If someone uses the new
> features and flexibility of packaging to create a fancy custom install
> scheme, how do they bundle up a binary distribution from that? My
> (current) answer is that I don't know. The packaging module as it
> stands only offers the legacy bdist_xxx formats, so the answer is "run
> pysetup run bdist_wininst on it". If that breaks (as it is likely to -
> wininst format isn't very flexible) then tough, you're out of luck.

Yes, that's what I was getting at.

Regards,

Vinay Sajip



More information about the Python-Dev mailing list