]>
Commit | Line | Data |
---|---|---|
15eac935 RD |
1 | How to make a wxPython distribution |
2 | =================================== | |
3 | ||
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... | |
11 | ||
12 | ||
13 | ||
14 | Preflight Checklist | |
15 | ------------------- | |
16 | ||
17 | * Ensure that the version info in wxPython/setup.py is correct. | |
18 | ||
0f69b6a9 | 19 | * Ensure that all build machines are up to date with CVS, they should |
15eac935 RD |
20 | have the same versions of all the wxWidgets files if possible. (Use |
21 | a CVS tag if this is an official release.) | |
22 | ||
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. | |
28 | ||
29 | * Make the wxPython metadata XML file and ensure that it is committed | |
30 | to CVS. On Xavier do: | |
31 | ||
32 | docs/bin/simplify.py | |
33 | ||
34 | * Ensure that docs/CHANGES.txt and docs/MigrationGuide.txt are | |
35 | updated, accurate and checked in to CVS. | |
36 | ||
37 | * Regenerate the html versions of the ReST docs in wxPython/docs, and | |
38 | check in to CVS. On Xavier do: | |
39 | ||
40 | cd wxPython/docs | |
41 | docutils-buildhtml | |
42 | ||
43 | ||
44 | ||
45 | Windows (build env is on Cyclops) | |
46 | ---------------------------------- | |
47 | ||
15eac935 RD |
48 | * Do a clean build of the ansi and unicode hybrid versions of |
49 | wxWidgets: | |
50 | ||
51 | cd wx/build/msw | |
52 | .make both-hybrid clean | |
53 | .make both-hybrid | |
54 | ||
0f69b6a9 RD |
55 | * Make the .mo files |
56 | ||
57 | cd wx/locale | |
58 | makemo.py | |
59 | ||
15eac935 RD |
60 | * Build the tools. This btm script makes a static release version of |
61 | wxWidgets, and then builds copies of wxrc.exe and tex2rtf.exe | |
312cca17 RD |
62 | linking with that lib, placing them in wx/lib/vc_dll, (which you |
63 | should have on the PATH.) | |
15eac935 | 64 | |
0f69b6a9 | 65 | .make_tools.btm |
15eac935 RD |
66 | |
67 | * Make the HTMLHelp files. In the wx\wxPython directory run: | |
68 | ||
0f69b6a9 | 69 | distrib\makedocs.bat |
15eac935 RD |
70 | |
71 | * Clean and old wxPython builds: | |
72 | ||
73 | del /sx build build.unicode | |
74 | ||
75 | * Build all four versions of wxPython installers: | |
76 | ||
77 | b 23 a | |
78 | ||
79 | * Build the -devel .zip file: | |
80 | ||
81 | dsitrib\makedev.bat $(VERSION) | |
82 | ||
83 | * Copy the all the files created in wx\wxPython\dist to the file | |
84 | server at s:\Development\wxPython\dist\$(VERSION) | |
85 | ||
86 | ||
87 | ||
88 | Linux | |
89 | ----- | |
90 | ||
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 | |
94 | wx/wxPython dir: | |
95 | ||
96 | * Clean out any former RPM build dirs, and any former dist files: | |
97 | ||
98 | rm -r _build_rpm | |
99 | rm dist/* | |
100 | ||
101 | ||
102 | * Make the demo tarball: | |
103 | ||
104 | dsitrib/makedemo | |
105 | ||
106 | * Make the docs tarball: | |
107 | ||
108 | distrib/makedocs | |
109 | ||
110 | * Make the source tarball: | |
111 | ||
112 | distrib/makerpm 2.3 skipclean skiprpm | |
113 | ||
114 | * Make the four SRPMs: | |
115 | ||
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 | |
120 | ||
121 | * Copy all the files created in wx/wxPython/dist to the file server at | |
122 | /stuff/Development/wxPython/dist/$(VERSION) | |
123 | ||
124 | ||
125 | ||
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+12 and gtk+2 devel libs, etc. As the root user, do the | |
134 | following: | |
135 | ||
136 | mkdir /tmp/build | |
137 | cd /tmp/build | |
138 | SRCDIR=/stuff/Development/wxPython/dist/$(VERSION) | |
139 | for srpm in $SRCDIR/*.src.rpm; do | |
140 | myrpmbuild --rebuild $srpm | |
141 | done | |
142 | ||
143 | * Copy the resulting RPMs to /stuff/Development/wxPython/dist/$(VERSION) | |
144 | ||
145 | ||
146 | ||
147 | ||
148 | Mac OSX | |
0f69b6a9 RD |
149 | ------- |
150 | ||
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. | |
155 | ||
8027eb22 | 156 | * On BigMac run the following as root: |
0f69b6a9 RD |
157 | |
158 | cd wx/wxPython | |
159 | distrib/mac/wxPythonOSX/build panther | |
160 | ||
8027eb22 | 161 | * On Whopper run the following as root: |
0f69b6a9 RD |
162 | |
163 | cd wx/wxPython | |
164 | distrib/mac/wxPythonOSX/build jaguar | |
165 | ||
166 | * Copy the resulting disk image files in wx/wxPython/dist on each | |
167 | machine to /stuff/Development/wxPython/dist/$(VERSION) on the file | |
168 | server. | |
169 | ||
170 |