From: Daniel Dickman Subject: devel/py-html5lib fix for Python 3.14 To: ports@openbsd.org Date: Mon, 17 Nov 2025 17:52:53 -0500 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 HOMEPAGE= https://github.com/html5lib/html5lib-python/ diff -x CVS -Nur py-html5lib/patches/patch-setup_py py-html5lib.new/patches/patch-setup_py --- py-html5lib/patches/patch-setup_py Wed Dec 31 19:00:00 1969 +++ py-html5lib.new/patches/patch-setup_py Mon Nov 17 16:08:35 2025 @@ -0,0 +1,25 @@ +Fix build on Python 3.14. + +See: https://github.com/html5lib/html5lib-python/issues/588 + +Index: setup.py +--- setup.py.orig ++++ setup.py +@@ -89,9 +89,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 +- a.targets[0].id == "__version__" and +- isinstance(a.value, ast.Str)): +- version = a.value.s ++ a.targets[0].id == "__version__"): ++ if hasattr(ast, "Str") and isinstance(a.value, ast.Str): ++ version = a.value.s ++ elif (hasattr(ast, "Constant") ++ and isinstance(a.value, ast.Constant) ++ and isinstance(a.value.value, str)): ++ version = a.value.value ++assert version is not None + + setup(name='html5lib', + version=version,