From: Stuart Henderson Subject: Re: devel/py-html5lib fix for Python 3.14 To: Daniel Dickman Cc: ports@openbsd.org Date: Tue, 18 Nov 2025 09:19:01 +0000 On 2025/11/17 17:52, Daniel Dickman wrote: > Fix for Python 3.14 since ast.Str is no more. > > ok? > > diff -x CVS -Nur py-html5lib/Makefile py-html5lib.new/Makefile > --- py-html5lib/Makefile Mon Nov 17 16:10:10 2025 > +++ py-html5lib.new/Makefile Tue Apr 29 06:42:12 2025 > @@ -4,7 +4,7 @@ > DISTNAME= html5lib-${MODPY_DISTV} > PKGNAME= py-${DISTNAME} > CATEGORIES= devel www textproc > -REVISION= 6 > +REVISION= 5 not ok ;) but that wasn't in cvs anyway. a cvs diff would have avoided that (and saved digging around for which subdir it's in). There is also a drop-in "html5lib-modern" but that's also lacking this fix. Still, seems slightly less dead and gets rid of deps on webencodings and six so maybe a slightly better base? (seems a funny time to push py3.14 diffs given that we only just switched the tree to 3.13 but never mind) Index: Makefile =================================================================== RCS file: /cvs/ports/devel/py-html5lib/Makefile,v diff -u -p -r1.31 Makefile --- Makefile 18 Nov 2025 02:37:26 -0000 1.31 +++ Makefile 18 Nov 2025 09:15:22 -0000 @@ -1,26 +1,23 @@ -COMMENT= HTML parser/tokeniser based for HTML5 +COMMENT= HTML parser/tokeniser based for HTML5 -MODPY_DISTV= 1.1 -DISTNAME= html5lib-${MODPY_DISTV} -PKGNAME= py-${DISTNAME} -CATEGORIES= devel www textproc -REVISION= 6 +MODPY_DISTV= 1.2 +DISTNAME= html5lib_modern-${MODPY_DISTV} +PKGNAME= py-html5lib-${MODPY_DISTV} +CATEGORIES= devel www textproc -HOMEPAGE= https://github.com/html5lib/html5lib-python/ +# fork using same namespace +HOMEPAGE= https://github.com/html5lib/html5lib-python/ # MIT -PERMIT_PACKAGE= Yes +PERMIT_PACKAGE= Yes -MODULES= lang/python +MODULES= lang/python -MODPY_PI = Yes -MODPY_PYBUILD = setuptools +MODPY_PI= Yes +MODPY_PYBUILD= setuptools -RUN_DEPENDS = devel/py-six \ - textproc/py-webencodings -TEST_DEPENDS = devel/py-mock \ - devel/py-test-expect \ - textproc/py-chardet \ - textproc/py-lxml +TEST_DEPENDS= devel/py-test-expect \ + textproc/py-chardet \ + textproc/py-lxml .include Index: distinfo =================================================================== RCS file: /cvs/ports/devel/py-html5lib/distinfo,v diff -u -p -r1.6 distinfo --- distinfo 26 Oct 2021 18:57:07 -0000 1.6 +++ distinfo 18 Nov 2025 09:15:22 -0000 @@ -1,2 +1,2 @@ -SHA256 (html5lib-1.1.tar.gz) = suW0AmHiDzVNGY6ukq/BDXUK+0h+1eUPnE6vB8GEFG8= -SIZE (html5lib-1.1.tar.gz) = 272215 +SHA256 (html5lib_modern-1.2.tar.gz) = H62/wn6pVUMScOTnmkpMKQuhHDowmKlcwi3HPjEqF2g= +SIZE (html5lib_modern-1.2.tar.gz) = 275189 Index: patches/patch-setup_py =================================================================== RCS file: /cvs/ports/devel/py-html5lib/patches/patch-setup_py,v diff -u -p -r1.1 patch-setup_py --- patches/patch-setup_py 18 Nov 2025 02:37:26 -0000 1.1 +++ patches/patch-setup_py 18 Nov 2025 09:15:22 -0000 @@ -5,7 +5,7 @@ See: https://github.com/html5lib/html5li Index: setup.py --- setup.py.orig +++ setup.py -@@ -89,9 +89,14 @@ with open(join(here, "html5lib", "__init__.py"), "rb") +@@ -86,9 +86,14 @@ with open(join(here, "html5lib", "__init__.py"), "rb") for a in assignments: if (len(a.targets) == 1 and isinstance(a.targets[0], ast.Name) and Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/devel/py-html5lib/pkg/PLIST,v diff -u -p -r1.10 PLIST --- pkg/PLIST 23 Oct 2025 13:19:35 -0000 1.10 +++ pkg/PLIST 18 Nov 2025 09:15:22 -0000 @@ -1,13 +1,5 @@ @pkgpath devel/py-html5lib,python3 lib/python${MODPY_VERSION}/site-packages/html5lib/ -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/ -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/METADATA -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/RECORD -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/WHEEL -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/licenses/ -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/licenses/AUTHORS.rst -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/licenses/LICENSE -lib/python${MODPY_VERSION}/site-packages/html5lib-${MODPY_DISTV}.dist-info/top_level.txt lib/python${MODPY_VERSION}/site-packages/html5lib/__init__.py lib/python${MODPY_VERSION}/site-packages/html5lib/${MODPY_PYCACHE}/ lib/python${MODPY_VERSION}/site-packages/html5lib/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} @@ -42,6 +34,28 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/html5lib/_trie/py.py lib/python${MODPY_VERSION}/site-packages/html5lib/_utils.py lib/python${MODPY_VERSION}/site-packages/html5lib/constants.py +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/ +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/__init__.py +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/ +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/__init__.py +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}labels.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}labels.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}mklabels.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}mklabels.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}tests.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}tests.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}x_user_defined.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/${MODPY_PYCACHE}x_user_defined.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/labels.py +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/mklabels.py +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/tests.py +lib/python${MODPY_VERSION}/site-packages/html5lib/contrib/webencodings/x_user_defined.py lib/python${MODPY_VERSION}/site-packages/html5lib/filters/ lib/python${MODPY_VERSION}/site-packages/html5lib/filters/__init__.py lib/python${MODPY_VERSION}/site-packages/html5lib/filters/${MODPY_PYCACHE}/ @@ -118,3 +132,11 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/html5lib/treewalkers/etree.py lib/python${MODPY_VERSION}/site-packages/html5lib/treewalkers/etree_lxml.py lib/python${MODPY_VERSION}/site-packages/html5lib/treewalkers/genshi.py +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/ +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/METADATA +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/RECORD +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/WHEEL +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/licenses/ +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/licenses/AUTHORS.rst +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/licenses/LICENSE +lib/python${MODPY_VERSION}/site-packages/html5lib_modern-${MODPY_DISTV}.dist-info/top_level.txt