]>
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 | ||
19 | * Ensure that all build boxes 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.) | |
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 | ||
48 | * Clean out unneded files from wx/BIN | |
49 | ||
50 | *.pdb # debugger data | |
51 | wx*d_*.dll # debug version of the DLLs | |
52 | # also old versions | |
53 | # etc. | |
54 | ||
55 | * Clean out the same files in wx/lib/vc_dll. (NOTE to self: There is | |
56 | probably no reason any more to move stuff to the BIN dir. Update | |
57 | the build and packager scripts and the PATHs and then get rid of | |
58 | it.) | |
59 | ||
60 | * Do a clean build of the ansi and unicode hybrid versions of | |
61 | wxWidgets: | |
62 | ||
63 | cd wx/build/msw | |
64 | .make both-hybrid clean | |
65 | .make both-hybrid | |
66 | ||
67 | * Build the tools. This btm script makes a static release version of | |
68 | wxWidgets, and then builds copies of wxrc.exe and tex2rtf.exe | |
69 | linking with that lib, placing them in wx/BIN. | |
70 | ||
71 | .make_tools.btm | |
72 | ||
73 | * Make the HTMLHelp files. In the wx\wxPython directory run: | |
74 | ||
75 | distrib\makedocs.bat | |
76 | ||
77 | * Clean and old wxPython builds: | |
78 | ||
79 | del /sx build build.unicode | |
80 | ||
81 | * Build all four versions of wxPython installers: | |
82 | ||
83 | b 23 a | |
84 | ||
85 | * Build the -devel .zip file: | |
86 | ||
87 | dsitrib\makedev.bat $(VERSION) | |
88 | ||
89 | * Copy the all the files created in wx\wxPython\dist to the file | |
90 | server at s:\Development\wxPython\dist\$(VERSION) | |
91 | ||
92 | ||
93 | ||
94 | Linux | |
95 | ----- | |
96 | ||
97 | The distribution build for Linux is split across two machines, one to | |
98 | create the source archives and another to build the binaries. On the | |
99 | primary development box (Xavier) do the following steps from the | |
100 | wx/wxPython dir: | |
101 | ||
102 | * Clean out any former RPM build dirs, and any former dist files: | |
103 | ||
104 | rm -r _build_rpm | |
105 | rm dist/* | |
106 | ||
107 | ||
108 | * Make the demo tarball: | |
109 | ||
110 | dsitrib/makedemo | |
111 | ||
112 | * Make the docs tarball: | |
113 | ||
114 | distrib/makedocs | |
115 | ||
116 | * Make the source tarball: | |
117 | ||
118 | distrib/makerpm 2.3 skipclean skiprpm | |
119 | ||
120 | * Make the four SRPMs: | |
121 | ||
122 | distrib/makerpm 2.2 skipclean skipcopy skiptar srpm | |
123 | distrib/makerpm 2.3 skipclean skipcopy skiptar srpm | |
124 | distrib/makerpm 2.2 skipclean skipcopy skiptar srpm gtk2 | |
125 | distrib/makerpm 2.3 skipclean skipcopy skiptar srpm gtk2 | |
126 | ||
127 | * Copy all the files created in wx/wxPython/dist to the file server at | |
128 | /stuff/Development/wxPython/dist/$(VERSION) | |
129 | ||
130 | ||
131 | ||
132 | * The second half of the build process for Linux (building the binary | |
133 | RPMs) is performed on a fairly raw (uncustomized, only used for | |
134 | these builds, etc.) RedHat 9 machine. This is done to make the RPMs | |
135 | as generic as possible, ensuring that there are no dependencies on | |
136 | non-standard libs and such that may be on my main development | |
137 | machine. There are RH-9 VMware VMs both on Cyclops and on Xavier | |
138 | that are setup to do this, with both Python 2.2 and 2.3 installed, | |
139 | gtk+12 and gtk+2 devel libs, etc. As the root user, do the | |
140 | following: | |
141 | ||
142 | mkdir /tmp/build | |
143 | cd /tmp/build | |
144 | SRCDIR=/stuff/Development/wxPython/dist/$(VERSION) | |
145 | for srpm in $SRCDIR/*.src.rpm; do | |
146 | myrpmbuild --rebuild $srpm | |
147 | done | |
148 | ||
149 | * Copy the resulting RPMs to /stuff/Development/wxPython/dist/$(VERSION) | |
150 | ||
151 | ||
152 | ||
153 | ||
154 | Mac OSX | |
155 | ------- |