Building Gpg4win under GNU/Linux
This example specifically describes how to create a new Gpg4win installer on a Debian GNU/Linux 'Squeeze' 6.0. In principle, any other Unix system could be used as well.
Create a new installer package
The character '#' indicates commands to be executed as administrator (root) and '$' for commands to be executed as regular user.- Install required packages on your Debian GNU/Linux 6.0:
Note: The following list is outdated; we will soon provide a new one.
# apt-get install mingw32 nsis stow unzip texinfo imagemagick
# apt-get install libglib2.0-dev tetex-bin tetex-extra gs-common hyperlatex
- Get the sources:
$ git clone git://git.gnupg.org/gpg4win.git
or download the source code package gpg4win-n.n.n.tar.gz, unpack it and change to the directory gpg4win-n.n.n. We recommend to work with the GIT version if you want to do more that just update a single module for yourself. - Download all necessary Gpg4win modules from Internet:
$ cd packages
$ sh download.sh
(takes some time, especially the first time)
$ cd ..
- If you work with the GIT version:
$ ./autogen.sh
$ ./autogen --build-w32
else:
$ ./autogen --build-w32
- Now build the Gpg4win installer package:
$ make
That's all. The new installer package is here:
src/gpg4win-n.n.n.exe
The corresponding source code packages (with the sources of all modules, very big!) is here:
src/gpg4win-src-n.n.n.exe
Update a single module for Gpg4win
Fort this task you should have build at least once a new installer package as described above. Consider now we want to update the module gnupg.- First, remove the old version:
$ cd packages
$ rm gnupg-*
- Then download the desired new release, e.g:
$ wget ftp://ftp.gnupg.org/gnupg/gnupg-1.4.3.tar.bz2
$ wget ftp://ftp.gnupg.org/gnupg/gnupg-1.4.3.tar.bz2.sig
$ gpg --verify gnupg-1.4.3.tar.bz2.sig
Only continue if that latter command shows a valid signature. You will find further hints on this at the href="http://www.gnupg.org/download/integrity_check.html">GnuPG Website. If the module does not provide any signature you should ensure authenticity of the file with another reasonable method. - Build a new installer:
$ cd ..
$ make clean
$ ./autogen.sh --build-w32
$ make
Attention: From now on your should not execute the script download.sh anymore because it would revert to the previous (i.e. official) version of the module. For a permanent activation of the new module version for the official Gpg4win installer package, the following step is necessary.
- Adapt file
packages.current
accordingly for the new module version (read the head of this file about the syntax) and commit the changes.
Integrate a new module into Gpg4win
Hierfür sollte man schon einmal ein Installationspaket wie oben beschrieben For this task you should have at least once created a installer package according to the description above using the GIT version.- For your new module 'MYMOD' first create constants in the file
include/config.nsi.in by adding the following lines:
@HAVE_PKG_MYMOD@
!define gpg4win_pkg_mymod @gpg4win_pkg_mymod@
!define gpg4win_pkg_mymod_version @gpg4win_pkg_mymod_version@
You will find various examples in this file, e.g. see 'HAVE_PKG_WINPT'. - Write the NSIS installation script
src/inst-mymod.nsi
In the same directory you will find many examples to learn from. - Write the NSIS de-installation script
src/uninst-mymod.nsi
In the same directory you will find many examples to learn from. - Extend the NSIS main script
src/inst-sections.nsi
with MYMOD. Do this analogous to existing entries and read the explanations in the comments. - Now add rules for integration into the build process into the file
configure.ac
For this you can use macros from the file
m4/gpg4win.m4
Due to the already integrated modules there are plenty of examples given. A main distinction is between cross-compiled modules and those that have been compiled for Windows elsewhere and integrated as compiled binaries. - Now update the package list
packages/packages.current
as described above. - Gpg4win has to be configured anew for the new module:
$ AUTOMAKE_SUFFIX=-1.9 ./autogen.sh
$ ./configure --enable-maintainer-mode --host=i586-mingw32msvc
- The last step is to build the new package:
$ make
The new installer package is here:
src/gpg4win-n.n.n.exe
The corresponding source code packages (with the sources of all modules, very big!) is here:
src/gpg4win-src-n.n.n.exe
English |
