;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; 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, 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 © 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.
#: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 python-xyz)
#: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 sqlite)
#:use-module (gnu packages swig)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages tor)
#:use-module (gnu packages web)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
- #:use-module (guix build-system python))
+ #:use-module (guix build-system python)
+ #:use-module (srfi srfi-1))
(define-public libgpg-error
(package
(name "libgpg-error")
- (version "1.28")
+ (version "1.32")
(source
(origin
(method url-fetch)
version ".tar.bz2"))
(sha256
(base32
- "0jfsfnh9bxlxiwxws60yah4ybjw2hshmvqp31pri4m4h8ivrbnry"))
- (patches (search-patches "libgpg-error-aarch64-logging-fix.patch"))))
+ "1jj08ns4sh1hmafqp1giskvdicdz18la516va26jycy27kkwaif3"))))
(build-system gnu-build-system)
(home-page "https://gnupg.org")
(synopsis "Library of error values for GnuPG components")
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgpg-error")))))
-;; Some packages (e.g. GPGME) require a newer libgpg-error to deal with
-;; error codes from recent GnuPG. Remove this in the next rebuild cycle.
-(define-public libgpg-error-1.31
- (package
- (inherit libgpg-error)
- (version "1.31")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-"
- version ".tar.bz2"))
- (sha256
- (base32
- "1vx4nw6rxh2biy3h8n96fyr86q29h8gjl6837437i51jr4isil20"))))))
-
(define-public libgcrypt
(package
- (replacement libgcrypt/fixed)
(name "libgcrypt")
- (version "1.8.2")
+ (version "1.8.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
version ".tar.bz2"))
(sha256
(base32
- "01sca9m8hm6b5v8hmqsfdjhyz013869p1f0fxw9ln52qfnp4q1n8"))))
+ "0z5gs1khzyknyfjr19k8gk4q148s6q987ya85cpn0iv70fz91v36"))
+ (patches
+ (search-patches "libgcrypt-make-yat2m-reproducible.patch"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error-host" ,libgpg-error)))
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgcrypt")))))
-(define libgcrypt/fixed
- (package
- (inherit libgcrypt)
- (name "libgcrypt")
- (version "1.8.3")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
- version ".tar.bz2"))
- (sha256
- (base32
- "0z5gs1khzyknyfjr19k8gk4q148s6q987ya85cpn0iv70fz91v36"))))))
-
(define-public libassuan
(package
(name "libassuan")
- (version "2.5.1")
+ (version "2.5.3")
(source
(origin
(method url-fetch)
version ".tar.bz2"))
(sha256
(base32
- "0jb4nb4nrjr949gd3lw8lh4v5d6qigxaq6xwy24w5apjnhvnrya7"))))
+ "00p7cpvzf0q3qwcgg51r9d0vbab4qga2xi8wpk2fgd36710b1g4i"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error" ,libgpg-error)
(define-public gnupg
(package
(name "gnupg")
- (version "2.2.8")
+ (version "2.2.16")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "1k8dnnfs9888yp713l7kg2jg110lw47s4krx0njna6fjrsw4qyvp"))))
+ "1jqlzp9b3kpfp1dkjqskm67jjrhvf9nh3lzf45321p7m9d2qvgkc"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public gpgme
(package
(name "gpgme")
- (version "1.11.1")
+ (version "1.13.1")
(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
- (base32
- "0vxx5xaag3rhp4g2arp5qm77gvz4kj0m3hnpvhkdvqyjfhbi26rd"))))
+ (base32 "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4"))))
(build-system gnu-build-system)
(native-inputs
`(("gnupg" ,gnupg)))
(propagated-inputs
;; Needs to be propagated because gpgme.h includes gpg-error.h.
- `(("libgpg-error" ,libgpg-error-1.31)))
+ `(("libgpg-error" ,libgpg-error)))
(inputs
`(("libassuan" ,libassuan)))
(home-page "https://www.gnupg.org/related_software/gpgme/")
gpgpme starting with version 1.7.")
(license license:gpl2+))) ;; Note: this differs from gpgme
+(define-public guile-gcrypt
+ (package
+ (name "guile-gcrypt")
+ (version "0.1.0")
+ (home-page "https://notabug.org/cwebber/guile-gcrypt")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append home-page ".git"))
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1lhgh3105yi0ggrjsjibv4wp1ipz8s17pa820hk2wln3rc04wpvf"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("texinfo" ,texinfo)))
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("libgcrypt" ,libgcrypt)))
+ (synopsis "Cryptography library for Guile using Libgcrypt")
+ (description
+ "Guile-Gcrypt provides a Guile 2.x interface to a subset of the
+GNU Libgcrypt crytographic library. It provides modules for cryptographic
+hash functions, message authentication codes (MAC), public-key cryptography,
+strong randomness, and more. It is implemented using the foreign function
+interface (FFI) of Guile.")
+ (license license:gpl3+)))
+
+(define-public guile2.0-gcrypt
+ (package (inherit guile-gcrypt)
+ (name "guile2.0-gcrypt")
+ (inputs
+ `(("guile" ,guile-2.0)
+ ,@(alist-delete "guile" (package-inputs guile-gcrypt))))))
+
(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
- "1x74i6q713c0bckls7rdm8kgsmllf9qvy9x62jghszlhgjkyh9nd"))))
+ "1ji3ynhp36m1ccx7bmaq75dhij9frpn19v9mpi4aajn8csl194il"))))
(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
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'make-build
- (lambda _
- (zero? (system* "make" "build"))))
+ (lambda _ (invoke "make" "build")))
(replace 'check
- (lambda _
- (zero? (system* "make" "check")))))))
+ (lambda _ (invoke "make" "check"))))))
(build-system python-build-system)
(native-inputs
`(("gnupg" ,gnupg-1)))
(native-inputs
`(("which" ,which)
("perl-module-install" ,perl-module-install)))
- (home-page "http://search.cpan.org/dist/GnuPG-Interface/")
+ (home-page "https://metacpan.org/release/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,
(define-public pius
(package
(name "pius")
- (version "2.2.6")
+ (version "2.2.7")
(source (origin
(method url-fetch)
(uri (string-append
version "/pius-" version ".tar.bz2"))
(sha256
(base32
- "1893hzpx3zv724drqv48csrn0cm98xw4ymb1zmhs2jvjj1778zfj"))
- (patches (search-patches "pius.patch"))))
+ "1nsl7czicv95j0gfz4s82ys3g3h2mwr6cq3ilid8bpz3iy7z4ipy"))))
(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
- #: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
(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.7")
+ (home-page "https://salsa.debian.org/debian/signing-party")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1gx9017wag4bgc0h7kca9n3jwwdm7z77yv3viayhg62flbwkvbgb"))))
+ (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")))
+ #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
@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
"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")))
(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
`("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