2001-12-11 14:32:28 +00:00
|
|
|
How to prepare wxGTK distribution
|
|
|
|
=================================
|
2001-12-11 01:11:54 +00:00
|
|
|
|
|
|
|
0. Introduction
|
|
|
|
---------------
|
|
|
|
|
|
|
|
This note explains what should be done, step by step, to prepare the packages
|
2002-09-15 18:17:02 +00:00
|
|
|
for a wxGTK distribution. Note that the same instructions should be used for
|
|
|
|
the other Unix-based ports including wxMotif, wxX11 and wxBase.
|
2001-12-11 01:11:54 +00:00
|
|
|
|
2003-08-26 02:27:43 +00:00
|
|
|
See distrib/msw/makerpm for a script that embodies some of the steps
|
|
|
|
below.
|
|
|
|
|
2001-12-11 01:11:54 +00:00
|
|
|
1. Preparing the sources
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
a) Do a fresh checkout using the command
|
|
|
|
|
2004-05-23 14:56:36 +00:00
|
|
|
cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/packs/cvsroots/wxwidgets co wxGTK
|
2001-12-11 01:11:54 +00:00
|
|
|
|
|
|
|
NB: if you realize later that some needed files were not checked out
|
|
|
|
by this command, please modify CVSROOT/modules to include the missing
|
|
|
|
files so that it works for the next release!
|
|
|
|
|
|
|
|
You also need the samples, demos and contrib directories, so change to
|
2004-05-04 08:27:20 +00:00
|
|
|
wxWidgets directory created by the first cvs command and do "cvs up -d"
|
2001-12-11 01:11:54 +00:00
|
|
|
for each of them.
|
|
|
|
|
2004-05-04 08:27:20 +00:00
|
|
|
b) Create a build directory under wxWidgets, e.g. I use "gtk-release",
|
2002-09-15 18:17:02 +00:00
|
|
|
"cd" to it and run configure: the options don't really matter, you can use
|
|
|
|
something like
|
|
|
|
|
|
|
|
../configure --no-recursion
|
|
|
|
|
|
|
|
to make it run a bit faster.
|
|
|
|
|
|
|
|
c) Then type "make -j1 dist bzip-dist-only". This should create the
|
|
|
|
following files;
|
2001-12-11 01:11:54 +00:00
|
|
|
|
|
|
|
wxGTK-${version}.tar.bz2
|
|
|
|
wxGTK-demos-${version}.tar.bz2
|
|
|
|
wxGTK-samples-${version}.tar.bz2
|
|
|
|
wxGTK-${version}.tar.gz
|
|
|
|
wxGTK-demos-${version}.tar.gz
|
|
|
|
wxGTK-samples-${version}.tar.gz
|
|
|
|
|
|
|
|
where version is something like 2.3.2.
|
|
|
|
|
|
|
|
Note 1: "-j1" is needed now because make dist target is broken and doesn't
|
|
|
|
allow parallelizing, if your make is aliased to "make -j4" (like
|
2001-12-11 14:32:28 +00:00
|
|
|
mine), it simply won't work.
|
2001-12-11 01:11:54 +00:00
|
|
|
|
2002-09-15 18:17:02 +00:00
|
|
|
Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix
|
2001-12-11 01:11:54 +00:00
|
|
|
means to just create the archive supposing that the files
|
2001-12-11 14:32:28 +00:00
|
|
|
themselves are already under _dist_dir/wxGTK-${version} where
|
|
|
|
"make dist" creates them
|
2001-12-11 01:11:54 +00:00
|
|
|
|
|
|
|
2. Building the RPMs
|
|
|
|
--------------------
|
|
|
|
|
2002-09-15 18:17:02 +00:00
|
|
|
Note that we didn't check if the library actually could be built -- this is
|
2001-12-11 01:11:54 +00:00
|
|
|
because it is done during this step, during the RPM generation. If, for
|
|
|
|
whatever reason, you don't build the RPMs, you must have checked previously
|
2002-09-15 18:17:02 +00:00
|
|
|
that the library could be built -- nothing worse than a release which doesn't
|
2001-12-11 01:11:54 +00:00
|
|
|
even compile!
|
|
|
|
|
|
|
|
The rest of this section applies to a system with RPM installed (Redhat in my
|
|
|
|
case).
|
|
|
|
|
|
|
|
a) Setting up the RPM tree: you should have the RPM tree set up properly
|
|
|
|
before doing anything else. If you are going to build the RPMs as root,
|
|
|
|
you already have one under /usr/src/redhat and can just build there.
|
|
|
|
Otherwise you may do it (without root rights) in any directory RPM_ROOT.
|
|
|
|
RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES,
|
|
|
|
SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should
|
2002-09-15 18:17:02 +00:00
|
|
|
also create the file ~/.rpmmacros containing at least a line like this:
|
|
|
|
"%_topdir /biton/zeitlin/rpm" (replace the directory with $RPM_ROOT, of
|
|
|
|
course)
|
2001-12-11 01:11:54 +00:00
|
|
|
|
|
|
|
In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES
|
|
|
|
subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from
|
2002-09-15 18:17:02 +00:00
|
|
|
there -- like this you won't forget to update them after redoing "make
|
2001-12-11 01:11:54 +00:00
|
|
|
dist").
|
|
|
|
|
2002-09-15 18:17:02 +00:00
|
|
|
b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
|
2002-12-04 14:11:26 +00:00
|
|
|
SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out"
|
2001-12-11 01:11:54 +00:00
|
|
|
(or "|& tee" if you're using the one true shell ;-) as it might be not
|
|
|
|
easy to detect errors in the verbose rpm output if anything goes wrong.
|
|
|
|
|
|
|
|
Then wait (and pray that nothing goes wrong because if anything does
|
|
|
|
you'll have to restart from the very beginning because rpm doesn't allow
|
|
|
|
to short circuit the package generation).
|
|
|
|
|
|
|
|
If everything goes well, the following files are produced:
|
|
|
|
|
|
|
|
SRPMS/wxGTK-${version}-1.src.rpm
|
|
|
|
RPMS/i386/wxGTK-${version}-1.i386.rpm
|
|
|
|
RPMS/i386/wxGTK-devel-${version}-1.i386.rpm
|
|
|
|
RPMS/i386/wxGTK-gl-${version}-1.i386.rpm
|
|
|
|
RPMS/i386/wxGTK-static-${version}-1.i386.rpm
|
|
|
|
|
2003-08-20 09:50:17 +00:00
|
|
|
Use "rpm -ba --with gtk2" to build GTK+2 version of wxGTK and use
|
|
|
|
"rpm -ba --with gtk2 --with unicode" to build GTK+2 Unicode build.
|
2002-09-15 18:17:02 +00:00
|
|
|
|
|
|
|
Note: you may want to set the environment variable SMP to 3 or 4 on an
|
|
|
|
SMP machine to speed up the build (it uses "make -j$SMP" if the
|
|
|
|
variable is set)
|
|
|
|
|
|
|
|
c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual
|
|
|
|
and try to build some samples using makefile.unx ("make -f makefile.unx")
|
|
|
|
so that they use wx-config in the PATH and not from the build tree
|
|
|
|
|
2001-12-11 14:32:28 +00:00
|
|
|
3. Building the DEBs
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
[Ron is doing this]
|
|
|
|
|
|
|
|
4. Uploading the files
|
2001-12-11 01:11:54 +00:00
|
|
|
----------------------
|
|
|
|
|
|
|
|
All 11 files should be uploaded (via FTP) to several locations.
|
|
|
|
|
|
|
|
a) incoming.sourceforge.net, go to project admin page on sf.net and choose
|
|
|
|
add/edit releases for more details
|
|
|
|
|
2002-07-22 13:37:07 +00:00
|
|
|
b) ftp://biolpc22.york.ac.uk/pub (Julian has the password)
|
2001-12-11 01:11:54 +00:00
|
|
|
|
2001-12-11 14:32:28 +00:00
|
|
|
5. Announcing the release
|
2001-12-11 01:11:54 +00:00
|
|
|
-------------------------
|
|
|
|
|
2001-12-13 23:35:36 +00:00
|
|
|
a) FreshMeat:
|
2004-05-23 14:56:36 +00:00
|
|
|
- http://freshmeat.net/projects/wxwidgetsgtk/
|
2001-12-13 23:35:36 +00:00
|
|
|
- username and password are "wxgtk" for logging in
|
|
|
|
- hit "new release" at the top
|
|
|
|
- follow the step by step
|
2001-12-11 14:32:28 +00:00
|
|
|
|
2004-05-23 14:56:36 +00:00
|
|
|
b) wx-announce mailing list: mailto:wx-announce@lists.wxwidgets.org
|
2001-12-11 14:32:28 +00:00
|
|
|
|
|
|
|
[where is the announcement text? TODO]
|
2001-12-11 19:30:05 +00:00
|
|
|
|
2004-05-04 08:27:20 +00:00
|
|
|
c) update www.wxwidgets.org
|
2001-12-11 19:30:05 +00:00
|
|
|
|
2001-12-13 23:35:36 +00:00
|
|
|
d) GNOME (very effective, stays on front page for days):
|
|
|
|
- http://www.gnome.org/applist
|
2004-05-04 08:27:20 +00:00
|
|
|
- Search for wxWidgets
|
2001-12-13 23:35:36 +00:00
|
|
|
- Update the version number
|
|
|
|
- Ignore the error message
|
2002-09-15 18:17:02 +00:00
|
|
|
|
2001-12-13 23:35:36 +00:00
|
|
|
e) MacNN:
|
|
|
|
- http://www.macnn.com
|
|
|
|
- Contact or Contribute or something
|
|
|
|
|
|
|
|
f) MacRumors:
|
|
|
|
- http://www.macrumors.com
|
|
|
|
- Contact or Contribute or something
|
|
|
|
|
|
|
|
g) Apple Developers Connection:
|
|
|
|
mailto: adcnews@apple.com
|
2002-09-15 18:17:02 +00:00
|
|
|
|
2001-12-13 23:35:36 +00:00
|
|
|
h) LinuxDevices.com:
|
|
|
|
Interesting for wxUniversal.
|
|
|
|
|
|
|
|
i) The Python mailing list:
|
|
|
|
|