git: 7839223a2353 - 2022Q3 - mail/pyzor: Fix runtime with Python 3.9
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 04 Aug 2022 22:43:22 UTC
The branch 2022Q3 has been updated by dbaio:
URL: https://cgit.FreeBSD.org/ports/commit/?id=7839223a2353e58f18b5733abc69967f7354a30e
commit 7839223a2353e58f18b5733abc69967f7354a30e
Author: Danilo G. Baio <dbaio@FreeBSD.org>
AuthorDate: 2022-07-15 22:05:37 +0000
Commit: Danilo G. Baio <dbaio@FreeBSD.org>
CommitDate: 2022-08-04 22:42:04 +0000
mail/pyzor: Fix runtime with Python 3.9
Partial patch of
https://github.com/SpamExperts/pyzor/commit/7afe0aedc320dd2689bfbf45e97fdb09adb89686
PR: 265237 [1]
Reported by: Jakob Stoklund Olesen <swig.morning0d@icloud.com> [1]
Reported by: Andrew <andrew@tekrealm.net>
(cherry picked from commit c0927c63a74f462bcbaa415ea6b906c66d691188)
---
mail/pyzor/Makefile | 2 +-
mail/pyzor/files/patch-7afe0ae.patch | 182 +++++++++++++++++++++++++++++++++++
2 files changed, 183 insertions(+), 1 deletion(-)
diff --git a/mail/pyzor/Makefile b/mail/pyzor/Makefile
index b03120be829a..21225f276682 100644
--- a/mail/pyzor/Makefile
+++ b/mail/pyzor/Makefile
@@ -2,7 +2,7 @@
PORTNAME= pyzor
PORTVERSION= 1.0.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= mail python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/mail/pyzor/files/patch-7afe0ae.patch b/mail/pyzor/files/patch-7afe0ae.patch
new file mode 100644
index 000000000000..21cfd2b76adc
--- /dev/null
+++ b/mail/pyzor/files/patch-7afe0ae.patch
@@ -0,0 +1,182 @@
+partial:
+
+From 7afe0aedc320dd2689bfbf45e97fdb09adb89686 Mon Sep 17 00:00:00 2001
+From: Alexandru Chirila <alex@alexkiro.com>
+Date: Fri, 15 Jan 2016 12:30:39 +0200
+Subject: [PATCH] Refs. #46. Fix all unitest for Python3.
+
+Adjust all the unittest and code to pass on Python3
+without any 2to3 conversion (even without the
+python-future library installed).
+---
+ pyzor/client.py | 6 ++--
+ pyzor/digest.py | 2 +-
+ pyzor/engines/common.py | 4 +--
+ pyzor/engines/gdbm_.py | 2 +-
+ pyzor/engines/mysql.py | 2 +-
+ pyzor/server.py | 4 +--
+ scripts/pyzor | 4 +--
+ scripts/pyzord | 2 +-
+
+| ------------------------------------------ |
+| removed from original patch:
+|
+| scripts/run_tests | 5 ++--
+| tests/benchmark/measure_server_response.py | 8 ++---
+| tests/functional/test_pyzor.py | 22 +++++++-------
+| tests/unit/test_account.py | 35 +++++++++++-----------
+| tests/unit/test_config.py | 7 +++--
+| tests/unit/test_engines/test_gdbm.py | 2 +-
+| tests/unit/test_forwarder.py | 2 +-
+| tests/unit/test_server.py | 9 ++++--
+| tests/util/__init__.py | 8 ++---
+| web/application.py | 4 +--
+| ------------------------------------------ |
+ 18 files changed, 67 insertions(+), 61 deletions(-)
+
+diff --git a/pyzor/client.py b/pyzor/client.py
+index 82d6361..07daba2 100644
+--- pyzor/client.py
++++ pyzor/client.py
+@@ -78,7 +78,7 @@ def __init__(self, accounts=None, timeout=None, spec=None):
+ if accounts is None:
+ accounts = {}
+ self.accounts = dict(((host, int(port)), account)
+- for (host, port), account in accounts.iteritems())
++ for (host, port), account in accounts.items())
+ if spec is None:
+ spec = pyzor.digest.digest_spec
+ self.spec = spec
+@@ -227,12 +227,12 @@ def flush(self):
+
+ def force(self):
+ """Force send any remaining reports."""
+- for address, msg in self.r_requests.iteritems():
++ for address, msg in self.r_requests.items():
+ try:
+ self.send(msg, address)
+ except:
+ continue
+- for address, msg in self.w_requests.iteritems():
++ for address, msg in self.w_requests.items():
+ try:
+ self.send(msg, address)
+ except:
+diff --git a/pyzor/digest.py b/pyzor/digest.py
+index 100a4c6..058c208 100644
+--- pyzor/digest.py
++++ pyzor/digest.py
+@@ -105,7 +105,7 @@ def handle_atomic(self, lines):
+ def handle_pieced(self, lines, spec):
+ """Digest stuff according to the spec."""
+ for offset, length in spec:
+- for i in xrange(length):
++ for i in range(length):
+ try:
+ line = lines[int(offset * len(lines) // 100) + i]
+ except IndexError:
+diff --git a/pyzor/engines/common.py b/pyzor/engines/common.py
+index a96c656..17f083c 100644
+--- pyzor/engines/common.py
++++ pyzor/engines/common.py
+@@ -31,7 +31,7 @@ def __init__(self, r_count=0, wl_count=0, r_entered=None,
+
+ def wl_increment(self):
+ # overflow prevention
+- if self.wl_count < sys.maxint:
++ if self.wl_count < sys.maxsize:
+ self.wl_count += 1
+ if self.wl_entered is None:
+ self.wl_entered = datetime.datetime.now()
+@@ -39,7 +39,7 @@ def wl_increment(self):
+
+ def r_increment(self):
+ # overflow prevention
+- if self.r_count < sys.maxint:
++ if self.r_count < sys.maxsize:
+ self.r_count += 1
+ if self.r_entered is None:
+ self.r_entered = datetime.datetime.now()
+diff --git a/pyzor/engines/gdbm_.py b/pyzor/engines/gdbm_.py
+index d9415ba..e75fbd3 100644
+--- pyzor/engines/gdbm_.py
++++ pyzor/engines/gdbm_.py
+@@ -75,7 +75,7 @@ def items(self):
+ def apply_method(self, method, varargs=(), kwargs=None):
+ if kwargs is None:
+ kwargs = {}
+- return apply(method, varargs, kwargs)
++ return method(*varargs, **kwargs)
+
+ def __getitem__(self, key):
+ return self.apply_method(self._really_getitem, (key,))
+diff --git a/pyzor/engines/mysql.py b/pyzor/engines/mysql.py
+index baef14d..f8d893d 100644
+--- pyzor/engines/mysql.py
++++ pyzor/engines/mysql.py
+@@ -294,7 +294,7 @@ def _safe_call(self, name, method, args):
+ def reconnect(self):
+ if not self.bound:
+ return
+- for _ in xrange(self.bound):
++ for _ in range(self.bound):
+ self.db_queue.put(self._get_new_connection())
+
+ def _reconnect(self, db):
+diff --git a/pyzor/server.py b/pyzor/server.py
+index abae192..b342222 100644
+--- pyzor/server.py
++++ pyzor/server.py
+@@ -137,7 +137,7 @@ def __init__(self, address, database, passwd_fn, access_fn, prefork=4):
+ def serve_forever(self, poll_interval=0.5):
+ """Fork the current process and wait for all children to finish."""
+ pids = []
+- for dummy in xrange(self._prefork):
++ for dummy in range(self._prefork):
+ database = self.database.next()
+ pid = os.fork()
+ if not pid:
+@@ -312,7 +312,7 @@ def handle_pong(self, digests):
+ This command returns maxint for report counts and 0 whitelist.
+ """
+ self.server.log.debug("Request pong for %s", digests[0])
+- self.response["Count"] = "%d" % sys.maxint
++ self.response["Count"] = "%d" % sys.maxsize
+ self.response["WL-Count"] = "%d" % 0
+
+ def handle_check(self, digests):
+diff --git a/scripts/pyzor b/scripts/pyzor
+index 19b1d21..040b4c5 100755
+--- scripts/pyzor
++++ scripts/pyzor
+@@ -110,7 +110,7 @@ def load_configuration():
+ config = ConfigParser.ConfigParser()
+ # Set the defaults.
+ config.add_section("client")
+- for key, value in defaults.iteritems():
++ for key, value in defaults.items():
+ config.set("client", key, value)
+ # Override with the configuration.
+ config.read(os.path.join(options.homedir, "config"))
+@@ -372,7 +372,7 @@ def genkey(client, servers, config, hash_func=hashlib.sha1):
+ return False
+ # pylint: disable-msg=W0612
+ salt = "".join([chr(random.randint(0, 255))
+- for unused in xrange(hash_func(b"").digest_size)])
++ for unused in range(hash_func(b"").digest_size)])
+ if sys.version_info >= (3, 0):
+ salt = salt.encode("utf8")
+ salt_digest = hash_func(salt)
+diff --git a/scripts/pyzord b/scripts/pyzord
+index 7b073a7..3ac7a2c 100755
+--- scripts/pyzord
++++ scripts/pyzord
+@@ -244,7 +244,7 @@ def load_configuration():
+ config = ConfigParser.ConfigParser()
+ # Set the defaults.
+ config.add_section("server")
+- for key, value in defaults.iteritems():
++ for key, value in defaults.items():
+ config.set("server", key, value)
+ # Override with the configuration.
+ config.read(os.path.join(options.homedir, "config"))