1 How to make a wxPython distribution
 
   2 ===================================
 
   4 This file documents all the steps that need to be taken to make a full
 
   5 dsitribution of wxPython, building source and binary packages for
 
   6 Linux, Windows and OSX.  Much of this info is just "notes to self" and
 
   7 are specific to my machines and their custom setup, and may not be
 
   8 entirly applicable to others.  If other folks are able to glean some
 
   9 useful information from this then that is wonderful, but is not the
 
  10 main intent of this document...
 
  17 * Ensure that the version info in wxPython/config.py is correct.
 
  19 * Ensure that all build machines are up to date with CVS, they should
 
  20   have the same versions of all the wxWidgets files if possible.  (Use
 
  21   a CVS tag if this is an official release.)
 
  23 * Ensure that all SWIG files have been regnerated, by doing a "b 23 t"
 
  24   in wxPython, and then "b 23".  Check CVS status again, committing
 
  25   changes and updating on other build machines as neccessary.  This
 
  26   includes build scripts too, so as tweaks are made in the various
 
  27   processes below be sure to check in the scripts.
 
  29 * Make the wxPython metadata XML file and ensure that it is committed 
 
  34 * Ensure that docs/CHANGES.txt and docs/MigrationGuide.txt are
 
  35   updated, accurate and checked in to CVS.
 
  37 * Regenerate the html versions of the ReST docs in wxPython/docs, and
 
  38   check in to CVS.  On Xavier do:
 
  45 Windows  (build env is on Cyclops)
 
  46 ----------------------------------
 
  48 * Do a clean build of the ansi and unicode hybrid versions of
 
  52         .make both-hybrid clean
 
  55 * Build the tools. This btm script makes a static release version of
 
  56   wxWidgets, and then builds copies of wxrc.exe and tex2rtf.exe
 
  57   linking with that lib, placing them in wx/lib/vc_dll, (which you
 
  58   should have on the PATH.)
 
  67 * Make the HTMLHelp files.  In the wx\wxPython directory run: 
 
  71 * Clean any old wxPython builds:
 
  73         del /sx build build.unicode
 
  75 * Build all four versions of wxPython installers:
 
  79 * Build the -devel .zip file:
 
  81         dsitrib\makedev.bat $(VERSION)
 
  83 * Copy the all the files created in wx\wxPython\dist to the file
 
  84   server at s:\Development\wxPython\dist\$(VERSION)
 
  91 The distribution build for Linux is split across two machines, one to
 
  92 create the source archives and another to build the binaries.  On the
 
  93 primary development box (Xavier) do the following steps from the
 
  96 * Clean out any former RPM build dirs, and any former dist files:
 
 102 * Make the demo tarball:
 
 106 * Make the docs tarball:
 
 110 * Make the source tarball:
 
 112        distrib/makerpm 2.3 skipclean skiprpm
 
 114 * Make the four SRPMs:
 
 116        distrib/makerpm 2.2 skipclean skipcopy skiptar srpm
 
 117        distrib/makerpm 2.3 skipclean skipcopy skiptar srpm
 
 118        distrib/makerpm 2.2 skipclean skipcopy skiptar srpm gtk2
 
 119        distrib/makerpm 2.3 skipclean skipcopy skiptar srpm gtk2
 
 121 * Copy all the files created in wx/wxPython/dist to the file server at
 
 122   /stuff/Development/wxPython/dist/$(VERSION)
 
 126 * The second half of the build process for Linux (building the binary
 
 127   RPMs) is performed on a fairly raw (uncustomized, only used for
 
 128   these builds, etc.) RedHat 9 machine.  This is done to make the RPMs
 
 129   as generic as possible, ensuring that there are no dependencies on
 
 130   non-standard libs and such that may be on my main development
 
 131   machine.  There are RH-9 VMware VMs both on Cyclops and on Xavier
 
 132   that are setup to do this, with both Python 2.2 and 2.3 installed,
 
 133   gtk+1.2 and gtk+2 devel libs, etc. As the root user, do the
 
 138      SRCDIR=/stuff/Development/wxPython/dist/$(VERSION)
 
 139      for srpm in $SRCDIR/*.src.rpm; do
 
 140          myrpmbuild --rebuild $srpm
 
 143 * Copy the resulting RPMs to /stuff/Development/wxPython/dist/$(VERSION)
 
 151 The Mac OSX build uses the tarball created on Linux, so it must be
 
 152 created first and in place on the file server.  There are currently
 
 153 two builds made of wxPythonOSX, one for Panther and Apple's version of
 
 154 Python, and one for Jaguar and a self-installed MacPythonOSX.  
 
 156 * On BigMac run the following as root:
 
 159      distrib/mac/wxPythonOSX/build panther
 
 161 * On Whopper run the following as root: 
 
 164      distrib/mac/wxPythonOSX/build jaguar
 
 166 * Copy the resulting disk image files in wx/wxPython/dist on each
 
 167   machine to /stuff/Development/wxPython/dist/$(VERSION) on the file