[Python-Dev] Building a Windows MSI for Python /trunk

C. Titus Brown ctb at msu.edu
Thu Nov 26 15:03:27 CET 2009

On Thu, Nov 26, 2009 at 09:54:35AM +0100, "Martin v. L?wis" wrote:
> > First, the script that finds & builds the external dependencies has two
> > minor problems.
> > 
> >  * it puts Tcl in tcl-8.*, and Tk in tk-8.*, but msi.py looks for them in
> >    tcl8.* and tk8.* to grab the license text.  I changed the glob strings
> >    appropriately and that seemed to work.
> Not sure what "it" is that put it there; perhaps you are referring to
> the Tools/buildbot scripts?

Yes, sorry, Tools/buildbot/external*.bat, as in the diff.

> Unfortunately, the naming convention that these scripts establish
> doesn't quite work, as Tix would fail to build under these conventions.
> So in my own checkout, I manually renamed the trees, and that's what
> msi.py refers to.

OK, thanks!

> >  * Tix isn't downloaded/installed/built automatically like everything else,
> >    and msi.py looks for its license file, too.  I just removed the
> >    Tix reference.  I can't figure out how to build Tix appropriately; any
> >    tips?
> See above. I keep forgetting how to build Tix; one set of command lines
> is in PCbuild/build_tkinter.py.

Ok, thanks!

> > Second, the buildmsi.bat file refers to python26a3.hhp instead of
> > python27a0.hhp.
> Yes, that script hasn't been updated for a long time, ever since we
> stopped having automated builds.
> Ideally, the script would find the Python version on its own.


> > Third, I could not get _tkinter to build properly, although it wasn't fatal
> > to the endeavor.  It couldn't find ..\..\tcltk\lib\tcl85.lib, although
> > tcl85g.lib existed.
> You'll need to build release versions of Tcl/Tk/Tix.

Yes, I saw a reference to that online, but I wasn't sure if that was the
problem -- is the naming convention really that 'tcl85g.lib' is the debug

> > Oh, and there were a bunch of missing commands that (as a non-Windows xpert) I
> > had to figure out with google -- things like nasm/nasmw, for example.  Are
> > these documented somewhere, or would it be helpful to document them?
> See PCbuild/readme.txt.

OK, thanks.

> > I'd love to get this build process working completely automatically and
> > 100% correctly, too.
> > 
> > Hat tip to Trent Nelson, who helped me figure out where the scripts are
> > and what other things I needed...
> Feel free to submit patches. There may be a misunderstanding, though, in
> that buildmsi.bat isn't actually used for anything, and isn't "meant" to
> be run by users, but instead by build slaves.

Well, yes, although wouldn't we want the scripts to run without any user
editing, for the build slaves?

> One consequence is that these scripts build in debug mode (perhaps
> except for buildmsi), whereas end users would typically want to build in
> release mode.


Is there a reason the buildbot builds were stopped? I've added binary
file uploads to pony-build, so that platform-specific files can be
uploaded to build results -- see, e.g.




and I thought daily -latest builds for Python latest on Windows and Mac would
be a good demo...

Incidentally, the pony-build results & file upload scripts can be used from
within buildbot, if people are interested.

> Another consequence is that different committers actually use different
> procedures. Trent created much of the Tools/buildbot setup, so he is
> obviously in favor of that strategy. Christian Heimes created
> PCbuild/build_tkinter, so he would probably prefer to use that instead.
> When I took over Windows builds from Tim Peters, PCbuild/readme.txt
> was the official reference, and I try to stick to that.

OK, I see.  Thanks!  So if I can bring the scripts into concordance with
that it might be valuable?

C. Titus Brown, ctb at msu.edu

More information about the Python-Dev mailing list