dev-python/kombu: Add python3_6 to PYTHON_COMPAT
authorZac Medico <zmedico@gentoo.org>
Fri, 17 Mar 2017 08:47:45 +0000 (01:47 -0700)
committerZac Medico <zmedico@gentoo.org>
Fri, 17 Mar 2017 08:51:55 +0000 (01:51 -0700)
Package-Manager: Portage-2.3.5, Repoman-2.3.2

dev-python/kombu/files/kombu-4.0.2-dict-iter.patch [new file with mode: 0644]
dev-python/kombu/kombu-4.0.2.ebuild

diff --git a/dev-python/kombu/files/kombu-4.0.2-dict-iter.patch b/dev-python/kombu/files/kombu-4.0.2-dict-iter.patch
new file mode 100644 (file)
index 0000000..fa3e545
--- /dev/null
@@ -0,0 +1,24 @@
+From 2940a4b1830bc2fc6d3f65de4feeec6ea5a49fe5 Mon Sep 17 00:00:00 2001
+From: Felix Yan <felixonmars@archlinux.org>
+Date: Tue, 21 Feb 2017 11:52:18 -0600
+Subject: [PATCH] Don't modify dict size while iterating over it (#676)
+
+This fixes https://github.com/celery/kombu/issues/675.
+---
+ kombu/messaging.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kombu/messaging.py b/kombu/messaging.py
+index 03e7e15..e1800b5 100644
+--- a/kombu/messaging.py
++++ b/kombu/messaging.py
+@@ -397,7 +397,8 @@ def revive(self, channel):
+         """Revive consumer after connection loss."""
+         self._active_tags.clear()
+         channel = self.channel = maybe_channel(channel)
+-        for qname, queue in items(self._queues):
++        # modify dict size while iterating over it is not allowed
++        for qname, queue in list(items(self._queues)):
+             # name may have changed after declare
+             self._queues.pop(qname, None)
+             queue = self._queues[queue.name] = queue(self.channel)
index 0c15fca926a9c43442bdef3d3d62cc043b81dbe4..b5d030da5273601344bfced7091ec3060dcf9b84 100644 (file)
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
 
 inherit distutils-r1
 
@@ -44,6 +44,10 @@ DEPEND="${RDEPEND}
 # Req'd for test phase
 DISTUTILS_IN_SOURCE_BUILD=1
 
+PATCHES=(
+       "${FILESDIR}"/${P}-dict-iter.patch
+       )
+
 python_prepare_all() {
        # AttributeError: test_Etcd instance has no attribute 'patch'
        rm t/unit/transport/test_etcd.py || die