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