>>> Building on exopi-3 under www/py-tempita BDEPENDS = [lang/python/3;devel/py-setuptools;devel/py-build;devel/py-wheel;devel/py-installer] DIST = [www/py-tempita:Tempita-0.5.2.tar.gz] FULLPKGNAME = py3-tempita-0.5.2p11 RDEPENDS = [lang/python/3] (Junk lock obtained for exopi-3 at 1735135651.43) >>> Running depends in www/py-tempita at 1735135651.48 last junk was in textproc/py-pandocfilters /usr/sbin/pkg_add -aI -Drepair py3-build-1.2.2.post1p0 py3-installer-0.7.0p1 py3-setuptools-69.5.1p0v0 py3-wheel-0.45.1p0 python-3.12.8p0 was: /usr/sbin/pkg_add -aI -Drepair py3-build-1.2.2.post1p0 py3-installer-0.7.0p1 py3-setuptools-69.5.1p0v0 py3-wheel-0.45.1p0 python-3.12.8p0 /usr/sbin/pkg_add -aI -Drepair py3-build-1.2.2.post1p0 py3-installer-0.7.0p1 py3-setuptools-69.5.1p0v0 py3-wheel-0.45.1p0 python-3.12.8p0 >>> Running show-prepare-results in www/py-tempita at 1735135653.22 ===> www/py-tempita ===> Building from scratch py3-tempita-0.5.2p11 ===> py3-tempita-0.5.2p11 depends on: python->=3.12,<3.13 -> python-3.12.8p0 ===> py3-tempita-0.5.2p11 depends on: py3-build-* -> py3-build-1.2.2.post1p0 ===> py3-tempita-0.5.2p11 depends on: py3-installer-* -> py3-installer-0.7.0p1 ===> py3-tempita-0.5.2p11 depends on: py3-setuptools-* -> py3-setuptools-69.5.1p0v0 ===> py3-tempita-0.5.2p11 depends on: py3-wheel-* -> py3-wheel-0.45.1p0 py3-build-1.2.2.post1p0 py3-installer-0.7.0p1 py3-setuptools-69.5.1p0v0 py3-wheel-0.45.1p0 python-3.12.8p0 (Junk lock released for exopi-3 at 1735135654.08) distfiles size=12648 >>> Running build in www/py-tempita at 1735135654.12 ===> www/py-tempita ===> Checking files for py3-tempita-0.5.2p11 `/exopi-cvs/ports/distfiles/Tempita-0.5.2.tar.gz' is up to date. >> (SHA256) all files: OK ===> Extracting for py3-tempita-0.5.2p11 ===> Patching for py3-tempita-0.5.2p11 ===> Applying OpenBSD patch patch-setup_py Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |Index: setup.py |--- setup.py.orig |+++ setup.py -------------------------- Patching file setup.py using Plan A... Hunk #1 succeeded at 36. done cd /exopi-obj/pobj/py-tempita-0.5.2/Tempita-0.5.2; 2to3 -w tempita/*py /usr/local/bin/2to3:3: DeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ from lib2to3.main import main RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: Refactored tempita/__init__.py RefactoringTool: No changes to tempita/_looper.py RefactoringTool: Refactored tempita/compat3.py RefactoringTool: Files that were modified: RefactoringTool: tempita/__init__.py RefactoringTool: tempita/_looper.py RefactoringTool: tempita/compat3.py RefactoringTool: Warnings/messages while refactoring: RefactoringTool: ### In file tempita/__init__.py ### RefactoringTool: Line 40: Calls to builtin next() possibly shadowed by global binding RefactoringTool: ### In file tempita/compat3.py ### RefactoringTool: Line 23: Calls to builtin next() possibly shadowed by global binding --- tempita/__init__.py (original) +++ tempita/__init__.py (refactored) @@ -32,10 +32,10 @@ import re import sys import cgi -from urllib import quote as url_quote +from urllib.parse import quote as url_quote import os import tokenize -from cStringIO import StringIO +from io import StringIO from tempita._looper import looper from tempita.compat3 import bytes, basestring_, next, is_unicode, coerce_text @@ -101,7 +101,7 @@ delimiters = (self.default_namespace['start_braces'], self.default_namespace['end_braces']) else: - assert len(delimiters) == 2 and all([isinstance(delimeter, basestring) + assert len(delimiters) == 2 and all([isinstance(delimeter, str) for delimeter in delimiters]) self.default_namespace = self.__class__.default_namespace.copy() self.default_namespace['start_braces'] = delimiters[0] @@ -196,7 +196,7 @@ position=None, name=self.name) templ = self.get_template(inherit_template, self) self_ = TemplateObject(self.name) - for name, value in defs.iteritems(): + for name, value in defs.items(): setattr(self_, name, value) self_.body = body ns = ns.copy() @@ -292,7 +292,7 @@ try: try: value = eval(code, self.default_namespace, ns) - except SyntaxError, e: + except SyntaxError as e: raise SyntaxError( 'invalid syntax in expression: %s' % code) return value @@ -304,12 +304,12 @@ else: arg0 = coerce_text(e) e.args = (self._add_line_info(arg0, pos),) - raise exc_info[0], e, exc_info[2] + raise exc_info[0](e).with_traceback(exc_info[2]) def _exec(self, code, ns, pos): __traceback_hide__ = True try: - exec code in self.default_namespace, ns + exec(code, self.default_namespace, ns) except: exc_info = sys.exc_info() e = exc_info[1] @@ -317,7 +317,7 @@ e.args = (self._add_line_info(e.args[0], pos),) else: e.args = (self._add_line_info(None, pos),) - raise exc_info[0], e, exc_info[2] + raise exc_info[0](e).with_traceback(exc_info[2]) def _repr(self, value, pos): __traceback_hide__ = True @@ -326,7 +326,7 @@ return '' if self._unicode: try: - value = unicode(value) + value = str(value) except UnicodeDecodeError: value = bytes(value) else: @@ -339,7 +339,7 @@ exc_info = sys.exc_info() e = exc_info[1] e.args = (self._add_line_info(e.args[0], pos),) - raise exc_info[0], e, exc_info[2] + raise exc_info[0](e).with_traceback(exc_info[2]) else: if self._unicode and isinstance(value, bytes): if not self.default_encoding: @@ -348,7 +348,7 @@ '(no default_encoding provided)' % value) try: value = value.decode(self.default_encoding) - except UnicodeDecodeError, e: + except UnicodeDecodeError as e: raise UnicodeDecodeError( e.encoding, e.object, @@ -385,7 +385,7 @@ class bunch(dict): def __init__(self, **kw): - for name, value in kw.iteritems(): + for name, value in kw.items(): setattr(self, name, value) def __setattr__(self, name, value): @@ -408,7 +408,7 @@ def __repr__(self): items = [ - (k, v) for k, v in self.iteritems()] + (k, v) for k, v in self.items()] items.sort() return '<%s %s>' % ( self.__class__.__name__, @@ -461,7 +461,7 @@ def attr(**kw): - kw = list(kw.iteritems()) + kw = list(kw.items()) kw.sort() parts = [] for name, value in kw: @@ -543,7 +543,7 @@ values = {} sig_args, var_args, var_kw, defaults = self._func_signature extra_kw = {} - for name, value in kw.iteritems(): + for name, value in kw.items(): if not var_kw and name not in sig_args: raise TypeError( 'Unexpected argument %s' % name) @@ -566,7 +566,7 @@ raise TypeError( 'Extra position arguments: %s' % ', '.join(repr(v) for v in args)) - for name, value_expr in defaults.iteritems(): + for name, value_expr in defaults.items(): if name not in values: values[name] = self._template._eval( value_expr, self._ns, self._pos) @@ -612,7 +612,7 @@ return 'Empty' def __unicode__(self): - return u'' + return '' def __iter__(self): return iter(()) @@ -1156,7 +1156,7 @@ vars.update(os.environ) for value in args: if '=' not in value: - print('Bad argument: %r' % value) + print(('Bad argument: %r' % value)) sys.exit(2) name, value = value.split('=', 1) if name.startswith('py:'): --- tempita/compat3.py (original) +++ tempita/compat3.py (refactored) @@ -4,7 +4,7 @@ if sys.version < "3": b = bytes = str - basestring_ = basestring + basestring_ = str else: def b(s): @@ -18,14 +18,14 @@ if sys.version < "3": def next(obj): - return obj.next() + return obj.__next__() else: next = next if sys.version < "3": def is_unicode(obj): - return isinstance(obj, unicode) + return isinstance(obj, str) else: def is_unicode(obj): @@ -39,7 +39,7 @@ else: attr = '__str__' if hasattr(v, attr): - return unicode(v) + return str(v) else: return bytes(v) return v ===> Compiler link: clang -> /usr/bin/clang ===> Compiler link: clang++ -> /usr/bin/clang++ ===> Compiler link: cc -> /usr/bin/cc ===> Compiler link: c++ -> /usr/bin/c++ ===> Generating configure for py3-tempita-0.5.2p11 ===> Configuring for py3-tempita-0.5.2p11 ===> Building for py3-tempita-0.5.2p11 * Getting build dependencies for wheel... running egg_info writing Tempita.egg-info/PKG-INFO writing dependency_links to Tempita.egg-info/dependency_links.txt writing top-level names to Tempita.egg-info/top_level.txt reading manifest file 'Tempita.egg-info/SOURCES.txt' writing manifest file 'Tempita.egg-info/SOURCES.txt' * Building wheel... running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/tempita copying tempita/__init__.py -> build/lib/tempita copying tempita/__main__.py -> build/lib/tempita copying tempita/compat3.py -> build/lib/tempita copying tempita/_looper.py -> build/lib/tempita running egg_info writing Tempita.egg-info/PKG-INFO writing dependency_links to Tempita.egg-info/dependency_links.txt writing top-level names to Tempita.egg-info/top_level.txt reading manifest file 'Tempita.egg-info/SOURCES.txt' writing manifest file 'Tempita.egg-info/SOURCES.txt' installing to build/bdist.openbsd-7.6-amd64/wheel running install running install_lib creating build/bdist.openbsd-7.6-amd64 creating build/bdist.openbsd-7.6-amd64/wheel creating build/bdist.openbsd-7.6-amd64/wheel/tempita copying build/lib/tempita/__init__.py -> build/bdist.openbsd-7.6-amd64/wheel/tempita copying build/lib/tempita/__main__.py -> build/bdist.openbsd-7.6-amd64/wheel/tempita copying build/lib/tempita/compat3.py -> build/bdist.openbsd-7.6-amd64/wheel/tempita copying build/lib/tempita/_looper.py -> build/bdist.openbsd-7.6-amd64/wheel/tempita running install_egg_info Copying Tempita.egg-info to build/bdist.openbsd-7.6-amd64/wheel/Tempita-0.5.2-py3.12.egg-info running install_scripts creating build/bdist.openbsd-7.6-amd64/wheel/Tempita-0.5.2.dist-info/WHEEL creating '/exopi-obj/pobj/py-tempita-0.5.2/Tempita-0.5.2/dist/.tmp-js45segx/Tempita-0.5.2-py3-none-any.whl' and adding 'build/bdist.openbsd-7.6-amd64/wheel' to it adding 'tempita/__init__.py' adding 'tempita/__main__.py' adding 'tempita/_looper.py' adding 'tempita/compat3.py' adding 'Tempita-0.5.2.dist-info/METADATA' adding 'Tempita-0.5.2.dist-info/WHEEL' adding 'Tempita-0.5.2.dist-info/top_level.txt' adding 'Tempita-0.5.2.dist-info/zip-safe' adding 'Tempita-0.5.2.dist-info/RECORD' removing build/bdist.openbsd-7.6-amd64/wheel Successfully built Tempita-0.5.2-py3-none-any.whl >>> Running package in www/py-tempita at 1735135656.85 ===> www/py-tempita ===> Faking installation for py3-tempita-0.5.2p11 ===> Building package for py3-tempita-0.5.2p11 Create /exopi-cvs/ports/packages/amd64/all/py3-tempita-0.5.2p11.tgz Creating package py3-tempita-0.5.2p11 reading plist| checking dependencies| checking dependencies|lang/python/3,-main checksumming| checksumming| | 0% checksumming|** | 3% checksumming|**** | 7% checksumming|****** | 10% checksumming|******** | 14% checksumming|*********** | 17% checksumming|************* | 21% checksumming|*************** | 24% checksumming|***************** | 28% checksumming|******************* | 31% checksumming|********************* | 34% checksumming|*********************** | 38% checksumming|************************* | 41% checksumming|*************************** | 45% checksumming|***************************** | 48% checksumming|******************************** | 52% checksumming|********************************** | 55% checksumming|************************************ | 59% checksumming|************************************** | 62% checksumming|**************************************** | 66% checksumming|****************************************** | 69% checksumming|******************************************** | 72% checksumming|********************************************** | 76% checksumming|************************************************ | 79% checksumming|************************************************** | 83% checksumming|***************************************************** | 86% checksumming|******************************************************* | 90% checksumming|********************************************************* | 93% checksumming|*********************************************************** | 97% checksumming|*************************************************************|100% archiving| archiving| | 0% archiving|******************* | 30% archiving|*************************************** | 61% archiving|****************************************** | 65% archiving|********************************************* | 70% archiving|********************************************* | 71% archiving|********************************************** | 72% archiving|*********************************************** | 73% archiving|************************************************************** | 97% archiving|****************************************************************| 99% archiving|****************************************************************|100% Link to /exopi-cvs/ports/packages/amd64/ftp/py3-tempita-0.5.2p11.tgz >>> Running clean in www/py-tempita at 1735135657.93 ===> www/py-tempita ===> Cleaning for py3-tempita-0.5.2p11 >>> Ended at 1735135658.10 max_stuck=1.64/depends=1.75/show-prepare-results=0.90/build=2.73/package=1.09/clean=0.21