From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- ...001-reflect-2.1-reporting-for-key-imports.patch | 90 ++++++++++++++++++++++ .../0002-passphrase_cb-is-deprecated.patch | 52 +++++++++++++ ...ric-error-when-no-passphrase-callback-pre.patch | 30 ++++++++ .../python/python-pygpgme/run-ptest | 3 + 4 files changed, 175 insertions(+) create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest (limited to 'meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme') diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch new file mode 100644 index 000000000..1f31cb805 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch @@ -0,0 +1,90 @@ +From ed44474c11f577c1644910964a917a4cf701bb0f Mon Sep 17 00:00:00 2001 +From: Daniel Kahn Gillmor +Date: Tue, 26 Jan 2016 14:24:26 -0500 +Subject: [PATCH] reflect 2.1 reporting for key imports + +GnuPG 2.1 changes how it reports key imports. These changes should +make the pygpgme test suite compatible with GnuPG 2.1. + +See also: +https://lists.gnupg.org/pipermail/gnupg-devel/2016-January/030718.html + +Upstream-Status: Backport + +Signed-off-by: Catalin Enache + +--- + tests/test_import.py | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/tests/test_import.py b/tests/test_import.py +index 10eb816..597eb47 100644 +--- a/tests/test_import.py ++++ b/tests/test_import.py +@@ -55,7 +55,7 @@ class ImportTestCase(GpgHomeTestCase): + ctx = gpgme.Context() + with self.keyfile('key1.sec') as fp: + result = ctx.import_(fp) +- self.assertEqual(result.considered, 1) ++ self.assertEqual(result.considered, 3) + self.assertEqual(result.no_user_id, 0) + self.assertEqual(result.imported, 1) + self.assertEqual(result.imported_rsa, 0) +@@ -64,18 +64,18 @@ class ImportTestCase(GpgHomeTestCase): + self.assertEqual(result.new_sub_keys, 0) + self.assertEqual(result.new_signatures, 0) + self.assertEqual(result.new_revocations, 0) +- self.assertEqual(result.secret_read, 1) +- self.assertEqual(result.secret_imported, 1) ++ self.assertEqual(result.secret_read, 3) ++ self.assertEqual(result.secret_imported, 2) + self.assertEqual(result.secret_unchanged, 0) + self.assertEqual(result.skipped_new_keys, 0) + self.assertEqual(result.not_imported, 0) + self.assertEqual(len(result.imports), 2) + self.assertEqual(result.imports[0], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) ++ None, gpgme.IMPORT_NEW)) + self.assertEqual(result.imports[1], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_NEW)) ++ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) + # can we get the public key? + key = ctx.get_key('E79A842DA34A1CA383F64A1546BB55F0885C65A4') + # can we get the secret key? +@@ -102,17 +102,17 @@ class ImportTestCase(GpgHomeTestCase): + fp = BytesIO(b'\n'.join(keys)) + ctx = gpgme.Context() + result = ctx.import_(fp) +- self.assertEqual(result.considered, 3) ++ self.assertEqual(result.considered, 5) + self.assertEqual(result.no_user_id, 0) + self.assertEqual(result.imported, 2) +- self.assertEqual(result.imported_rsa, 1) ++ self.assertEqual(result.imported_rsa, 0) + self.assertEqual(result.unchanged, 0) + self.assertEqual(result.new_user_ids, 0) + self.assertEqual(result.new_sub_keys, 0) + self.assertEqual(result.new_signatures, 1) + self.assertEqual(result.new_revocations, 0) +- self.assertEqual(result.secret_read, 1) +- self.assertEqual(result.secret_imported, 1) ++ self.assertEqual(result.secret_read, 3) ++ self.assertEqual(result.secret_imported, 2) + self.assertEqual(result.secret_unchanged, 0) + self.assertEqual(result.skipped_new_keys, 0) + self.assertEqual(result.not_imported, 0) +@@ -122,10 +122,10 @@ class ImportTestCase(GpgHomeTestCase): + None, gpgme.IMPORT_NEW)) + self.assertEqual(result.imports[1], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) ++ None, gpgme.IMPORT_SIG)) + self.assertEqual(result.imports[2], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_SIG)) ++ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) + self.assertEqual(result.imports[3], + ('93C2240D6B8AA10AB28F701D2CF46B7FC97E6B0F', + None, gpgme.IMPORT_NEW)) diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch new file mode 100644 index 000000000..c18cf3feb --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch @@ -0,0 +1,52 @@ +From ba0dc8273e4f83bcd2d43baa5910aae34b93048c Mon Sep 17 00:00:00 2001 +From: Daniel Kahn Gillmor +Date: Mon, 1 Feb 2016 19:25:12 -0500 +Subject: [PATCH] passphrase_cb is deprecated + +https://bugs.gnupg.org/gnupg/issue767 indicates that +gpgme_set_passphrase_cb is a deprecated corner of the API and that +developers using gpgme should really rely on the gpg-agent to handle +this stuff. This should actually simplify things for most +installations -- just strip out all passphrase handling from your +application entirely, relying on gpg to figure out how to find the +agent, and relying on the agent figuring out how to prompt the user +(if necessary). + +However, if a developer really wants to use the passphrase callback +approach, they'll have to use loopback pinentry. This sets up the +test suite to be able to make those tests. + +Upstream-Status: Backport + +Signed-off-by: Catalin Enache + +--- + tests/util.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/tests/util.py b/tests/util.py +index cd803c2..86892ca 100644 +--- a/tests/util.py ++++ b/tests/util.py +@@ -28,7 +28,9 @@ keydir = os.path.join(os.path.dirname(__file__), 'keys') + + class GpgHomeTestCase(unittest.TestCase): + +- gpg_conf_contents = '' ++ gpg_conf_contents = 'pinentry-mode loopback' ++ gpg_agent_conf_contents = 'allow-loopback-pinentry' ++ + import_keys = [] + + def keyfile(self, key): +@@ -41,6 +43,10 @@ class GpgHomeTestCase(unittest.TestCase): + fp.write(self.gpg_conf_contents.encode('UTF-8')) + fp.close() + ++ fp = open(os.path.join(self._gpghome, 'gpg-agent.conf'), 'wb') ++ fp.write(self.gpg_agent_conf_contents.encode('UTF-8')) ++ fp.close() ++ + # import requested keys into the keyring + ctx = gpgme.Context() + for key in self.import_keys: diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch new file mode 100644 index 000000000..6acb68bfe --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch @@ -0,0 +1,30 @@ +From 579b5930e15de8855bf63b3c20b6c3aaf894c3eb Mon Sep 17 00:00:00 2001 +From: Daniel Kahn Gillmor +Date: Mon, 1 Feb 2016 19:27:59 -0500 +Subject: [PATCH] handle generic error when no passphrase callback present + +apparently gpg 2.1 returns ERR_GENERAL right now if the pinentry was +in loopback mode and no passphrase callback was supplied. Earlier +versions supplied ERR_BAD_PASSPHRASE. + +Upstream-Status: Backport + +Signed-off-by: Catalin Enache + +--- + tests/test_passphrase.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py +index 0a235e9..35b3c59 100644 +--- a/tests/test_passphrase.py ++++ b/tests/test_passphrase.py +@@ -41,7 +41,7 @@ class PassphraseTestCase(GpgHomeTestCase): + new_sigs = ctx.sign(plaintext, signature, gpgme.SIG_MODE_CLEAR) + except gpgme.GpgmeError as exc: + self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME) +- self.assertEqual(exc.args[1], gpgme.ERR_BAD_PASSPHRASE) ++ self.assertEqual(exc.args[1], gpgme.ERR_GENERAL) + else: + self.fail('gpgme.GpgmeError not raised') + diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest new file mode 100644 index 000000000..ce2abb66a --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +GPG_AGENT_INFO= python test_all.py -v 2>&1 | sed -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g' -- cgit v1.2.3