e59b46def8984bf1363964ae992750907f1af342
[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 1.5 (Only necessary when building from Git)
17
18    $ ./autogen.sh
19
20 2. Configure the source tree for cross compilation:
21
22    $ ./autogen.sh --build-w32
23
24 3. Build the installer:
25
26    $ make
27
28 The installer will be made available in three files:
29
30 src/gpg4win-X.Y.Z.exe
31 src/gpg4win-light-X.Y.Z.exe
32 src/gpg4win-src-X.Y.Z.exe
33
34
35 Basic requirements
36 ==================
37
38 A decent POSIX system is required for building this software as well
39 as GNU make.  We are using Debian GNU/Linux 8 (Jessie), any other
40 POSIX system should work as well but you may run into problems due to
41 different toolchain versions.
42
43 To satisfy all needs of configure at least the following packages need
44 to be installed:
45
46  build-essential (libc6-dev, gcc, g++, make)
47  automake, autoconf (if building from GIT)
48  mingw32
49  mingw-w64
50  mingw-w64-i686-dev
51  mingw-w64-x86-64-dev
52  nsis
53  stow
54  unzip
55  texinfo
56  imagemagick
57  gs-common | ghostscript (gs)
58  docbook-utils
59  gettext (msgfmt, dcgettext, gmsgfmt, xgettext for glib)
60  libglib2.0-dev (glib-genmarshal, glib-compile-{resources,schemas})
61  libgdk-pixbuf2.0-dev (gdk-pixbuf-csource)
62  texlive (you need most modules)
63  texlive-latex-extra
64  texlive-lang-german
65  latex-xcolor (for the compendium)
66  libgettextpo-dev
67
68
69 Building the Webpages
70 =====================
71
72 The website is in the dedicated branch "website" in the git reposity.
73 Checkout that branch and read the instructions:
74
75   git checkout website
76
77
78 Development Branches
79 ====================
80
81 The old version of gpg4win (version < 1.2) is since 1.1.3 tracked by
82 the GIT branch: gpg4win-1-branch.  Only important fixes will go into
83 this version.  The current version in the GIT master starts as version
84 1.9.
85
86
87
88 Adding new packages to the installer:
89 =====================================
90
91 This requires editing a couple of files; we might eventually automate
92 some of these tasks.  Here is a short run up:
93
94 1. Add constants for the package FOO into include/config.nsi.in .
95
96 2. Create 2 new installer scripts, named src/inst-foo.nsi and
97    uninst-foo.nsi and add them to EXTRA_DIST in src/Makefile.am.
98
99 3. Add foo to one the variables gpg4win_bpgks (if foo should not be
100    build be the gpg4win) or gpg4win_spkgs (if foo should be build by
101    gpg4win) in src/Makefile.am .  Also add any required configure
102    flags etc.
103
104 4. Add FOO to inst-sections.nsi.
105
106 5. Add detection of packages to configure.ac.  Check out the available
107    macros in m4/gpg4win.m4.  Depending on the way an upstream package
108    is packaged, you might need to write a new macro.
109
110 6. Add download information to packages/download.sh.
111
112 7. If the package ships pkg-config (*.pc) support files, you need add
113    post install instructions to Makefile.am.  Note that *.pc files may
114    be in the "runtime" directory ${pkgidir} if the package is built
115    within gpg4win (or peculiarly shipped), or in the development
116    package ${pkgidir_dev}.
117
118 Then run the usual "./autogen.sh" to create the actual configure file
119 and run configure as described above.
120
121 Kleopatra Locatization
122 ======================
123
124 The kde-l10n package is generated with the script src/kde-l10n.sh
125 execute it after a build to generate an updated l10n package which
126 you can then upload and add to packages.current.
127 The tarballs and the nsis scripts are located in the temp directory
128 kde-l10n prints as output.
129
130
131 Version numbers
132 ===============
133
134 We use a specific order of version numbers.  This is best shown by an
135 example:
136
137   1.0.0             - The final 1.0.0 release.
138   1.0.1-svn1234     - A snapshot based on SVN revision 1234
139   1.0.1-svn1235     - A newer snapshot
140   1.0.1rc1-svn1236  - A snapshot while preparing for a release candidate
141   1.0.1rc1          - The first release candidate for 1.0.1
142   1.0.1-svn1240     - yet another snapshot
143   1.0.1             - The final 1.0.1 release
144   2.1.1             - The final 2.1.1 release
145   2.1.1-beta88      - A snapshot before the 2.1.1 release.
146                       (The 88 in this example is the number of
147                        commits since the last release).
148
149 The important point is that we bump up the version number before we do
150 an release and append a suffix to mark it as a development version.
151 This allows other software to use a configure check for the next to be
152 released version of gpg4win.
153
154
155
156 Copyright
157 =========
158
159 The entire Gpg4win package is
160
161   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2012, 2013 g10 Code GmbH
162
163   GPG4Win is free software; you can redistribute it and/or modify it
164   under the terms of the GNU General Public License as published by
165   the Free Software Foundation; either version 2 of the License, or
166   (at your option) any later version.
167
168   GPG4Win is distributed in the hope that it will be useful, but
169   WITHOUT ANY WARRANTY; without even the implied warranty of
170   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
171   General Public License for more details.
172
173   You should have received a copy of the GNU General Public License
174   along with this program; if not, write to the Free Software
175   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
176   02110-1301, USA
177
178
179 This file
180 =========
181
182 Copyright 2005, 2006, 2008 g10 Code GmbH
183
184 This file is free software; as a special exception the author gives
185 unlimited permission to copy and/or distribute it, with or without
186 modifications, as long as this notice is preserved.
187
188 This file is distributed in the hope that it will be useful, but
189 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
190 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
191 PURPOSE.