commit:     ac293f205ae49d36e942eb5b3d5d9ee470cb85e6
Author:     Conrad Kostecki <conrad <AT> kostecki <DOT> com>
AuthorDate: Fri Aug  3 21:33:19 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug 11 20:44:26 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac293f20

dev-python/python-gnupg: bump to version 0.4.3

Bumped to EAPI="7".
Added pypy3 and python 3.7 support.

Closes: https://bugs.gentoo.org/662750
Closes: https://github.com/gentoo/gentoo/pull/9434
Package-Manager: Portage-2.3.43, Repoman-2.3.10

 dev-python/python-gnupg/Manifest                   |  1 +
 ...hon-gnupg-0.4.3-skip_network_needing_test.patch | 49 ++++++++++++++++++
 ...n-gnupg-0.4.3-use_seperate_keys_directory.patch | 58 ++++++++++++++++++++++
 dev-python/python-gnupg/metadata.xml               | 22 ++++----
 dev-python/python-gnupg/python-gnupg-0.4.3.ebuild  | 29 +++++++++++
 5 files changed, 150 insertions(+), 9 deletions(-)

diff --git a/dev-python/python-gnupg/Manifest b/dev-python/python-gnupg/Manifest
index 0e43d665518..e53311398bf 100644
--- a/dev-python/python-gnupg/Manifest
+++ b/dev-python/python-gnupg/Manifest
@@ -1,2 +1,3 @@
 DIST python-gnupg-0.4.0.tar.gz 43987 BLAKE2B 
59e72f894c5d554ba2a7c348ad3625500798ad6ac18332a3bb668b42559f52b58e3cd0f8b79ef1a99f37e796b48169d0bf36414e938e9039784cede4303cbb03
 SHA512 
f486ec97aee01cf46d055421211ff5704093a382155043b7ced6f809dc15d7669d5869038a1b26c5f1831076d85c929d781bc22e35ab293a14bc6e2f5f27fa32
 DIST python-gnupg-0.4.1.tar.gz 44534 BLAKE2B 
0b58312b9f094b29f7009bb7a44ea3607be826ae2fda958dae0ba9dd5a2d7f81843fe23a6fe336b9df85c059e5b114787dab372df42b14b83cb73fb02abee919
 SHA512 
0920a1de4d98a745f7747280672975db04c40b59ea4436745cdbefa86a0c88bfdc086d6dd312c82a0a9e9f8cafb5651f8e17d86e0ee37282b5fc36e7ac8d1a1e
+DIST python-gnupg-0.4.3.tar.gz 46958 BLAKE2B 
c83b13f8b36c136ac75e8a69dccb07025be3397284e27d9624677cd76ac8527bed67644be7a00958fdb248772a0c37de09257fb711eb16a2c982dbca0368dbd6
 SHA512 
9381acb1246b6ceec4de21091f2ce57dba9c6600dfb52ddee181effbd2e749d18935e6b6bb2183816064e9129cd1bb3ebfdd28a5dcddc9be1c56261a501067d8

diff --git 
a/dev-python/python-gnupg/files/python-gnupg-0.4.3-skip_network_needing_test.patch
 
b/dev-python/python-gnupg/files/python-gnupg-0.4.3-skip_network_needing_test.patch
new file mode 100644
index 00000000000..2e5b4145182
--- /dev/null
+++ 
b/dev-python/python-gnupg/files/python-gnupg-0.4.3-skip_network_needing_test.patch
@@ -0,0 +1,49 @@
+From: Elena Grandi <elena.valha...@gmail.com>
+Date: Thu, 8 Oct 2015 12:11:21 -0700
+Subject: Skip tests that require internet access
+
+Forwarded: not-needed
+Patch-Name: skip_network_needing_test.patch
+---
+ gnupg.py      | 8 ++++----
+ test_gnupg.py | 1 +
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/gnupg.py b/gnupg.py
+index cd662d4..bf6dc64 100644
+--- a/gnupg.py
++++ b/gnupg.py
+@@ -1117,8 +1117,8 @@ class GPG(object):
+         >>> GPGBINARY = os.environ.get('GPGBINARY', 'gpg')
+         >>> gpg = GPG(gpgbinary=GPGBINARY, gnupghome="keys")
+         >>> os.chmod('keys', 0x1C0)
+-        >>> result = gpg.recv_keys('pgp.mit.edu', '92905378')
+-        >>> assert result
++        >>> result = gpg.recv_keys('pgp.mit.edu', '92905378')  # doctest: 
+SKIP
++        >>> assert result  # doctest: +SKIP
+ 
+         """
+         result = self.result_map['import'](self)
+@@ -1320,8 +1320,8 @@ class GPG(object):
+         >>> GPGBINARY = os.environ.get('GPGBINARY', 'gpg')
+         >>> gpg = GPG(gpgbinary=GPGBINARY, gnupghome='keys')
+         >>> os.chmod('keys', 0x1C0)
+-        >>> result = gpg.search_keys('<vinay_sa...@hotmail.com>')
+-        >>> assert result, 'Failed using default keyserver'
++        >>> result = gpg.search_keys('<vinay_sa...@hotmail.com>')  # doctest: 
+SKIP
++        >>> assert result, 'Failed using default keyserver'  # doctest: +SKIP
+         >>> #keyserver = 'keyserver.ubuntu.com'
+         >>> #result = gpg.search_keys('<vinay_sa...@hotmail.com>', keyserver)
+         >>> #assert result, 'Failed using keyserver.ubuntu.com'
+diff --git a/test_gnupg.py b/test_gnupg.py
+index 7a5b705..25817da 100644
+--- a/test_gnupg.py
++++ b/test_gnupg.py
+@@ -834,6 +834,7 @@ class GPGTestCase(unittest.TestCase):
+         logger.debug("test_filename_with_spaces ends")
+ 
+     #@skipIf(os.name == 'nt', 'Test not suitable for Windows')
++    @unittest.skip('requires network')
+     def test_search_keys(self):
+         "Test that searching for keys works"
+         r = self.gpg.search_keys('<vinay_sa...@hotmail.com>')

diff --git 
a/dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch
 
b/dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch
new file mode 100644
index 00000000000..b5318ede0d8
--- /dev/null
+++ 
b/dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch
@@ -0,0 +1,58 @@
+# HG changeset patch
+# User Michał Górny <mgo...@gentoo.org>
+# Date 1533916222 -7200
+# Node ID 2c8991b1c9080adc61e63d00fe9415b88f3e6208
+# Parent  9cb2a856677237b528ead6fff68de7d488dbfeec
+Use private temporary GPG-homes for tests to fix race conditions.
+
+Create unique temporary directories to use as GPG home in each test
+instead of reusing a single hardcoded 'keys' directory.  This is
+necessary to fix race conditions between directory operations
+and gpg-agent in GnuPG 2.0+.
+
+GnuPG 2.0 started using gpg-agent for all operations.  It is
+automatically spawned when GPG is called to do something, and it stops
+automatically when its homedir is removed (e.g. as part of rmtree()
+call).  However, with the homedir being instantly recreated and next
+test being run, it seems that gpg-agent sometimes failed to stop fully
+before being started again and causes one of the tests to fail with
+gpg-agent connection errors.
+
+With this change, I am finally able to successfully run all tests
+in a single batch.
+
+diff --git a/test_gnupg.py b/test_gnupg.py
+--- a/test_gnupg.py
++++ b/test_gnupg.py
+@@ -173,11 +173,7 @@
+ 
+ class GPGTestCase(unittest.TestCase):
+     def setUp(self):
+-        hd = os.path.join(os.getcwd(), 'keys')
+-        if os.path.exists(hd):
+-            self.assertTrue(os.path.isdir(hd),
+-                            "Not a directory: %s" % hd)
+-            shutil.rmtree(hd, ignore_errors=True)
++        hd = tempfile.mkdtemp()
+         prepare_homedir(hd)
+         self.homedir = hd
+         self.gpg = gpg = gnupg.GPG(gnupghome=hd, gpgbinary=GPGBINARY)
+@@ -193,6 +189,9 @@
+             data_file.write(os.urandom(5120 * 1024))
+             data_file.close()
+ 
++    def tearDown(self):
++        shutil.rmtree(self.homedir, ignore_errors=True)
++
+     def test_environment(self):
+         "Test the environment by ensuring that setup worked"
+         hd = self.homedir
+@@ -373,7 +372,7 @@
+             # and the keyring file name has changed.
+             pkn = 'pubring.kbx'
+             skn = None
+-        hd = os.path.join(os.getcwd(), 'keys')
++        hd = self.homedir
+         if os.name == 'posix':
+             pkn = os.path.join(hd, pkn)
+             if skn:

diff --git a/dev-python/python-gnupg/metadata.xml 
b/dev-python/python-gnupg/metadata.xml
index 454368d9c47..64e837ef006 100644
--- a/dev-python/python-gnupg/metadata.xml
+++ b/dev-python/python-gnupg/metadata.xml
@@ -1,13 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
-  <maintainer type="project">
-    <email>pyt...@gentoo.org</email>
-    <name>Python</name>
-  </maintainer>
-  <upstream>
-    <remote-id type="google-code">python-gnupg</remote-id>
-    <remote-id type="github">vsajip/python-gnupg</remote-id>
-    <remote-id type="pypi">python-gnupg</remote-id>
-  </upstream>
+       <maintainer type="project">
+               <email>pyt...@gentoo.org</email>
+               <name>Python</name>
+       </maintainer>
+       <longdescription>
+               This project implements a Python library, which takes care of 
the internal details
+               and allows its users to generate and manage keys,
+               encrypt and decrypt data, and sign and verify messages.
+       </longdescription>
+       <upstream>
+               
<bugs-to>https://bitbucket.org/vinay.sajip/python-gnupg/issues/new</bugs-to>
+               <remote-id type="bitbucket">vinay.sajip/python-gnupg</remote-id>
+       </upstream>
 </pkgmetadata>

diff --git a/dev-python/python-gnupg/python-gnupg-0.4.3.ebuild 
b/dev-python/python-gnupg/python-gnupg-0.4.3.ebuild
new file mode 100644
index 00000000000..f5deea7ec6e
--- /dev/null
+++ b/dev-python/python-gnupg/python-gnupg-0.4.3.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+PYTHON_COMPAT=( pypy{,3} python2_7 python3_{4,5,6,7} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python wrapper for GnuPG"
+HOMEPAGE="https://bitbucket.org/vinay.sajip/python-gnupg
+       https://pypi.org/project/python-gnupg/";
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND="app-crypt/gnupg"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-skip_network_needing_test.patch
+       "${FILESDIR}"/${P}-use_seperate_keys_directory.patch
+)
+
+python_test() {
+       "${PYTHON}" test_gnupg.py || die "Tests failed with ${EPYTHON}"
+}

Reply via email to