-
Notifications
You must be signed in to change notification settings - Fork 35
/
README
242 lines (159 loc) · 7.37 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
This is gpg4win - the GUI Installer Builder for W32.
See also the file doc/README.en.txt.
For MSI Package instructions see src/README-msi.txt.
Instructions:
=============
1. Download the source and binary packages that are required to build
the installer:
$ cd packages
$ sh download.sh
[...]
$ cd ..
2. Generate config files
$ ./autogen.sh
3. Configure the source tree for cross compilation:
$ ./autogen.sh --build-w32
4. Build the installer:
$ make
The installer will be made available under src/installers:
src/installers/gpg4win-X.Y.Z.exe
Instructions for AppImage:
==========================
1. Download the source and binary packages that are required to build
the installer:
$ cd packages
$ sh download.sh
[...]
$ cd ..
2. Generate config files
$ ./autogen.sh
3. Build the Docker image that will be used for creating the AppImage:
$ docker/build-appimage-docker-image.sh
4. Build the AppImage using the Docker image:
$ docker/run-appimage-build.sh
During development is it often easier to use
$ docker/run-appimage-build.sh --devel
which does not delete the temporary directory. Inside the
docker shell you start the build using
src/src/appimage/build-appimage.sh
Basic requirements
==================
A decent POSIX system is required for building this software as well
as GNU make. We are using Debian GNU/Linux 10 (buster), any other
POSIX system should work as well but you may run into problems due to
different toolchain versions. For MSI Packages you will additionally
need the dependencies mentioned in src/README-msi.txt
To satisfy all needs of configure at least the following packages need
to be installed:
build-essential autoconf automake mingw-w64 mingw-w64-i686-dev \
mingw-w64-x86-64-dev nsis stow unzip icoutils \
libglib2.0-dev gettext docbook-utils ghostscript texinfo \
texinfo libgdk-pixbuf2.0-dev libqt4-dev-bin \
wget mingw-w64 cmake libgtk2.0-bin libxml2-utils \
gperf libgettextpo-dev automake-1.15 libkf5config-dev libkf5config-dev-bin \
libkf5coreaddons-dev gpgrt-tools imagemagick libboost-graph-dev icoutils
Additionally on Debian Buster cmake has to be at least version 3.1.16 from
debian backports.
Note: That Gpg4win requires to be compiled with the -posix flavor of mingw
so if you have both installed use update-alterantives to select the posix ones.
To use update-alternatives:
update-alternatives --install /usr/bin/i686-w64-mingw32-gcc \
i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix 100
update-alternatives --install /usr/bin/i686-w64-mingw32-g++ \
i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix 100
Building on other platforms is not fully supported. Consider using docker:
./autogen.sh
./docker/build-gpg4win-docker-image.sh
./docker/run-gpg4win-build.sh
It is known that some developers compile Gpg4win also on other platforms
For Fedora the required packages might be:
yum install mingw64-gcc-c++ icoutils stow autoconf automake git cmake \
mingw32-gcc-c++ mingw32-libstdc++ mingw-nsis-base texinfo-tex \
ghostscript-tools-dvipdf kf5-kconfig-devel gettext gettext-devel \
patch flex bison gperf kf5-kcoreaddons-devel mingw32-nsis
Building the Webpages
=====================
The website is in the dedicated branch "website" in the git reposity.
Checkout that branch and read the instructions:
git checkout website
Development Branches
====================
The old version of gpg4win (version < 1.2) is since 1.1.3 tracked by
the GIT branch: gpg4win-1-branch. Only important fixes will go into
this version. The current version in the GIT master starts as version
1.9.
Adding new packages to the installer:
=====================================
This requires editing a couple of files; we might eventually automate
some of these tasks. Here is a short run up:
1. Add constants for the package FOO into src/config.nsi.in .
2. Create 2 new installer scripts, named src/inst-foo.nsi and
uninst-foo.nsi and add them to EXTRA_DIST in src/Makefile.am.
3. Add foo to one the variables gpg4win_bpgks (if foo should not be
build be the gpg4win) or gpg4win_spkgs (if foo should be build by
gpg4win) in src/Makefile.am . Also add any required configure
flags etc.
4. Add FOO to src/inst-sections.nsi.
5. Add detection of packages to configure.ac. Check out the available
macros in m4/gpg4win.m4. Depending on the way an upstream package
is packaged, you might need to write a new macro.
6. Add download information to packages/download.sh.
7. If the package ships pkg-config (*.pc) support files, you need add
post install instructions to Makefile.am. Note that *.pc files may
be in the "runtime" directory ${pkgidir} if the package is built
within gpg4win (or peculiarly shipped), or in the development
package ${pkgidir_dev}.
Then run the usual "./autogen.sh" to create the actual configure file
and run configure as described above.
Kleopatra Locatization
======================
The kde-l10n package is generated with the script packages/gen-kde-l10n.sh
execute it after a build to generate an updated l10n package which
you can then upload and add to packages.common.
The tarballs and the nsis scripts are located in the temp directory
kde-l10n prints as output.
Installer Slideshow
===================
During installation we are showing a slide show. If you want to
change the contents shown add / modify files in the src/slideshow
subfolder. Install them in inst-gpg4win.nsi (Add them to the list
of files before g4wihelp::slide_show) and modify
src/slideshow/slides.dat accordingly.
Version numbers
===============
We use a specific order of version numbers. This is best shown by an
example:
2.1.1 - The final 2.1.1 release.
2.1.1-beta88 - A snapshot before the 2.1.1 release.
(The 88 in this example is the number of
commits since the last release).
The important point is that we bump up the version number before we do
an release and append a suffix to mark it as a development version.
This allows other software to use a configure check for the next to be
released version of gpg4win.
Copyright
=========
The entire Gpg4win package is
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2012, 2013 g10 Code GmbH
GPG4Win is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GPG4Win is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA
This file
=========
Copyright 2005, 2006, 2008 g10 Code GmbH
This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without
modifications, as long as this notice is preserved.
This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.