gtk+: Build from source.
[gpg4win.git] / README
1 This is gpg4win - the GUI Installer Builder for W32.
2
3 See also the file doc/README.en.txt.
4
5 Instructions:
6 =============
7
8 1. Download the source and binary packages that are required to build
9    the installer:
10
11    $ cd packages
12    $ sh download.sh
13    [...]
14    $ cd ..
15
16 2. Configure the source tree for cross compilation:
17
18    $ ./autogen.sh --build-w32
19
20 3. Build the installer:
21
22    $ make
23
24 The installer will be made available in three files:
25
26 src/gpg4win-X.Y.Z.exe
27 src/gpg4win-light-X.Y.Z.exe
28 src/gpg4win-src-X.Y.Z.exe
29
30
31 Basic requirements
32 ==================
33
34 A decent POSIX system is required for building this software as well
35 as GNU make.  We are using Debian GNU/Linux (Lenny); due to a little
36 bug in the mingw32 compiler it is highly suggested to put a line
37   deb http://apt.intevation.org lenny/mingw .
38 into /etc/apt/sources and update the mingw packages.  To satisfy all
39 needs of configure at least the following packages need to be
40 installed:
41
42  build-essential (libc6-dev, gcc, g++, make)
43  automake, autoconf (if building from SVN)
44  mingw32
45  nsis
46  stow
47  unzip
48  texinfo
49  imagemagick
50  tetex-bin
51  tetex-extra
52  latex-xcolor (for the compendium)
53  tr
54  gs-common (gs)
55  docbook-utils
56  hyperlatex
57  sharutils (uudecode for claws icon patch)
58  gettext (msgfmt, dcgettext, gmsgfmt, xgettext for glib)
59  libglib2.0-dev (glib-genmarshal, glib-compile-{resources,schemas})
60  libgdk-pixbuf2.0-dev (gdk-pixbuf-csource)
61  docbook-utils, ghostscript (claws-mail manual)
62
63
64 Building the Webpages
65 =====================
66
67 This has not been automated.  See the README file in the doc/website
68 directory.  To build the HTML version of the manuals you need to go to
69 doc/manual-de, run the command "make webversion" and copy the require
70 files to the desired location.  If you are a developer with write
71 access to the Sibversion, you may use the "online" target to actually
72 update the website.
73
74 Development Branches
75 ====================
76
77 The old version of gpg4win (version < 1.2) is since 1.1.3 tracked by
78 the GIT branch: gpg4win-1-branch.  Only important fixes will go into
79 this version.  The current version in the GIT master starts as version
80 1.9.
81
82
83
84 Adding new packages to the installer:
85 =====================================
86
87 This requires editing a couple of files; we might eventually automate
88 some of these tasks.  Here is a short run up:
89
90 1. Add constants for the package FOO into include/config.nsi.in .
91
92 2. Create 2 new installer scripts, named src/inst-foo.nsi and
93    uninst-foo.nsi and add them to EXTRA_DIST in src/Makefile.am.
94
95 3. Add foo to one the variables gpg4win_bpgks (if foo should not be
96    build be the gpg4win) or gpg4win_spkgs (if foo should be build by
97    gpg4win) in src/Makefile.am .  Also add any required configure
98    flags etc.
99
100 4. Add FOO to inst-sections.nsi.
101
102 5. Add detection of packages to configure.ac.  Check out the available
103    macros in m4/gpg4win.m4.  Depending on the way an upstream package
104    is packaged, you might need to write a new macro.
105
106 6. Add download information to packages/download.sh.
107
108 7. If the package ships pkg-config (*.pc) support files, you need add
109    post install instructions to Makefile.am.  Note that *.pc files may
110    be in the "runtime" directory ${pkgidir} if the package is built
111    within gpg4win (or peculiarly shipped), or in the development
112    package ${pkgidir_dev}.
113
114 Then run the usual "./autogen.sh" to create the actual configure file
115 and run configure as described above.
116
117
118 Version numbers
119 ===============
120
121 We use a specific order of version numbers.  This is best shown by an
122 example:
123
124   1.0.0             - The final 1.0.0 release.
125   1.0.1-svn1234     - A snapshot based on SVN revision 1234
126   1.0.1-svn1235     - A newer snapshot
127   1.0.1rc1-svn1236  - A snapshot while preparing for a release candidate
128   1.0.1rc1          - The first release candidate for 1.0.1
129   1.0.1-svn1240     - yet another snapshot
130   1.0.1             - The final 1.0.1 release
131
132 The important point is that we bump up the version number before we do
133 an release and append a suffix to mark it as a development version.
134 This allows other software to use a configure check for the next to be
135 released version of gpg4win.
136
137
138
139 Copyright
140 =========
141
142 The entire Gpg4win package is
143
144   Copyright (C) 2005, 2006, 2007, 2008, 2009 g10 Code GmbH
145
146   GPG4Win is free software; you can redistribute it and/or modify it
147   under the terms of the GNU General Public License as published by
148   the Free Software Foundation; either version 2 of the License, or
149   (at your option) any later version.
150
151   GPG4Win is distributed in the hope that it will be useful, but
152   WITHOUT ANY WARRANTY; without even the implied warranty of
153   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
154   General Public License for more details.
155
156   You should have received a copy of the GNU General Public License
157   along with this program; if not, write to the Free Software
158   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
159   02110-1301, USA
160
161
162 This file
163 =========
164
165 Copyright 2005, 2006, 2008 g10 Code GmbH
166
167 This file is free software; as a special exception the author gives
168 unlimited permission to copy and/or distribute it, with or without
169 modifications, as long as this notice is preserved.
170
171 This file is distributed in the hope that it will be useful, but
172 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
173 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
174 PURPOSE.