Added a document describing the steps that need to be taken to do a
full wxPython build for distribution. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		
							
								
								
									
										155
									
								
								wxPython/distrib/howto-distrib.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								wxPython/distrib/howto-distrib.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,155 @@
 | 
				
			|||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Ensure that all build boxes 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)
 | 
				
			||||||
 | 
					----------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  .make_tools.btm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Make the HTMLHelp files.  In the wx\wxPython directory run: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						 distrib\makedocs.bat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* 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
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
		Reference in New Issue
	
	Block a user