summaryrefslogtreecommitdiff
path: root/gnu/packages/gnupg.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gnupg.scm')
-rw-r--r--gnu/packages/gnupg.scm161
1 files changed, 126 insertions, 35 deletions
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index fd850c0469..ffad57ef5e 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
@@ -32,7 +32,10 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages openldap)
#:use-module (gnu packages perl)
#:use-module (gnu packages pth)
@@ -53,6 +56,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system perl)
#:use-module (guix build-system python))
(define-public libgpg-error
@@ -81,6 +85,7 @@ Daemon and possibly more in the future.")
(define-public libgcrypt
(package
+ (replacement libgcrypt/fixed)
(name "libgcrypt")
(version "1.7.8")
(source (origin
@@ -115,6 +120,18 @@ generation.")
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgcrypt")))))
+(define libgcrypt/fixed
+ (package
+ (inherit libgcrypt)
+ (version "1.8.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1cvqd9jk5qshbh48yh3ixw4zyr4n5k50r3475rrh20xfn7w7aa3s"))))))
+
(define-public libassuan
(package
(name "libassuan")
@@ -203,14 +220,14 @@ compatible to GNU Pth.")
(define-public gnupg
(package
(name "gnupg")
- (version "2.1.23")
+ (version "2.2.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "0xqd5nm4j3w9lwk35vg57gl2i8bfkmx7d24i44gkbscm2lwpci59"))))
+ "1yv2pwf3vhv9dpbf51fnm0wy03va1cg5r7qaz7rg75cwbgb0rmrl"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -232,7 +249,8 @@ compatible to GNU Pth.")
`(#:configure-flags '(;; Otherwise, the test suite looks for the `gpg`
;; executable in its installation directory in
;; /gnu/store before it has been installed.
- "--enable-gnupg-builddir-envvar")
+ "--enable-gnupg-builddir-envvar"
+ "--enable-all-tests")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-paths
@@ -249,26 +267,18 @@ compatible to GNU Pth.")
(string-append (getcwd) "/tests/gpgscm/gpgscm")))
#t))
(add-before 'build 'patch-test-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((coreutils (assoc-ref inputs "coreutils"))
- (cat (string-append coreutils "/bin/cat"))
- (pwd (string-append coreutils "/bin/pwd"))
- (true (string-append coreutils "/bin/true"))
- (false (string-append coreutils "/bin/false")))
- (substitute* '("tests/inittests"
- "tests/pkits/inittests"
- "tests/Makefile"
- "tests/pkits/common.sh"
- "tests/pkits/Makefile"
- )
- (("/bin/pwd") pwd))
- (substitute* "common/t-exectool.c"
- (("/bin/cat") cat))
- (substitute* "common/t-exectool.c"
- (("/bin/true") true))
- (substitute* "common/t-exectool.c"
- (("/bin/false") false))
- #t))))))
+ (lambda _
+ (substitute* '("tests/inittests"
+ "tests/pkits/inittests"
+ "tests/Makefile"
+ "tests/pkits/common.sh"
+ "tests/pkits/Makefile")
+ (("/bin/pwd") (which "pwd")))
+ (substitute* "common/t-exectool.c"
+ (("/bin/cat") (which "cat"))
+ (("/bin/true") (which "true"))
+ (("/bin/false") (which "false")))
+ #t)))))
(home-page "https://gnupg.org/")
(synopsis "GNU Privacy Guard")
(description
@@ -529,6 +539,43 @@ and signature functionality from Python programs.")
(define-public python2-gnupg
(package-with-python2 python-gnupg))
+(define-public perl-gnupg-interface
+ (package
+ (name "perl-gnupg-interface")
+ (version "0.52")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/A/AL/ALEXMV/GnuPG-Interface-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4"))))
+ (build-system perl-build-system)
+ (arguments
+ '(;; Result: FAIL
+ ;; Failed 10/20 test programs. 21/52 subtests failed.
+ #:tests? #f))
+ (native-inputs
+ `(("perl-module-install" ,perl-module-install)
+ ("which" ,which)))
+ (inputs
+ `(("gnupg" ,gnupg)))
+ (propagated-inputs
+ `(("perl-moo" ,perl-moo)
+ ("perl-moox-late" ,perl-moox-late)
+ ("perl-moox-handlesvia" ,perl-moox-handlesvia)))
+ (home-page "http://search.cpan.org/~alexmv/GnuPG-Interface/")
+ (synopsis "Perl interface to GnuPG")
+ (description
+ "@code{GnuPG::Interface} and its associated modules are designed to
+provide an object-oriented method for interacting with GnuPG, being able to
+perform functions such as but not limited to encrypting, signing, decryption,
+verification, and key-listing parsing.")
+ (license license:perl-license)))
+
(define-public pius
(package
(name "pius")
@@ -573,38 +620,48 @@ PGP keysigning parties.")
(define-public signing-party
(package
(name "signing-party")
- (version "1.1.4")
+ (version "2.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://debian/pool/main/s/signing-party/"
"signing-party_" version ".orig.tar.gz"))
(sha256 (base32
- "188gp0prbh8qs29lq3pbf0qibfd6jq4fk7i0pfrybl8aahvm84rx"))))
+ "1n5bpcfpl9vg1xp6r1jhbyahrgdyxp05b5pria1rh4m0qnv8sifr"))))
(build-system gnu-build-system)
- (inputs `(("perl" ,perl)))
+ (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
- (add-after 'unpack 'remove-spurious-links
- (lambda _ (delete-file "keyanalyze/pgpring/depcomp")))
+ (add-before 'configure 'change-directory
+ (lambda _
+ ;; The build system in the unpack phase changes to a less useful
+ ;; subdirectory, so move up one level
+ (chdir (dirname (getcwd)))))
(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* "keyanalyze/pgpring/configure"
- (("/bin/sh") (which "sh")))
- (substitute* "gpgwrap/Makefile"
+ (("\\./configure") (string-append "./configure --prefix=" out)))
+ (substitute* "gpgwrap/src/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)))))
+ (("/usr") out))
+ (setenv "CONFIG_SHELL" (which "sh")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys #:rest args)
(let ((out (assoc-ref outputs "out"))
@@ -629,7 +686,13 @@ PGP keysigning parties.")
'("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"))))))))
+ "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,
@@ -759,3 +822,31 @@ qualities. To reconstruct a secret key, you re-enter those
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+)))
+
+(define-public gpa
+ (package
+ (name "gpa")
+ (version "0.9.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnupg/gpa/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "09xphbi2456qynwqq5n0yh0zdmdi2ggrj3wk4hsyh5lrzlvcrff3"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gnupg" ,gnupg)
+ ("gpgme" ,gpgme)
+ ("libassuan" ,libassuan)
+ ("libgpg-error" ,libgpg-error)
+ ("gtk+-2" ,gtk+-2)))
+ (home-page "https://gnupg.org/software/gpa/")
+ (synopsis "Graphical user interface for GnuPG")
+ (description
+ "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+)))