[Python-modules-team] Bug#924976: python3-kombu: Incompatible with python3-redis (>= 3)

Josue Ortega josue at debian.org
Mon Apr 15 15:32:16 BST 2019


Hi,

python-redis changed its API in version 3 breaking python-kombu. This has been fixed
in the latest upstream version. 
I've attached the debdiff with the fix for v4.2.1. If you don'have time to make this upload
let me know and I will upload it myself

Regards

Josue
-------------- next part --------------
diff -Nru kombu-4.2.1/debian/changelog kombu-4.2.1/debian/changelog
--- kombu-4.2.1/debian/changelog	2019-03-01 13:03:25.000000000 -0600
+++ kombu-4.2.1/debian/changelog	2019-04-15 07:11:18.000000000 -0600
@@ -1,3 +1,11 @@
+kombu (4.2.1-3) UNRELEASED; urgency=medium
+
+  * Team upload.
+  * Add debian/patch/0005-Fix-compat-with-redis3.patch to fix compatibility with
+    python-redis (>= 3) (Closes: #924976).
+
+ -- Josue Ortega <josue at debian.org>  Mon, 15 Apr 2019 07:11:18 -0600
+
 kombu (4.2.1-2) unstable; urgency=high
 
   [ Ond��ej Nov�� ]
diff -Nru kombu-4.2.1/debian/patches/0005-Fix-compat-with-redis3.patch kombu-4.2.1/debian/patches/0005-Fix-compat-with-redis3.patch
--- kombu-4.2.1/debian/patches/0005-Fix-compat-with-redis3.patch	1969-12-31 18:00:00.000000000 -0600
+++ kombu-4.2.1/debian/patches/0005-Fix-compat-with-redis3.patch	2019-04-15 07:11:18.000000000 -0600
@@ -0,0 +1,41 @@
+Description: Fix compat with redis >= 3
+Author: Josue Ortega <josue at debian.org>
+Last-Update: 2019-04-15
+
+--- a/kombu/transport/redis.py
++++ b/kombu/transport/redis.py
+@@ -145,8 +145,14 @@
+     def append(self, message, delivery_tag):
+         delivery = message.delivery_info
+         EX, RK = delivery['exchange'], delivery['routing_key']
++
++        # Redis-py changed the format of zadd args in v3.0.0
++        zadd_args = [{delivery_tag: time()}]
++        if redis.VERSION[0] < 3:
++            zadd_args = [time(), delivery_tag]
++
+         with self.pipe_or_acquire() as pipe:
+-            pipe.zadd(self.unacked_index_key, time(), delivery_tag) \
++            pipe.zadd(self.unacked_index_key, *zadd_args) \
+                 .hset(self.unacked_key, delivery_tag,
+                       dumps([message._raw, EX, RK])) \
+                 .execute()
+--- a/t/unit/transport/test_redis.py
++++ b/t/unit/transport/test_redis.py
+@@ -75,8 +75,14 @@
+     def sadd(self, key, member, *args):
+         self.sets[key].add(member)
+ 
+-    def zadd(self, key, score1, member1, *args):
+-        self.sets[key].add(member1)
++    def zadd(self, key, *args):
++        if redis.redis.VERSION[0] >= 3:
++            (mapping,) = args
++            for item in mapping:
++                self.sets[key].add(item)
++        else:
++            (score1, member1) = args
++            self.sets[key].add(member1)
+ 
+     def smembers(self, key):
+         return self.sets.get(key, set())
diff -Nru kombu-4.2.1/debian/patches/series kombu-4.2.1/debian/patches/series
--- kombu-4.2.1/debian/patches/series	2019-03-01 13:03:25.000000000 -0600
+++ kombu-4.2.1/debian/patches/series	2019-04-15 07:11:18.000000000 -0600
@@ -1,3 +1,4 @@
+0005-Fix-compat-with-redis3.patch
 0001-Remove-image-from-remote-donation-site-privacy-issue.patch
 0002-Disable-intershpinx-mapping-for-now.patch
 0003-Remove-pytest-sugar-from-test-requirements.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/python-modules-team/attachments/20190415/b8be74d6/attachment.sig>


More information about the Python-modules-team mailing list