X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/9d14a67d4bd47559c8a63fc7a35af606f821cfff..752843d92349372454a9a6e6afc024a2c7d914f2:/gnu/packages/gnupg.scm diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index b957eb66b2..18fc76ef35 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -1,22 +1,23 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès ;;; Copyright © 2013, 2015, 2018 Andreas Enge ;;; Copyright © 2014, 2018 Eric Bavier -;;; Copyright © 2014, 2015, 2016 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus ;;; Copyright © 2016 Christopher Allan Webber -;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2016, 2017 Nikita ;;; Copyright © 2016 Christopher Baines ;;; Copyright © 2016 Mike Gerwitz ;;; Copyright © 2016 Troy Sankey -;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017, 2020 Leo Famulari ;;; Copyright © 2017 Petter -;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Marius Bakke ;;; Copyright © 2018 Björn Höfling ;;; Copyright © 2019 Mathieu Othacehe +;;; Copyright © 2020 Fredrik Salomonsson ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +68,7 @@ #:use-module (gnu packages tor) #:use-module (gnu packages web) #:use-module (gnu packages xorg) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (guix packages) #:use-module (guix download) @@ -106,6 +108,7 @@ (match (string-take target (string-index target #\-)) ("armhf" "arm-unknown-linux-gnueabi") + ("mips64el" "mips-unknown-linux-gnu") (x (string-append x "-unknown-linux-gnu"))))) (symlink @@ -148,7 +151,10 @@ Daemon and possibly more in the future.") ;; the 'gpg-error-config' it runs is the native one---i.e., the wrong one. `(#:configure-flags (list (string-append "--with-gpg-error-prefix=" - (assoc-ref %build-inputs "libgpg-error-host"))))) + (assoc-ref %build-inputs "libgpg-error-host")) + ;; When cross-compiling, _gcry_mpih_lshift etc are undefined + ,@(if (%current-target-system) '("--disable-asm") + '())))) (outputs '("out" "debug")) (home-page "https://gnupg.org/") (synopsis "Cryptographic function library") @@ -164,7 +170,7 @@ generation.") (define-public libassuan (package (name "libassuan") - (version "2.5.3") + (version "2.5.4") (source (origin (method url-fetch) @@ -172,7 +178,7 @@ generation.") version ".tar.bz2")) (sha256 (base32 - "00p7cpvzf0q3qwcgg51r9d0vbab4qga2xi8wpk2fgd36710b1g4i")))) + "1w7vnnycq4z7gf4bk38pi4hrb8qrrzgfpz3cd7frwldxnfbfx060")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error) @@ -192,7 +198,7 @@ provided.") (define-public libksba (package (name "libksba") - (version "1.3.5") + (version "1.5.0") (source (origin (method url-fetch) @@ -201,7 +207,7 @@ provided.") version ".tar.bz2")) (sha256 (base32 - "0h53q4sns1jz1pkmhcz5wp9qrfn9f5g9i3vjv6dafwzzlvblyi21")))) + "1fm0mf3wq9fmyi1rmc1vk2fafn6liiw2mgxml3g7ybbb44lz2jmf")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error))) @@ -251,14 +257,15 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.19") + (version "2.2.27") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) + (patches (search-patches "gnupg-default-pinentry.patch")) (sha256 (base32 - "1h6yx6sdpz3lf9gdppgxqcf73baynr8gflmh43286fkgw3058994")))) + "1693s2rp9sjwvdslj94n03wnb6rxysjy0dli0q1698af044h1ril")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -321,52 +328,6 @@ libskba (working with X.509 certificates and CMS data).") (properties '((ftp-server . "ftp.gnupg.org") (ftp-directory . "/gcrypt/gnupg"))))) -(define-public gnupg-2.0 - (package (inherit gnupg) - (version "2.0.30") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/gnupg/gnupg-" version - ".tar.bz2")) - (sha256 - (base32 - "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3")))) - (native-inputs '()) - (inputs - `(("adns" ,adns) - ("bzip2" ,bzip2) - ("curl" ,curl) - ("libassuan" ,libassuan) - ("libgcrypt" ,libgcrypt) - ("libgpg-error" ,libgpg-error) - ("libksba" ,libksba) - ("pth" ,pth) - ("openldap" ,openldap) - ("zlib" ,zlib) - ("readline" ,readline))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-config-files - (lambda _ - (substitute* "tests/openpgp/Makefile.in" - (("/bin/sh") (which "sh"))) - #t)) - (add-after 'install 'rename-v2-commands - (lambda* (#:key outputs #:allow-other-keys) - ;; Upstream suggests removing the trailing '2' from command names: - ;; . - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion (string-append out "/bin") - (rename-file "gpgv2" "gpgv") - (rename-file "gpg2" "gpg") - - ;; Keep the old name around to ease transition. - (symlink "gpgv" "gpgv2") - (symlink "gpg" "gpg2") - #t))))))) - (properties `((superseded . ,gnupg))))) - (define-public gnupg-1 (package (inherit gnupg) (version "1.4.23") @@ -396,13 +357,13 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.13.1") + (version "1.15.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2")) (sha256 - (base32 "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4")))) + (base32 "1bg13l5s8x9p1v0jyv29n84bay27pflindpzjsc9gj7i4wdkrg7f")))) (build-system gnu-build-system) (native-inputs `(("gnupg" ,gnupg))) @@ -460,7 +421,7 @@ gpgpme starting with version 1.7.") (define-public guile-gcrypt (package (name "guile-gcrypt") - (version "0.2.1") + (version "0.3.0") (home-page "https://notabug.org/cwebber/guile-gcrypt") (source (origin (method git-fetch) @@ -469,35 +430,36 @@ gpgpme starting with version 1.7.") (commit (string-append "v" version)))) (sha256 (base32 - "0n232iyayc46f7hywmjw0jr7pbmmz5h4b04jskhkzz9gxz0ci99c")) - (file-name (string-append name "-" version "-checkout")))) + "0m29fg4pdfifnqqsa437zc5c1bhbfh62mc69ba25ak4x2cla41ll")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments - ;; When cross-compiling, the bash script libgcrypt-config provided by - ;; libgcrypt must be accessible during configure phase. - `(,@(if (%current-target-system) - '(#:phases - (modify-phases %standard-phases - (add-before 'configure 'add-libgrypt-config - (lambda _ - (setenv "PATH" (string-append - (assoc-ref %build-inputs "libgcrypt") - "/bin:" - (getenv "PATH"))) - #t)))) - '()))) + ;; Work around to achieve reproducible + ;; builds. + '(#:parallel-build? #f + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'add-libgrypt-config + (lambda* (#:key inputs target #:allow-other-keys) + (when target + ;; When cross-compiling, the bash script 'libgcrypt-config' + ;; must be accessible during the configure phase. + (setenv "PATH" + (string-append (assoc-ref inputs "libgcrypt") + "/bin:" (getenv "PATH"))))))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) ("texinfo" ,texinfo) - ("guile" ,guile-2.2))) + ("guile" ,guile-3.0))) (inputs - `(("guile" ,guile-2.2) + `(("guile" ,guile-3.0) ("libgcrypt" ,libgcrypt))) (synopsis "Cryptography library for Guile using Libgcrypt") (description - "Guile-Gcrypt provides a Guile 2.x interface to a subset of the + "Guile-Gcrypt provides a Guile 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 @@ -507,21 +469,27 @@ interface (FFI) of Guile.") (define-public guile2.0-gcrypt (package (inherit guile-gcrypt) (name "guile2.0-gcrypt") + (native-inputs + `(("guile" ,guile-2.0) + ,@(alist-delete "guile" (package-native-inputs guile-gcrypt)))) (inputs `(("guile" ,guile-2.0) ,@(alist-delete "guile" (package-inputs guile-gcrypt)))))) -(define-public guile3.0-gcrypt +(define-public guile2.2-gcrypt (package (inherit guile-gcrypt) - (name "guile3.0-gcrypt") + (name "guile2.2-gcrypt") (native-inputs - `(("guile" ,guile-next) + `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-native-inputs guile-gcrypt)))) (inputs - `(("guile" ,guile-next) + `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-gcrypt)))))) +(define-public guile3.0-gcrypt + (deprecated-package "guile3.0-gcrypt" guile-gcrypt)) + (define-public python-gpg (package (name "python-gpg") @@ -714,7 +682,7 @@ PGP keysigning parties.") (define-public signing-party (package (name "signing-party") - (version "2.10") + (version "2.11") (home-page "https://salsa.debian.org/signing-party-team/signing-party") (source (origin (method git-fetch) @@ -724,7 +692,7 @@ PGP keysigning parties.") (file-name (git-file-name name version)) (sha256 (base32 - "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r")))) + "1aig5ssabzbk4mih7xd04vgr931bw0flbi8dz902wlr610gyv5s5")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf-wrapper) @@ -817,14 +785,14 @@ including tools for signing keys, keyring analysis, and party preparation. (define-public pinentry-tty (package (name "pinentry-tty") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/pinentry/pinentry-" version ".tar.bz2")) (sha256 (base32 - "0w35ypl960pczg5kp6km3dyr000m1hf0vpwwlh72jjkjza36c1v8")))) + "0zx5vg6wws2sp2yxwi01b8i1pnsqkydncpj7x0p8xl9y05ja04nd")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-pinentry-tty"))) @@ -858,6 +826,8 @@ enter a passphrase when required by @code{gpg} or other software."))) (package (inherit pinentry-tty) (name "pinentry-gtk2") + (arguments + `(#:configure-flags '("--enable-fallback-curses"))) (inputs `(("gtk+" ,gtk+-2) ("glib" ,glib) @@ -876,7 +846,8 @@ passphrase when @code{gpg} is run and needs it."))) ("glib" ,glib) ,@(package-inputs pinentry-tty))) (arguments - `(#:configure-flags '("--enable-pinentry-gnome3"))) + `(#:configure-flags '("--enable-pinentry-gnome3" + "--enable-fallback-curses"))) (description "Pinentry provides a console and a GUI designed for use with GNOME@tie{}3 that allows users to enter a passphrase when required by @code{gpg} or other @@ -886,6 +857,8 @@ software."))) (package (inherit pinentry-tty) (name "pinentry-qt") + (arguments + `(#:configure-flags '("--enable-fallback-curses"))) (inputs `(("qtbase" ,qtbase) ,@(package-inputs pinentry-tty))) @@ -897,12 +870,9 @@ passphrase when @code{gpg} is run and needs it."))) (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") + '(#:configure-flags '("--enable-pinentry-efl" + "--enable-fallback-curses") #:phases (modify-phases %standard-phases (replace 'bootstrap @@ -917,10 +887,62 @@ passphrase when @code{gpg} is run and needs it."))) `(("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 + "Pinentry provides a console and a graphical interface for @acronym{EFL, +the Enlightenment Foundation Libraries} that allows users to enter a passphrase when @code{gpg} is run and needs it."))) +(define-public pinentry-rofi + (package + (name "pinentry-rofi") + (version "2.0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/plattfot/pinentry-rofi/") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0kjzvgni9srl8h5c52pqrvgdxs6avv0nhgk19apd97sx10qdwdhk")))) + (build-system gnu-build-system) + (arguments + `(#:modules + ((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + (modify-phases + %standard-phases + (add-after 'install 'hall-wrap-binaries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (site (string-append out "/share/guile/site")) + (rofi-bin (string-append (assoc-ref inputs "rofi") "/bin"))) + (match (scandir site) + (("." ".." version) + (wrap-program + (string-append bin "pinentry-rofi") + (list "PATH" ":" 'prefix `(,rofi-bin))) + #t))))) + (add-after 'compress-documentation 'installcheck + (lambda* rest + (invoke "make" "installcheck")))))) + (native-inputs + `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-3.0) + ("rofi" ,rofi))) + (synopsis "Rofi GUI for GnuPG's passphrase input") + (description "Pinentry-rofi is a simple graphical user interface for +passphrase or PIN when required by @code{gpg} or other software. It is using +the Rofi application launcher as the user interface. Which makes it combined +with @code{rofi-pass} a good front end for @code{password-store}.") + (home-page "https://github.com/plattfot/pinentry-rofi/") + (license license:gpl3+))) + (define-public pinentry (package (inherit pinentry-gtk2) (name "pinentry"))) @@ -997,6 +1019,16 @@ however, pgpdump produces more detailed and easier to understand output.") (base32 "1cbpc45f8qbdkd62p12s3q2rdq6fa5xdzwmcwd3xrj55bzkspnwm")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gnupg (assoc-ref inputs "gnupg"))) + (wrap-program (string-append out "/bin/gpa") + `("PATH" ":" prefix (,(string-append gnupg "/bin")))) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -1112,15 +1144,17 @@ over.") (define-public jetring (package (name "jetring") - (version "0.27") + (version "0.29") (source (origin - (method url-fetch) - (uri (string-append "mirror://debian/pool/main/j/" name "/" - name "_" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/debian/jetring") + (commit (string-append "debian/" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0jy0x5zj7v87xgyldlsx1knzp0mv10wzamblrw1b61i2m1ii4pxz")))) + "1acbx2vnbkms1c0wgcnh05d4g359sg5z0aiw541vx2qq9sgdhlv6")))) (build-system gnu-build-system) (arguments '(#:phases