X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/6eef465eeaf762d99301a94a8a95670356c39778..641dd73dc847e2643727ffc0501de5d1a0946291:/gnu/packages/gnupg.scm diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 6b0f35ae27..333e88362b 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 Ludovic Courtès -;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2014 Eric Bavier -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2015 Paul van der Walt ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,26 +21,28 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages gnupg) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages curl) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) #:use-module (gnu packages pth) #:use-module (gnu packages python) #:use-module (gnu packages readline) - #:use-module ((gnu packages compression) #:prefix guix:) + #:use-module (gnu packages compression) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) #:use-module (gnu packages pkg-config) #:use-module (gnu packages ncurses) + #:use-module (gnu packages tls) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python)) (define-public libgpg-error (package (name "libgpg-error") - (version "1.13") + (version "1.19") (source (origin (method url-fetch) @@ -47,7 +50,7 @@ version ".tar.bz2")) (sha256 (base32 - "02lv5h865f8if391xjp3njg04k0l4x2pwjkcdbzcwilail1skazq")))) + "12wpqhjlsw4iaanifbqm2kich6c7x7lm8a7zhy6x5ifm6c9hw4jk")))) (build-system gnu-build-system) (home-page "http://gnupg.org") (synopsis "Library of error values for GnuPG components") @@ -56,19 +59,19 @@ for all GnuPG components. Among these are GPG, GPGSM, GPGME, GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard Daemon and possibly more in the future.") - (license lgpl2.0+))) + (license license:lgpl2.0+))) (define-public libgcrypt (package (name "libgcrypt") - (version "1.6.2") + (version "1.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 (base32 - "0k2wi34qhp5hq71w1ab3kw1gfsx7xff79bvynqkxp35kls94826y")))) + "0pq2nwfqgggrsh8rk84659d80vfnlkbphwqjwahccd5fjdxr3d21")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error-host" ,libgpg-error))) @@ -90,7 +93,7 @@ Daemon and possibly more in the future.") standard cryptographic building blocks such as symmetric ciphers, hash algorithms, public key algorithms, large integer functions and random number generation.") - (license lgpl2.0+))) + (license license:lgpl2.0+))) (define-public libgcrypt-1.5 (package (inherit libgcrypt) @@ -107,7 +110,7 @@ generation.") (define-public libassuan (package (name "libassuan") - (version "2.1.3") + (version "2.2.1") (source (origin (method url-fetch) @@ -115,7 +118,7 @@ generation.") version ".tar.bz2")) (sha256 (base32 - "06hxyns8i73c6vrbrxyx6h38kwa7971h01qfc5cyna69afrp08gs")))) + "1pp2kl5gc2vja41g3wk03h1hgh7gxy6pj354fb5n4lrlg6xqb4ll")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error) ("pth" ,pth))) @@ -127,12 +130,12 @@ generation.") protocol. This protocol is used for IPC between most newer GnuPG components. Both, server and client side functions are provided.") - (license lgpl2.0+))) + (license license:lgpl2.0+))) (define-public libksba (package (name "libksba") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) @@ -141,7 +144,7 @@ provided.") version ".tar.bz2")) (sha256 (base32 - "01l4hvcknk9nb4bvyb6aqaid19jg0wv3ik54j1b89hnzamwm75gb")))) + "11kp3h9l3b8ikydkcdkwgx45r662zi30m26ra5llyhfh6kz5yzqc")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error))) @@ -160,38 +163,66 @@ provided.") "KSBA (pronounced Kasbah) is a library to make X.509 certificates as well as the CMS easily accessible by other applications. Both specifications are building blocks of S/MIME and TLS.") - (license gpl3+))) + (license license:gpl3+))) + +(define-public npth + (package + (name "npth") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnupg/npth/npth-" + version ".tar.bz2")) + (sha256 + (base32 + "12n0nvhw4fzwp0k7gjv3rc6pdml0qiinbbfiz4ilg6pl5kdxvnvd")))) + (build-system gnu-build-system) + (home-page "http://www.gnupg.org") + (synopsis "Non-preemptive thread library") + (description + "Npth is a library to provide the GNU Pth API and thus a non-preemptive +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.") + (license (list license:lgpl3+ license:gpl2+)))) ; dual license (define-public gnupg (package (name "gnupg") - (version "2.0.26") + (version "2.1.9") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "1q5qcl5panrvcvpwvz6nl9gayl5a6vwvfhgdcxqpmbl2qc6y6n3p")))) + "1dpp555glln6fldk72ad7lkrn8h3cr2bg714z5kfn2qrawx67dqw")))) (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) (inputs - `(("bzip2" ,guix:bzip2) + `(("bzip2" ,bzip2) ("curl" ,curl) + ("gnutls" ,gnutls) ("libassuan" ,libassuan) ("libgcrypt" ,libgcrypt) ("libgpg-error" ,libgpg-error) ("libksba" ,libksba) - ("pth" ,pth) + ("npth" ,npth) ("openldap" ,openldap) - ("zlib" ,guix:zlib) + ("zlib" ,zlib) ("readline" ,readline))) (arguments `(#:phases (alist-cons-before 'configure 'patch-config-files (lambda _ - (substitute* "tests/openpgp/Makefile.in" - (("/bin/sh") (which "bash")))) + (substitute* "tests/openpgp/defs.inc" + (("/bin/pwd") (which "pwd")))) %standard-phases))) (home-page "http://gnupg.org/") (synopsis "GNU Privacy Guard") @@ -202,21 +233,53 @@ features powerful key management and the ability to access public key servers. It includes several libraries: libassuan (IPC between GnuPG components), libgpg-error (centralized GnuPG error values), and libskba (working with X.509 certificates and CMS data).") - (license gpl3+))) + (license license:gpl3+))) + +(define-public gnupg-2.0 + (package (inherit gnupg) + (version "2.0.28") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/gnupg/gnupg-" version + ".tar.bz2")) + (sha256 + (base32 + "0k2k399fnhfhhr4dvm8d6vs4ihq6gg06191lzfwikzaqmgj2w2ff")))) + (native-inputs '()) + (inputs + `(("bzip2" ,bzip2) + ("curl" ,curl) + ("libassuan" ,libassuan) + ("libgcrypt" ,libgcrypt) + ("libgpg-error" ,libgpg-error) + ("libksba" ,libksba) + ("pth" ,pth) + ("openldap" ,openldap) + ("zlib" ,zlib) + ("readline" ,readline))) + (arguments + `(#:phases + (alist-cons-before + 'configure 'patch-config-files + (lambda _ + (substitute* "tests/openpgp/Makefile.in" + (("/bin/sh") (which "bash")))) + %standard-phases))))) (define-public gnupg-1 (package (inherit gnupg) - (version "1.4.18") + (version "1.4.19") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "1233bppjvdpbbl425ii6l7xvgy0879ghhnmwrph5b6c4g3dgvddp")))) + "11pxx26sfilh0vswylh9mhiifw5yffw7nn733zknw3sb0jfk22bz")))) + (native-inputs '()) (inputs - `(("zlib" ,guix:zlib) - ("bzip2" ,guix:bzip2) + `(("zlib" ,zlib) + ("bzip2" ,bzip2) ("curl" ,curl) ("readline" ,readline) ("libgpg-error" ,libgpg-error))) @@ -231,7 +294,7 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.5.1") + (version "1.5.5") (source (origin (method url-fetch) @@ -239,13 +302,13 @@ libskba (working with X.509 certificates and CMS data).") ".tar.bz2")) (sha256 (base32 - "1qqi9bxwxxsc4r15j7drclgp0w8jk9nj3h2fsivk4c7brvw3lbvc")))) + "01y28fkq52wwf4p470wscaxd2vgzl615irmafx3mj3380x8ksg8b")))) (build-system gnu-build-system) (propagated-inputs ;; Needs to be propagated because gpgme.h includes gpg-error.h. `(("libgpg-error" ,libgpg-error))) (inputs - `(("gnupg" ,gnupg) + `(("gnupg" ,gnupg-2.0) ("libassuan" ,libassuan))) (arguments '(#:make-flags '("GPG=gpg2"))) (home-page "http://www.gnupg.org/related_software/gpgme/") @@ -260,44 +323,77 @@ 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.") - (license lgpl2.1+))) + (license license:lgpl2.1+))) + +(define-public python-gnupg + (package + (name "python-gnupg") + (version "0.3.7") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/p/" + "python-gnupg/python-gnupg-" version ".tar.gz")) + (sha256 + (base32 + "1hg9gshk4b7raskj8mjadsjcv10axlx2z4xl4ag2f2bpi4f8chvq")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "test_gnupg.py" + ;; Test keyrings are missing, so this test fails. + (("'test_scan_keys'") "True") + (("def test_scan_keys") "def disabled__scan_keys") + ;; Unsure why this test fails. + (("'test_search_keys'") "True") + (("def test_search_keys") "def disabled__search_keys")) + (setenv "GPGBINARY" "gpg") + (setenv "USERNAME" "guixbuilder") + ;; The doctests are extremely slow and sometimes time out, + ;; so we disable them. + (zero? (system* "python" + "test_gnupg.py" "--no-doctests"))))))) + (native-inputs + `(("gnupg" ,gnupg-1))) + (home-page "http://packages.python.org/python-gnupg/index.html") + (synopsis "Wrapper for the GNU Privacy Guard") + (description + "This module allows easy access to GnuPG’s key management, encryption +and signature functionality from Python programs.") + (license license:bsd-3))) + +(define-public python2-gnupg + (package-with-python2 python-gnupg)) (define-public pius (package (name "pius") - (version "2.0.9") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pgpius/pius/" version "/pius-" version ".tar.bz2")) (sha256 (base32 - "1g1jly3wl4ks6h8ydkygyl2c4i7v3z91rg42005m6vm70y1d8b3d")))) - (build-system gnu-build-system) - (inputs `(("perl" ,perl) - ("python" ,python-2) ; uses the Python 2 'print' syntax - ("gpg" ,gnupg))) + "0ry3kc3x1qjmvb581ja2z2v32r1rl1g8rhfj7iqvs8nzq4ca512i")))) + (build-system python-build-system) + (inputs `(("perl" ,perl) ;for 'pius-party-worksheet' + ("gpg" ,gnupg-2.0))) ;2.1 fails to talk to gpg-agent 2.0 (arguments `(#:tests? #f + #:python ,python-2 ;uses the Python 2 'print' syntax #:phases - (alist-delete - 'configure - (alist-delete - 'build - (alist-replace - 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (gpg (string-append (assoc-ref inputs "gpg") - "/bin/gpg2"))) - (mkdir out) - (mkdir (string-append out "/bin")) - (for-each (lambda (file) - (substitute* file - (("/usr/bin/gpg") gpg)) - (copy-file file (string-append out "/bin/" file))) - '("pius" "pius-keyring-mgr" "pius-party-worksheet")))) - %standard-phases))))) + (modify-phases %standard-phases + (add-before + 'build 'set-gpg-file-name + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((gpg (string-append (assoc-ref inputs "gpg") + "/bin/gpg2"))) + (substitute* "libpius/constants.py" + (("/usr/bin/gpg") gpg)))))))) (synopsis "Programs to simplify GnuPG key signing") (description "Pius (PGP Individual UID Signer) helps attendees of PGP keysigning @@ -308,7 +404,7 @@ to the process. pius-keyring-mgr and pius-party-worksheet help organisers of PGP keysigning parties.") - (license gpl2) + (license license:gpl2) (home-page "http://www.phildev.net/pius/index.shtml"))) (define-public signing-party @@ -379,7 +475,7 @@ PGP keysigning parties.") including tools for signing keys, keyring analysis, and party preparation. * caff: CA - Fire and Forget signs and mails a key - + * pgp-clean: removes all non-self signatures from key * pgp-fixkey: removes broken packets from keys @@ -408,23 +504,24 @@ including tools for signing keys, keyring analysis, and party preparation. ;; 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 gpl2) + (license license:gpl2) (home-page "http://pgp-tools.alioth.debian.org/"))) (define-public pinentry (package (name "pinentry") - (version "0.8.3") + (version "0.9.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/pinentry/pinentry-" version ".tar.bz2")) (sha256 (base32 - "1bd047crf7xb8g61mval8v6qww98rddlsw2dz6j8h8qbnl4hp2sn")))) + "1338hj1h3sh34897120y30x12b64wyj3xjzzk5asm2hdzhxgsmva")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) + ("libassuan" ,libassuan) ("gtk+" ,gtk+-2) ("glib" ,glib))) (native-inputs @@ -434,7 +531,7 @@ including tools for signing keys, keyring analysis, and party preparation. (description "Pinentry provides a console and a GTK+ GUI that allows users to enter a passphrase when `gpg' or `gpg2' is run and needs it.") - (license gpl2+))) + (license license:gpl2+))) (define-public paperkey (package @@ -466,4 +563,4 @@ for printing with paper and ink, which have amazingly long retention 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 gpl2+))) + (license license:gpl2+)))