patchbomb + py2exe broken on python 2.5

Steve Borho steve at
Fri Aug 31 10:58:24 CDT 2007

On Fri, 2007-08-31 at 08:18 +0200, Patrick Mézard wrote:
> Brad Schick a écrit :
> > Steve Borho wrote:
> >> In python 2.5, the email module was refactored to use the PEP 8
> >> module naming scheme.  There's fixup code in email/ so the
> >> old naming scheme still works correctly on most systems.  But this is
> >> too much for py2exe to figure out and it was unable to pull the correct
> >> email modules into, thus breaking patchbomb.
> >>
> >>   
> > Have you considered making a win32 install that doesn't use py2exe? It
> > would be nice to have an installer that downloaded and installed python
> > only when needed, and then use the standard python distutils to install
> > mercurial.
> That would require people to compile C modules ? I am not convinced this 
> is an interesting trade-of: people able to compile C modules with the 
> right compiler for the right python version are probably already able to 
> use mercurial from source directly and hack whatever they want in it.

If we integrated the setuptools suite into, we could easily
build python eggs for mercurial on win32 python 2.3, 2.4, and 2.5.  The
egg files store the compiled modules, so all the installer would need to
do is ensure python was installed, install setuptools, then run
'easy_install mercurial'

I've not tried that, but I believe it would work. This would have many

* It fixes all the path and extension problems
* The resultant mercurial install is more debuggable
* I could distribute qct separately in it's own egg (doubleplusgood)
* Non-bundled extensions could be packaged as eggs
* The egg format allows you to keep multiple versions of a package
installed and select the version you wish to run.  It makes upgrades
very painless.

I think I've convinced myself to try this over the weekend.  Is there a
reason this hasn't been done before?  Just a lack of volunteers?

Steve Borho (steve at
Key fingerprint = 2D08 E7CF B624 624C DE1F  E2E4 B0C2 5292 F2C6 2C8C

More information about the Mercurial-devel mailing list