gnu: Add "guile3.0-" package variants.
[jackhill/guix/guix.git] / gnu / packages / gnupg.scm
index cec0130..58def3d 100644 (file)
@@ -1,19 +1,19 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
   #:use-module (gnu packages curl)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages enlightenment)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pth)
   #:use-module (gnu packages python)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pth)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages databases)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages security-token)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages security-token)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
@@ -135,7 +138,7 @@ generation.")
 (define-public libassuan
   (package
     (name "libassuan")
 (define-public libassuan
   (package
     (name "libassuan")
-    (version "2.5.1")
+    (version "2.5.3")
     (source
      (origin
       (method url-fetch)
     (source
      (origin
       (method url-fetch)
@@ -143,7 +146,7 @@ generation.")
                           version ".tar.bz2"))
       (sha256
        (base32
                           version ".tar.bz2"))
       (sha256
        (base32
-        "0jb4nb4nrjr949gd3lw8lh4v5d6qigxaq6xwy24w5apjnhvnrya7"))))
+        "00p7cpvzf0q3qwcgg51r9d0vbab4qga2xi8wpk2fgd36710b1g4i"))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("libgpg-error" ,libgpg-error)
     (build-system gnu-build-system)
     (propagated-inputs
      `(("libgpg-error" ,libgpg-error)
@@ -198,14 +201,13 @@ specifications are building blocks of S/MIME and TLS.")
 (define-public npth
   (package
     (name "npth")
 (define-public npth
   (package
     (name "npth")
-    (version "1.5")
+    (version "1.6")
     (source
      (origin
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnupg/npth/npth-" version ".tar.bz2"))
-      (sha256
-       (base32
-        "1hmkkp6vzyrh8v01c2ynzf9vwikyagp7p1lxhbnr4ysk3w66jji9"))))
+       (method url-fetch)
+       (uri (string-append "mirror://gnupg/npth/npth-" version ".tar.bz2"))
+       (sha256
+        (base32 "1lg2lkdd3z1s3rpyf88786l243adrzyk9p4q8z9n41ygmpcsp4qk"))))
     (build-system gnu-build-system)
     (home-page "https://www.gnupg.org")
     (synopsis "Non-preemptive thread library")
     (build-system gnu-build-system)
     (home-page "https://www.gnupg.org")
     (synopsis "Non-preemptive thread library")
@@ -216,19 +218,21 @@ threads implementation.
 In contrast to GNU Pth is is based on the system's standard threads
 implementation.  This allows the use of libraries which are not
 compatible to GNU Pth.")
 In contrast to GNU Pth is is based on the system's standard threads
 implementation.  This allows the use of libraries which are not
 compatible to GNU Pth.")
-    (license (list license:lgpl3+ license:gpl2+)))) ; dual license
+    (license (list license:lgpl3+ license:gpl2+)) ; dual license
+    (properties '((ftp-server . "ftp.gnupg.org")
+                  (ftp-directory . "/gcrypt/npth")))))
 
 (define-public gnupg
   (package
     (name "gnupg")
 
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.2.11")
+    (version "2.2.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "1ncwqjhcxh46fgkp84g2lhf91amcha7abk6wdm1kagzm7q93wv29"))))
+                "056mgy09lvsi03531a437qj58la1j2x1y1scvfi53diris3658mg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -366,15 +370,13 @@ libskba (working with X.509 certificates and CMS data).")
 (define-public gpgme
   (package
     (name "gpgme")
 (define-public gpgme
   (package
     (name "gpgme")
-    (version "1.11.1")
+    (version "1.13.1")
     (source
      (origin
       (method url-fetch)
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://gnupg/gpgme/gpgme-" version
-                          ".tar.bz2"))
+      (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2"))
       (sha256
       (sha256
-       (base32
-        "0vxx5xaag3rhp4g2arp5qm77gvz4kj0m3hnpvhkdvqyjfhbi26rd"))))
+       (base32 "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gnupg" ,gnupg)))
     (build-system gnu-build-system)
     (native-inputs
      `(("gnupg" ,gnupg)))
@@ -395,7 +397,9 @@ Because the direct use of GnuPG from an application can be a complicated
 programming task, it is suggested that all software should try to use GPGME
 instead.  This way bug fixes or improvements can be done at a central place
 and every application benefits from this.")
 programming task, it is suggested that all software should try to use GPGME
 instead.  This way bug fixes or improvements can be done at a central place
 and every application benefits from this.")
-    (license license:lgpl2.1+)))
+    (license license:lgpl2.1+)
+    (properties '((ftp-server . "ftp.gnupg.org")
+                  (ftp-directory . "/gcrypt/gpgme")))))
 
 (define-public qgpgme
   (package
 
 (define-public qgpgme
   (package
@@ -430,7 +434,7 @@ gpgpme starting with version 1.7.")
 (define-public guile-gcrypt
   (package
     (name "guile-gcrypt")
 (define-public guile-gcrypt
   (package
     (name "guile-gcrypt")
-    (version "0.1.0")
+    (version "0.2.0")
     (home-page "https://notabug.org/cwebber/guile-gcrypt")
     (source (origin
               (method git-fetch)
     (home-page "https://notabug.org/cwebber/guile-gcrypt")
     (source (origin
               (method git-fetch)
@@ -439,7 +443,7 @@ gpgpme starting with version 1.7.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "1lhgh3105yi0ggrjsjibv4wp1ipz8s17pa820hk2wln3rc04wpvf"))
+                "1mhc5m4xygkfj7x18f8apiqpfdn9mrql0am5sk13cf5xn8x1r63z"))
               (file-name (string-append name "-" version "-checkout"))))
     (build-system gnu-build-system)
     (native-inputs
               (file-name (string-append name "-" version "-checkout"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -466,19 +470,34 @@ interface (FFI) of Guile.")
      `(("guile" ,guile-2.0)
        ,@(alist-delete "guile" (package-inputs guile-gcrypt))))))
 
      `(("guile" ,guile-2.0)
        ,@(alist-delete "guile" (package-inputs guile-gcrypt))))))
 
+(define-public guile3.0-gcrypt
+  (package
+    (inherit guile-gcrypt)
+    (name "guile3.0-gcrypt")
+    (inputs
+     `(("guile" ,guile-next)
+       ,@(alist-delete "guile" (package-inputs guile-gcrypt))))))
+
 (define-public python-gpg
   (package
     (name "python-gpg")
 (define-public python-gpg
   (package
     (name "python-gpg")
-    (version "1.8.0")
+    (version "1.10.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "gpg" version))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "gpg" version))
               (sha256
                (base32
-                "1x74i6q713c0bckls7rdm8kgsmllf9qvy9x62jghszlhgjkyh9nd"))))
+                "1ji3ynhp36m1ccx7bmaq75dhij9frpn19v9mpi4aajn8csl194il"))))
     (build-system python-build-system)
     (arguments
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f)) ; No test suite.
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-environment
+           (lambda _
+             (substitute* "setup.py"
+               (("cc") (which "gcc")))
+             #t)))
+       #:tests? #f)) ; No test suite.
     (inputs
      `(("gpgme" ,gpgme)))
     (native-inputs
     (inputs
      `(("gpgme" ,gpgme)))
     (native-inputs
@@ -513,11 +532,9 @@ distributed separately.")
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'build 'make-build
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'build 'make-build
-           (lambda _
-             (zero? (system* "make" "build"))))
+           (lambda _ (invoke "make" "build")))
          (replace 'check
          (replace 'check
-           (lambda _
-             (zero? (system* "make" "check")))))))
+           (lambda _ (invoke "make" "check"))))))
     (build-system python-build-system)
     (native-inputs
      `(("gnupg" ,gnupg-1)))
     (build-system python-build-system)
     (native-inputs
      `(("gnupg" ,gnupg-1)))
@@ -536,14 +553,14 @@ decrypt messages using the OpenPGP format by making use of GPGME.")
 (define-public python-gnupg
   (package
     (name "python-gnupg")
 (define-public python-gnupg
   (package
     (name "python-gnupg")
-    (version "0.4.3")
+    (version "0.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-gnupg" version))
        (sha256
         (base32
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-gnupg" version))
        (sha256
         (base32
-         "03dc8whhvk7ccspbk8vzfhkxli8cd9zfbss5p597g4jldgy8s59d"))))
+         "03pvjyp6q9pr8qa22i38az06ddzhvzy5kj192hxa3gbhnchg1nj5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -611,7 +628,7 @@ signing, decryption, verification, and key-listing parsing.")
 (define-public pius
   (package
    (name "pius")
 (define-public pius
   (package
    (name "pius")
-   (version "2.2.6")
+   (version "2.2.7")
    (source (origin
             (method url-fetch)
             (uri (string-append
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -619,15 +636,14 @@ signing, decryption, verification, and key-listing parsing.")
                   version "/pius-" version ".tar.bz2"))
             (sha256
              (base32
                   version "/pius-" version ".tar.bz2"))
             (sha256
              (base32
-              "1893hzpx3zv724drqv48csrn0cm98xw4ymb1zmhs2jvjj1778zfj"))
-            (patches (search-patches "pius.patch"))))
+              "1nsl7czicv95j0gfz4s82ys3g3h2mwr6cq3ilid8bpz3iy7z4ipy"))))
    (build-system python-build-system)
    (build-system python-build-system)
-   (inputs `(("perl" ,perl)                ;for 'pius-party-worksheet'
+   (inputs `(("perl" ,perl)             for 'pius-party-worksheet'
              ("gpg" ,gnupg)
              ("python-six" ,python2-six)))
    (arguments
     `(#:tests? #f
              ("gpg" ,gnupg)
              ("python-six" ,python2-six)))
    (arguments
     `(#:tests? #f
-      #:python ,python-2                     ;uses the Python 2 'print' syntax
+      #:python ,python-2                uses the Python 2 'print' syntax
       #:phases
       (modify-phases %standard-phases
         (add-before
       #:phases
       (modify-phases %standard-phases
         (add-before
@@ -652,87 +668,86 @@ PGP keysigning parties.")
    (home-page "https://www.phildev.net/pius/index.shtml")))
 
 (define-public signing-party
    (home-page "https://www.phildev.net/pius/index.shtml")))
 
 (define-public signing-party
-  ;; Upstream moved from alioth.debian.org to salsa.debian.org but the
-  ;; automatic svn import did not preserve tags apparently, so there's no real
-  ;; version number.
-  (let ((commit "d6f2296325605ee96ddf9f5b156e5e3f667a6df3")
-        (revision "0"))
-    (package
-      (name "signing-party")
-      (version (git-version "2.6" revision commit))
-      (home-page "https://salsa.debian.org/stappers/pgp-tools")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "00f7zasbwcbjzd92br2j10pyjxv0aw1qb4540qfz2dxzxgmdscrz"))))
-      (build-system gnu-build-system)
-      (native-inputs
-       `(("autoconf" ,autoconf-wrapper)
-         ("automake" ,automake)))
-      (inputs `(("perl" ,perl)
-                ("perl-text-template" ,perl-text-template)
-                ("perl-mime-tools" ,perl-mime-tools)
-                ("perl-gnupg-interface" ,perl-gnupg-interface)
-                ("perl-net-idn-encode" ,perl-net-idn-encode)
-                ("libmd" ,libmd)))
-      (arguments
-       `(#:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'configure
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (substitute* "keyanalyze/Makefile"
-                   (("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS")))
-                 (substitute* "keyanalyze/Makefile"
-                   (("\\./configure") (string-append "./configure --prefix=" out)))
-                 (substitute* "gpgwrap/Makefile"
-                   (("\\} clean")
-                    (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap "
-                                   out "/bin/gpgwrap\n")))
-                 (substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile"
-                                "keylookup/Makefile" "sig2dot/Makefile"
-                                "springgraph/Makefile")
-                   (("/usr") out))
-                 (setenv "CONFIG_SHELL" (which "sh")))))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys #:rest args)
-               (let ((out (assoc-ref outputs "out"))
-                     (install (assoc-ref %standard-phases 'install)))
-                 (apply install args)
-                 (for-each
-                  (lambda (dir file)
-                    (copy-file (string-append dir "/" file)
-                               (string-append out "/bin/" file)))
-                  '("caff" "caff" "caff" "gpgdir" "gpg-key2ps"
-                    "gpglist" "gpg-mailkeys" "gpgparticipants")
-                  '("caff" "pgp-clean" "pgp-fixkey" "gpgdir" "gpg-key2ps"
-                    "gpglist" "gpg-mailkeys" "gpgparticipants"))
-                 (for-each
-                  (lambda (dir file)
-                    (copy-file (string-append dir "/" file)
-                               (string-append out "/share/man/man1/" file)))
-                  '("caff" "caff" "caff" "gpgdir"
-                    "gpg-key2ps" "gpglist" "gpg-mailkeys"
-                    "gpgparticipants" "gpgsigs" "gpgwrap/doc"
-                    "keyanalyze" "keyanalyze/pgpring" "keyanalyze")
-                  '("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1"
-                    "gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1"
-                    "gpgparticipants.1" "gpgsigs.1" "gpgwrap.1"
-                    "process_keys.1" "pgpring.1" "keyanalyze.1")))))
-           (add-after 'install 'wrap-programs
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out")))
-                 (wrap-program
-                     (string-append out "/bin/caff")
-                   `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))))))))
-      (synopsis "Collection of scripts for simplifying gnupg key signing")
-      (description
-       "Signing-party is a collection for all kinds of PGP/GnuPG related things,
+  (package
+    (name "signing-party")
+    (version "2.10")
+    (home-page "https://salsa.debian.org/signing-party-team/signing-party")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf-wrapper)
+       ("automake" ,automake)))
+    (inputs `(("perl" ,perl)
+              ("perl-text-template" ,perl-text-template)
+              ("perl-mime-tools" ,perl-mime-tools)
+              ("perl-gnupg-interface" ,perl-gnupg-interface)
+              ("perl-net-idn-encode" ,perl-net-idn-encode)
+              ("libmd" ,libmd)))
+    (arguments
+     `(#:tests? #f ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "keyanalyze/Makefile"
+                 (("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS")))
+               (substitute* "keyanalyze/Makefile"
+                 (("\\./configure") (string-append "./configure --prefix=" out)))
+               (substitute* "gpgwrap/Makefile"
+                 (("\\} clean")
+                  (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap "
+                                 out "/bin/gpgwrap\n")))
+               (substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile"
+                              "keylookup/Makefile" "sig2dot/Makefile"
+                              "springgraph/Makefile")
+                 (("/usr") out))
+               (setenv "CONFIG_SHELL" (which "sh")))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys #:rest args)
+             (let ((out (assoc-ref outputs "out"))
+                   (install (assoc-ref %standard-phases 'install)))
+               (apply install args)
+               (for-each
+                (lambda (dir file)
+                  (copy-file (string-append dir "/" file)
+                             (string-append out "/bin/" file)))
+                '("caff" "caff" "caff" "gpgdir" "gpg-key2ps"
+                  "gpglist" "gpg-mailkeys" "gpgparticipants")
+                '("caff" "pgp-clean" "pgp-fixkey" "gpgdir" "gpg-key2ps"
+                  "gpglist" "gpg-mailkeys" "gpgparticipants"))
+               (for-each
+                (lambda (dir file)
+                  (copy-file (string-append dir "/" file)
+                             (string-append out "/share/man/man1/" file)))
+                '("caff" "caff" "caff" "gpgdir"
+                  "gpg-key2ps" "gpglist" "gpg-mailkeys"
+                  "gpgparticipants" "gpgsigs" "gpgwrap/doc"
+                  "keyanalyze" "keyanalyze/pgpring" "keyanalyze")
+                '("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1"
+                  "gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1"
+                  "gpgparticipants.1" "gpgsigs.1" "gpgwrap.1"
+                  "process_keys.1" "pgpring.1" "keyanalyze.1")))
+             #t))
+         (add-after 'install 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (wrap-program
+                   (string-append out "/bin/caff")
+                 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
+             #t)))))
+    (synopsis "Collection of scripts for simplifying gnupg key signing")
+    (description
+     "Signing-party is a collection for all kinds of PGP/GnuPG related things,
 including tools for signing keys, keyring analysis, and party preparation.
 @enumerate
 @item caff: CA - Fire and Forget signs and mails a key
 including tools for signing keys, keyring analysis, and party preparation.
 @enumerate
 @item caff: CA - Fire and Forget signs and mails a key
@@ -750,10 +765,10 @@ including tools for signing keys, keyring analysis, and party preparation.
 @item sig2dot: converts a list of GnuPG signatures to a .dot file
 @item springgraph: creates a graph from a .dot file
 @end enumerate")
 @item sig2dot: converts a list of GnuPG signatures to a .dot file
 @item springgraph: creates a graph from a .dot file
 @end enumerate")
-      ;; gpl2+ for almost all programs, except for keyanalyze: gpl2
-      ;; and caff and gpgsigs: bsd-3, see
-      ;; http://packages.debian.org/changelogs/pool/main/s/signing-party/current/copyright
-      (license license:gpl2))))
+    ;; gpl2+ for almost all programs, except for keyanalyze: gpl2
+    ;; and caff and gpgsigs: bsd-3, see
+    ;; http://packages.debian.org/changelogs/pool/main/s/signing-party/current/copyright
+    (license license:gpl2)))
 
 (define-public pinentry-tty
   (package
 
 (define-public pinentry-tty
   (package
@@ -836,6 +851,34 @@ software.")))
    "Pinentry provides a console and a Qt GUI that allows users to enter a
 passphrase when @code{gpg} is run and needs it.")))
 
    "Pinentry provides a console and a Qt GUI that allows users to enter a
 passphrase when @code{gpg} is run and needs it.")))
 
+(define-public pinentry-efl
+  (package
+    (inherit pinentry-tty)
+    (name "pinentry-efl")
+    (source
+      (origin
+        (inherit (package-source pinentry-tty))
+        (patches (search-patches "pinentry-efl.patch"))))
+    (arguments
+     '(#:configure-flags '("--enable-pinentry-efl")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           (lambda _
+             (invoke "sh" "autogen.sh"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ,@(package-native-inputs pinentry-tty)))
+    (inputs
+     `(("efl" ,efl)
+       ,@(package-inputs pinentry-tty)))
+    (description
+   "Pinentry provides a console and a graphical interface for the
+@dfn{Enlightenment Foundation Libraries} (EFL) that allows users to enter a
+passphrase when @code{gpg} is run and needs it.")))
+
 (define-public pinentry
   (package (inherit pinentry-gtk2)
     (name "pinentry")))
 (define-public pinentry
   (package (inherit pinentry-gtk2)
     (name "pinentry")))
@@ -872,17 +915,45 @@ bytes (whether by hand, OCR, QR code, or the like) and paperkey can use
 them to transform your existing public key into a secret key.")
     (license license:gpl2+)))
 
 them to transform your existing public key into a secret key.")
     (license license:gpl2+)))
 
+(define-public pgpdump
+  (package
+    (name "pgpdump")
+    (version "0.33")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.mew.org/~kazu/proj/pgpdump/pgpdump-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1j001jra2m89n6cys3n0hs574bipjdzfxhzpnd4jfyv95mqwl7n4"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no make check
+       #:configure-flags (list "--prefix=/")
+       #:make-flags (list "CC=gcc"
+                          (string-append "DESTDIR=" (assoc-ref %outputs "out")))))
+    (inputs
+     `(("zlib" ,zlib)))
+    (home-page "https://www.mew.org/~kazu/proj/pgpdump/en/")
+    (synopsis "PGP packet visualizer")
+    (description "pgpdump displays the sequence of OpenPGP or PGP version 2
+packets from a file.
+
+The output of this command is similar to GnuPG's list packets command,
+however, pgpdump produces more detailed and easier to understand output.")
+    (license license:bsd-3)))
+
 (define-public gpa
   (package
     (name "gpa")
 (define-public gpa
   (package
     (name "gpa")
-    (version "0.9.10")
+    (version "0.10.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gpa/"
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gpa/"
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "09xphbi2456qynwqq5n0yh0zdmdi2ggrj3wk4hsyh5lrzlvcrff3"))))
+                "1cbpc45f8qbdkd62p12s3q2rdq6fa5xdzwmcwd3xrj55bzkspnwm"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -898,7 +969,9 @@ them to transform your existing public key into a secret key.")
      "GPA, the GNU Privacy Assistant, is a graphical user interface for
 @uref{https://gnupg.org, GnuPG}.  It can be used to encrypt, decrypt, and sign
 files, to verify signatures, and to manage the private and public keys.")
      "GPA, the GNU Privacy Assistant, is a graphical user interface for
 @uref{https://gnupg.org, GnuPG}.  It can be used to encrypt, decrypt, and sign
 files, to verify signatures, and to manage the private and public keys.")
-    (license license:gpl3+)))
+    (license license:gpl3+)
+    (properties '((ftp-server . "ftp.gnupg.org")
+                  (ftp-directory . "/gcrypt/gpa")))))
 
 (define-public parcimonie
   (package
 
 (define-public parcimonie
   (package
@@ -906,8 +979,8 @@ files, to verify signatures, and to manage the private and public keys.")
     (version "0.10.3")
     (source (origin
               (method url-fetch)
     (version "0.10.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://gaffer.ptitcanardnoir.org/"
-                                  "intrigeri/files/parcimonie/App-Parcimonie-"
+              (uri (string-append "https://gaffer.boum.org/intrigeri/files/"
+                                  "parcimonie/App-Parcimonie-"
                                   version ".tar.gz"))
               (sha256
                (base32
                                   version ".tar.gz"))
               (sha256
                (base32
@@ -977,7 +1050,7 @@ files, to verify signatures, and to manage the private and public keys.")
                  `("PERL5LIB" ":"
                    prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
                #t))))))
                  `("PERL5LIB" ":"
                    prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
                #t))))))
-    (home-page "https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/")
+    (home-page "https://gaffer.boum.org/intrigeri/code/parcimonie/")
     (synopsis "Incrementally refreshes a GnuPG keyring")
     (description "Parcimonie incrementaly refreshes a GnuPG keyring in a way
 that makes it hard to correlate the keyring content to an individual, and
     (synopsis "Incrementally refreshes a GnuPG keyring")
     (description "Parcimonie incrementaly refreshes a GnuPG keyring in a way
 that makes it hard to correlate the keyring content to an individual, and