Building a GnuPG installer for Windows

GnuPG 2.1 comes with scripts to ease the building of a Windows installer including a few graphical components.

However several development tools and libraries need to be installed to succeed. The script only tests and downloads the directly GnuPG related libraries but not external supporting libraries, like libiconv and the Gtk+ libraries.

There are the main steps:

  tar xjvf gnupg-2.1.0.tar.bz2
  cd gnupg-2.1.0
  make -f build-aux/speedo.mk w32-installer

On my X220 i5-2410M laptop the build process takes about 18 minutes.

However, the supporting libraries are required. The easiest way is to put them into a sibling directory of the gnupg-2.1.0 directory with the name tarballs. Here is the list of tarballs used to build the 2.1.0_20141105 installer:

atk-1.32.0.tar.bz2
cairo-1.12.16.tar.xz
gdk-pixbuf-2.26.5.tar.xz
gettext-0.18.2.1.tar.gz
glib-2.34.3.tar.xz
gtk+-2.24.17.tar.xz
libffi-3.0.13.tar.gz
libiconv-1.14.tar.gz
libpng-1.4.12.tar.bz2
pango-1.29.4.tar.bz2
pixman-0.32.4.tar.gz
pkg-config-0.23.tar.gz

If you download these tarballs, somehow make sure that you got the genuine tarballs (integrity check). There is no standard or de-facto standard for this, thus the speedo script has no provisions to download them on the fly.

To recap: This is the directory structure you should setup including some example files yuu would see there:

  foo/
     /gnupg-2.1.0/
                  build-aux/speed.mk
                  PLAY/inst/gnugp-2.1.0_20141105.exe
     /tarballs/
               atk-1.32.0.tar.bz2
               cairo-1.12.16.tar.xz

Another option is to use the large tarball with all sources. That tarball has been created from the actually build directory by including all unpacked source directories and certain stamp files. All you need to do is:

  tar xJf gnupg-2.1.0_DATE.tar.xz
  cd gnupg-2.1.0_DATE
  make -f build-aux/speedo.mk this-w32-installer

However this has not been tested with the current version!

Build2.1_Windows (last edited 2014-11-06 12:13:14 by Werner Koch)