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