Gentoo Archives: gentoo-commits

From: Conrad Kostecki <conikost@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-perl/GnuPG-Interface/files/
Date: Mon, 01 Nov 2021 17:56:03
Message-Id: 1635789342.0dae41e8d74ac1f793990cfbef93639a031ab6e6.conikost@gentoo
1 commit: 0dae41e8d74ac1f793990cfbef93639a031ab6e6
2 Author: Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at>
3 AuthorDate: Mon Nov 1 16:23:13 2021 +0000
4 Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
5 CommitDate: Mon Nov 1 17:55:42 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0dae41e8
7
8 dev-perl/GnuPG-Interface: remove unused patch(es)
9
10 Closes: https://github.com/gentoo/gentoo/pull/22783
11 Package-Manager: Portage-3.0.28, Repoman-3.0.3
12 Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at>
13 Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
14
15 ...spelling-error-settting-should-be-setting.patch | 35 ---
16 ...ce-0.520.0-0002-Generalize-the-test-suite.patch | 151 -----------
17 ...dity-of-an-key-when-we-have-established-n.patch | 37 ---
18 ...04-ensure-that-test-covers-all-signatures.patch | 35 ---
19 ...20.0-0005-add-gpg_is_modern-to-test-suite.patch | 39 ---
20 ...G-2.1-reports-more-detail-about-secret-ke.patch | 120 --------
21 ...match-plaintext-output-across-versions-of.patch | 95 -------
22 ...fault_key_passphrase-when-passphrase-come.patch | 29 --
23 ...0.520.0-0009-clean-up-trailing-whitespace.patch | 112 --------
24 ...-0.520.0-0010-fix-capitalization-of-GnuPG.patch | 35 ---
25 ...0-0011-ommand_args-should-be-command_args.patch | 21 --
26 ...rints-as-inputs-during-tests-to-demonstra.patch | 265 ------------------
27 ...20.0-0013-move-key-files-to-generic-names.patch | 33 ---
28 ...0014-fix-spelling-s-convience-convenience.patch | 53 ----
29 ...-new-secret-key-with-different-passphrase.patch | 117 --------
30 ...-gpg-without-explicit-passphrase-agent-pi.patch | 302 ---------------------
31 ...uPG-agent-before-and-after-the-test-suite.patch | 42 ---
32 ...t-temporary-homedir-during-the-test-suite.patch | 110 --------
33 ...-work-with-gpg1-assuming-plain-gpg-is-mod.patch | 51 ----
34 .../GnuPG-Interface-0.520.0-0030-gpg-2.2.6.patch | 54 ----
35 .../GnuPG-Interface-0.520.0-0031-gpg-2.2.8.patch | 64 -----
36 21 files changed, 1800 deletions(-)
37
38 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0001-fix-spelling-error-settting-should-be-setting.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0001-fix-spelling-error-settting-should-be-setting.patch
39 deleted file mode 100644
40 index fcec6100907..00000000000
41 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0001-fix-spelling-error-settting-should-be-setting.patch
42 +++ /dev/null
43 @@ -1,35 +0,0 @@
44 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
45 -Date: Tue, 13 Sep 2016 07:26:00 +0200
46 -Subject: fix spelling error ("settting" should be "setting")
47 -
48 ----
49 - README | 2 +-
50 - lib/GnuPG/Interface.pm | 2 +-
51 - 2 files changed, 2 insertions(+), 2 deletions(-)
52 -
53 -diff --git a/README b/README
54 -index fcb982a..f457577 100644
55 ---- a/README
56 -+++ b/README
57 -@@ -6,7 +6,7 @@ SYNOPSIS
58 - use IO::Handle;
59 - use GnuPG::Interface;
60 -
61 -- # settting up the situation
62 -+ # setting up the situation
63 - my $gnupg = GnuPG::Interface->new();
64 - $gnupg->options->hash_init( armor => 1,
65 - homedir => '/home/foobar' );
66 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
67 -index f952f3e..83a4b1a 100644
68 ---- a/lib/GnuPG/Interface.pm
69 -+++ b/lib/GnuPG/Interface.pm
70 -@@ -834,7 +834,7 @@ GnuPG::Interface - Perl interface to GnuPG
71 - use IO::Handle;
72 - use GnuPG::Interface;
73 -
74 -- # settting up the situation
75 -+ # setting up the situation
76 - my $gnupg = GnuPG::Interface->new();
77 - $gnupg->options->hash_init( armor => 1,
78 - homedir => '/home/foobar' );
79
80 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0002-Generalize-the-test-suite.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0002-Generalize-the-test-suite.patch
81 deleted file mode 100644
82 index d0d3e6ccdf9..00000000000
83 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0002-Generalize-the-test-suite.patch
84 +++ /dev/null
85 @@ -1,151 +0,0 @@
86 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
87 -Date: Tue, 13 Sep 2016 10:38:12 -0400
88 -Subject: Generalize the test suite
89 -
90 -The test suite currently assumes it knows something about the internal
91 -state of GnuPG's homedir.
92 -
93 -It's safer and less brittle to rely explicitly on the public interface
94 -that GnuPG has committed to, such as --import-keys and --list-keys,
95 -rather than assuming that certain files are in certain places in the
96 -GnuPG homedir.
97 -
98 -It's also better to create a fresh homedir and allow GnuPG to populate
99 -it during the test suite, cleaning it up at the end, rather than hope
100 -that GnuPG will leave a pre-existing homedir untouched.
101 -
102 -With this change, many more of the tests pass when /usr/bin/gpg is
103 -provided by GnuPG 2.1.
104 ----
105 - t/000_setup.t | 28 ++++++++++++++++++++++++++++
106 - t/MyTestSpecific.pm | 2 +-
107 - t/zzz_cleanup.t | 17 +++++++++++++++++
108 - test/fake-pinentry.pl | 28 ++++++++++++++++++++++++++++
109 - test/{options => gpg.conf} | 0
110 - test/secret-keys/1.0.test | 4 ++--
111 - 6 files changed, 76 insertions(+), 3 deletions(-)
112 - create mode 100644 t/000_setup.t
113 - create mode 100644 t/zzz_cleanup.t
114 - create mode 100755 test/fake-pinentry.pl
115 - rename test/{options => gpg.conf} (100%)
116 -
117 -diff --git a/t/000_setup.t b/t/000_setup.t
118 -new file mode 100644
119 -index 0000000..7f7f7b0
120 ---- /dev/null
121 -+++ b/t/000_setup.t
122 -@@ -0,0 +1,28 @@
123 -+#!/usr/bin/perl -w
124 -+
125 -+use strict;
126 -+use English qw( -no_match_vars );
127 -+
128 -+use lib './t';
129 -+use MyTest;
130 -+use MyTestSpecific;
131 -+use Cwd;
132 -+use File::Path qw (make_path);
133 -+use File::Copy;
134 -+
135 -+TEST
136 -+{
137 -+ make_path('test/gnupghome', { mode => 0700 });
138 -+ my $agentconf = IO::File->new( "> test/gnupghome/gpg-agent.conf" );
139 -+ $agentconf->write("pinentry-program " . getcwd() . "/test/fake-pinentry.pl\n");
140 -+ $agentconf->close();
141 -+ copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
142 -+ reset_handles();
143 -+
144 -+ my $pid = $gnupg->import_keys(command_args => [ 'test/pubring.gpg', 'test/secring.gpg' ],
145 -+ options => [ 'batch'],
146 -+ handles => $handles);
147 -+ waitpid $pid, 0;
148 -+
149 -+ return $CHILD_ERROR == 0;
150 -+};
151 -diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
152 -index 053b749..1af98ae 100644
153 ---- a/t/MyTestSpecific.pm
154 -+++ b/t/MyTestSpecific.pm
155 -@@ -40,7 +40,7 @@ use vars qw( @ISA @EXPORT
156 -
157 - $gnupg = GnuPG::Interface->new( passphrase => 'test' );
158 -
159 --$gnupg->options->hash_init( homedir => 'test',
160 -+$gnupg->options->hash_init( homedir => 'test/gnupghome',
161 - armor => 1,
162 - meta_interactive => 0,
163 - meta_signing_key_id => '0xF950DA9C',
164 -diff --git a/t/zzz_cleanup.t b/t/zzz_cleanup.t
165 -new file mode 100644
166 -index 0000000..5c03a72
167 ---- /dev/null
168 -+++ b/t/zzz_cleanup.t
169 -@@ -0,0 +1,17 @@
170 -+#!/usr/bin/perl -w
171 -+
172 -+use strict;
173 -+use English qw( -no_match_vars );
174 -+
175 -+use lib './t';
176 -+use MyTest;
177 -+use MyTestSpecific;
178 -+use File::Path qw (remove_tree);
179 -+
180 -+# this is actually no test, just cleanup.
181 -+TEST
182 -+{
183 -+ my $err = [];
184 -+ remove_tree('test/gnupghome', {error => \$err});
185 -+ return ! @$err;
186 -+};
187 -diff --git a/test/fake-pinentry.pl b/test/fake-pinentry.pl
188 -new file mode 100755
189 -index 0000000..12d3611
190 ---- /dev/null
191 -+++ b/test/fake-pinentry.pl
192 -@@ -0,0 +1,28 @@
193 -+#!/usr/bin/perl -w
194 -+# Use this for your test suites when a perl interpreter is available.
195 -+#
196 -+# The encrypted keys in your test suite that you expect to work must
197 -+# be locked with a passphrase of "test"
198 -+#
199 -+# Author: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
200 -+#
201 -+# License: This trivial work is hereby explicitly placed into the
202 -+# public domain. Anyone may reuse it, modify it, redistribute it for
203 -+# any purpose.
204 -+
205 -+use strict;
206 -+use warnings;
207 -+
208 -+# turn off buffering
209 -+$| = 1;
210 -+
211 -+print "OK This is only for test suites, and should never be used in production\n";
212 -+while (<STDIN>) {
213 -+ chomp;
214 -+ next if (/^$/);
215 -+ next if (/^#/);
216 -+ print ("D test\n") if (/^getpin/i);
217 -+ print "OK\n";
218 -+ exit if (/^bye/i);
219 -+}
220 -+1;
221 -diff --git a/test/options b/test/gpg.conf
222 -similarity index 100%
223 -rename from test/options
224 -rename to test/gpg.conf
225 -diff --git a/test/secret-keys/1.0.test b/test/secret-keys/1.0.test
226 -index 5999484..129d472 100644
227 ---- a/test/secret-keys/1.0.test
228 -+++ b/test/secret-keys/1.0.test
229 -@@ -1,5 +1,5 @@
230 --test/secring.gpg
231 ------------------
232 -+test/gnupghome/secring.gpg
233 -+--------------------------
234 - sec 1024D/F950DA9C 2000-02-06
235 - uid GnuPG test key (for testing purposes only)
236 - uid Foo Bar (1)
237
238 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0003-subkey-validity-of-an-key-when-we-have-established-n.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0003-subkey-validity-of-an-key-when-we-have-established-n.patch
239 deleted file mode 100644
240 index 23fbf97fee2..00000000000
241 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0003-subkey-validity-of-an-key-when-we-have-established-n.patch
242 +++ /dev/null
243 @@ -1,37 +0,0 @@
244 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
245 -Date: Tue, 13 Sep 2016 11:35:31 -0400
246 -Subject: subkey validity of an key when we have established no trust anchors
247 -
248 -This apparently isn't tested by deep comparisons, though, so it was
249 -never caught.
250 ----
251 - t/get_public_keys.t | 2 +-
252 - t/get_secret_keys.t | 2 +-
253 - 2 files changed, 2 insertions(+), 2 deletions(-)
254 -
255 -diff --git a/t/get_public_keys.t b/t/get_public_keys.t
256 -index 53db021..73e320b 100644
257 ---- a/t/get_public_keys.t
258 -+++ b/t/get_public_keys.t
259 -@@ -175,7 +175,7 @@ TEST
260 - ];
261 -
262 - my $subkey = GnuPG::SubKey->new
263 -- ( validity => 'u',
264 -+ ( validity => '-',
265 - length => 768,
266 - algo_num => 16,
267 - hex_id => 'ADB99D9C2E854A6B',
268 -diff --git a/t/get_secret_keys.t b/t/get_secret_keys.t
269 -index 3a1d99f..7bba083 100644
270 ---- a/t/get_secret_keys.t
271 -+++ b/t/get_secret_keys.t
272 -@@ -48,7 +48,7 @@ TEST
273 -
274 -
275 - my $subkey = GnuPG::SubKey->new
276 -- ( validity => 'u',
277 -+ ( validity => '-',
278 - length => 768,
279 - algo_num => 16,
280 - hex_id => 'ADB99D9C2E854A6B',
281
282 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0004-ensure-that-test-covers-all-signatures.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0004-ensure-that-test-covers-all-signatures.patch
283 deleted file mode 100644
284 index 1743b7d9177..00000000000
285 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0004-ensure-that-test-covers-all-signatures.patch
286 +++ /dev/null
287 @@ -1,35 +0,0 @@
288 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
289 -Date: Tue, 13 Sep 2016 11:39:04 -0400
290 -Subject: ensure that test covers all signatures
291 -
292 -The earlier test wasn't reporting on one of the known self-sigs for
293 -the test key for some reason.
294 -
295 -This change ensures that all known signatures are present.
296 ----
297 - t/get_public_keys.t | 12 +++++++++++-
298 - 1 file changed, 11 insertions(+), 1 deletion(-)
299 -
300 -diff --git a/t/get_public_keys.t b/t/get_public_keys.t
301 -index 73e320b..9e96f7d 100644
302 ---- a/t/get_public_keys.t
303 -+++ b/t/get_public_keys.t
304 -@@ -83,7 +83,17 @@ TEST
305 - date_string => '2000-02-06',
306 - hex_id => '53AE596EF950DA9C',
307 - sig_class => 0x13,
308 -- validity => '!'));
309 -+ validity => '!'),
310 -+ GnuPG::Signature->new(
311 -+ date => 1177086329,
312 -+ algo_num => 17,
313 -+ is_exportable => 1,
314 -+ user_id_string => 'GnuPG test key (for testing purposes only)',
315 -+ date_string => '2007-04-20',
316 -+ hex_id => '53AE596EF950DA9C',
317 -+ sig_class => 0x13,
318 -+ validity => '!'),
319 -+ );
320 -
321 - my $uid1 = GnuPG::UserId->new( as_string => 'Foo Bar (1)',
322 - validity => '-');
323
324 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0005-add-gpg_is_modern-to-test-suite.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0005-add-gpg_is_modern-to-test-suite.patch
325 deleted file mode 100644
326 index 0016fa755c0..00000000000
327 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0005-add-gpg_is_modern-to-test-suite.patch
328 +++ /dev/null
329 @@ -1,39 +0,0 @@
330 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
331 -Date: Tue, 13 Sep 2016 14:31:38 -0400
332 -Subject: add $gpg_is_modern to test suite
333 -
334 -MyTestSpecific.pm now produces a new variable indicating whether it
335 -the version of GnuPG we run against is from the "Modern" line of GnuPG
336 -development (2.1 or later). This will be useful when comparing output
337 -that we can't expect from earlier versions.
338 ----
339 - t/MyTestSpecific.pm | 7 +++++--
340 - 1 file changed, 5 insertions(+), 2 deletions(-)
341 -
342 -diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
343 -index 1af98ae..a309698 100644
344 ---- a/t/MyTestSpecific.pm
345 -+++ b/t/MyTestSpecific.pm
346 -@@ -29,17 +29,20 @@ use GnuPG::Handles;
347 - use vars qw( @ISA @EXPORT
348 - $stdin $stdout $stderr
349 - $gpg_program $handles $gnupg
350 -- %texts
351 -+ %texts $gpg_is_modern
352 - );
353 -
354 - @ISA = qw( Exporter );
355 - @EXPORT = qw( stdin stdout stderr
356 - gnupg_program handles reset_handles
357 -- texts file_match
358 -+ texts file_match gpg_is_modern
359 - );
360 -
361 - $gnupg = GnuPG::Interface->new( passphrase => 'test' );
362 -
363 -+my @version = split('\.', $gnupg->version());
364 -+$gpg_is_modern = ($version[0] > 2 || ($version[0] == 2 && $version[1] >= 1));
365 -+
366 - $gnupg->options->hash_init( homedir => 'test/gnupghome',
367 - armor => 1,
368 - meta_interactive => 0,
369
370 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0006-Modern-GnuPG-2.1-reports-more-detail-about-secret-ke.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0006-Modern-GnuPG-2.1-reports-more-detail-about-secret-ke.patch
371 deleted file mode 100644
372 index bea8bfc68df..00000000000
373 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0006-Modern-GnuPG-2.1-reports-more-detail-about-secret-ke.patch
374 +++ /dev/null
375 @@ -1,120 +0,0 @@
376 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
377 -Date: Tue, 13 Sep 2016 14:12:40 -0400
378 -Subject: Modern GnuPG (2.1) reports more detail about secret keys
379 -
380 -the GnuPG "modern" suite (version 2.1 or later) reports more detail
381 -about secret keys than previous versions did. In particular, it
382 -reports stored ownertrust, public key data, and designated revokers
383 -for secret keys. Older versions only reported those attributes for
384 -public keys.
385 -
386 -This patch adjusts the test suite to ensure that our handmade key
387 -matches the produced key when /usr/bin/gpg is supplied by the modern
388 -suite.
389 ----
390 - t/get_secret_keys.t | 66 +++++++++++++++++++++++++++++++++++++++++++----------
391 - 1 file changed, 54 insertions(+), 12 deletions(-)
392 -
393 -diff --git a/t/get_secret_keys.t b/t/get_secret_keys.t
394 -index 7bba083..c798cce 100644
395 ---- a/t/get_secret_keys.t
396 -+++ b/t/get_secret_keys.t
397 -@@ -23,16 +23,34 @@ TEST
398 - return 0 unless @returned_keys == 1;
399 -
400 - $given_key = shift @returned_keys;
401 --
402 -- $handmade_key = GnuPG::PrimaryKey->new
403 -- ( length => 1024,
404 -+ my $pubkey_data = [
405 -+ Math::BigInt->from_hex('0x'.
406 -+ '88FCAAA5BCDCD52084D46143F44ED1715A339794641158DE03AA2092AFD3174E3DCA2CB7DF2DDC6FEDF7C3620F5A8BDAD06713E6153F8748DD76CB97305F30CBA8F8801DB47FAC11EED725F55672CB9BDAD629178A677CBB089B3E8AE0D9A9AD7741697A35F2868C62D25670994A92D810480173DC24263EEA0F103A43C0B64B'),
407 -+ Math::BigInt->from_hex('0x'.
408 -+ '8F2A3842C70FF17660CBB78C78FC93F534AB9A17'),
409 -+ Math::BigInt->from_hex('0x'.
410 -+ '83E348C2AA65F56DE84E8FDCE6DA7B0991B1C75EC8CA446FA85869A43350907BFF36BE512385E8E7E095578BB2138C04E318495873218286DE2B8C86F36EA670135434967AC798EBA28581F709F0C6B696EB512D3E561E381A06E4B5239BCC655015F9A926C74E4B859B26EAD604F208A556511A76A40EDCD9C38E6BD82CCCB4'),
411 -+ Math::BigInt->from_hex('0x'.
412 -+ '80DE04C85E30C9D62C13F90CFF927A84A5A59D0900B3533D4D6193FEF8C5DAEF9FF8A7D5F76B244FBC17644F50D524E0B19CD3A4B5FC2D78DAECA3FE58FA1C1A64E6C7B96C4EE618173543163A72EF954DFD593E84342699096E9CA76578AC1DE3D893BCCD0BF470CEF625FAF816A0F503EF75C18C6173E35C8675AF919E5704')
413 -+ ];
414 -+
415 -+
416 -+ my $args = {
417 -+ length => 1024,
418 - algo_num => 17,
419 - hex_id => '53AE596EF950DA9C',
420 - creation_date => 949813093,
421 - creation_date_string => '2000-02-06',
422 -- owner_trust => '', # secret keys do not report ownertrust?
423 -+ owner_trust => '-',
424 - usage_flags => 'scaESCA',
425 -- );
426 -+ pubkey_data => $pubkey_data,
427 -+ };
428 -+ if (!$gpg_is_modern) {
429 -+ # older versions don't report ownertrust or pubkey_data for secret keys:
430 -+ delete $args->{pubkey_data};
431 -+ $args->{owner_trust} = '';
432 -+ }
433 -+ $handmade_key = GnuPG::PrimaryKey->new($args);
434 -
435 - $handmade_key->fingerprint
436 - ( GnuPG::Fingerprint->new( as_hex_string =>
437 -@@ -42,20 +60,42 @@ TEST
438 -
439 - $handmade_key->push_user_ids(
440 - GnuPG::UserId->new( as_string => 'GnuPG test key (for testing purposes only)',
441 -- validity => ''), # secret keys do not report uid validity?
442 -+ validity => $args->{owner_trust}),
443 - GnuPG::UserId->new( as_string => 'Foo Bar (1)',
444 -- validity => '')); # secret keys do not report uid validity?
445 --
446 --
447 -- my $subkey = GnuPG::SubKey->new
448 -- ( validity => '-',
449 -+ validity => $args->{owner_trust}));
450 -+
451 -+ my $revoker = GnuPG::Revoker->new
452 -+ ( algo_num => 17,
453 -+ class => 0x80,
454 -+ fingerprint => GnuPG::Fingerprint->new( as_hex_string =>
455 -+ '4F863BBBA8166F0A340F600356FFD10A260C4FA3'),
456 -+ );
457 -+
458 -+ my $subkey_pub_data = [
459 -+ Math::BigInt->from_hex('0x'.
460 -+ '8831982DADC4C5D05CBB01D9EAF612131DDC9C24CEA7246557679423FB0BA42F74D10D8E7F5564F6A4FB8837F8DC4A46571C19B122E6DF4B443D15197A6A22688863D0685FADB6E402316DAA9B560D1F915475364580A67E6DF0A727778A5CF3'),
461 -+ Math::BigInt->from_hex('0x'.
462 -+ '6'),
463 -+ Math::BigInt->from_hex('0x'.
464 -+ '2F3850FF130C6AC9AA0962720E86539626FAA9B67B33A74DFC0DE843FF3E90E43E2F379EE0182D914FA539CCCF5C83A20DB3A7C45E365B8A2A092E799A3DFF4AD8274EB977BAAF5B1AFB2ACB8D6F92454F01682F555565E73E56793C46EF7C3E')
465 -+ ];
466 -+
467 -+ my $sub_args = {
468 -+ validity => '-',
469 - length => 768,
470 - algo_num => 16,
471 - hex_id => 'ADB99D9C2E854A6B',
472 - creation_date => 949813119,
473 - creation_date_string => '2000-02-06',
474 - usage_flags => 'e',
475 -- );
476 -+ pubkey_data => $subkey_pub_data,
477 -+ };
478 -+
479 -+ if (!$gpg_is_modern) {
480 -+ # older versions do not report pubkey data for secret keys
481 -+ delete $sub_args->{pubkey_data};
482 -+ }
483 -+ my $subkey = GnuPG::SubKey->new($sub_args);
484 -
485 - $subkey->fingerprint
486 - ( GnuPG::Fingerprint->new( as_hex_string =>
487 -@@ -64,6 +104,8 @@ TEST
488 - );
489 -
490 - $handmade_key->push_subkeys( $subkey );
491 -+ # older versions do not report designated revokers for secret keys
492 -+ $handmade_key->push_revokers( $revoker ) if ($gpg_is_modern);
493 -
494 - $handmade_key->compare( $given_key );
495 - };
496
497 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0007-test-suite-match-plaintext-output-across-versions-of.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0007-test-suite-match-plaintext-output-across-versions-of.patch
498 deleted file mode 100644
499 index 85c1a46adae..00000000000
500 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0007-test-suite-match-plaintext-output-across-versions-of.patch
501 +++ /dev/null
502 @@ -1,95 +0,0 @@
503 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
504 -Date: Tue, 13 Sep 2016 14:46:13 -0400
505 -Subject: test suite: match plaintext output across versions of GnuPG
506 -
507 -The human-readable version of --list-keys is *not* expected to be
508 -static over time or as the user's environment changes (e.g. LANG or
509 -LC_MESSAGES), so expecting it to be machine-parseable is probably a
510 -mistake.
511 -
512 -That said, some users might want to pull textual information about
513 -specific keys to display directly to the user, so it's not a terrible
514 -idea to have it in the test suite.
515 -
516 -Modern GnuPG (2.1 or later) changes the default structure of the
517 -human-readable output in a few significant ways:
518 -
519 - * it writes the path to the keyring as an absolute path, even if
520 - $GNUPGHOME is set to a non-absolute path.
521 -
522 - * it shows the calculated user id validity by default (see
523 - show-uid-validity in gpg's --list-options). (note that this is a
524 - translated string, so that "unknown" (in the default C locale)
525 - becomes "inconnue" when LANG or LC_MESSAGES is set to fr_CH.UTF-8,
526 - for example.
527 -
528 - * it writes the key algorithm names differently (e.g. rsa2048 instead
529 - of 2048R)
530 -
531 - * it does not display the key ID at all by default
532 -
533 - * it displays the full fingerprint in compact form by default
534 -
535 -This changeset fixes the test suite so that it can do a rough
536 -verification of the human-readable text output by list_secret_keys in
537 -the C locale in modern versions of GnuPG, while leaving it working for
538 -older GnuPG suites.
539 ----
540 - t/list_secret_keys.t | 15 +++++++++++++--
541 - test/secret-keys/1.modern.test | 8 ++++++++
542 - 2 files changed, 21 insertions(+), 2 deletions(-)
543 - create mode 100644 test/secret-keys/1.modern.test
544 -
545 -diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
546 -index 1fe9b7e..51e3651 100644
547 ---- a/t/list_secret_keys.t
548 -+++ b/t/list_secret_keys.t
549 -@@ -16,13 +16,22 @@ TEST
550 - {
551 - reset_handles();
552 -
553 -+ $ENV{LC_MESSAGES} = 'C';
554 - my $pid = $gnupg->list_secret_keys( handles => $handles );
555 - close $stdin;
556 -
557 - $outfile = 'test/secret-keys/1.out';
558 - my $out = IO::File->new( "> $outfile" )
559 - or die "cannot open $outfile for writing: $ERRNO";
560 -- $out->print( <$stdout> );
561 -+ while (<$stdout>) {
562 -+ if ($gpg_is_modern && /^\/.*\/test\/gnupghome\/pubring.kbx$/) {
563 -+ $out->print("test/gnupghome/pubring.kbx\n");
564 -+ } elsif ($gpg_is_modern && /^--*$/) {
565 -+ $out->print("--------------------------\n");
566 -+ } else {
567 -+ $out->print( $_ );
568 -+ }
569 -+ }
570 - close $stdout;
571 - $out->close();
572 - waitpid $pid, 0;
573 -@@ -33,7 +42,9 @@ TEST
574 -
575 - TEST
576 - {
577 -- my @files_to_test = ( 'test/secret-keys/1.0.test' );
578 -+ my $suffix = '0';
579 -+ $suffix = 'modern' if ($gpg_is_modern);
580 -+ my @files_to_test = ( 'test/secret-keys/1.'.$suffix.'.test' );
581 -
582 - return file_match( $outfile, @files_to_test );
583 - };
584 -diff --git a/test/secret-keys/1.modern.test b/test/secret-keys/1.modern.test
585 -new file mode 100644
586 -index 0000000..3e46407
587 ---- /dev/null
588 -+++ b/test/secret-keys/1.modern.test
589 -@@ -0,0 +1,8 @@
590 -+test/gnupghome/pubring.kbx
591 -+--------------------------
592 -+sec dsa1024 2000-02-06 [SCA]
593 -+ 93AFC4B1B0288A104996B44253AE596EF950DA9C
594 -+uid [ unknown] GnuPG test key (for testing purposes only)
595 -+uid [ unknown] Foo Bar (1)
596 -+ssb elg768 2000-02-06 [E]
597 -+
598
599 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0008-fix-test_default_key_passphrase-when-passphrase-come.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0008-fix-test_default_key_passphrase-when-passphrase-come.patch
600 deleted file mode 100644
601 index 5ae938325ff..00000000000
602 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0008-fix-test_default_key_passphrase-when-passphrase-come.patch
603 +++ /dev/null
604 @@ -1,29 +0,0 @@
605 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
606 -Date: Tue, 13 Sep 2016 15:22:27 -0400
607 -Subject: fix test_default_key_passphrase when passphrase comes from agent
608 -
609 -In the modern GnuPG suite, where the passphrase is always managed by
610 -the agent, gpg itself doesn't emit the GOOD_PASSPHRASE status.
611 -Instead, if signing is successful it emits plain old SIG_CREATED.
612 -
613 -There are probably even better ways to test whether a given key is
614 -unlocked in this case, but this is a straightforward baseline fix that
615 -should get this part of the test suite to pass with all available
616 -versions of GnuPG.
617 ----
618 - lib/GnuPG/Interface.pm | 2 +-
619 - 1 file changed, 1 insertion(+), 1 deletion(-)
620 -
621 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
622 -index 83a4b1a..1f1e6d5 100644
623 ---- a/lib/GnuPG/Interface.pm
624 -+++ b/lib/GnuPG/Interface.pm
625 -@@ -808,7 +808,7 @@ sub test_default_key_passphrase() {
626 -
627 - # all we realy want to check is the status fh
628 - while (<$status>) {
629 -- if (/^\[GNUPG:\]\s*GOOD_PASSPHRASE/) {
630 -+ if (/^\[GNUPG:\]\s*(GOOD_PASSPHRASE|SIG_CREATED)/) {
631 - waitpid $pid, 0;
632 - return 1;
633 - }
634
635 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0009-clean-up-trailing-whitespace.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0009-clean-up-trailing-whitespace.patch
636 deleted file mode 100644
637 index f408c6568b0..00000000000
638 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0009-clean-up-trailing-whitespace.patch
639 +++ /dev/null
640 @@ -1,112 +0,0 @@
641 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
642 -Date: Tue, 11 Oct 2016 19:52:13 -0400
643 -Subject: clean up trailing whitespace
644 -
645 ----
646 - lib/GnuPG/Fingerprint.pm | 2 +-
647 - lib/GnuPG/Handles.pm | 2 +-
648 - lib/GnuPG/Interface.pm | 16 ++++++++--------
649 - 3 files changed, 10 insertions(+), 10 deletions(-)
650 -
651 -diff --git a/lib/GnuPG/Fingerprint.pm b/lib/GnuPG/Fingerprint.pm
652 -index fcb1028..81c38a7 100644
653 ---- a/lib/GnuPG/Fingerprint.pm
654 -+++ b/lib/GnuPG/Fingerprint.pm
655 -@@ -20,7 +20,7 @@ with qw(GnuPG::HashInit);
656 -
657 - has as_hex_string => (
658 - isa => 'Any',
659 -- is => 'rw',
660 -+ is => 'rw',
661 - );
662 -
663 - sub compare {
664 -diff --git a/lib/GnuPG/Handles.pm b/lib/GnuPG/Handles.pm
665 -index b30ca57..3eee0e3 100644
666 ---- a/lib/GnuPG/Handles.pm
667 -+++ b/lib/GnuPG/Handles.pm
668 -@@ -73,7 +73,7 @@ GnuPG::Handles - GnuPG handles bundle
669 - = ( IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
670 - IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
671 - );
672 --
673 -+
674 - my $handles = GnuPG::Handles->new
675 - ( stdin => $stdin,
676 - stdout => $stdout,
677 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
678 -index 1f1e6d5..19e8070 100644
679 ---- a/lib/GnuPG/Interface.pm
680 -+++ b/lib/GnuPG/Interface.pm
681 -@@ -833,7 +833,7 @@ GnuPG::Interface - Perl interface to GnuPG
682 - # A simple example
683 - use IO::Handle;
684 - use GnuPG::Interface;
685 --
686 -+
687 - # setting up the situation
688 - my $gnupg = GnuPG::Interface->new();
689 - $gnupg->options->hash_init( armor => 1,
690 -@@ -852,7 +852,7 @@ GnuPG::Interface - Perl interface to GnuPG
691 - # Now we'll go about encrypting with the options already set
692 - my @plaintext = ( 'foobar' );
693 - my $pid = $gnupg->encrypt( handles => $handles );
694 --
695 -+
696 - # Now we write to the input of GnuPG
697 - print $input @plaintext;
698 - close $input;
699 -@@ -1144,7 +1144,7 @@ The following setup can be done before any of the following examples:
700 -
701 - my $handles = GnuPG::Handles->new( stdin => $input,
702 - stdout => $output );
703 --
704 -+
705 - # this sets up the communication
706 - # Note that the recipients were specified earlier
707 - # in the 'options' data member of the $gnupg object.
708 -@@ -1220,7 +1220,7 @@ The following setup can be done before any of the following examples:
709 - # a file written to disk
710 - # Make sure you "use IO::File" if you use this module!
711 - my $cipher_file = IO::File->new( 'encrypted.gpg' );
712 --
713 -+
714 - # this sets up the communication
715 - my $pid = $gnupg->decrypt( handles => $handles );
716 -
717 -@@ -1252,7 +1252,7 @@ The following setup can be done before any of the following examples:
718 - # This time we'll just let GnuPG print to our own output
719 - # and read from our input, because no input is needed!
720 - my $handles = GnuPG::Handles->new();
721 --
722 -+
723 - my @ids = ( 'ftobin', '0xABCD1234' );
724 -
725 - # this time we need to specify something for
726 -@@ -1260,7 +1260,7 @@ The following setup can be done before any of the following examples:
727 - # search ids as arguments
728 - my $pid = $gnupg->list_public_keys( handles => $handles,
729 - command_args => [ @ids ] );
730 --
731 -+
732 - waitpid $pid, 0;
733 -
734 - =head2 Creating GnuPG::PublicKey Objects
735 -@@ -1280,7 +1280,7 @@ The following setup can be done before any of the following examples:
736 - command_args => [ qw( test/key.1.asc ) ],
737 - handles => $handles,
738 - );
739 --
740 -+
741 - my @out = <$handles->stdout()>;
742 - waitpid $pid, 0;
743 -
744 -@@ -1357,7 +1357,7 @@ under the same terms as Perl itself.
745 -
746 - =head1 AUTHOR
747 -
748 --GnuPg::Interface is currently maintained by Jesse Vincent <jesse@××××.org>.
749 -+GnuPg::Interface is currently maintained by Jesse Vincent <jesse@××××.org>.
750 -
751 - Frank J. Tobin, ftobin@××××.org was the original author of the package.
752 -
753
754 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0010-fix-capitalization-of-GnuPG.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0010-fix-capitalization-of-GnuPG.patch
755 deleted file mode 100644
756 index f55d4b15942..00000000000
757 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0010-fix-capitalization-of-GnuPG.patch
758 +++ /dev/null
759 @@ -1,35 +0,0 @@
760 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
761 -Date: Tue, 11 Oct 2016 19:52:58 -0400
762 -Subject: fix capitalization of GnuPG
763 -
764 ----
765 - README | 2 +-
766 - lib/GnuPG/Interface.pm | 2 +-
767 - 2 files changed, 2 insertions(+), 2 deletions(-)
768 -
769 -diff --git a/README b/README
770 -index f457577..aa7c984 100644
771 ---- a/README
772 -+++ b/README
773 -@@ -427,7 +427,7 @@ LICENSE
774 - under the same terms as Perl itself.
775 -
776 - AUTHOR
777 -- GnuPg::Interface is currently maintained by Jesse Vincent
778 -+ GnuPG::Interface is currently maintained by Jesse Vincent
779 - <jesse@××××.org>.
780 -
781 - Frank J. Tobin, ftobin@××××.org was the original author of the package.
782 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
783 -index 19e8070..cf7138f 100644
784 ---- a/lib/GnuPG/Interface.pm
785 -+++ b/lib/GnuPG/Interface.pm
786 -@@ -1357,7 +1357,7 @@ under the same terms as Perl itself.
787 -
788 - =head1 AUTHOR
789 -
790 --GnuPg::Interface is currently maintained by Jesse Vincent <jesse@××××.org>.
791 -+GnuPG::Interface is currently maintained by Jesse Vincent <jesse@××××.org>.
792 -
793 - Frank J. Tobin, ftobin@××××.org was the original author of the package.
794 -
795
796 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0011-ommand_args-should-be-command_args.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0011-ommand_args-should-be-command_args.patch
797 deleted file mode 100644
798 index a9ab737aa04..00000000000
799 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0011-ommand_args-should-be-command_args.patch
800 +++ /dev/null
801 @@ -1,21 +0,0 @@
802 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
803 -Date: Tue, 11 Oct 2016 19:57:10 -0400
804 -Subject: ommand_args should be command_args
805 -
806 ----
807 - t/list_public_keys.t | 2 +-
808 - 1 file changed, 1 insertion(+), 1 deletion(-)
809 -
810 -diff --git a/t/list_public_keys.t b/t/list_public_keys.t
811 -index 7e563c1..a36a78b 100644
812 ---- a/t/list_public_keys.t
813 -+++ b/t/list_public_keys.t
814 -@@ -38,7 +38,7 @@ TEST
815 - reset_handles();
816 -
817 - my $pid = $gnupg->list_public_keys( handles => $handles,
818 -- ommand_args => '0xF950DA9C'
819 -+ command_args => '0xF950DA9C'
820 - );
821 - close $stdin;
822 -
823
824 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch
825 deleted file mode 100644
826 index 9694e0854ce..00000000000
827 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch
828 +++ /dev/null
829 @@ -1,265 +0,0 @@
830 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
831 -Date: Tue, 11 Oct 2016 20:05:16 -0400
832 -Subject: use fingerprints as inputs during tests to demonstrate explicit usage
833 -
834 ----
835 - README | 6 +++---
836 - lib/GnuPG/Interface.pm | 6 +++---
837 - lib/GnuPG/Options.pm | 2 +-
838 - t/MyTestSpecific.pm | 2 +-
839 - t/encrypt.t | 6 +++---
840 - t/export_keys.t | 4 ++--
841 - t/get_public_keys.t | 2 +-
842 - t/get_secret_keys.t | 2 +-
843 - t/list_public_keys.t | 4 ++--
844 - t/list_secret_keys.t | 4 ++--
845 - t/list_sigs.t | 4 ++--
846 - t/sign_and_encrypt.t | 2 +-
847 - 12 files changed, 22 insertions(+), 22 deletions(-)
848 -
849 -diff --git a/README b/README
850 -index aa7c984..ed94ede 100644
851 ---- a/README
852 -+++ b/README
853 -@@ -228,7 +228,7 @@ EXAMPLES
854 -
855 - $gnupg->options->hash_init( armor => 1,
856 - recipients => [ 'ftobin@××××.edu',
857 -- '0xABCD1234' ],
858 -+ '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ],
859 - meta_interactive => 0 ,
860 - );
861 -
862 -@@ -347,7 +347,7 @@ EXAMPLES
863 - # and read from our input, because no input is needed!
864 - my $handles = GnuPG::Handles->new();
865 -
866 -- my @ids = ( 'ftobin', '0xABCD1234' );
867 -+ my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
868 -
869 - # this time we need to specify something for
870 - # command_args because --list-public-keys takes
871 -@@ -358,7 +358,7 @@ EXAMPLES
872 - waitpid $pid, 0;
873 -
874 - Creating GnuPG::PublicKey Objects
875 -- my @ids = [ 'ftobin', '0xABCD1234' ];
876 -+ my @ids = [ 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ];
877 -
878 - my @keys = $gnupg->get_public_keys( @ids );
879 -
880 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
881 -index cf7138f..6eaef7d 100644
882 ---- a/lib/GnuPG/Interface.pm
883 -+++ b/lib/GnuPG/Interface.pm
884 -@@ -1130,7 +1130,7 @@ The following setup can be done before any of the following examples:
885 -
886 - $gnupg->options->hash_init( armor => 1,
887 - recipients => [ 'ftobin@××××.edu',
888 -- '0xABCD1234' ],
889 -+ '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ],
890 - meta_interactive => 0 ,
891 - );
892 -
893 -@@ -1253,7 +1253,7 @@ The following setup can be done before any of the following examples:
894 - # and read from our input, because no input is needed!
895 - my $handles = GnuPG::Handles->new();
896 -
897 -- my @ids = ( 'ftobin', '0xABCD1234' );
898 -+ my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
899 -
900 - # this time we need to specify something for
901 - # command_args because --list-public-keys takes
902 -@@ -1265,7 +1265,7 @@ The following setup can be done before any of the following examples:
903 -
904 - =head2 Creating GnuPG::PublicKey Objects
905 -
906 -- my @ids = [ 'ftobin', '0xABCD1234' ];
907 -+ my @ids = [ 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ];
908 -
909 - my @keys = $gnupg->get_public_keys( @ids );
910 -
911 -diff --git a/lib/GnuPG/Options.pm b/lib/GnuPG/Options.pm
912 -index 86261a0..7788662 100644
913 ---- a/lib/GnuPG/Options.pm
914 -+++ b/lib/GnuPG/Options.pm
915 -@@ -198,7 +198,7 @@ GnuPG::Options - GnuPG options embodiment
916 -
917 - # assuming $gnupg is a GnuPG::Interface object
918 - $gnupg->options->armor( 1 );
919 -- $gnupg->options->push_recipients( 'ftobin', '0xABCD1234' );
920 -+ $gnupg->options->push_recipients( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
921 -
922 - =head1 DESCRIPTION
923 -
924 -diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
925 -index a309698..c8764cc 100644
926 ---- a/t/MyTestSpecific.pm
927 -+++ b/t/MyTestSpecific.pm
928 -@@ -46,7 +46,7 @@ $gpg_is_modern = ($version[0] > 2 || ($version[0] == 2 && $version[1] >= 1));
929 - $gnupg->options->hash_init( homedir => 'test/gnupghome',
930 - armor => 1,
931 - meta_interactive => 0,
932 -- meta_signing_key_id => '0xF950DA9C',
933 -+ meta_signing_key_id => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
934 - always_trust => 1,
935 - );
936 -
937 -diff --git a/t/encrypt.t b/t/encrypt.t
938 -index 3183ac4..e6bdc08 100644
939 ---- a/t/encrypt.t
940 -+++ b/t/encrypt.t
941 -@@ -27,7 +27,7 @@ TEST
942 -
943 - $gnupg->options->clear_recipients();
944 - $gnupg->options->clear_meta_recipients_keys();
945 -- $gnupg->options->push_recipients( '0x2E854A6B' );
946 -+ $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
947 -
948 - my $pid = $gnupg->encrypt( handles => $handles );
949 -
950 -@@ -43,7 +43,7 @@ TEST
951 - {
952 - reset_handles();
953 -
954 -- my @keys = $gnupg->get_public_keys( '0xF950DA9C' );
955 -+ my @keys = $gnupg->get_public_keys( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
956 - $gnupg->options->clear_recipients();
957 - $gnupg->options->clear_meta_recipients_keys();
958 - $gnupg->options->push_meta_recipients_keys( @keys );
959 -@@ -64,7 +64,7 @@ TEST
960 -
961 - $gnupg->options->clear_recipients();
962 - $gnupg->options->clear_meta_recipients_keys();
963 -- $gnupg->options->push_recipients( '0x2E854A6B' );
964 -+ $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
965 -
966 - $handles->stdin( $texts{plain}->fh() );
967 - $handles->options( 'stdin' )->{direct} = 1;
968 -diff --git a/t/export_keys.t b/t/export_keys.t
969 -index cf5c82b..5add064 100644
970 ---- a/t/export_keys.t
971 -+++ b/t/export_keys.t
972 -@@ -15,7 +15,7 @@ TEST
973 - reset_handles();
974 -
975 - my $pid = $gnupg->export_keys( handles => $handles,
976 -- command_args => '0xF950DA9C' );
977 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
978 - close $stdin;
979 - waitpid $pid, 0;
980 -
981 -@@ -31,7 +31,7 @@ TEST
982 - $handles->options( 'stdout' )->{direct} = 1;
983 -
984 - my $pid = $gnupg->export_keys( handles => $handles,
985 -- command_args => '0xF950DA9C' );
986 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
987 - waitpid $pid, 0;
988 - return $CHILD_ERROR == 0;
989 - };
990 -diff --git a/t/get_public_keys.t b/t/get_public_keys.t
991 -index 9e96f7d..7893625 100644
992 ---- a/t/get_public_keys.t
993 -+++ b/t/get_public_keys.t
994 -@@ -19,7 +19,7 @@ TEST
995 - {
996 - reset_handles();
997 -
998 -- my @returned_keys = $gnupg->get_public_keys_with_sigs( '0xF950DA9C' );
999 -+ my @returned_keys = $gnupg->get_public_keys_with_sigs( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
1000 -
1001 - return 0 unless @returned_keys == 1;
1002 -
1003 -diff --git a/t/get_secret_keys.t b/t/get_secret_keys.t
1004 -index c798cce..a7f1348 100644
1005 ---- a/t/get_secret_keys.t
1006 -+++ b/t/get_secret_keys.t
1007 -@@ -18,7 +18,7 @@ TEST
1008 - {
1009 - reset_handles();
1010 -
1011 -- my @returned_keys = $gnupg->get_secret_keys( '0xF950DA9C' );
1012 -+ my @returned_keys = $gnupg->get_secret_keys( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
1013 -
1014 - return 0 unless @returned_keys == 1;
1015 -
1016 -diff --git a/t/list_public_keys.t b/t/list_public_keys.t
1017 -index a36a78b..622b092 100644
1018 ---- a/t/list_public_keys.t
1019 -+++ b/t/list_public_keys.t
1020 -@@ -38,7 +38,7 @@ TEST
1021 - reset_handles();
1022 -
1023 - my $pid = $gnupg->list_public_keys( handles => $handles,
1024 -- command_args => '0xF950DA9C'
1025 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C'
1026 - );
1027 - close $stdin;
1028 -
1029 -@@ -64,7 +64,7 @@ TEST
1030 - $handles->options( 'stdout' )->{direct} = 1;
1031 -
1032 - my $pid = $gnupg->list_public_keys( handles => $handles,
1033 -- command_args => '0xF950DA9C',
1034 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
1035 - );
1036 -
1037 - waitpid $pid, 0;
1038 -diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
1039 -index 51e3651..7040c38 100644
1040 ---- a/t/list_secret_keys.t
1041 -+++ b/t/list_secret_keys.t
1042 -@@ -55,7 +55,7 @@ TEST
1043 - reset_handles();
1044 -
1045 - my $pid = $gnupg->list_secret_keys( handles => $handles,
1046 -- command_args => '0xF950DA9C' );
1047 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
1048 - close $stdin;
1049 -
1050 - $outfile = 'test/secret-keys/2.out';
1051 -@@ -80,7 +80,7 @@ TEST
1052 - $handles->options( 'stdout' )->{direct} = 1;
1053 -
1054 - my $pid = $gnupg->list_secret_keys( handles => $handles,
1055 -- command_args => '0xF950DA9C' );
1056 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
1057 -
1058 - waitpid $pid, 0;
1059 -
1060 -diff --git a/t/list_sigs.t b/t/list_sigs.t
1061 -index 16cfa6a..1301fb2 100644
1062 ---- a/t/list_sigs.t
1063 -+++ b/t/list_sigs.t
1064 -@@ -36,7 +36,7 @@ TEST
1065 - reset_handles();
1066 -
1067 - my $pid = $gnupg->list_sigs( handles => $handles,
1068 -- command_args => '0xF950DA9C',
1069 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
1070 - );
1071 - close $stdin;
1072 -
1073 -@@ -60,7 +60,7 @@ TEST
1074 - $handles->options( 'stdout' )->{direct} = 1;
1075 -
1076 - my $pid = $gnupg->list_sigs( handles => $handles,
1077 -- command_args => '0xF950DA9C',
1078 -+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
1079 - );
1080 -
1081 - waitpid $pid, 0;
1082 -diff --git a/t/sign_and_encrypt.t b/t/sign_and_encrypt.t
1083 -index 5dc1c08..df0fc75 100644
1084 ---- a/t/sign_and_encrypt.t
1085 -+++ b/t/sign_and_encrypt.t
1086 -@@ -14,7 +14,7 @@ TEST
1087 - {
1088 - reset_handles();
1089 -
1090 -- $gnupg->options->push_recipients( '0x2E854A6B' );
1091 -+ $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
1092 - my $pid = $gnupg->sign_and_encrypt( handles => $handles );
1093 -
1094 - print $stdin @{ $texts{plain}->data() };
1095
1096 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0013-move-key-files-to-generic-names.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0013-move-key-files-to-generic-names.patch
1097 deleted file mode 100644
1098 index 489e685b7b8..00000000000
1099 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0013-move-key-files-to-generic-names.patch
1100 +++ /dev/null
1101 @@ -1,33 +0,0 @@
1102 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
1103 -Date: Tue, 11 Oct 2016 20:17:49 -0400
1104 -Subject: move key files to generic names
1105 -
1106 ----
1107 - t/000_setup.t | 2 +-
1108 - test/{pubring.gpg => public_keys.pgp} | Bin
1109 - test/{secring.gpg => secret_keys.pgp} | Bin
1110 - 3 files changed, 1 insertion(+), 1 deletion(-)
1111 - rename test/{pubring.gpg => public_keys.pgp} (100%)
1112 - rename test/{secring.gpg => secret_keys.pgp} (100%)
1113 -
1114 -diff --git a/t/000_setup.t b/t/000_setup.t
1115 -index 7f7f7b0..a8e3042 100644
1116 ---- a/t/000_setup.t
1117 -+++ b/t/000_setup.t
1118 -@@ -19,7 +19,7 @@ TEST
1119 - copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
1120 - reset_handles();
1121 -
1122 -- my $pid = $gnupg->import_keys(command_args => [ 'test/pubring.gpg', 'test/secring.gpg' ],
1123 -+ my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp' ],
1124 - options => [ 'batch'],
1125 - handles => $handles);
1126 - waitpid $pid, 0;
1127 -diff --git a/test/pubring.gpg b/test/public_keys.pgp
1128 -similarity index 100%
1129 -rename from test/pubring.gpg
1130 -rename to test/public_keys.pgp
1131 -diff --git a/test/secring.gpg b/test/secret_keys.pgp
1132 -similarity index 100%
1133 -rename from test/secring.gpg
1134 -rename to test/secret_keys.pgp
1135
1136 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0014-fix-spelling-s-convience-convenience.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0014-fix-spelling-s-convience-convenience.patch
1137 deleted file mode 100644
1138 index ee809b61d75..00000000000
1139 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0014-fix-spelling-s-convience-convenience.patch
1140 +++ /dev/null
1141 @@ -1,53 +0,0 @@
1142 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
1143 -Date: Tue, 11 Oct 2016 20:25:48 -0400
1144 -Subject: fix spelling: s/convience/convenience/
1145 -
1146 ----
1147 - README | 4 ++--
1148 - lib/GnuPG/Interface.pm | 4 ++--
1149 - 2 files changed, 4 insertions(+), 4 deletions(-)
1150 -
1151 -diff --git a/README b/README
1152 -index ed94ede..a05ef9b 100644
1153 ---- a/README
1154 -+++ b/README
1155 -@@ -143,7 +143,7 @@ OBJECT METHODS
1156 - does not come into play. If the passphrase data member handle of the
1157 - handles object is not defined, but the the passphrase data member
1158 - handle of GnuPG::Interface object is, GnuPG::Interface will handle
1159 -- passing this information into GnuPG for the user as a convience.
1160 -+ passing this information into GnuPG for the user as a convenience.
1161 - Note that this will result in GnuPG::Interface storing the
1162 - passphrase in memory, instead of having it simply 'pass-through' to
1163 - GnuPG via a handle.
1164 -@@ -271,7 +271,7 @@ EXAMPLES
1165 - );
1166 -
1167 - # indicate our pasphrase through the
1168 -- # convience method
1169 -+ # convenience method
1170 - $gnupg->passphrase( $passphrase );
1171 -
1172 - # this sets up the communication
1173 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
1174 -index 6eaef7d..29205f0 100644
1175 ---- a/lib/GnuPG/Interface.pm
1176 -+++ b/lib/GnuPG/Interface.pm
1177 -@@ -1008,7 +1008,7 @@ and so this information is not generated and does not come into play.
1178 - If the B<passphrase> data member handle of the B<handles> object
1179 - is not defined, but the the B<passphrase> data member handle of GnuPG::Interface
1180 - object is, GnuPG::Interface will handle passing this information into GnuPG
1181 --for the user as a convience. Note that this will result in
1182 -+for the user as a convenience. Note that this will result in
1183 - GnuPG::Interface storing the passphrase in memory, instead of having
1184 - it simply 'pass-through' to GnuPG via a handle.
1185 -
1186 -@@ -1175,7 +1175,7 @@ The following setup can be done before any of the following examples:
1187 - );
1188 -
1189 - # indicate our pasphrase through the
1190 -- # convience method
1191 -+ # convenience method
1192 - $gnupg->passphrase( $passphrase );
1193 -
1194 - # this sets up the communication
1195
1196 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0015-added-new-secret-key-with-different-passphrase.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0015-added-new-secret-key-with-different-passphrase.patch
1197 deleted file mode 100644
1198 index fcf20c1b9d1..00000000000
1199 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0015-added-new-secret-key-with-different-passphrase.patch
1200 +++ /dev/null
1201 @@ -1,117 +0,0 @@
1202 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
1203 -Date: Tue, 11 Oct 2016 20:59:43 -0400
1204 -Subject: added new secret key with different passphrase
1205 -
1206 -Adding a new secret key with a different passphrase should allow us to
1207 -differentiate between passing the passphrase explicitly and relying on
1208 -the agent + pinentry.
1209 ----
1210 - t/000_setup.t | 2 +-
1211 - test/new_secret.pgp | 58 ++++++++++++++++++++++++++++++++++++++++++
1212 - test/secret-keys/1.0.test | 4 +++
1213 - test/secret-keys/1.modern.test | 5 ++++
1214 - 4 files changed, 68 insertions(+), 1 deletion(-)
1215 - create mode 100644 test/new_secret.pgp
1216 -
1217 -diff --git a/t/000_setup.t b/t/000_setup.t
1218 -index a8e3042..b183241 100644
1219 ---- a/t/000_setup.t
1220 -+++ b/t/000_setup.t
1221 -@@ -19,7 +19,7 @@ TEST
1222 - copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
1223 - reset_handles();
1224 -
1225 -- my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp' ],
1226 -+ my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp', 'test/new_secret.pgp' ],
1227 - options => [ 'batch'],
1228 - handles => $handles);
1229 - waitpid $pid, 0;
1230 -diff --git a/test/new_secret.pgp b/test/new_secret.pgp
1231 -new file mode 100644
1232 -index 0000000..5feb72c
1233 ---- /dev/null
1234 -+++ b/test/new_secret.pgp
1235 -@@ -0,0 +1,58 @@
1236 -+-----BEGIN PGP PRIVATE KEY BLOCK-----
1237 -+
1238 -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
1292 -+=ftgB
1293 -+-----END PGP PRIVATE KEY BLOCK-----
1294 -diff --git a/test/secret-keys/1.0.test b/test/secret-keys/1.0.test
1295 -index 129d472..f8239a9 100644
1296 ---- a/test/secret-keys/1.0.test
1297 -+++ b/test/secret-keys/1.0.test
1298 -@@ -5,3 +5,7 @@ uid GnuPG test key (for testing purposes only)
1299 - uid Foo Bar (1)
1300 - ssb 768g/2E854A6B 2000-02-06
1301 -
1302 -+sec 2048R/B6747DDC 2016-10-12
1303 -+uid GnuPG::Interface Test key <test@×××××××.org>
1304 -+ssb 2048R/AE441D0F 2016-10-12
1305 -+
1306 -diff --git a/test/secret-keys/1.modern.test b/test/secret-keys/1.modern.test
1307 -index 3e46407..42b27a1 100644
1308 ---- a/test/secret-keys/1.modern.test
1309 -+++ b/test/secret-keys/1.modern.test
1310 -@@ -6,3 +6,8 @@ uid [ unknown] GnuPG test key (for testing purposes only)
1311 - uid [ unknown] Foo Bar (1)
1312 - ssb elg768 2000-02-06 [E]
1313 -
1314 -+sec rsa2048 2016-10-12 [SC]
1315 -+ 278F850AA702911F1318F0A61B913CE9B6747DDC
1316 -+uid [ unknown] GnuPG::Interface Test key <test@×××××××.org>
1317 -+ssb rsa2048 2016-10-12 [E]
1318 -+
1319
1320 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch
1321 deleted file mode 100644
1322 index 21e6294efae..00000000000
1323 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch
1324 +++ /dev/null
1325 @@ -1,302 +0,0 @@
1326 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
1327 -Date: Tue, 11 Oct 2016 21:29:22 -0400
1328 -Subject: Test use of gpg without explicit passphrase (agent+pinentry)
1329 -
1330 -The modern GnuPG suite encourages the use of gpg-agent to control
1331 -access to secret key material. In this use case, we avoid setting an
1332 -explicit passphrase in code, and rely on either a correctly-configured
1333 -and primed gpg-agent or a dedicated pinentry program to supply the
1334 -passphrase.
1335 -
1336 -This additional test verifies that the passphrase can be handled by
1337 -the agent. Note that the passphrase for this additional test key is
1338 -*not* the default passphrase, so this test should fail in the event
1339 -that gpg can't use the agent and the pinentry for this task.
1340 -
1341 -Unfortunately, this all assumes that we're using GnuPG "Modern". I've
1342 -noted concerns about writing forward- and backward-compatible bindings
1343 -for GnuPG here:
1344 -https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html
1345 ----
1346 - README | 41 +++++++++++++++++++++++++++--------------
1347 - lib/GnuPG/Interface.pm | 26 +++++++++++++++++++++++++-
1348 - t/MyTestSpecific.pm | 10 ++++++++--
1349 - t/decrypt.t | 27 +++++++++++++++++++++++++++
1350 - test/encrypted.2.gpg | 12 ++++++++++++
1351 - test/fake-pinentry.pl | 2 +-
1352 - test/plain.2.txt | 1 +
1353 - 7 files changed, 101 insertions(+), 18 deletions(-)
1354 - create mode 100644 test/encrypted.2.gpg
1355 - create mode 100644 test/plain.2.txt
1356 -
1357 -diff --git a/README b/README
1358 -index a05ef9b..be06ef3 100644
1359 ---- a/README
1360 -+++ b/README
1361 -@@ -5,7 +5,7 @@ SYNOPSIS
1362 - # A simple example
1363 - use IO::Handle;
1364 - use GnuPG::Interface;
1365 --
1366 -+
1367 - # setting up the situation
1368 - my $gnupg = GnuPG::Interface->new();
1369 - $gnupg->options->hash_init( armor => 1,
1370 -@@ -24,7 +24,7 @@ SYNOPSIS
1371 - # Now we'll go about encrypting with the options already set
1372 - my @plaintext = ( 'foobar' );
1373 - my $pid = $gnupg->encrypt( handles => $handles );
1374 --
1375 -+
1376 - # Now we write to the input of GnuPG
1377 - print $input @plaintext;
1378 - close $input;
1379 -@@ -140,13 +140,26 @@ OBJECT METHODS
1380 - standard error, standard output, or standard error. If the status or
1381 - logger handle is not defined, this channel of communication is never
1382 - established with GnuPG, and so this information is not generated and
1383 -- does not come into play. If the passphrase data member handle of the
1384 -- handles object is not defined, but the the passphrase data member
1385 -- handle of GnuPG::Interface object is, GnuPG::Interface will handle
1386 -- passing this information into GnuPG for the user as a convenience.
1387 -- Note that this will result in GnuPG::Interface storing the
1388 -- passphrase in memory, instead of having it simply 'pass-through' to
1389 -- GnuPG via a handle.
1390 -+ does not come into play.
1391 -+
1392 -+ If the passphrase data member handle of the handles object is not
1393 -+ defined, but the the passphrase data member handle of
1394 -+ GnuPG::Interface object is, GnuPG::Interface will handle passing
1395 -+ this information into GnuPG for the user as a convenience. Note that
1396 -+ this will result in GnuPG::Interface storing the passphrase in
1397 -+ memory, instead of having it simply 'pass-through' to GnuPG via a
1398 -+ handle.
1399 -+
1400 -+ If neither the passphrase data member of the GnuPG::Interface nor
1401 -+ the passphrase data member of the handles object is defined, then
1402 -+ GnuPG::Interface assumes that access and control over the secret key
1403 -+ will be handled by the running gpg-agent process. This represents
1404 -+ the simplest mode of operation with the GnuPG "modern" suite
1405 -+ (version 2.1 and later). It is also the preferred mode for tools
1406 -+ intended to be user-facing, since the user will be prompted directly
1407 -+ by gpg-agent for use of the secret key material. Note that for
1408 -+ programmatic use, this mode requires the gpg-agent and pinentry to
1409 -+ already be correctly configured.
1410 -
1411 - Other Methods
1412 - get_public_keys( @search_strings )
1413 -@@ -241,7 +254,7 @@ EXAMPLES
1414 -
1415 - my $handles = GnuPG::Handles->new( stdin => $input,
1416 - stdout => $output );
1417 --
1418 -+
1419 - # this sets up the communication
1420 - # Note that the recipients were specified earlier
1421 - # in the 'options' data member of the $gnupg object.
1422 -@@ -315,7 +328,7 @@ EXAMPLES
1423 - # a file written to disk
1424 - # Make sure you "use IO::File" if you use this module!
1425 - my $cipher_file = IO::File->new( 'encrypted.gpg' );
1426 --
1427 -+
1428 - # this sets up the communication
1429 - my $pid = $gnupg->decrypt( handles => $handles );
1430 -
1431 -@@ -346,7 +359,7 @@ EXAMPLES
1432 - # This time we'll just let GnuPG print to our own output
1433 - # and read from our input, because no input is needed!
1434 - my $handles = GnuPG::Handles->new();
1435 --
1436 -+
1437 - my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
1438 -
1439 - # this time we need to specify something for
1440 -@@ -354,7 +367,7 @@ EXAMPLES
1441 - # search ids as arguments
1442 - my $pid = $gnupg->list_public_keys( handles => $handles,
1443 - command_args => [ @ids ] );
1444 --
1445 -+
1446 - waitpid $pid, 0;
1447 -
1448 - Creating GnuPG::PublicKey Objects
1449 -@@ -372,7 +385,7 @@ EXAMPLES
1450 - command_args => [ qw( test/key.1.asc ) ],
1451 - handles => $handles,
1452 - );
1453 --
1454 -+
1455 - my @out = <$handles->stdout()>;
1456 - waitpid $pid, 0;
1457 -
1458 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
1459 -index 29205f0..5d8b0ec 100644
1460 ---- a/lib/GnuPG/Interface.pm
1461 -+++ b/lib/GnuPG/Interface.pm
1462 -@@ -106,6 +106,14 @@ sub fork_attach_exec( $% ) {
1463 - my ( $self, %args ) = @_;
1464 -
1465 - my $handles = $args{handles} or croak 'no GnuPG::Handles passed';
1466 -+ my $use_loopback_pinentry = 0;
1467 -+
1468 -+ # WARNING: this assumes that we're using the "modern" GnuPG suite
1469 -+ # -- version 2.1.x or later. It's not clear to me how we can
1470 -+ # safely and efficiently avoid this assumption (see
1471 -+ # https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html)
1472 -+ $use_loopback_pinentry = 1
1473 -+ if ($handles->passphrase());
1474 -
1475 - # deprecation support
1476 - $args{commands} ||= $args{gnupg_commands};
1477 -@@ -293,8 +301,12 @@ sub fork_attach_exec( $% ) {
1478 - $self->options->$option($fileno);
1479 - }
1480 -
1481 -+ my @args = $self->options->get_args();
1482 -+ push @args, '--pinentry-mode', 'loopback'
1483 -+ if $use_loopback_pinentry;
1484 -+
1485 - my @command = (
1486 -- $self->call(), $self->options->get_args(),
1487 -+ $self->call(), @args,
1488 - @commands, @command_args
1489 - );
1490 -
1491 -@@ -1005,6 +1017,7 @@ and standard error will be tied to the running program's standard error,
1492 - standard output, or standard error. If the B<status> or B<logger> handle
1493 - is not defined, this channel of communication is never established with GnuPG,
1494 - and so this information is not generated and does not come into play.
1495 -+
1496 - If the B<passphrase> data member handle of the B<handles> object
1497 - is not defined, but the the B<passphrase> data member handle of GnuPG::Interface
1498 - object is, GnuPG::Interface will handle passing this information into GnuPG
1499 -@@ -1012,6 +1025,17 @@ for the user as a convenience. Note that this will result in
1500 - GnuPG::Interface storing the passphrase in memory, instead of having
1501 - it simply 'pass-through' to GnuPG via a handle.
1502 -
1503 -+If neither the B<passphrase> data member of the GnuPG::Interface nor
1504 -+the B<passphrase> data member of the B<handles> object is defined,
1505 -+then GnuPG::Interface assumes that access and control over the secret
1506 -+key will be handled by the running gpg-agent process. This represents
1507 -+the simplest mode of operation with the GnuPG "modern" suite (version
1508 -+2.1 and later). It is also the preferred mode for tools intended to
1509 -+be user-facing, since the user will be prompted directly by gpg-agent
1510 -+for use of the secret key material. Note that for programmatic use,
1511 -+this mode requires the gpg-agent and pinentry to already be correctly
1512 -+configured.
1513 -+
1514 - =back
1515 -
1516 - =head2 Other Methods
1517 -diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
1518 -index c8764cc..e513c25 100644
1519 ---- a/t/MyTestSpecific.pm
1520 -+++ b/t/MyTestSpecific.pm
1521 -@@ -55,9 +55,15 @@ struct( Text => { fn => "\$", fh => "\$", data => "\$" } );
1522 - $texts{plain} = Text->new();
1523 - $texts{plain}->fn( 'test/plain.1.txt' );
1524 -
1525 -+$texts{alt_plain} = Text->new();
1526 -+$texts{alt_plain}->fn( 'test/plain.2.txt' );
1527 -+
1528 - $texts{encrypted} = Text->new();
1529 - $texts{encrypted}->fn( 'test/encrypted.1.gpg' );
1530 -
1531 -+$texts{alt_encrypted} = Text->new();
1532 -+$texts{alt_encrypted}->fn( 'test/encrypted.2.gpg' );
1533 -+
1534 - $texts{signed} = Text->new();
1535 - $texts{signed}->fn( 'test/signed.1.asc' );
1536 -
1537 -@@ -68,7 +74,7 @@ $texts{temp} = Text->new();
1538 - $texts{temp}->fn( 'test/temp' );
1539 -
1540 -
1541 --foreach my $name ( qw( plain encrypted signed key ) )
1542 -+foreach my $name ( qw( plain alt_plain encrypted alt_encrypted signed key ) )
1543 - {
1544 - my $entry = $texts{$name};
1545 - my $filename = $entry->fn();
1546 -@@ -90,7 +96,7 @@ sub reset_handles
1547 - stderr => $stderr
1548 - );
1549 -
1550 -- foreach my $name ( qw( plain encrypted signed key ) )
1551 -+ foreach my $name ( qw( plain alt_plain encrypted alt_encrypted signed key ) )
1552 - {
1553 - my $entry = $texts{$name};
1554 - my $filename = $entry->fn();
1555 -diff --git a/t/decrypt.t b/t/decrypt.t
1556 -index b2639ed..ee41448 100644
1557 ---- a/t/decrypt.t
1558 -+++ b/t/decrypt.t
1559 -@@ -58,3 +58,30 @@ TEST
1560 - {
1561 - return compare( $texts{plain}->fn(), $texts{temp}->fn() ) == 0;
1562 - };
1563 -+
1564 -+
1565 -+# test without default_passphrase (that is, by using the agent)
1566 -+TEST
1567 -+{
1568 -+ reset_handles();
1569 -+
1570 -+ $handles->stdin( $texts{alt_encrypted}->fh() );
1571 -+ $handles->options( 'stdin' )->{direct} = 1;
1572 -+
1573 -+ $handles->stdout( $texts{temp}->fh() );
1574 -+ $handles->options( 'stdout' )->{direct} = 1;
1575 -+
1576 -+ $gnupg->clear_passphrase();
1577 -+
1578 -+ my $pid = $gnupg->decrypt( handles => $handles );
1579 -+
1580 -+ waitpid $pid, 0;
1581 -+
1582 -+ return $CHILD_ERROR == 0;
1583 -+};
1584 -+
1585 -+
1586 -+TEST
1587 -+{
1588 -+ return compare( $texts{alt_plain}->fn(), $texts{temp}->fn() ) == 0;
1589 -+};
1590 -diff --git a/test/encrypted.2.gpg b/test/encrypted.2.gpg
1591 -new file mode 100644
1592 -index 0000000..105cbb3
1593 ---- /dev/null
1594 -+++ b/test/encrypted.2.gpg
1595 -@@ -0,0 +1,12 @@
1596 -+-----BEGIN PGP MESSAGE-----
1597 -+
1598 -+hQEMAw3NS2KuRB0PAQgAuCMQO6blPRIJZib+kDa51gac+BYPl8caXYTLqIHtiz2/
1599 -+YRVqePJON4lNAqT6qUksIzQHtejFO6tb1SLqgX9Ti+fKAMLrQw9VGOYaJFoRrTJs
1600 -++X33S4GHVVikRTu0dydAsekbfPSc2nRmTFUlSEV3psgAmg9xy8KA6cZroK9Xfcuh
1601 -+xW7KLE0hLP+2NZ7zNmJMdu6LDGzvlQsnm1UeElXK8XdMGf8kA3R+GgeeOnR/oEQc
1602 -+Uep77k/fLc+UV4fp9Dk1OBeg3Ko/irSaefk4mU7F4HmS8jIERHRvXBTiur1Zx8Nx
1603 -+9U3fcQuc+P9+JC89iS4PJPF1Hr0MlezAghZYJrhOrtJIAe5Uaft5KMGRfy0VQnAs
1604 -+MHqGnGtzzVWK6GK83ibgG4tTfPEHHIgNFsJf3rM4cWklUmCS9TeeDJJZfhnRA6+/
1605 -+X82e6OI7QNbO
1606 -+=DlGE
1607 -+-----END PGP MESSAGE-----
1608 -diff --git a/test/fake-pinentry.pl b/test/fake-pinentry.pl
1609 -index 12d3611..40b8b08 100755
1610 ---- a/test/fake-pinentry.pl
1611 -+++ b/test/fake-pinentry.pl
1612 -@@ -21,7 +21,7 @@ while (<STDIN>) {
1613 - chomp;
1614 - next if (/^$/);
1615 - next if (/^#/);
1616 -- print ("D test\n") if (/^getpin/i);
1617 -+ print ("D supercalifragilisticexpialidocious\n") if (/^getpin/i);
1618 - print "OK\n";
1619 - exit if (/^bye/i);
1620 - }
1621 -diff --git a/test/plain.2.txt b/test/plain.2.txt
1622 -new file mode 100644
1623 -index 0000000..da5a1d5
1624 ---- /dev/null
1625 -+++ b/test/plain.2.txt
1626 -@@ -0,0 +1 @@
1627 -+test message
1628
1629 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0017-Kill-any-GnuPG-agent-before-and-after-the-test-suite.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0017-Kill-any-GnuPG-agent-before-and-after-the-test-suite.patch
1630 deleted file mode 100644
1631 index 2f20f145539..00000000000
1632 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0017-Kill-any-GnuPG-agent-before-and-after-the-test-suite.patch
1633 +++ /dev/null
1634 @@ -1,42 +0,0 @@
1635 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
1636 -Date: Thu, 25 May 2017 16:07:45 -0400
1637 -Subject: Kill any GnuPG agent before and after the test suite.
1638 -
1639 -This helps to ensure that the test suite daemon is started fresh at
1640 -every test suite run. And it also avoids leaving a daemon running
1641 -after the test suite, assuming the test suite manages to reach the
1642 -end.
1643 -
1644 -This is considered a reasonable practice by upstream.
1645 ----
1646 - t/000_setup.t | 3 +++
1647 - t/zzz_cleanup.t | 2 ++
1648 - 2 files changed, 5 insertions(+)
1649 -
1650 -diff --git a/t/000_setup.t b/t/000_setup.t
1651 -index b183241..4dc4329 100644
1652 ---- a/t/000_setup.t
1653 -+++ b/t/000_setup.t
1654 -@@ -17,6 +17,9 @@ TEST
1655 - $agentconf->write("pinentry-program " . getcwd() . "/test/fake-pinentry.pl\n");
1656 - $agentconf->close();
1657 - copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
1658 -+ # reset the state of any long-lived gpg-agent, ignoring errors:
1659 -+ system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
1660 -+
1661 - reset_handles();
1662 -
1663 - my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp', 'test/new_secret.pgp' ],
1664 -diff --git a/t/zzz_cleanup.t b/t/zzz_cleanup.t
1665 -index 5c03a72..eea3a48 100644
1666 ---- a/t/zzz_cleanup.t
1667 -+++ b/t/zzz_cleanup.t
1668 -@@ -12,6 +12,8 @@ use File::Path qw (remove_tree);
1669 - TEST
1670 - {
1671 - my $err = [];
1672 -+ # kill off any long-lived gpg-agent, ignoring errors:
1673 -+ system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
1674 - remove_tree('test/gnupghome', {error => \$err});
1675 - return ! @$err;
1676 - };
1677
1678 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0018-Use-a-short-temporary-homedir-during-the-test-suite.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0018-Use-a-short-temporary-homedir-during-the-test-suite.patch
1679 deleted file mode 100644
1680 index 457a5e74d53..00000000000
1681 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0018-Use-a-short-temporary-homedir-during-the-test-suite.patch
1682 +++ /dev/null
1683 @@ -1,110 +0,0 @@
1684 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
1685 -Date: Fri, 26 May 2017 09:51:40 -0400
1686 -Subject: Use a short temporary homedir during the test suite
1687 -
1688 -This avoids problems with the length of the path to the homedir as
1689 -compared to the size limits of sockaddr_un.sun_path, particularly on
1690 -systems where /run/user/$(id -u) is not present or available (such as
1691 -many minimalist build environments).
1692 ----
1693 - t/000_setup.t | 9 +++++----
1694 - t/MyTestSpecific.pm | 18 +++++++++++++++++-
1695 - t/list_secret_keys.t | 3 ++-
1696 - t/zzz_cleanup.t | 6 ++++--
1697 - 4 files changed, 28 insertions(+), 8 deletions(-)
1698 -
1699 -diff --git a/t/000_setup.t b/t/000_setup.t
1700 -index 4dc4329..82d7005 100644
1701 ---- a/t/000_setup.t
1702 -+++ b/t/000_setup.t
1703 -@@ -12,13 +12,14 @@ use File::Copy;
1704 -
1705 - TEST
1706 - {
1707 -- make_path('test/gnupghome', { mode => 0700 });
1708 -- my $agentconf = IO::File->new( "> test/gnupghome/gpg-agent.conf" );
1709 -+ my $homedir = $gnupg->options->homedir();
1710 -+ make_path($homedir, { mode => 0700 });
1711 -+ my $agentconf = IO::File->new( "> " . $homedir . "/gpg-agent.conf" );
1712 - $agentconf->write("pinentry-program " . getcwd() . "/test/fake-pinentry.pl\n");
1713 - $agentconf->close();
1714 -- copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
1715 -+ copy('test/gpg.conf', $homedir . '/gpg.conf');
1716 - # reset the state of any long-lived gpg-agent, ignoring errors:
1717 -- system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
1718 -+ system('gpgconf', '--homedir', $homedir, '--quiet', '--kill', 'gpg-agent');
1719 -
1720 - reset_handles();
1721 -
1722 -diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
1723 -index e513c25..809d55c 100644
1724 ---- a/t/MyTestSpecific.pm
1725 -+++ b/t/MyTestSpecific.pm
1726 -@@ -22,6 +22,7 @@ use IO::Seekable;
1727 - use File::Compare;
1728 - use Exporter;
1729 - use Class::Struct;
1730 -+use File::Temp qw (tempdir);
1731 -
1732 - use GnuPG::Interface;
1733 - use GnuPG::Handles;
1734 -@@ -40,10 +41,25 @@ use vars qw( @ISA @EXPORT
1735 -
1736 - $gnupg = GnuPG::Interface->new( passphrase => 'test' );
1737 -
1738 -+
1739 -+my $homedir;
1740 -+if (-f "test/gnupghome") {
1741 -+ my $record = IO::File->new( "< test/gnupghome" );
1742 -+ $homedir = <$record>;
1743 -+ $record->close();
1744 -+} else {
1745 -+ $homedir = tempdir( DIR => '/tmp');
1746 -+ my $record = IO::File->new( "> test/gnupghome" );
1747 -+ $record->write($homedir);
1748 -+ $record->close();
1749 -+}
1750 -+
1751 - my @version = split('\.', $gnupg->version());
1752 - $gpg_is_modern = ($version[0] > 2 || ($version[0] == 2 && $version[1] >= 1));
1753 -
1754 --$gnupg->options->hash_init( homedir => 'test/gnupghome',
1755 -+
1756 -+
1757 -+$gnupg->options->hash_init( homedir => $homedir,
1758 - armor => 1,
1759 - meta_interactive => 0,
1760 - meta_signing_key_id => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
1761 -diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
1762 -index 7040c38..d1e3f30 100644
1763 ---- a/t/list_secret_keys.t
1764 -+++ b/t/list_secret_keys.t
1765 -@@ -23,8 +23,9 @@ TEST
1766 - $outfile = 'test/secret-keys/1.out';
1767 - my $out = IO::File->new( "> $outfile" )
1768 - or die "cannot open $outfile for writing: $ERRNO";
1769 -+ my $modern_pubring_line = $gnupg->options->homedir() . "/pubring.kbx\n";
1770 - while (<$stdout>) {
1771 -- if ($gpg_is_modern && /^\/.*\/test\/gnupghome\/pubring.kbx$/) {
1772 -+ if ($gpg_is_modern && ($_ eq $modern_pubring_line)) {
1773 - $out->print("test/gnupghome/pubring.kbx\n");
1774 - } elsif ($gpg_is_modern && /^--*$/) {
1775 - $out->print("--------------------------\n");
1776 -diff --git a/t/zzz_cleanup.t b/t/zzz_cleanup.t
1777 -index eea3a48..c3ec16f 100644
1778 ---- a/t/zzz_cleanup.t
1779 -+++ b/t/zzz_cleanup.t
1780 -@@ -11,9 +11,11 @@ use File::Path qw (remove_tree);
1781 - # this is actually no test, just cleanup.
1782 - TEST
1783 - {
1784 -+ my $homedir = $gnupg->options->homedir();
1785 - my $err = [];
1786 - # kill off any long-lived gpg-agent, ignoring errors:
1787 -- system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
1788 -- remove_tree('test/gnupghome', {error => \$err});
1789 -+ system('gpgconf', '--homedir', $homedir, '--quiet', '--kill', 'gpg-agent');
1790 -+ remove_tree($homedir, {error => \$err});
1791 -+ unlink('test/gnupghome');
1792 - return ! @$err;
1793 - };
1794
1795 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0019-Make-things-work-with-gpg1-assuming-plain-gpg-is-mod.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0019-Make-things-work-with-gpg1-assuming-plain-gpg-is-mod.patch
1796 deleted file mode 100644
1797 index ae6143190de..00000000000
1798 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0019-Make-things-work-with-gpg1-assuming-plain-gpg-is-mod.patch
1799 +++ /dev/null
1800 @@ -1,51 +0,0 @@
1801 -From: Daniel Kahn Gillmor <dkg@×××××××××××××.net>
1802 -Date: Fri, 26 May 2017 18:15:24 -0400
1803 -Subject: Make things work with gpg1 (assuming plain 'gpg' is modern)
1804 -
1805 - * avoid sending --pinentry-mode=loopback if gpg is invoked as gpg1
1806 - * fix up t/list_secret_keys to account for the varied output
1807 - * t/decrypt.t still fails two agent-only tests, but presumably folks
1808 - who use gpg1 are not expecting to use the agent.
1809 ----
1810 - lib/GnuPG/Interface.pm | 5 ++++-
1811 - t/list_secret_keys.t | 9 +++++----
1812 - 2 files changed, 9 insertions(+), 5 deletions(-)
1813 -
1814 -diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
1815 -index 5d8b0ec..f80ead5 100644
1816 ---- a/lib/GnuPG/Interface.pm
1817 -+++ b/lib/GnuPG/Interface.pm
1818 -@@ -112,8 +112,11 @@ sub fork_attach_exec( $% ) {
1819 - # -- version 2.1.x or later. It's not clear to me how we can
1820 - # safely and efficiently avoid this assumption (see
1821 - # https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html)
1822 -+ #
1823 -+ # as a (brittle and incomplete) cleanup, we will avoid trying to
1824 -+ # send pinentry-loopback if the program is invoked as "gpg1"
1825 - $use_loopback_pinentry = 1
1826 -- if ($handles->passphrase());
1827 -+ if ($handles->passphrase() && ! ($self->call =~ m/gpg1$/));
1828 -
1829 - # deprecation support
1830 - $args{commands} ||= $args{gnupg_commands};
1831 -diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
1832 -index d1e3f30..8e3c911 100644
1833 ---- a/t/list_secret_keys.t
1834 -+++ b/t/list_secret_keys.t
1835 -@@ -23,11 +23,12 @@ TEST
1836 - $outfile = 'test/secret-keys/1.out';
1837 - my $out = IO::File->new( "> $outfile" )
1838 - or die "cannot open $outfile for writing: $ERRNO";
1839 -- my $modern_pubring_line = $gnupg->options->homedir() . "/pubring.kbx\n";
1840 -+ my $seckey_file = $gpg_is_modern ? 'pubring.kbx' : 'secring.gpg';
1841 -+ my $pubring_line = $gnupg->options->homedir() . '/' . $seckey_file . "\n";
1842 - while (<$stdout>) {
1843 -- if ($gpg_is_modern && ($_ eq $modern_pubring_line)) {
1844 -- $out->print("test/gnupghome/pubring.kbx\n");
1845 -- } elsif ($gpg_is_modern && /^--*$/) {
1846 -+ if ($_ eq $pubring_line) {
1847 -+ $out->print('test/gnupghome/'.$seckey_file."\n");
1848 -+ } elsif (/^--*$/) {
1849 - $out->print("--------------------------\n");
1850 - } else {
1851 - $out->print( $_ );
1852
1853 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0030-gpg-2.2.6.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0030-gpg-2.2.6.patch
1854 deleted file mode 100644
1855 index 1268beeb0a2..00000000000
1856 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0030-gpg-2.2.6.patch
1857 +++ /dev/null
1858 @@ -1,54 +0,0 @@
1859 -From 7c85ac40660861e7507c43d043323c3f1b83921b Mon Sep 17 00:00:00 2001
1860 -From: Niko Tyni <ntyni@××××××.org>
1861 -Date: Wed, 20 Jun 2018 21:57:50 +0300
1862 -Subject: [PATCH] Fix test suite for GnuPG >= 2.2.6 compatibility
1863 -
1864 -GnuPG 2.2.6 (commit 1a5d95e7319e7e6f) started marking signatures
1865 -with an expired key with '?', as seen with for instance
1866 -
1867 - GNUPGHOME=./test/gnupghome/ gpg --list-sigs 0xF950DA9C
1868 -
1869 -Adapt the test suite accordingly.
1870 -
1871 -See https://dev.gnupg.org/rG1a5d95e7319e7e6f0dd11064a26cbbc371b05214
1872 -
1873 -Bug-Debian: https://bugs.debian.org/900051
1874 ----
1875 - t/get_public_keys.t | 8 ++++++--
1876 - 1 file changed, 6 insertions(+), 2 deletions(-)
1877 -
1878 -diff --git a/t/get_public_keys.t b/t/get_public_keys.t
1879 -index 7893625..ede080a 100644
1880 ---- a/t/get_public_keys.t
1881 -+++ b/t/get_public_keys.t
1882 -@@ -13,8 +13,12 @@ use MyTestSpecific;
1883 - use GnuPG::PrimaryKey;
1884 - use GnuPG::SubKey;
1885 -
1886 -+use version;
1887 -+
1888 - my ( $given_key, $handmade_key );
1889 -
1890 -+my $gnupg_version = version->parse($gnupg->version);
1891 -+
1892 - TEST
1893 - {
1894 - reset_handles();
1895 -@@ -74,7 +78,7 @@ TEST
1896 - date_string => '2000-03-16',
1897 - hex_id => '56FFD10A260C4FA3',
1898 - sig_class => 0x10,
1899 -- validity => '!'),
1900 -+ validity => $gnupg_version < version->parse('2.2.6') ? '!' : '?'),
1901 - GnuPG::Signature->new(
1902 - date => 949813093,
1903 - algo_num => 17,
1904 -@@ -115,7 +119,7 @@ TEST
1905 - date_string => '2000-03-16',
1906 - hex_id => '56FFD10A260C4FA3',
1907 - sig_class => 0x10,
1908 -- validity => '!'),
1909 -+ validity => $gnupg_version < version->parse('2.2.6') ? '!' : '?'),
1910 - GnuPG::Signature->new(
1911 - date => 953179891,
1912 - algo_num => 17,
1913
1914 diff --git a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0031-gpg-2.2.8.patch b/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0031-gpg-2.2.8.patch
1915 deleted file mode 100644
1916 index 6c025007eef..00000000000
1917 --- a/dev-perl/GnuPG-Interface/files/GnuPG-Interface-0.520.0-0031-gpg-2.2.8.patch
1918 +++ /dev/null
1919 @@ -1,64 +0,0 @@
1920 -From b356e7fda15e39e037da1888a24000a96fc85c90 Mon Sep 17 00:00:00 2001
1921 -From: Niko Tyni <ntyni@××××××.org>
1922 -Date: Sun, 24 Jun 2018 16:19:25 +0300
1923 -Subject: [PATCH] Fix test suite for GnuPG >= 2.2.8 compatibility
1924 -
1925 -GnuPG 2.2.8 onwards issues a hard failure when decrypting
1926 -messages not using the MDC mode.
1927 -
1928 -Bug-Debian: https://bugs.debian.org/900051
1929 ----
1930 - t/decrypt.t | 19 +++++++++++++++++--
1931 - 1 file changed, 17 insertions(+), 2 deletions(-)
1932 -
1933 -diff --git a/t/decrypt.t b/t/decrypt.t
1934 -index ee41448..2d6740c 100644
1935 ---- a/t/decrypt.t
1936 -+++ b/t/decrypt.t
1937 -@@ -6,6 +6,7 @@
1938 - use strict;
1939 - use English qw( -no_match_vars );
1940 - use File::Compare;
1941 -+use version;
1942 -
1943 - use lib './t';
1944 - use MyTest;
1945 -@@ -13,6 +14,8 @@ use MyTestSpecific;
1946 -
1947 - my $compare;
1948 -
1949 -+my $gnupg_version = version->parse($gnupg->version);
1950 -+
1951 - TEST
1952 - {
1953 - reset_handles();
1954 -@@ -26,7 +29,13 @@ TEST
1955 - close $stdout;
1956 - waitpid $pid, 0;
1957 -
1958 -- return $CHILD_ERROR == 0;;
1959 -+ if ($gnupg_version < version->parse('2.2.8')) {
1960 -+ return $CHILD_ERROR == 0;;
1961 -+ } else {
1962 -+ local $/ = undef;
1963 -+ my $errstr = <$stderr>;
1964 -+ return (($CHILD_ERROR >> 8 == 2) and ($errstr =~ /ignore-mdc-error/));
1965 -+ }
1966 - };
1967 -
1968 -
1969 -@@ -50,7 +59,13 @@ TEST
1970 -
1971 - waitpid $pid, 0;
1972 -
1973 -- return $CHILD_ERROR == 0;
1974 -+ if ($gnupg_version < version->parse('2.2.8')) {
1975 -+ return $CHILD_ERROR == 0;
1976 -+ } else {
1977 -+ local $/ = undef;
1978 -+ my $errstr = <$stderr>;
1979 -+ return (($CHILD_ERROR >> 8 == 2) and ($errstr =~ /ignore-mdc-error/));
1980 -+ }
1981 - };
1982 -
1983 -