]>
Commit | Line | Data |
---|---|---|
d1cd84e7 VZ |
1 | How to prepare wxGTK distribution |
2 | ================================= | |
6b5691cb VZ |
3 | |
4 | 0. Introduction | |
5 | --------------- | |
6 | ||
7 | This note explains what should be done, step by step, to prepare the packages | |
00fd036c VZ |
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. | |
6b5691cb VZ |
10 | |
11 | 1. Preparing the sources | |
12 | ------------------------ | |
13 | ||
14 | a) Do a fresh checkout using the command | |
15 | ||
2b5f62a0 | 16 | cvs -d :pserver:anoncvs@cvs.wxwindows.org:/packs/cvsroots/wxwindows co wxGTK |
6b5691cb VZ |
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", | |
00fd036c VZ |
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; | |
6b5691cb VZ |
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 | |
d1cd84e7 | 48 | mine), it simply won't work. |
6b5691cb | 49 | |
00fd036c | 50 | Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix |
6b5691cb | 51 | means to just create the archive supposing that the files |
d1cd84e7 VZ |
52 | themselves are already under _dist_dir/wxGTK-${version} where |
53 | "make dist" creates them | |
6b5691cb VZ |
54 | |
55 | 2. Building the RPMs | |
56 | -------------------- | |
57 | ||
00fd036c | 58 | Note that we didn't check if the library actually could be built -- this is |
6b5691cb VZ |
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 | |
00fd036c | 61 | that the library could be built -- nothing worse than a release which doesn't |
6b5691cb VZ |
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 | |
00fd036c VZ |
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) | |
6b5691cb VZ |
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 | |
00fd036c | 79 | there -- like this you won't forget to update them after redoing "make |
6b5691cb VZ |
80 | dist"). |
81 | ||
00fd036c | 82 | b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba |
2b5f62a0 | 83 | SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out" |
6b5691cb VZ |
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 | ||
fad5a51f VS |
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. | |
00fd036c VZ |
101 | |
102 | Note: you may want to set the environment variable SMP to 3 or 4 on an | |
103 | SMP machine to speed up the build (it uses "make -j$SMP" if the | |
104 | variable is set) | |
105 | ||
106 | c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual | |
107 | and try to build some samples using makefile.unx ("make -f makefile.unx") | |
108 | so that they use wx-config in the PATH and not from the build tree | |
109 | ||
d1cd84e7 VZ |
110 | 3. Building the DEBs |
111 | -------------------- | |
112 | ||
113 | [Ron is doing this] | |
114 | ||
115 | 4. Uploading the files | |
6b5691cb VZ |
116 | ---------------------- |
117 | ||
118 | All 11 files should be uploaded (via FTP) to several locations. | |
119 | ||
120 | a) incoming.sourceforge.net, go to project admin page on sf.net and choose | |
121 | add/edit releases for more details | |
122 | ||
f44b23b6 | 123 | b) ftp://biolpc22.york.ac.uk/pub (Julian has the password) |
6b5691cb | 124 | |
d1cd84e7 | 125 | 5. Announcing the release |
6b5691cb VZ |
126 | ------------------------- |
127 | ||
e8565711 RR |
128 | a) FreshMeat: |
129 | - http://freshmeat.net/projects/wxwindowsgtk/ | |
130 | - username and password are "wxgtk" for logging in | |
131 | - hit "new release" at the top | |
132 | - follow the step by step | |
d1cd84e7 VZ |
133 | |
134 | b) wx-announce mailing list: mailto:wx-announce@lists.wxwindows.org | |
135 | ||
136 | [where is the announcement text? TODO] | |
1a2c3cae VZ |
137 | |
138 | c) update www.wxwindows.org | |
139 | ||
e8565711 RR |
140 | d) GNOME (very effective, stays on front page for days): |
141 | - http://www.gnome.org/applist | |
142 | - Search for wxWindows | |
143 | - Update the version number | |
144 | - Ignore the error message | |
00fd036c | 145 | |
e8565711 RR |
146 | e) MacNN: |
147 | - http://www.macnn.com | |
148 | - Contact or Contribute or something | |
149 | ||
150 | f) MacRumors: | |
151 | - http://www.macrumors.com | |
152 | - Contact or Contribute or something | |
153 | ||
154 | g) Apple Developers Connection: | |
155 | mailto: adcnews@apple.com | |
00fd036c | 156 | |
e8565711 RR |
157 | h) LinuxDevices.com: |
158 | Interesting for wxUniversal. | |
159 | ||
160 | i) The Python mailing list: | |
161 |