Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-html5lib for openSUSE:Factory
checked in at 2026-09-28 10:36:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-html5lib (Old)
and /work/SRC/openSUSE:Factory/.python-html5lib.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-html5lib"
Mon Sep 28 10:36:23 2026 rev:30 rq:1380285 version:1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-html5lib/python-html5lib.changes
2025-12-02 13:18:32.066767794 +0100
+++
/work/SRC/openSUSE:Factory/.python-html5lib.new.383539/python-html5lib.changes
2026-09-28 10:37:01.858276314 +0200
@@ -1,0 +2,11 @@
+Thu Sep 24 07:23:40 UTC 2026 - Steve Kowalik <[email protected]>
+
+- Add patch no-more-pkg-resources.patch
+ * Do not use pkg_resources during setup or the testsuite.
+
+-------------------------------------------------------------------
+Wed Sep 23 09:21:18 UTC 2026 - Markéta Machová <[email protected]>
+
+- Add pytest91.patch to fix yet another test failure
+
+-------------------------------------------------------------------
New:
----
no-more-pkg-resources.patch
pytest91.patch
----------(New B)----------
New:
- Add patch no-more-pkg-resources.patch
* Do not use pkg_resources during setup or the testsuite.
New:
- Add pytest91.patch to fix yet another test failure
----------(New E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-html5lib.spec ++++++
--- /var/tmp/diff_new_pack.VtuD6a/_old 2026-09-28 10:37:02.463301675 +0200
+++ /var/tmp/diff_new_pack.VtuD6a/_new 2026-09-28 10:37:02.464301716 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-html5lib
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 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
@@ -34,9 +34,13 @@
Patch3: support-python314.patch
# PATCH-FIX-UPSTREAM Based on gh#html5lib/html5lib-python#590
Patch4: pytest9.patch
+# PATCH-FIX-UPSTREAM gh#html5lib/html5lib-python#600
+Patch5: pytest91.patch
+# PATCH-FIX-UPSTREAM Based on gh#html5lib/html5lib-python#605
+Patch6: no-more-pkg-resources.patch
BuildRequires: %{python_module Genshi}
BuildRequires: %{python_module lxml}
-BuildRequires: %{python_module pip}
+BuildRequires: %{python_module packaging}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest >= 7}
BuildRequires: %{python_module pytest-expect}
++++++ no-more-pkg-resources.patch ++++++
>From ebf52a8491b5ab101166556834c7c9f153cf7fd8 Mon Sep 17 00:00:00 2001
From: xingyaner <[email protected]>
Date: Sat, 19 Sep 2026 22:27:15 +0800
Subject: [PATCH] setup: make pkg_resources optional
Signed-off-by: xingyaner <[email protected]>
---
setup.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
Index: html5lib-1.1/setup.py
===================================================================
--- html5lib-1.1.orig/setup.py
+++ html5lib-1.1/setup.py
@@ -6,9 +6,10 @@ import sys
from os.path import join, dirname
from setuptools import setup, find_packages, __version__ as setuptools_version
-from pkg_resources import parse_version
-
-import pkg_resources
+try:
+ import pkg_resources
+except ImportError:
+ pkg_resources = None
try:
import _markerlib.markers
@@ -50,7 +51,7 @@ if _markerlib and sys.version_info[0] ==
# recognise the markers needed by this setup.py
# Change this to setuptools 20.10.0 to support all markers.
if pkg_resources:
- if parse_version(setuptools_version) < parse_version('18.5'):
+ if (pkg_resources.parse_version(setuptools_version) <
pkg_resources.parse_version('18.5')):
MarkerEvaluation = pkg_resources.MarkerEvaluation
del pkg_resources.parser
Index: html5lib-1.1/html5lib/tests/conftest.py
===================================================================
--- html5lib-1.1.orig/html5lib/tests/conftest.py
+++ html5lib-1.1/html5lib/tests/conftest.py
@@ -1,8 +1,9 @@
from __future__ import print_function
+import importlib.metadata
import os.path
import sys
-import pkg_resources
+import packaging
import pytest
from .tree_construction import TreeConstructionFile
@@ -59,21 +60,18 @@ def pytest_configure(config):
if (line.strip() and
not (line.startswith("-r") or
line.startswith("#"))):
- if ";" in line:
- spec, marker = line.strip().split(";", 1)
- else:
- spec, marker = line.strip(), None
- req = pkg_resources.Requirement.parse(spec)
- if marker and not
pkg_resources.evaluate_marker(marker):
+ req = Requirement(line_str)
+ if req.marker and not req.marker.evaluate():
msgs.append("%s not available in this environment"
% spec)
else:
try:
- installed = pkg_resources.working_set.find(req)
- except pkg_resources.VersionConflict:
- msgs.append("Outdated version of %s installed,
need %s" % (req.name, spec))
- else:
- if not installed:
- msgs.append("Need %s" % spec)
+ installed_version =
importlib.metadata.version(req.name)
+ if installed_version not in req.specifier:
+ msgs.append(
+ "Outdated version of %s installed,
need %s" % (req.name, spec)
+ )
+ except importlib.metadata.PackageNotFoundError:
+ msgs.append("Need %s" % spec)
# Check cElementTree
import xml.etree.ElementTree as ElementTree
++++++ pytest91.patch ++++++
>From b7e8c4ccec36c87e076daed4db68201de151cc57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= <[email protected]>
Date: Mon, 29 Jun 2026 10:20:38 +0200
Subject: [PATCH] Fix test compatibility with pytest >= 9.1
Pytest 9.1 no longer accepts non-Collection iterables in parametrize. Wrap
generator
functions and itertools.product calls with list(). Also deduplicate the
parametrize
values in testLegacyQuoteAttribute. The character list had 6 duplicates
between the "spec" prefix and the extended character ranges. With --strict (set
in pytest.ini), pytest 9.1 enforces unique parametrization IDs and rejects them.
Assisted-by: Claude Opus 4.6
---
html5lib/tests/test_encoding.py | 4 ++--
html5lib/tests/test_sanitizer.py | 4 ++--
html5lib/tests/test_serializer.py | 12 +++++-------
html5lib/tests/test_treewalkers.py | 4 ++--
4 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/html5lib/tests/test_encoding.py b/html5lib/tests/test_encoding.py
index 47c4814a..951fd42f 100644
--- a/html5lib/tests/test_encoding.py
+++ b/html5lib/tests/test_encoding.py
@@ -82,7 +82,7 @@ def param_encoding():
yield test[b'data'], test[b'encoding']
[email protected]("data, encoding", param_encoding())
[email protected]("data, encoding", list(param_encoding()))
def test_parser_encoding(data, encoding):
p = HTMLParser()
assert p.documentEncoding is None
@@ -92,7 +92,7 @@ def test_parser_encoding(data, encoding):
assert encoding == p.documentEncoding, errorMessage(data, encoding,
p.documentEncoding)
[email protected]("data, encoding", param_encoding())
[email protected]("data, encoding", list(param_encoding()))
def test_prescan_encoding(data, encoding):
stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False)
encoding = encoding.lower().decode("ascii")
diff --git a/html5lib/tests/test_sanitizer.py b/html5lib/tests/test_sanitizer.py
index 499310b6..15746ffa 100644
--- a/html5lib/tests/test_sanitizer.py
+++ b/html5lib/tests/test_sanitizer.py
@@ -130,8 +130,8 @@ def test_details_summary_allowed():
@pytest.mark.parametrize("expected, input",
- (pytest.param(expected, input, id=id)
- for id, expected, input in param_sanitizer()))
+ [pytest.param(expected, input, id=id)
+ for id, expected, input in param_sanitizer()])
def test_sanitizer(expected, input):
parsed = parseFragment(expected)
expected = serialize(parsed,
diff --git a/html5lib/tests/test_serializer.py
b/html5lib/tests/test_serializer.py
index a2be0be5..2fec0341 100644
--- a/html5lib/tests/test_serializer.py
+++ b/html5lib/tests/test_serializer.py
@@ -155,14 +155,12 @@ def testSpecQuoteAttribute(c):
test_serializer(input_, output_, options_)
[email protected]("c", list("\t\n\u000C\x20\r\"'=<>`"
- "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n"
[email protected]("c", list("\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n"
"\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15"
"\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
- "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000"
- "\u2001\u2002\u2003\u2004\u2005\u2006\u2007"
- "\u2008\u2009\u200a\u2028\u2029\u202f\u205f"
- "\u3000"))
+ "\x20\"'=<>/\x60\xa0\u1680\u180e\u180f"
+ "\u2000\u2001\u2002\u2003\u2004\u2005\u2006"
+
"\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000"))
def testLegacyQuoteAttribute(c):
input_ = [["StartTag", "http://www.w3.org/1999/xhtml", "span",
[{"namespace": None, "name": "foo", "value": c}]]]
@@ -212,7 +210,7 @@ def param_serializer():
yield test["input"], test["expected"], test.get("options", {})
[email protected]("input, expected, options", param_serializer())
[email protected]("input, expected, options", list(param_serializer()))
def test_serializer(input, expected, options):
encoding = options.get("encoding", None)
diff --git a/html5lib/tests/test_treewalkers.py
b/html5lib/tests/test_treewalkers.py
index 780ca964..4fb5d1f7 100644
--- a/html5lib/tests/test_treewalkers.py
+++ b/html5lib/tests/test_treewalkers.py
@@ -87,7 +87,7 @@ def param_treewalker_six_mix():
yield intext, expected, attrs, tree
[email protected]("intext, expected, attrs_to_add, tree",
param_treewalker_six_mix())
[email protected]("intext, expected, attrs_to_add, tree",
list(param_treewalker_six_mix()))
def test_treewalker_six_mix(intext, expected, attrs_to_add, tree):
"""tests what happens when we add attributes to the intext"""
treeName, treeClass = tree
@@ -105,7 +105,7 @@ def test_treewalker_six_mix(intext, expected, attrs_to_add,
tree):
raise AssertionError("TreewalkerEditTest:
%s\nExpected:\n%s\nReceived:\n%s" % (treeName, expected, output))
[email protected]("tree,char",
itertools.product(sorted(treeTypes.items()), ["x", "\u1234"]))
[email protected]("tree,char",
list(itertools.product(sorted(treeTypes.items()), ["x", "\u1234"])))
def test_fragment_single_char(tree, char):
expected = [
{'data': char, 'type': 'Characters'}