wxWidgets/wxPython/distrib/howto-distrib.txt

171 lines
4.7 KiB
Plaintext
Raw Normal View History

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/config.py is correct.
* Ensure that all build machines are up to date with CVS, they should
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)
----------------------------------
* Do a clean build of the ansi and unicode hybrid versions of
wxWidgets:
cd wx/build/msw
.make both-hybrid clean
.make both-hybrid
* 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/lib/vc_dll, (which you
should have on the PATH.)
.make_tools.btm
* Make the .mo files
cd wx/locale
makemo.py
* Make the HTMLHelp files. In the wx\wxPython directory run:
distrib\makedocs.bat
* Clean any 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:
distrib/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
-------
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.
* On BigMac run the following as root:
cd wx/wxPython
distrib/mac/wxPythonOSX/build panther
* On Whopper run the following as root:
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.