Subject: [bug#30593] [PATCH] gnu: password-store: Fix compatibility with GnuPG 2.2.5.

From: Clément Lassieur <[email-masked]>
Date: Sat, 24 Feb 2018 12:51:39 +0100

* gnu/packages/patches/password-store-gnupg-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/password-utils.scm (password-store)[source]: Use it.
---
 gnu/local.mk                                       |  3 ++-
 gnu/packages/password-utils.scm                    |  5 ++--
 .../patches/password-store-gnupg-compat.patch      | 28 ++++++++++++++++++++++
 3 files changed, 33 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/password-store-gnupg-compat.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 287625526..ddc38e7a7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -13,7 +13,7 @@
 # Copyright © 2016, 2017 Efraim Flashner <[email-masked]>
 # Copyright © 2016, 2017 Jan Nieuwenhuizen <[email-masked]>
 # Copyright © 2017 Tobias Geerinckx-Rice <[email-masked]>
-# Copyright © 2017 Clément Lassieur <[email-masked]>
+# Copyright © 2017, 2018 Clément Lassieur <[email-masked]>
 # Copyright © 2017 Mathieu Othacehe <[email-masked]>
 # Copyright © 2017 Gábor Boskovits <[email-masked]>
 # Copyright © 2018 Amirouche Boubekki <[email-masked]>
@@ -958,6 +958,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/p7zip-CVE-2016-9296.patch		\
   %D%/packages/patches/p7zip-CVE-2017-17969.patch		\
   %D%/packages/patches/p7zip-remove-unused-code.patch		\
+  %D%/packages/patches/password-store-gnupg-compat.patch	\
   %D%/packages/patches/patchelf-page-size.patch			\
   %D%/packages/patches/patchelf-rework-for-arm.patch		\
   %D%/packages/patches/patchutils-xfail-gendiff-tests.patch	\
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 67e9379f8..f83c05a25 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016 Lukas Gradl <[email-masked]>
 ;;; Copyright © 2016 Alex Griffin <[email-masked]>
 ;;; Copyright © 2017 Leo Famulari <[email-masked]>
-;;; Copyright © 2017 Clément Lassieur <[email-masked]>
+;;; Copyright © 2017, 2018 Clément Lassieur <[email-masked]>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2017 Jelle Licht <[email-masked]>
 ;;; Copyright © 2017 Eric Bavier <[email-masked]>
@@ -342,7 +342,8 @@ any X11 window.")
                               name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
+                "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))
+              (patches (search-patches "password-store-gnupg-compat.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/patches/password-store-gnupg-compat.patch b/gnu/packages/patches/password-store-gnupg-compat.patch
new file mode 100644
index 000000000..75c636202
--- /dev/null
+++ b/gnu/packages/patches/password-store-gnupg-compat.patch
@@ -0,0 +1,28 @@
+Copied from upstream mailing list:
+https://lists.zx2c4.com/pipermail/password-store/2018-February/003216.html.
+
+From 9b0c86159d754cc88dd3642564eed527153dfb7f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= <[email-masked]>
+Date: Sat, 24 Feb 2018 12:05:46 +0100
+Subject: [PATCH] tests: fix compatibility with GnuPG 2.2.5
+
+---
+ tests/t0300-reencryption.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/t0300-reencryption.sh b/tests/t0300-reencryption.sh
+index 6d5811d..6d15364 100755
+--- a/tests/t0300-reencryption.sh
++++ b/tests/t0300-reencryption.sh
+@@ -10,7 +10,7 @@ canonicalize_gpg_keys() {
+ 	$GPG --list-keys --with-colons "$@" | sed -n 's/sub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u
+ }
+ gpg_keys_from_encrypted_file() {
+-	$GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | cut -d ' ' -f 5 | LC_ALL=C sort -u
++	$GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | grep "public key is" | cut -d ' ' -f 5 | LC_ALL=C sort -u
+ }
+ gpg_keys_from_group() {
+ 	local output="$($GPG --list-config --with-colons | sed -n "s/^cfg:group:$1:\\(.*\\)/\\1/p" | head -n 1)"
+-- 
+2.16.2
+
-- 
2.16.2