2004-03-12 15:01:07 -05:00
|
|
|
How to make a wxPython distribution
|
|
|
|
===================================
|
|
|
|
|
|
|
|
This file documents all the steps that need to be taken to make a full
|
|
|
|
dsitribution of wxPython, building source and binary packages for
|
|
|
|
Linux, Windows and OSX. Much of this info is just "notes to self" and
|
|
|
|
are specific to my machines and their custom setup, and may not be
|
|
|
|
entirly applicable to others. If other folks are able to glean some
|
|
|
|
useful information from this then that is wonderful, but is not the
|
|
|
|
main intent of this document...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Preflight Checklist
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
* Ensure that the version info in wxPython/setup.py is correct.
|
|
|
|
|
2004-03-12 19:16:22 -05:00
|
|
|
* Ensure that all build machines are up to date with CVS, they should
|
2004-03-12 15:01:07 -05:00
|
|
|
have the same versions of all the wxWidgets files if possible. (Use
|
|
|
|
a CVS tag if this is an official release.)
|
|
|
|
|
|
|
|
* Ensure that all SWIG files have been regnerated, by doing a "b 23 t"
|
|
|
|
in wxPython, and then "b 23". Check CVS status again, committing
|
|
|
|
changes and updating on other build machines as neccessary. This
|
|
|
|
includes build scripts too, so as tweaks are made in the various
|
|
|
|
processes below be sure to check in the scripts.
|
|
|
|
|
|
|
|
* Make the wxPython metadata XML file and ensure that it is committed
|
|
|
|
to CVS. On Xavier do:
|
|
|
|
|
|
|
|
docs/bin/simplify.py
|
|
|
|
|
|
|
|
* Ensure that docs/CHANGES.txt and docs/MigrationGuide.txt are
|
|
|
|
updated, accurate and checked in to CVS.
|
|
|
|
|
|
|
|
* Regenerate the html versions of the ReST docs in wxPython/docs, and
|
|
|
|
check in to CVS. On Xavier do:
|
|
|
|
|
|
|
|
cd wxPython/docs
|
|
|
|
docutils-buildhtml
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Windows (build env is on Cyclops)
|
|
|
|
----------------------------------
|
|
|
|
|
|
|
|
* Clean out unneded files from wx/BIN
|
|
|
|
|
|
|
|
*.pdb # debugger data
|
|
|
|
wx*d_*.dll # debug version of the DLLs
|
|
|
|
# also old versions
|
|
|
|
# etc.
|
|
|
|
|
|
|
|
* Clean out the same files in wx/lib/vc_dll. (NOTE to self: There is
|
|
|
|
probably no reason any more to move stuff to the BIN dir. Update
|
|
|
|
the build and packager scripts and the PATHs and then get rid of
|
|
|
|
it.)
|
|
|
|
|
|
|
|
* Do a clean build of the ansi and unicode hybrid versions of
|
|
|
|
wxWidgets:
|
|
|
|
|
|
|
|
cd wx/build/msw
|
|
|
|
.make both-hybrid clean
|
|
|
|
.make both-hybrid
|
|
|
|
|
2004-03-12 19:16:22 -05:00
|
|
|
* Make the .mo files
|
|
|
|
|
|
|
|
cd wx/locale
|
|
|
|
makemo.py
|
|
|
|
|
2004-03-12 15:01:07 -05:00
|
|
|
* Build the tools. This btm script makes a static release version of
|
|
|
|
wxWidgets, and then builds copies of wxrc.exe and tex2rtf.exe
|
|
|
|
linking with that lib, placing them in wx/BIN.
|
|
|
|
|
2004-03-12 19:16:22 -05:00
|
|
|
.make_tools.btm
|
2004-03-12 15:01:07 -05:00
|
|
|
|
|
|
|
* Make the HTMLHelp files. In the wx\wxPython directory run:
|
|
|
|
|
2004-03-12 19:16:22 -05:00
|
|
|
distrib\makedocs.bat
|
2004-03-12 15:01:07 -05:00
|
|
|
|
|
|
|
* Clean and old wxPython builds:
|
|
|
|
|
|
|
|
del /sx build build.unicode
|
|
|
|
|
|
|
|
* Build all four versions of wxPython installers:
|
|
|
|
|
|
|
|
b 23 a
|
|
|
|
|
|
|
|
* Build the -devel .zip file:
|
|
|
|
|
|
|
|
dsitrib\makedev.bat $(VERSION)
|
|
|
|
|
|
|
|
* Copy the all the files created in wx\wxPython\dist to the file
|
|
|
|
server at s:\Development\wxPython\dist\$(VERSION)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Linux
|
|
|
|
-----
|
|
|
|
|
|
|
|
The distribution build for Linux is split across two machines, one to
|
|
|
|
create the source archives and another to build the binaries. On the
|
|
|
|
primary development box (Xavier) do the following steps from the
|
|
|
|
wx/wxPython dir:
|
|
|
|
|
|
|
|
* Clean out any former RPM build dirs, and any former dist files:
|
|
|
|
|
|
|
|
rm -r _build_rpm
|
|
|
|
rm dist/*
|
|
|
|
|
|
|
|
|
|
|
|
* Make the demo tarball:
|
|
|
|
|
|
|
|
dsitrib/makedemo
|
|
|
|
|
|
|
|
* Make the docs tarball:
|
|
|
|
|
|
|
|
distrib/makedocs
|
|
|
|
|
|
|
|
* Make the source tarball:
|
|
|
|
|
|
|
|
distrib/makerpm 2.3 skipclean skiprpm
|
|
|
|
|
|
|
|
* Make the four SRPMs:
|
|
|
|
|
|
|
|
distrib/makerpm 2.2 skipclean skipcopy skiptar srpm
|
|
|
|
distrib/makerpm 2.3 skipclean skipcopy skiptar srpm
|
|
|
|
distrib/makerpm 2.2 skipclean skipcopy skiptar srpm gtk2
|
|
|
|
distrib/makerpm 2.3 skipclean skipcopy skiptar srpm gtk2
|
|
|
|
|
|
|
|
* Copy all the files created in wx/wxPython/dist to the file server at
|
|
|
|
/stuff/Development/wxPython/dist/$(VERSION)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* The second half of the build process for Linux (building the binary
|
|
|
|
RPMs) is performed on a fairly raw (uncustomized, only used for
|
|
|
|
these builds, etc.) RedHat 9 machine. This is done to make the RPMs
|
|
|
|
as generic as possible, ensuring that there are no dependencies on
|
|
|
|
non-standard libs and such that may be on my main development
|
|
|
|
machine. There are RH-9 VMware VMs both on Cyclops and on Xavier
|
|
|
|
that are setup to do this, with both Python 2.2 and 2.3 installed,
|
|
|
|
gtk+12 and gtk+2 devel libs, etc. As the root user, do the
|
|
|
|
following:
|
|
|
|
|
|
|
|
mkdir /tmp/build
|
|
|
|
cd /tmp/build
|
|
|
|
SRCDIR=/stuff/Development/wxPython/dist/$(VERSION)
|
|
|
|
for srpm in $SRCDIR/*.src.rpm; do
|
|
|
|
myrpmbuild --rebuild $srpm
|
|
|
|
done
|
|
|
|
|
|
|
|
* Copy the resulting RPMs to /stuff/Development/wxPython/dist/$(VERSION)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mac OSX
|
2004-03-12 19:16:22 -05:00
|
|
|
-------
|
|
|
|
|
|
|
|
The Mac OSX build uses the tarball created on Linux, so it must be
|
|
|
|
created first and in place on the file server. There are currently
|
|
|
|
two builds made of wxPythonOSX, one for Panther and Apple's version of
|
|
|
|
Python, and one for Jaguar and a self-installed MacPythonOSX.
|
|
|
|
|
2004-03-13 01:14:56 -05:00
|
|
|
* On BigMac run the following as root:
|
2004-03-12 19:16:22 -05:00
|
|
|
|
|
|
|
cd wx/wxPython
|
|
|
|
distrib/mac/wxPythonOSX/build panther
|
|
|
|
|
2004-03-13 01:14:56 -05:00
|
|
|
* On Whopper run the following as root:
|
2004-03-12 19:16:22 -05:00
|
|
|
|
|
|
|
cd wx/wxPython
|
|
|
|
distrib/mac/wxPythonOSX/build jaguar
|
|
|
|
|
|
|
|
* Copy the resulting disk image files in wx/wxPython/dist on each
|
|
|
|
machine to /stuff/Development/wxPython/dist/$(VERSION) on the file
|
|
|
|
server.
|
|
|
|
|
|
|
|
|