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'}

Reply via email to