Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: devel/py-html5lib fix for Python 3.14
To:
Daniel Dickman <didickman@gmail.com>
Cc:
ports@openbsd.org
Date:
Tue, 18 Nov 2025 09:19:01 +0000

Download raw body.

Thread
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 <bsd.port.mk>
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