GnuPG-2.2.13

#### Beyond Linux® From Scratch - Version 2019-02-27

### Chapter 4. Security

- Prev

  Cyrus SASL-2.1.27

- Next

  GnuTLS-3.6.6

- Up
- Home

# GnuPG-2.2.13

## Introduction to GnuPG

The GnuPG package is GNU's tool for secure communication and data storage. It can be used to encrypt data and to create digital signatures. It includes an advanced key management facility and is compliant with the proposed OpenPGP Internet standard as described in RFC2440 and the S/MIME standard as described by several RFCs. GnuPG 2 is the stable version of GnuPG integrating support for OpenPGP and S/MIME.

This package is known to build and work properly using an LFS-8.4 platform.

### Package Information

- Download (HTTP): https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.13.tar.bz2

- Download MD5 sum: 563b959d0c3856e34526e9ca51c80d7b

- Download size: 6.4 MB

- Estimated disk space required: 149 MB (with all tests; add 24 MB for docs)

- Estimated build time: 0.4 SBU (using parallelism=4; add 0.5 SBU for tests)

### GnuPG 2 Dependencies

#### Required

Libassuan-2.5.3, libgcrypt-1.8.4, libgpg-error-1.35, Libksba-1.3.5, and npth-1.6

#### Recommended

pinentry-1.1.0 (Run-time requirement for most of the package's functionality)

#### Optional

cURL-7.64.0, GnuTLS-3.6.6, ImageMagick-7.0.8-27 (for the convert utility, used for generating the documentation), libusb-1.0.22, an MTA, OpenLDAP-2.4.47, SQLite-3.27.1, texlive-20180414 (or install-tl-unx), fig2dev (for generating documentation), and GNU adns

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnupg2

## Installation of GnuPG

### Warning

If you are upgrading from gnupg prior to version 2.1, upstream developers recommend backing up `~/.gnupg` because some additional configuration will probably be necessary and you could lose your keys. You can find instructions at http://jo-ke.name/wp/?p=111 and https://wiki.archlinux.org/index.php/GnuPG#.22Lost.22_keys.2C_upgrading_to_gnupg_version_2.1.

If the top directory path where the source is unpacked contains symbolic links, the openpgp tests may fail. If this is your case and you wish to run the test suite, fix that with:

    sed -e '/noinst_SCRIPTS = gpg-zip/c sbin_SCRIPTS += gpg-zip' \
        -i tools/Makefile.in

Install GnuPG by running the following commands:

    ./configure --prefix=/usr            \
                --enable-symcryptrun     \
                --docdir=/usr/share/doc/gnupg-2.2.13 &&
    make &&

    makeinfo --html --no-split -o doc/gnupg_nochunks.html doc/gnupg.texi &&
    makeinfo --plaintext       -o doc/gnupg.txt           doc/gnupg.texi

If you have texlive-20180414 installed and you wish to create documentation in alternate formats, issue the following commands (fig2dev is needed for the ps format):

    make -C doc pdf ps html

To test the results, issue: make check.

Note that if you have already installed GnuPG, the instructions below will overwrite `/usr/share/man/man1/gpg-zip.1`. Now, as the `root` user:

    make install &&

    install -v -m755 -d /usr/share/doc/gnupg-2.2.13/html            &&
    install -v -m644    doc/gnupg_nochunks.html \
                        /usr/share/doc/gnupg-2.2.13/html/gnupg.html &&
    install -v -m644    doc/*.texi doc/gnupg.txt \
                        /usr/share/doc/gnupg-2.2.13

If you created alternate formats of the documentation, install it using the following command as the `root` user:

    install -v -m644 doc/gnupg.html/* \
                     /usr/share/doc/gnupg-2.2.13/html &&
    install -v -m644 doc/gnupg.{pdf,dvi,ps} \
                     /usr/share/doc/gnupg-2.2.13

## Command Explanations

sed ... tools/Makefile.in: This command is needed to build the gpg-zip program.

`--docdir=/usr/share/doc/gnupg-2.2.13`: This switch changes the default docdir to `/usr/share/doc/gnupg-2.2.13`.

`--enable-symcryptrun`: This switch enables building the symcryptrun program.

`--enable-all-tests`: allows more tests to be run with make check.

`--enable-g13`: This switch enables building the g13 program.

## Contents

Installed Programs: addgnupghome, applygnupgdefaults, dirmngr, dirmngr-client, g13 (optional), gpg-agent, gpg-connect-agent, gpg, gpgconf, gpgparsemail, gpgscm, gpgsm, gpgtar, gpgv, gpg-zip, kbxutil, symcryptrun, and watchgnupg
Installed Libraries: None
Installed Directories: /usr/share/doc/gnupg-2.2.13 and /usr/share/gnupg

### Short Descriptions

addgnupghome | is used to create and populate user's `~/.gnupg` directories
applygnupgdefaults | is a wrapper script used to run gpgconf with the `--apply-defaults` parameter on all user's GnuPG home directories.
dirmngr | is a tool that takes care of accessing the OpenPGP keyservers.
dirmngr-client | is a tool to contact a running dirmngr and test whether a certificate has been revoked.
g13 | is a tool to create, mount or unmount an encrypted file system container (optional).
gpg-agent | is a daemon used to manage secret (private) keys independently from any protocol. It is used as a backend for gpg2 and gpgsm as well as for a couple of other utilities.
gpg-connect-agent | is a utility used to communicate with a running gpg-agent.
gpg | is the OpenPGP part of the GNU Privacy Guard (GnuPG). It is a tool used to provide digital encryption and signing services using the OpenPGP standard.
gpgconf | is a utility used to automatically and reasonably safely query and modify configuration files in the `~/.gnupg` home directory. It is designed not to be invoked manually by the user, but automatically by graphical user interfaces.
gpgparsemail | is a utility currently only useful for debugging. Run it with `--help` for usage information.
gpgscm | executes the given scheme program or spawns an interactive shell.
gpgsm | is a tool similar to gpg2 used to provide digital encryption and signing services on X.509 certificates and the CMS protocol. It is mainly used as a backend for S/MIME mail processing.
gpgtar | is a tool to encrypt or sign files into an archive.
gpgv | is a verify only version of gpg2.
gpg-zip | encrypts or signs files into an archive.
kbxutil | is used to list, export and import Keybox data.
symcryptrun | is a simple symmetric encryption tool.
watchgnupg | is used to listen to a Unix Domain socket created by any of the GnuPG tools.

Last updated on 2019-02-16 21:14:14 -0600

- Prev

  Cyrus SASL-2.1.27

- Next

  GnuTLS-3.6.6

- Up
- Home