glfs/postlfs/security/gpgme.xml
Pierre Labastie e1e58be454 Remove all ftp urls
neither firefox nor epiphany can download them, and they are not
well maintained, because rarely tested.
This is WIP because the "(HTTP)" part of "Download (HTTP)" will
need to be removed too.
But let's see what users think first...
2023-10-15 21:43:08 +02:00

298 lines
9.4 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY gpgme-download-http "&gnupg-http;/gpgme/gpgme-&gpgme-version;.tar.bz2">
<!ENTITY gpgme-download-ftp " ">
<!ENTITY gpgme-md5sum "828b8a1f9992826d7ad43741b349db01">
<!ENTITY gpgme-size "1.6 MB">
<!ENTITY gpgme-buildsize "307 MB (with tests)">
<!ENTITY gpgme-time "1.6 SBU (with all bindings and tests; with parallelism=4)">
]>
<sect1 id="gpgme" xreflabel="GPGME-&gpgme-version;">
<?dbhtml filename="gpgme.html"?>
<title>GPGME-&gpgme-version;</title>
<indexterm zone="gpgme">
<primary sortas="a-GPGME">GPGME</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to GPGME</title>
<para>
The <application>GPGME</application> 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 <application>GnuPG</application> or GpgSM easier
for applications. <application>GPGME</application> provides
a high-level crypto API for encryption, decryption, signing,
signature verification and key management.
</para>
&lfs120_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&gpgme-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&gpgme-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &gpgme-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &gpgme-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &gpgme-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &gpgme-time;
</para>
</listitem>
</itemizedlist>
<!--
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Recommended patch (required if SWIG is installed):
<ulink url="&patch-root;/gpgme-&gpgme-version;-gpg_error_1_46-1.patch"/>
</para>
</listitem>
</itemizedlist>
-->
<bridgehead renderas="sect3">GPGME Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="libassuan"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="doxygen"/> and
<xref linkend="graphviz"/> (for API documentation),
<xref linkend="gnupg2"/> (required if Qt or SWIG are installed;
used during the test suite),
<xref linkend="clisp"/>,
&qt5-deps;, and
<xref linkend="swig"/> (for language bindings)
</para>
</sect2>
<sect2 role="installation">
<title>Installation of GPGME</title>
<para>
Install <application>GPGME</application> by running the following
commands:
</para>
<!--gpgme 1.22 FTBFS when building in tree. Upstream thinks building
should be done out of tree, but this is not in the doc yet
https://github.com/gpg/gpgme/commit/24a8c279da98fe7e586a9fc3cd91175c9e60ffef
-->
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
../configure --prefix=/usr --disable-gpg-test &amp;&amp;
make PYTHONS=</userinput></screen>
<para>
If <xref linkend='swig'/> is installed, build the Python 3 binding as
a wheel:
</para>
<screen><userinput>if swig -version > /dev/null; then
srcdir=$PWD/../lang/python \
top_builddir=$PWD \
&build-wheel-cmd; $PWD/lang/python
fi</userinput></screen>
<para>
To test the results, you should have <xref linkend="gnupg2"/> installed
and remove the <option>--disable-gpg-test</option> above. If
<xref linkend='swig'/> is installed, it's necessary to adapt the
test suite to use the Python 3 binding just built as a wheel as well.
Issue:
</para>
<screen remap='test'><userinput>if swig -version > /dev/null; then
python3 -m venv testenv &amp;&amp;
testenv/bin/pip3 install --no-index --find-links=dist --no-cache-dir \
gpg &amp;&amp;
sed '/PYTHON/s#run-tests.py#&amp; --python-libdir=/dev/null#' \
-i lang/python/tests/Makefile
fi &amp;&amp;
make -k check PYTHONS= PYTHON=$PWD/testenv/bin/python3</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install PYTHONS=</userinput></screen>
<para>
If <xref linkend='swig'/> is installed, still as the &root; user,
install the Python 3 binding:
</para>
<screen role="root"><userinput>if swig -version > /dev/null; then
&install-wheel; gpg
fi</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>--disable-gpg-test</parameter>: if this parameter is not
passed to configure, the test programs are built during
<command>make</command> stage, which requires <xref linkend="gnupg2"/>.
This parameter is not needed if <xref linkend="gnupg2"/> is installed.
</para>
<para>
<parameter>PYTHONS=</parameter>: Disable building Python binding
using the deprecated <command>python3 setup.py build</command>
command. The explicit instruction to build the Python 3 binding with
the <command>pip3 wheel</command> command is provided.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Program</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directory</segtitle>
<seglistitem>
<seg>
gpgme-json, and gpgme-tool
</seg>
<seg>
libgpgme.so, libgpgmepp.so, and libqgpgme.so
</seg>
<seg>
/usr/include/{gpgme++,qgpgme,QGpgME},
/usr/lib/cmake/{Gpgmepp,QGpgme}.
/usr/lib/python&python3-majorver;/site-packages/gpg{,-&gpgme-version;.dist-info}, and
/usr/share/common-lisp/source/gpgme
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="gpgme-json">
<term><command>gpgme-json</command></term>
<listitem>
<para>
outputs <application>GPGME</application> commands in JSON format
</para>
<indexterm zone="gpgme gpgme-json">
<primary sortas="b-gpgme-json">gpgme-json</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gpgme-tool">
<term><command>gpgme-tool</command></term>
<listitem>
<para>
is an assuan server exposing <application>GPGME</application>
operations, such as printing fingerprints and keyids with
keyservers
</para>
<indexterm zone="gpgme gpgme-tool">
<primary sortas="b-gpgme-tool">gpgme-tool</primary>
</indexterm>
</listitem>
</varlistentry>
<!-- As of 1.13.1, this library isn't present anymore.
<varlistentry id="libgpgme-pthread">
<term><filename class="libraryfile">libgpgme-pthread.so</filename></term>
<listitem>
<para>
contains the <application>GPGME</application> API functions for
applications using pthread.
</para>
<indexterm zone="gpgme libgpgme-pthread">
<primary sortas="c-libgpgme-pthread">libgpgme-pthread.so</primary>
</indexterm>
</listitem>
</varlistentry>
-->
<varlistentry id="libgpgme">
<term><filename class="libraryfile">libgpgme.so</filename></term>
<listitem>
<para>
contains the <application>GPGME</application> API functions
</para>
<indexterm zone="gpgme libgpgme">
<primary sortas="c-libgpgme">libgpgme.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libgpgmepp">
<term><filename class="libraryfile">libgpgmepp.so</filename></term>
<listitem>
<para>
contains the C++ <application>GPGME</application> API functions
</para>
<indexterm zone="gpgme libgpgmepp">
<primary sortas="c-libgpgmepp">libgpgmepp.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libqgpgme">
<term><filename class="libraryfile">libqgpgme.so</filename></term>
<listitem>
<para>
contains API functions for handling GPG operations in
<application>Qt</application> applications
</para>
<indexterm zone="gpgme libqgpgme">
<primary sortas="c-libqgpgme">libqgpgme.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>