Preface
=======
The purpose of this page is to document the steps necessary in order to build and run the latest GnuPG version on Debian Wheezy. The instructions are based on backporting of the necessary packages from Debian *unstable*.
Prerequisites
=============
In order to build the packages, the following prerequisites must be met:
- One physical or virtual build machine.
- Minimal Debian Wheezy installation on build machine (task **Standard system utilities** should be sufficient).
- Connectivity of build machine to Internet or local Debian apt repository.
- `sudo` utility has been installed.
- An administrator operating system user that is part of the sudoers group.
Setting-up build environment
============================
Add apt repository for Debian *sid/unstable*:
# /etc/apt/sources.list.d/sid.list
----BEGIN----
deb http://ftp.debian.org/debian sid main contrib
deb-src http://ftp.debian.org/debian sid main contrib
-----END-----
Set-up pinning for *wheezy/stable* and *sid/unstable* in order to prevent automatic installation of packages from *sid/unstable*:
# /etc/apt/preferences.d/pinning
----BEGIN----
# Packages from wheezy get priority 900
Package: *
Pin: release n=wheezy
Pin-Priority: 900
# Other packages are installed only when forced (ie. apt-get -t unstable install <package>)
Package: *
Pin: release o=Debian
Pin-Priority: -10
-----END-----
Update package listing:
? administrator
$ sudo apt-get update
Install Debian developer utilities:
? administrator
$ sudo apt-get install build-essential fakeroot dpkg-dev
Create directory where Debian builds will be kept:
? administrator
$ mkdir ~/debian_builds/
Building the packages
=====================
In order to build the main GnuPG packages, it is necessary to first build a helper library that defines error codes for all GnuPG libraries, `libgpg-error-dev`. Install the library dependencies first:
? administrator
$ sudo apt-get build-dep libgpg-error-dev
Download sources for `libgpg-error-dev`:
? administrator
$ cd ~/debian_builds/
$ apt-get source libgpg-error-dev
Build libgpg-error-dev:
? administrator
----BEGIN----$
cd ~/debian_builds/libgpg-error-*
dpkg-buildpackage -rfakeroot
-----END-----$
Once done, install the built packages (this has to be done on build server as well as destination install server):
? administrator
$ sudo dpkg -i ~/debian_builds/libgpg-error*.deb
Install remaining build dependencies for GnuPG packages:
? administrator
$ sudo apt-get build-dep gnupg2 gnupg-agent scdaemon
Download sources for packages that will be built (this will actually pull-in only a single source package):
? administrator
----BEGIN----$
cd ~/debian_builds/
apt-get source gnupg2 gnupg-agent scdaemon
-----END-----$
Build the GnuPG packages:
? administrator
----BEGIN----$
cd ~/debian_builds/gnupg2-2*/
dpkg-buildpackage -rfakeroot
-----END-----$
After the build process finishes, a number of *.deb* packages will be available in directory `~/debian_builds/`. These packages can be subsequently installed on any destination machine.
Installing the packages
=======================
Set-up a directory on installation machine where the packages will be stored at:
? administrator
$ mkdir -p ~/packages/deb/
Copy all of the *.deb* packages from directory `~/debian_builds/` on build machine to the installation machine into directory `~/packages/deb/`.
Install the backported GnuPG packages:
? administrator
$ cd ~/packages/deb/
$ sudo dpkg -i gnupg2_*.deb gnupg-agent_*.deb gpgsm_*.deb scdaemon_*.deb libgpg-error_*.deb
Troubleshooting
===============