diff options
Diffstat (limited to 'gnu/packages/gnupg.scm')
-rw-r--r-- | gnu/packages/gnupg.scm | 137 |
1 files changed, 94 insertions, 43 deletions
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 1e9d814889..dc801a6a4f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -10,6 +10,8 @@ ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.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> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,9 +47,11 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages ncurses) #:use-module (gnu packages security-token) + #:use-module (gnu packages swig) #:use-module (gnu packages tls) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -188,7 +192,7 @@ specifications are building blocks of S/MIME and TLS.") (define-public npth (package (name "npth") - (version "1.2") + (version "1.3") (source (origin (method url-fetch) @@ -197,7 +201,7 @@ specifications are building blocks of S/MIME and TLS.") version ".tar.bz2")) (sha256 (base32 - "12n0nvhw4fzwp0k7gjv3rc6pdml0qiinbbfiz4ilg6pl5kdxvnvd")))) + "0am86vblapwz84254qpmhz0chk70g6qzh3wdxcs0gvba8d01ka5w")))) (build-system gnu-build-system) (home-page "https://www.gnupg.org") (synopsis "Non-preemptive thread library") @@ -213,20 +217,23 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.16") + (version "2.1.17") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "0i483m9q032a0s50f1izb213g4h5i7pcgn395m6hvl3sg2kadfa9")))) + "1js308b46ifx1gim0c9nivr5yxhans7iq1yvkf7zl2928gdm9p65")) + (patches + ;; This fixes a test failure on 32bit. Remove for next version. + ;; https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00869.html + (search-patches "gnupg-test-segfault-on-32bit-arch.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("adns" ,adns) - ("bzip2" ,bzip2) + `(("bzip2" ,bzip2) ("curl" ,curl) ("gnutls" ,gnutls) ("libassuan" ,libassuan) @@ -347,7 +354,7 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.6.0") + (version "1.8.0") (source (origin (method url-fetch) @@ -355,7 +362,7 @@ libskba (working with X.509 certificates and CMS data).") ".tar.bz2")) (sha256 (base32 - "17892sclz3yg45wbyqqrzzpq3l0icbnfl28f101b3062g8cy97dh")))) + "0csx3qnycwm0n90ql6gs65if5xi4gqyzzy21fxs2xqicghjrfq2r")))) (build-system gnu-build-system) (propagated-inputs ;; Needs to be propagated because gpgme.h includes gpg-error.h. @@ -363,7 +370,15 @@ libskba (working with X.509 certificates and CMS data).") (inputs `(("gnupg" ,gnupg-2.0) ("libassuan" ,libassuan))) - (arguments '(#:make-flags '("GPG=gpg2"))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'configure 'patch-cmake-file + (lambda _ + ;; Work around <https://bugs.gnupg.org/gnupg/issue2877>. + (substitute* "lang/cpp/src/GpgmeppConfig.cmake.in" + (("@libsuffix@") ".so")) + #t))))) (home-page "https://www.gnupg.org/related_software/gpgme/") (synopsis "Library providing simplified access to GnuPG functionality") (description @@ -378,6 +393,33 @@ instead. This way bug fixes or improvements can be done at a central place and every application benefits from this.") (license license:lgpl2.1+))) +(define-public python-gpg + (package + (name "python-gpg") + (version (package-version gpgme)) + (source (origin + (method url-fetch) + (uri (pypi-uri "gpg" version)) + (sha256 + (base32 + "1x74i6q713c0bckls7rdm8kgsmllf9qvy9x62jghszlhgjkyh9nd")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; No test suite. + (inputs + `(("gpgme" ,gpgme))) + (native-inputs + `(("swig" ,swig))) + (home-page (package-home-page gpgme)) + (synopsis "Python bindings for GPGME GnuPG cryptography library") + (description "This package provides Python bindings to the GPGME GnuPG +cryptographic library. It is developed in the GPGME source code, and then +distributed separately.") + (license license:lgpl2.1+))) + +(define-public python2-gpg + (package-with-python2 python-gpg)) + (define-public python-pygpgme (package (name "python-pygpgme") @@ -392,7 +434,8 @@ and every application benefits from this.") ;; Unfortunately, we have to disable some tests due to some gpg-agent ;; goofiness... see: ;; https://bugs.launchpad.net/pygpgme/+bug/999949 - (patches (search-patches "pygpgme-disable-problematic-tests.patch")))) + (patches (search-patches "pygpgme-disable-problematic-tests.patch" + "python-pygpgme-fix-pinentry-tests.patch")))) (arguments `(#:phases (modify-phases %standard-phases @@ -457,35 +500,43 @@ and signature functionality from Python programs.") (package-with-python2 python-gnupg)) (define-public pius - (package - (name "pius") - (version "2.2.2") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/jaymzh/pius/releases/download/v" - version "/pius-" version ".tar.bz2")) - (sha256 - (base32 - "0k94mlr7l12mplph7pdgjbampqha47d8mfjq69n4xm80qwbn1rq1")))) - (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 - (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/gpg"))) - (substitute* "libpius/constants.py" - (("/usr/bin/gpg2") gpg)))))))) - (synopsis "Programs to simplify GnuPG key signing") - (description - "Pius (PGP Individual UID Signer) helps attendees of PGP keysigning + ;; pius 2.2.2 does not work with gpg-agent 2.1, so we take a newer + ;; commit. When a new pius (> 2.2.2) is released, update this package + ;; and delete this message. + ;; More info: https://github.com/jaymzh/pius/issues/46 + (let ((commit "891687ccb3d232a1fc0e7da7d22572c0318644cb") + (base-version "2.2.2")) ; i.e. there were no releases + ; between BASE-VERSION and COMMIT + (package + (name "pius") + (version (string-append base-version "-0." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jaymzh/pius.git") + (commit commit))) + (sha256 + (base32 + "0m2na4bnf1rv0zpf404l9ga6pwyf7ijldp4lw5irgh7gkmpllxr3")))) + (build-system python-build-system) + (inputs `(("perl" ,perl) ;for 'pius-party-worksheet' + ("gpg" ,gnupg))) + (arguments + `(#:tests? #f + #:python ,python-2 ;uses the Python 2 'print' syntax + #: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/gpg"))) + (substitute* "libpius/constants.py" + (("/usr/bin/gpg2") gpg)))))))) + (synopsis "Programs to simplify GnuPG key signing") + (description + "Pius (PGP Individual UID Signer) helps attendees of PGP keysigning parties. It is the main utility and makes it possible to quickly and easily sign each UID on a set of PGP keys. It is designed to take the pain out of the sign-all-the-keys part of PGP Keysigning Party while adding security @@ -493,8 +544,8 @@ to the process. pius-keyring-mgr and pius-party-worksheet help organisers of PGP keysigning parties.") - (license license:gpl2) - (home-page "https://www.phildev.net/pius/index.shtml"))) + (license license:gpl2) + (home-page "https://www.phildev.net/pius/index.shtml")))) (define-public signing-party (package @@ -585,14 +636,14 @@ including tools for signing keys, keyring analysis, and party preparation. (define-public pinentry-tty (package (name "pinentry-tty") - (version "0.9.7") + (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/pinentry/pinentry-" version ".tar.bz2")) (sha256 (base32 - "1cp7wjqr6nx31mdclr61s2h84ijqjl0ph99kgj4vyawpjj1j1633")))) + "0ni7g4plq6x78p32al7m8h2zsakvg1rhfz0qbc3kdc7yq7nw4whn")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-pinentry-tty"))) |