Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jul 2022 18:19:25 GMT
From:      "Danilo G. Baio" <dbaio@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: c0927c63a74f - main - mail/pyzor: Fix runtime with Python 3.9
Message-ID:  <202207161819.26GIJPHA023005@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dbaio:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c0927c63a74f462bcbaa415ea6b906c66d691188

commit c0927c63a74f462bcbaa415ea6b906c66d691188
Author:     Danilo G. Baio <dbaio@FreeBSD.org>
AuthorDate: 2022-07-15 22:05:37 +0000
Commit:     Danilo G. Baio <dbaio@FreeBSD.org>
CommitDate: 2022-07-16 18:18:54 +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>
---
 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"))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202207161819.26GIJPHA023005>