diff --git a/python-html5lib.changes b/python-html5lib.changes index 7d401ea..7784c44 100644 --- a/python-html5lib.changes +++ b/python-html5lib.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Nov 4 00:18:04 UTC 2025 - Steve Kowalik + +- Add patch support-python314.patch: + * Don't use ast.Str to parse the version if it isn't available. + ------------------------------------------------------------------- Wed May 28 11:27:09 UTC 2025 - Markéta Machová diff --git a/python-html5lib.spec b/python-html5lib.spec index e96b79f..0a3019a 100644 --- a/python-html5lib.spec +++ b/python-html5lib.spec @@ -1,7 +1,7 @@ # # spec file for package python-html5lib # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -30,9 +30,12 @@ Patch0: pytest6.patch Patch1: python-html5lib-no-mock.patch # PATCH-FIX-UPSTREAM https://github.com/html5lib/html5lib-python/pull/570 adapt testsuite to changes in pytest 7.4 Patch2: pytest74.patch +# PATCH-FIX-UPSTREAM gh#html5lib/html5lib-python#589 +Patch3: support-python314.patch BuildRequires: %{python_module Genshi} BuildRequires: %{python_module lxml} BuildRequires: %{python_module pip} +BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest >= 4.0} BuildRequires: %{python_module pytest-expect} BuildRequires: %{python_module setuptools >= 18.5} diff --git a/support-python314.patch b/support-python314.patch new file mode 100644 index 0000000..6f2c717 --- /dev/null +++ b/support-python314.patch @@ -0,0 +1,38 @@ +From b90dafff1bf342d34d539098013d0b9f318c7641 Mon Sep 17 00:00:00 2001 +From: Andrew Sukach +Date: Fri, 12 Sep 2025 21:53:31 -0700 +Subject: [PATCH] `setup.py`: fix version parsing on Python 3.14 (ast.Str + removed) + +Python 3.14 removes the ast.Str node type. String literals now appear +as ast.Constant(value=str). +Update the AST check to accept both ast.Str (for older Pythons) and +ast.Constant with a string value (for Python 3.8+), allowing html5lib to +build successfully on Python 3.14 while remaining compatible with older +version. +--- + setup.py | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index 30ee0575..42ab6f67 100644 +--- a/setup.py ++++ b/setup.py +@@ -92,9 +92,14 @@ def default_environment(): + 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,