Introduction to GPGME

The GPGME package is a C library that allows cryptography support to be added to a program. It is designed to make access to public key crypto engines like GnuPG or GpgSM easier for applications. GPGME provides a high-level crypto API for encryption, decryption, signing, signature verification and key management.

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

Package Information

GPGME Dependencies




Doxygen-1.10.0 and Graphviz-10.0.1 (for API documentation), GnuPG-2.4.4 (required if Qt or SWIG are installed; used during the test suite), Clisp-2.49, (Qt-5.15.12 or qt-alternate-5.15.12), and SWIG-4.2.0 (for language bindings)

Installation of GPGME

Install GPGME by running the following commands:

mkdir build &&
cd    build &&

../configure --prefix=/usr --disable-gpg-test &&

If SWIG-4.2.0 is installed, build the Python 3 binding as a wheel:

if swig -version > /dev/null; then
  srcdir=$PWD/../lang/python \
  top_builddir=$PWD          \
  pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD/lang/python

To test the results, you should have GnuPG-2.4.4 installed and remove the --disable-gpg-test above. If SWIG-4.2.0 is installed, it's necessary to adapt the test suite to use the Python 3 binding just built as a wheel as well. Issue:

if swig -version > /dev/null; then
  python3 -m venv testenv                                              &&
  testenv/bin/pip3 install --no-index --find-links=dist --no-cache-dir \
                           gpg                                         &&
  sed '/PYTHON/ --python-libdir=/dev/null#'            \
      -i lang/python/tests/Makefile
fi &&

make -k check PYTHONS= PYTHON=$PWD/testenv/bin/python3

Now, as the root user:

make install PYTHONS=

If SWIG-4.2.0 is installed, still as the root user, install the Python 3 binding:

if swig -version > /dev/null; then
  pip3 install --no-index --find-links=dist --no-cache-dir --no-user gpg

Command Explanations

--disable-gpg-test: if this parameter is not passed to configure, the test programs are built during make stage, which requires GnuPG-2.4.4. This parameter is not needed if GnuPG-2.4.4 is installed.

PYTHONS=: Disable building Python binding using the deprecated python3 build command. The explicit instruction to build the Python 3 binding with the pip3 wheel command is provided.


Installed Program: gpgme-json, and gpgme-tool
Installed Libraries:,, and
Installed Directory: /usr/include/{gpgme++,qgpgme,QGpgME}, /usr/lib/cmake/{Gpgmepp,QGpgme}. /usr/lib/python3.12/site-packages/gpg{,-1.23.2.dist-info}, and /usr/share/common-lisp/source/gpgme

Short Descriptions


outputs GPGME commands in JSON format


is an assuan server exposing GPGME operations, such as printing fingerprints and keyids with keyservers

contains the GPGME API functions

contains the C++ GPGME API functions

contains API functions for handling GPG operations in Qt applications