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