2dd12e010caefe864b177ee8c36d74c9046ab015
[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 autoconf automake mingw32 mingw-w64-i686-dev \
47     mingw-w64-x86-64-dev nsis stow unzip imagemagick texlive \
48     latex-xcolor libglib2.0-dev gettext docbook-utils ghostscript \
49     texinfo libgdk-pixbuf2.0-dev texlive-latex-extra libqt4-dev-bin \
50     wget mingw-w64 texlive-lang-german cmake libgtk2.0-bin
51
52 Building the Webpages
53 =====================
54
55 The website is in the dedicated branch "website" in the git reposity.
56 Checkout that branch and read the instructions:
57
58   git checkout website
59
60
61 Development Branches
62 ====================
63
64 The old version of gpg4win (version < 1.2) is since 1.1.3 tracked by
65 the GIT branch: gpg4win-1-branch.  Only important fixes will go into
66 this version.  The current version in the GIT master starts as version
67 1.9.
68
69
70
71 Adding new packages to the installer:
72 =====================================
73
74 This requires editing a couple of files; we might eventually automate
75 some of these tasks.  Here is a short run up:
76
77 1. Add constants for the package FOO into include/config.nsi.in .
78
79 2. Create 2 new installer scripts, named src/inst-foo.nsi and
80    uninst-foo.nsi and add them to EXTRA_DIST in src/Makefile.am.
81
82 3. Add foo to one the variables gpg4win_bpgks (if foo should not be
83    build be the gpg4win) or gpg4win_spkgs (if foo should be build by
84    gpg4win) in src/Makefile.am .  Also add any required configure
85    flags etc.
86
87 4. Add FOO to inst-sections.nsi.
88
89 5. Add detection of packages to configure.ac.  Check out the available
90    macros in m4/gpg4win.m4.  Depending on the way an upstream package
91    is packaged, you might need to write a new macro.
92
93 6. Add download information to packages/download.sh.
94
95 7. If the package ships pkg-config (*.pc) support files, you need add
96    post install instructions to Makefile.am.  Note that *.pc files may
97    be in the "runtime" directory ${pkgidir} if the package is built
98    within gpg4win (or peculiarly shipped), or in the development
99    package ${pkgidir_dev}.
100
101 Then run the usual "./autogen.sh" to create the actual configure file
102 and run configure as described above.
103
104 Kleopatra Locatization
105 ======================
106
107 The kde-l10n package is generated with the script src/kde-l10n.sh
108 execute it after a build to generate an updated l10n package which
109 you can then upload and add to packages.current.
110 The tarballs and the nsis scripts are located in the temp directory
111 kde-l10n prints as output.
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   2.1.1             - The final 2.1.1 release
128   2.1.1-beta88      - A snapshot before the 2.1.1 release.
129                       (The 88 in this example is the number of
130                        commits since the last 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, 2012, 2013 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.