;;; 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
(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)))
(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.7")
+ (version "2.2.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "0vlpis0q7gvq9mhdc43hkyn3cdriz4mwgj20my3gyzpgwqg3cnyr"))))
+ "0m6lyphbb20i84isdxzfhcbzyc682hdrdv4aqkzmhrdksycf536b"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public gnupg-1
(package (inherit gnupg)
- (version "1.4.22")
+ (version "1.4.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "1d1hz4szh1kvwhsw7w2zxa6q5ndrk3qy6hj289l1b8k3xi5s554m"))))
+ "1fkq4sqldvf6a25mm2qz95swv1qjg464736091w51djiwqbjyin9"))))
(native-inputs '())
(inputs
`(("zlib" ,zlib)
(define-public gpgme
(package
(name "gpgme")
- (version "1.11.1")
+ (version "1.13.0")
(source
(origin
(method url-fetch)
".tar.bz2"))
(sha256
(base32
- "0vxx5xaag3rhp4g2arp5qm77gvz4kj0m3hnpvhkdvqyjfhbi26rd"))))
+ "0c6676g0yhfsmy32i1dgwh5cx0ja8vhcqf4k08zad177m53kxcnl"))))
(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)))
(define-public python-gnupg
(package
(name "python-gnupg")
- (version "0.3.8")
+ (version "0.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-gnupg" version))
(sha256
(base32
- "0nkbs9c8f30lra7ca39kg91x8cyxn0jb61vih4qky839gpbwwwiq"))))
+ "03dc8whhvk7ccspbk8vzfhkxli8cd9zfbss5p597g4jldgy8s59d"))))
(build-system python-build-system)
(arguments
`(#:phases
(replace 'check
(lambda _
(substitute* "test_gnupg.py"
- ;; Exported keys don't have a version line!
- (("del k1\\[1\\]") "#")
;; Unsure why this test fails.
(("'test_search_keys'") "True")
(("def test_search_keys") "def disabled__search_keys"))
(setenv "USERNAME" "guixbuilder")
;; The doctests are extremely slow and sometimes time out,
;; so we disable them.
- (zero? (system* "python"
- "test_gnupg.py" "--no-doctests")))))))
+ (invoke "python"
+ "test_gnupg.py" "--no-doctests"))))))
(native-inputs
`(("gnupg" ,gnupg-1)))
(home-page "https://packages.python.org/python-gnupg/index.html")
(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
(define-public signing-party
(package
- (name "signing-party")
- (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
- "1n5bpcfpl9vg1xp6r1jhbyahrgdyxp05b5pria1rh4m0qnv8sifr"))))
- (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
- (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* "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))
- (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
+ (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)))
"gpglist" "gpg-mailkeys" "gpgparticipants")
'("caff" "pgp-clean" "pgp-fixkey" "gpgdir" "gpg-key2ps"
"gpglist" "gpg-mailkeys" "gpgparticipants"))
- (for-each
+ (for-each
(lambda (dir file)
(copy-file (string-append dir "/" file)
(string-append out "/share/man/man1/" file)))
'("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,
+ "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)
- (home-page "https://pgp-tools.alioth.debian.org/")))
+ ;; 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")))