]> git.saurik.com Git - wxWidgets.git/blob - docs/tech/tn0013.txt
updated the build technote and the technote index; removed obsolete and incorrect...
[wxWidgets.git] / docs / tech / tn0013.txt
1 How to prepare wxGTK distribution
2 =================================
3
4 0. Introduction
5 ---------------
6
7 This note explains what should be done, step by step, to prepare the packages
8 for a wxGTK distribution. Note that the same instructions should be used for
9 the other Unix-based ports including wxMotif, wxX11 and wxBase.
10
11 1. Preparing the sources
12 ------------------------
13
14 a) Do a fresh checkout using the command
15
16 cvs -d :pserver:anoncvs@cvs.wxwindows.org:/home/wxcvs co wxGTK
17
18 NB: if you realize later that some needed files were not checked out
19 by this command, please modify CVSROOT/modules to include the missing
20 files so that it works for the next release!
21
22 You also need the samples, demos and contrib directories, so change to
23 wxWindows directory created by the first cvs command and do "cvs up -d"
24 for each of them.
25
26 b) Create a build directory under wxWindows, e.g. I use "gtk-release",
27 "cd" to it and run configure: the options don't really matter, you can use
28 something like
29
30 ../configure --no-recursion
31
32 to make it run a bit faster.
33
34 c) Then type "make -j1 dist bzip-dist-only". This should create the
35 following files;
36
37 wxGTK-${version}.tar.bz2
38 wxGTK-demos-${version}.tar.bz2
39 wxGTK-samples-${version}.tar.bz2
40 wxGTK-${version}.tar.gz
41 wxGTK-demos-${version}.tar.gz
42 wxGTK-samples-${version}.tar.gz
43
44 where version is something like 2.3.2.
45
46 Note 1: "-j1" is needed now because make dist target is broken and doesn't
47 allow parallelizing, if your make is aliased to "make -j4" (like
48 mine), it simply won't work.
49
50 Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix
51 means to just create the archive supposing that the files
52 themselves are already under _dist_dir/wxGTK-${version} where
53 "make dist" creates them
54
55 2. Building the RPMs
56 --------------------
57
58 Note that we didn't check if the library actually could be built -- this is
59 because it is done during this step, during the RPM generation. If, for
60 whatever reason, you don't build the RPMs, you must have checked previously
61 that the library could be built -- nothing worse than a release which doesn't
62 even compile!
63
64 The rest of this section applies to a system with RPM installed (Redhat in my
65 case).
66
67 a) Setting up the RPM tree: you should have the RPM tree set up properly
68 before doing anything else. If you are going to build the RPMs as root,
69 you already have one under /usr/src/redhat and can just build there.
70 Otherwise you may do it (without root rights) in any directory RPM_ROOT.
71 RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES,
72 SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should
73 also create the file ~/.rpmmacros containing at least a line like this:
74 "%_topdir /biton/zeitlin/rpm" (replace the directory with $RPM_ROOT, of
75 course)
76
77 In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES
78 subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from
79 there -- like this you won't forget to update them after redoing "make
80 dist").
81
82 b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
83 SPECS/wxGTK.spec". It may be a good idea to append "2&>1 | tee wxGTK.out"
84 (or "|& tee" if you're using the one true shell ;-) as it might be not
85 easy to detect errors in the verbose rpm output if anything goes wrong.
86
87 Then wait (and pray that nothing goes wrong because if anything does
88 you'll have to restart from the very beginning because rpm doesn't allow
89 to short circuit the package generation).
90
91 If everything goes well, the following files are produced:
92
93 SRPMS/wxGTK-${version}-1.src.rpm
94 RPMS/i386/wxGTK-${version}-1.i386.rpm
95 RPMS/i386/wxGTK-devel-${version}-1.i386.rpm
96 RPMS/i386/wxGTK-gl-${version}-1.i386.rpm
97 RPMS/i386/wxGTK-static-${version}-1.i386.rpm
98
99
100 Note: you may want to set the environment variable SMP to 3 or 4 on an
101 SMP machine to speed up the build (it uses "make -j$SMP" if the
102 variable is set)
103
104 c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual
105 and try to build some samples using makefile.unx ("make -f makefile.unx")
106 so that they use wx-config in the PATH and not from the build tree
107
108 3. Building the DEBs
109 --------------------
110
111 [Ron is doing this]
112
113 4. Uploading the files
114 ----------------------
115
116 All 11 files should be uploaded (via FTP) to several locations.
117
118 a) incoming.sourceforge.net, go to project admin page on sf.net and choose
119 add/edit releases for more details
120
121 b) ftp://biolpc22.york.ac.uk/pub (Julian has the password)
122
123 5. Announcing the release
124 -------------------------
125
126 a) FreshMeat:
127 - http://freshmeat.net/projects/wxwindowsgtk/
128 - username and password are "wxgtk" for logging in
129 - hit "new release" at the top
130 - follow the step by step
131
132 b) wx-announce mailing list: mailto:wx-announce@lists.wxwindows.org
133
134 [where is the announcement text? TODO]
135
136 c) update www.wxwindows.org
137
138 d) GNOME (very effective, stays on front page for days):
139 - http://www.gnome.org/applist
140 - Search for wxWindows
141 - Update the version number
142 - Ignore the error message
143
144 e) MacNN:
145 - http://www.macnn.com
146 - Contact or Contribute or something
147
148 f) MacRumors:
149 - http://www.macrumors.com
150 - Contact or Contribute or something
151
152 g) Apple Developers Connection:
153 mailto: adcnews@apple.com
154
155 h) LinuxDevices.com:
156 Interesting for wxUniversal.
157
158 i) The Python mailing list:
159