From nobody Fri Mar 25 13:51:14 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 5124B1A34D0D; Fri, 25 Mar 2022 13:51:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KQ3Qr1Cnkz3hLH; Fri, 25 Mar 2022 13:51:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648216276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ecwapVu97FA23yB8/Fi4nQDAsAZltRVGkSahC9Wnz4s=; b=WB8/YJ/BVfu/Bj+l4GDfCOUiO6N08BaUBTSzIJOSA5qMLiI+G4Vt2sDZ9nKsnn9T31yQfs CGheQGcVnHD5REOLLJOe7pqm++0UQ82ISA9vysxGiQUlySH93B2IAVe4MzUnLC41HaHOoh dVTRm4Hbm0owj11ChviEJsnb7lnqdjEV9fvVJDfp5rmuJh0PUJiAVwXs2RhthjKqq9TqyC aXi1OGg5aFAHW1ujnfR+6ZmnEGQkNWmbypPCNZhTC9+fW65Akkq+IHXv484CoQo0BrQPtg MO4VyrxK53K5//tpuLFJWka6jThZaslwZAgv4Okv2iduzHN245mKGkqq2P4uyQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EAE5B56C5; Fri, 25 Mar 2022 13:51:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 22PDpEMQ038017; Fri, 25 Mar 2022 13:51:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22PDpE8x038016; Fri, 25 Mar 2022 13:51:14 GMT (envelope-from git) Date: Fri, 25 Mar 2022 13:51:14 GMT Message-Id: <202203251351.22PDpE8x038016@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Po-Chuan Hsieh Subject: git: caab5f547158 - main - www/py-jonpy: Fix build with setuptools 58.0.0+ List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sunpoet X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: caab5f5471583f1be509c2d17afb6f96e1be14fd Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648216276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ecwapVu97FA23yB8/Fi4nQDAsAZltRVGkSahC9Wnz4s=; b=Lweyk53SvooPFNr6h1zguvtz2pThqU2/qJ2mUNWI1gQN2Iws2YfSyEtLPEkKzTu3Ttfpnk 3Z8WEQ7t2Dcv4p6NvIfL5cpMfDfPH1fz2yuw4MlGwtW/ng6GffigjPXgKUZZQs8TBxhWRR pOPnAWQQNcsRxKzZ9FIJrfnPGonHFRocwfqz+jXVTDVVZ3d2viiQSb9BL3vw2sDk3zp1rt Pmym3PZFBjhtq7LsxODgpBcCpIeW9/xPXRckERDPJY2gSYcEBCGIl/akAe9/V/i6JcdVA9 UWcpcwsftx6N+Dk3bxztXkTJCvVcals+YTkY/vTFVhO1F2D/UhWZY0Y4k5jbMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1648216276; a=rsa-sha256; cv=none; b=qh1c4Vp5jC++EWCU37y/uuZSYl/WdP9hCujwpWmqaoCIXuevFs1XFFejRasQq0VuPO56WX sX+9kiXxLfwTluIdAKfrmEu9AnmeWAvZ3+QXFOVrwFFudQjb+hh2uXhI55QVuJl4q9Y6bY MSg0Vry0a+yuKVOH1Ff+BKKULUaYRyab0yQvRhm7CCq4tHq0yu9vYU0BcIlmMEVGl/241F iUnJ+pNl87s7qTBRdGXbqHOnn0rADBlIfSr38PE7mmOhsKIMjGPnrhU7wnqL9mqPzPZWnY SD0xO3wynbV4axLgU0kHWWI252PnXSndy2FVy303HPx35nfExUtHb/LgJBnByg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=caab5f5471583f1be509c2d17afb6f96e1be14fd commit caab5f5471583f1be509c2d17afb6f96e1be14fd Author: Po-Chuan Hsieh AuthorDate: 2022-03-25 13:35:12 +0000 Commit: Po-Chuan Hsieh CommitDate: 2022-03-25 13:38:24 +0000 www/py-jonpy: Fix build with setuptools 58.0.0+ With hat: python --- www/py-jonpy/files/patch-2to3 | 398 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 398 insertions(+) diff --git a/www/py-jonpy/files/patch-2to3 b/www/py-jonpy/files/patch-2to3 new file mode 100644 index 000000000000..4f80a0eb173c --- /dev/null +++ b/www/py-jonpy/files/patch-2to3 @@ -0,0 +1,398 @@ +--- jon/cgi.py.orig 2012-04-04 15:01:19 UTC ++++ jon/cgi.py +@@ -1,10 +1,10 @@ + # $Id: cgi.py,v 9f23fa584882 2012/04/04 15:01:19 jon $ + +-import sys, re, os, Cookie, errno ++import sys, re, os, http.cookies, errno + try: +- import cStringIO as StringIO ++ import io as StringIO + except ImportError: +- import StringIO ++ import io + + """Object-oriented CGI interface.""" + +@@ -38,13 +38,13 @@ def html_encode(raw): + Specifically, the following characters are encoded as entities: + & < > " ' + + """ +- if not isinstance(raw, (str, unicode)): ++ if not isinstance(raw, str): + raw = str(raw) + return re.sub(_html_encre, lambda m: _html_encodes[m.group(0)], raw) + + def url_encode(raw): + """Return the string parameter URL-encoded.""" +- if not isinstance(raw, (str, unicode)): ++ if not isinstance(raw, str): + raw = str(raw) + return re.sub(_url_encre, lambda m: "%%%02X" % ord(m.group(0)), raw) + +@@ -69,7 +69,7 @@ def traceback(req, html=0): + except SequencingError: + pass + cgitb.Hook(file=req)(*exc) +- s = StringIO.StringIO() ++ s = io.StringIO() + cgitb.Hook(file=s, format="text")(*exc) + req.error(s.getvalue()) + +@@ -90,7 +90,7 @@ class Request(object): + self._doneHeaders = 0 + self._headers = [] + self._bufferOutput = 1 +- self._output = StringIO.StringIO() ++ self._output = io.StringIO() + self._pos = 0 + self.closed = 0 + self._encoding = self._inputencoding = self._form_encoding = None +@@ -98,7 +98,7 @@ class Request(object): + del self.params + except AttributeError: + pass +- self.cookies = Cookie.SimpleCookie() ++ self.cookies = http.cookies.SimpleCookie() + if "HTTP_COOKIE" in self.environ: + self.cookies.load(self.environ["HTTP_COOKIE"]) + self.aborted = 0 +@@ -263,11 +263,11 @@ class Request(object): + """Sends some data to the client.""" + self._check_open() + if self._encoding: +- if not isinstance(s, unicode): ++ if not isinstance(s, str): + if self._inputencoding: +- s = unicode(s, self._inputencoding) ++ s = str(s, self._inputencoding) + else: +- s = unicode(s) ++ s = str(s) + s = s.encode(self._encoding) + else: + s = str(s) +@@ -347,7 +347,7 @@ class Request(object): + placed in the dictionary will be a list. This is useful for multiple-value + fields. If the variable name ends with a '!' character (before the '*' if + present) then the value will be a mime.Entity object.""" +- import mime ++ from . import mime + headers = "Content-Type: %s\n" % contenttype + for entity in mime.Entity(encoded.read(), mime=1, headers=headers).entities: + if not entity.content_disposition: +@@ -504,7 +504,7 @@ class CGIRequest(Request): + if not self.aborted: + try: + self.__out.write(s) +- except IOError, x: ++ except IOError as x: + # Ignore EPIPE, caused by the browser having gone away + if x[0] != errno.EPIPE: + raise +@@ -514,7 +514,7 @@ class CGIRequest(Request): + if not self.aborted: + try: + self.__out.flush() +- except IOError, x: ++ except IOError as x: + # Ignore EPIPE, caused by the browser having gone away + if x[0] != errno.EPIPE: + raise +--- jon/fcgi.py.orig 2010-03-20 19:53:55 UTC ++++ jon/fcgi.py +@@ -1,7 +1,7 @@ + # $Id: fcgi.py,v 5efd11fe0588 2010/03/20 18:27:40 jribbens $ + + import struct, socket, sys, errno, os, select +-import cgi, fakefile ++from . import cgi, fakefile + + log_level = 0 + log_name = "/tmp/fcgi.log" +@@ -184,8 +184,8 @@ class Connection(object): + self.params = params + self.threading_level = threading_level + if self.threading_level > 1: +- import thread +- self.socketlock = thread.allocate_lock() ++ import _thread ++ self.socketlock = _thread.allocate_lock() + else: + self.socketlock = None + +@@ -216,9 +216,9 @@ class Connection(object): + self.socketlock.release() + else: + self.socket.sendall(rec.encode()) +- except socket.error, x: ++ except socket.error as x: + if x[0] == errno.EPIPE: +- for req in self.requests.values(): ++ for req in list(self.requests.values()): + req.aborted = 2 + else: + raise +@@ -242,7 +242,7 @@ class Connection(object): + if isinstance(x, (EOFError, ValueError)) or \ + (isinstance(x, socket.error) and x[0] == errno.EBADF): + self.log(2, 0, "EOF received on connection") +- for req in self.requests.values(): ++ for req in list(self.requests.values()): + req.aborted = 2 + break + else: +@@ -314,8 +314,8 @@ class Connection(object): + self.log(3, rec.request_id, "< FCGI_PARAMS: ") + if self.threading_level > 1: + self.log(2, rec.request_id, "starting request thread") +- import thread +- thread.start_new_thread(req.run, ()) ++ import _thread ++ _thread.start_new_thread(req.run, ()) + else: + self.log(2, rec.request_id, "executing request") + req.run() +@@ -417,7 +417,7 @@ class Request(cgi.Request): + 0, 0, 0) + self.log(2, "> FCGI_END_REQUEST") + self.__connection.write(rec) +- except IOError, x: ++ except IOError as x: + if x[0] == errno.EPIPE: + self.log(2, "EPIPE during request finalisation") + else: +@@ -457,7 +457,7 @@ class Request(cgi.Request): + pos += len(rec.content_data) + try: + self.__connection.write(rec) +- except IOError, x: ++ except IOError as x: + if x[0] == errno.EPIPE: + self.aborted = 2 + self.log(2, "Aborted due to EPIPE") +@@ -480,9 +480,9 @@ class Server(object): + self.log(2, "theading_level = %d" % threading_level) + if threading_level > 0: + try: +- import thread +- log_lock = thread.allocate_lock() +- except ImportError, x: ++ import _thread ++ log_lock = _thread.allocate_lock() ++ except ImportError as x: + threading_level = 0 + self.log(2, "cannot import thread (%s), disabling threading" % str(x)) + self.threading_level = threading_level +@@ -505,7 +505,7 @@ class Server(object): + socket.SOCK_STREAM) + try: + self._sock.getpeername() +- except socket.error, x: ++ except socket.error as x: + if x[0] != errno.ENOTSOCK and x[0] != errno.ENOTCONN: + raise + if x[0] == errno.ENOTSOCK: +@@ -522,7 +522,7 @@ class Server(object): + # OSes) + select.select([self._sock], [], []) + (newsock, addr) = self._sock.accept() +- except socket.error, x: ++ except socket.error as x: + if x[0] == errno.EBADF: + break + raise +@@ -537,8 +537,8 @@ class Server(object): + self.params, self.threading_level) + del newsock + if self.threading_level > 0: +- import thread +- thread.start_new_thread(conn.run, ()) ++ import _thread ++ _thread.start_new_thread(conn.run, ()) + else: + conn.run() + if self.max_requests > 0: +--- jon/session.py.orig 2011-05-27 18:04:15 UTC ++++ jon/session.py +@@ -1,6 +1,6 @@ + # $Id: session.py,v 2bbf755d62ad 2011/05/27 18:03:28 jon $ + +-import time, hmac, Cookie, re, random, os, errno, fcntl ++import time, hmac, http.cookies, re, random, os, errno, fcntl + try: + import hashlib + sha = hashlib.sha1 +@@ -9,7 +9,7 @@ except ImportError: + import sha + shanew = sha.new + try: +- import cPickle as pickle ++ import pickle as pickle + except ImportError: + import pickle + +@@ -127,7 +127,7 @@ class Session(dict): + if "hash" not in self: + self["hash"] = self._make_hash(self["id"], self._secret) + if self.cookie: +- c = Cookie.SimpleCookie() ++ c = http.cookies.SimpleCookie() + c[self.cookie] = self["id"] + self["hash"] + c[self.cookie]["path"] = self.root + "/" + if self.secure: +@@ -191,13 +191,13 @@ class FileSession(Session): + Session._create(self, secret) + try: + os.lstat("%s/%s" % (self.basedir, self["id"][:2])) +- except OSError, x: ++ except OSError as x: + if x[0] == errno.ENOENT: +- os.mkdir("%s/%s" % (self.basedir, self["id"][:2]), 0700) ++ os.mkdir("%s/%s" % (self.basedir, self["id"][:2]), 0o700) + try: + fd = os.open("%s/%s/%s" % (self.basedir, self["id"][:2], +- self["id"][2:]), os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0700) +- except OSError, x: ++ self["id"][2:]), os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o700) ++ except OSError as x: + if x[0] != errno.EEXIST: + raise + continue +@@ -211,7 +211,7 @@ class FileSession(Session): + try: + f = open("%s/%s/%s" % (self.basedir, self["id"][:2], self["id"][2:]), + "r+b") +- except IOError, x: ++ except IOError as x: + if x[0] != errno.ENOENT: + raise + return 0 +@@ -255,9 +255,9 @@ class FileSession(Session): + st = os.lstat(basedir) + if st[4] != os.getuid(): + raise Error("Sessions basedir is not owned by user %d" % os.getuid()) +- except OSError, x: ++ except OSError as x: + if x[0] == errno.ENOENT: +- os.mkdir(basedir, 0700) ++ os.mkdir(basedir, 0o700) + return basedir + _find_basedir = staticmethod(_find_basedir) + +@@ -322,19 +322,19 @@ class MySQLSession(GenericSQLSession): + while 1: + Session._create(self, secret) + self.dbc.execute("SELECT 1 FROM %s WHERE ID=%%s" % (self.table,), +- (long(self["id"], 16),)) ++ (int(self["id"], 16),)) + if self.dbc.rowcount == 0: + break + self["hash"] = self._make_hash(self["id"], secret) + self.dbc.execute("INSERT INTO %s (ID,hash,created,updated,data) VALUES " \ + "(%%s,%%s,%%s,%%s,%%s)" % (self.table,), +- (long(self["id"], 16), self["hash"], int(self.created), ++ (int(self["id"], 16), self["hash"], int(self.created), + int(self.created), pickle.dumps({}, 1))) + self.dbc.execute("UNLOCK TABLES") + + def _load(self): + self.dbc.execute("SELECT created,data FROM %s WHERE ID=%%s" % (self.table,), +- (long(self["id"], 16),)) ++ (int(self["id"], 16),)) + if self.dbc.rowcount == 0: + return 0 + row = self.dbc.fetchone() +@@ -345,7 +345,7 @@ class MySQLSession(GenericSQLSession): + def save(self): + self.dbc.execute("UPDATE %s SET updated=%%s,data=%%s" + " WHERE ID=%%s" % (self.table,), (int(time.time()), +- pickle.dumps(self.copy(), 1), long(self["id"], 16))) ++ pickle.dumps(self.copy(), 1), int(self["id"], 16))) + + + SQLSession = MySQLSession # backwards compatibility name +--- jon/wsgi.py.orig 2010-03-23 01:01:42 UTC ++++ jon/wsgi.py +@@ -1,6 +1,6 @@ + # $Id: wsgi.py,v a9ebd961ae72 2010/03/23 01:01:42 jon $ + +-import cgi, fakefile ++from . import cgi, fakefile + + + # classes involving calling jonpy-style handlers from WSGI server connectors +@@ -64,7 +64,7 @@ class Application(object): + + class Handler(cgi.Handler): + def process(self, req): +- environ = dict(req.environ.items()) ++ environ = dict(list(req.environ.items())) + environ["wsgi.version"] = (1, 0) + environ["wsgi.input"] = req + environ["wsgi.errors"] = fakefile.FakeOutput(req.error) +@@ -81,7 +81,7 @@ class Handler(cgi.Handler): + if exc_info: + try: + if req.get_header("Status") is not None: +- raise exc_info[0], exc_info[1], exc_info[2] ++ raise exc_info[0](exc_info[1]).with_traceback(exc_info[2]) + finally: + exc_info = None + elif req.get_header("Status") is not None: +--- jon/wt/__init__.py.orig 2010-03-20 19:53:55 UTC ++++ jon/wt/__init__.py +@@ -43,7 +43,7 @@ def replace(wt, template, namespace): + out = getattr(namespace, chunk)() + else: + out = getattr(namespace, chunk) +- if not isinstance(out, unicode): ++ if not isinstance(out, str): + out = str(out) + wt.req.write(encode(out)) + +@@ -79,7 +79,7 @@ class GlobalTemplate(TemplateCode): + if encoding is None: + self.process(open(self.template_name(), "rb").read()) + else: +- self.process(unicode(open(self.template_name(), "rb").read(), ++ self.process(str(open(self.template_name(), "rb").read(), + encoding)) + + def template_name(self): +@@ -94,7 +94,7 @@ class GlobalTemplate(TemplateCode): + # is substituted instead + obj = self.outer.page(self.outer) + if obj.template_as_file: +- import StringIO as cStringIO ++ import io as cStringIO + obj.main(StringIO.StringIO(self.outer._pageTemplate)) + else: + obj.main(self.outer._pageTemplate) +@@ -123,7 +123,7 @@ def process(wt, template, namespace, selected=None): + (type(selected) == type(()) and name in selected)): + obj = getattr(namespace, name)(namespace, wt) + if obj.template_as_file: +- import cStringIO as StringIO ++ import io as StringIO + obj.main(StringIO.StringIO(template[start.end():end])) + else: + obj.main(template[start.end():end]) +@@ -177,7 +177,7 @@ class Handler(cgi.Handler): + except KeyError: + namespace = { "wt": sys.modules[__name__] } + code = compile(open(codefname, "r").read(), codefname, "exec") +- exec code in namespace ++ exec(code, namespace) + del code + if self.cache_code: + _code_cache[codefname] = namespace +@@ -190,7 +190,7 @@ class Handler(cgi.Handler): + if encoding is None: + obj.main(open(self.template, "rb").read()) + else: +- obj.main(unicode(open(self.template, "rb").read(), encoding)) ++ obj.main(str(open(self.template, "rb").read(), encoding)) + self.post_request(obj) + +