Update klepatra with fixes for portable
[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  gs-common (gs)
51  docbook-utils
52  sharutils (uudecode for claws icon patch)
53  gettext (msgfmt, dcgettext, gmsgfmt, xgettext for glib)
54  libglib2.0-dev (glib-genmarshal, glib-compile-{resources,schemas})
55  libgdk-pixbuf2.0-dev (gdk-pixbuf-csource)
56  docbook-utils, ghostscript (claws-mail manual)
57  texlive (you need most modules, e.g. texlive-latex-extra)
58  latex-xcolor (for the compendium)
59
60
61
62 Building the Webpages
63 =====================
64
65 The website is in the dedicated branch "website" in the git reposity.
66 Checkout that branch and read the instructions:
67
68   git checkout website
69
70
71 Development Branches
72 ====================
73
74 The old version of gpg4win (version < 1.2) is since 1.1.3 tracked by
75 the GIT branch: gpg4win-1-branch.  Only important fixes will go into
76 this version.  The current version in the GIT master starts as version
77 1.9.
78
79
80
81 Adding new packages to the installer:
82 =====================================
83
84 This requires editing a couple of files; we might eventually automate
85 some of these tasks.  Here is a short run up:
86
87 1. Add constants for the package FOO into include/config.nsi.in .
88
89 2. Create 2 new installer scripts, named src/inst-foo.nsi and
90    uninst-foo.nsi and add them to EXTRA_DIST in src/Makefile.am.
91
92 3. Add foo to one the variables gpg4win_bpgks (if foo should not be
93    build be the gpg4win) or gpg4win_spkgs (if foo should be build by
94    gpg4win) in src/Makefile.am .  Also add any required configure
95    flags etc.
96
97 4. Add FOO to inst-sections.nsi.
98
99 5. Add detection of packages to configure.ac.  Check out the available
100    macros in m4/gpg4win.m4.  Depending on the way an upstream package
101    is packaged, you might need to write a new macro.
102
103 6. Add download information to packages/download.sh.
104
105 7. If the package ships pkg-config (*.pc) support files, you need add
106    post install instructions to Makefile.am.  Note that *.pc files may
107    be in the "runtime" directory ${pkgidir} if the package is built
108    within gpg4win (or peculiarly shipped), or in the development
109    package ${pkgidir_dev}.
110
111 Then run the usual "./autogen.sh" to create the actual configure file
112 and run configure as described above.
113
114
115 Version numbers
116 ===============
117
118 We use a specific order of version numbers.  This is best shown by an
119 example:
120
121   1.0.0             - The final 1.0.0 release.
122   1.0.1-svn1234     - A snapshot based on SVN revision 1234
123   1.0.1-svn1235     - A newer snapshot
124   1.0.1rc1-svn1236  - A snapshot while preparing for a release candidate
125   1.0.1rc1          - The first release candidate for 1.0.1
126   1.0.1-svn1240     - yet another snapshot
127   1.0.1             - The final 1.0.1 release
128   2.1.1             - The final 2.1.1 release
129   2.1.1-beta88      - A snapshot before the 2.1.1 release.
130                       (The 88 in this example is the number of
131                        commits since the last release).
132
133 The important point is that we bump up the version number before we do
134 an release and append a suffix to mark it as a development version.
135 This allows other software to use a configure check for the next to be
136 released version of gpg4win.
137
138
139
140 Copyright
141 =========
142
143 The entire Gpg4win package is
144
145   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2012, 2013 g10 Code GmbH
146
147   GPG4Win is free software; you can redistribute it and/or modify it
148   under the terms of the GNU General Public License as published by
149   the Free Software Foundation; either version 2 of the License, or
150   (at your option) any later version.
151
152   GPG4Win is distributed in the hope that it will be useful, but
153   WITHOUT ANY WARRANTY; without even the implied warranty of
154   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
155   General Public License for more details.
156
157   You should have received a copy of the GNU General Public License
158   along with this program; if not, write to the Free Software
159   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
160   02110-1301, USA
161
162
163 This file
164 =========
165
166 Copyright 2005, 2006, 2008 g10 Code GmbH
167
168 This file is free software; as a special exception the author gives
169 unlimited permission to copy and/or distribute it, with or without
170 modifications, as long as this notice is preserved.
171
172 This file is distributed in the hope that it will be useful, but
173 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
174 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
175 PURPOSE.