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