Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-feedparser for
openSUSE:Factory checked in at 2026-08-17 17:00:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-feedparser (Old)
and /work/SRC/openSUSE:Factory/.python-feedparser.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-feedparser"
Mon Aug 17 17:00:07 2026 rev:42 rq:1371578 version:6.0.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-feedparser/python-feedparser.changes
2026-03-20 21:20:34.211405125 +0100
+++
/work/SRC/openSUSE:Factory/.python-feedparser.new.1258/python-feedparser.changes
2026-08-17 17:06:48.687592074 +0200
@@ -1,0 +2,13 @@
+Tue Jul 28 18:07:23 UTC 2026 - BenoƮt Monin <[email protected]>
+
+- update to version 6.0.14:
+ * Upgrade to feedparser-sgmllib 2.0.0. (#585)
+- additional changes from version 6.0.13:
+ * Drop support for Python 3.9 and lower.
+ * Migrate from sgmllib3k to feedparser-sgmllib.
+ * Resolve package build warnings.
+- set the minimum python version to 3.10
+- drop python-sgmllib3k dependency
+- add python-feedparser-sgmllib dependency
+
+-------------------------------------------------------------------
Old:
----
feedparser-6.0.12.tar.gz
New:
----
feedparser-6.0.14.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-feedparser.spec ++++++
--- /var/tmp/diff_new_pack.tO6xMB/_old 2026-08-17 17:06:49.493620501 +0200
+++ /var/tmp/diff_new_pack.tO6xMB/_new 2026-08-17 17:06:49.494620537 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-feedparser
-Version: 6.0.12
+Version: 6.0.14
Release: 0
Summary: Universal Feed Parser Module for Python
License: BSD-2-Clause
@@ -27,14 +27,15 @@
Source:
https://files.pythonhosted.org/packages/source/f/feedparser/feedparser-%{version}.tar.gz
# PATCH-FIX-UPSTREAM inspired by
https://github.com/kurtmckee/feedparser/issues/318 and the linked patches
Patch: chardet6.patch
+BuildRequires: %{python_module base >= 3.10}
BuildRequires: %{python_module chardet}
+BuildRequires: %{python_module feedparser-sgmllib >= 2}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module sgmllib3k}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-sgmllib3k
+Requires: python-feedparser-sgmllib >= 2
Recommends: python-chardet
BuildArch: noarch
%python_subpackages
++++++ feedparser-6.0.12.tar.gz -> feedparser-6.0.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/NEWS new/feedparser-6.0.14/NEWS
--- old/feedparser-6.0.12/NEWS 2025-09-10 15:22:29.000000000 +0200
+++ new/feedparser-6.0.14/NEWS 2026-07-30 16:03:13.000000000 +0200
@@ -1,5 +1,13 @@
coming in the next release:
+6.0.14 - 30 July 2026
+ * Upgrade to feedparser-sgmllib 2.0.0. (#585)
+
+6.0.13 - 28 July 2026
+ * Drop support for Python 3.9 and lower.
+ * Migrate from ``sgmllib3k`` to ``feedparser-sgmllib``.
+ * Resolve package build warnings.
+
6.0.12 - 10 September 2025
* Fix an ``AssertionError`` crash that occurs with Python 3.10 and
higher. (#304)
* Fix a ``DeprecationWarning`` thrown during calls to ``re.sub``. (#389)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/PKG-INFO
new/feedparser-6.0.14/PKG-INFO
--- old/feedparser-6.0.12/PKG-INFO 2025-09-10 15:22:45.384076000 +0200
+++ new/feedparser-6.0.14/PKG-INFO 2026-07-30 16:06:40.583849700 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: feedparser
-Version: 6.0.12
+Version: 6.0.14
Summary: Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom
0.3, and Atom 1.0 feeds
Home-page: https://github.com/kurtmckee/feedparser
Download-URL: https://pypi.python.org/pypi/feedparser
@@ -12,19 +12,19 @@
Platform: Windows
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: XML
-Requires-Python: >=3.6
+Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
-Requires-Dist: sgmllib3k
+Requires-Dist: feedparser-sgmllib<3,>=2
Dynamic: author
Dynamic: author-email
Dynamic: classifier
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/feedparser/__init__.py
new/feedparser-6.0.14/feedparser/__init__.py
--- old/feedparser-6.0.12/feedparser/__init__.py 2025-09-10
15:22:29.000000000 +0200
+++ new/feedparser-6.0.14/feedparser/__init__.py 2026-07-30
16:03:13.000000000 +0200
@@ -32,7 +32,7 @@
__author__ = 'Kurt McKee <[email protected]>'
__license__ = 'BSD 2-clause'
-__version__ = '6.0.12'
+__version__ = '6.0.14'
# HTTP "User-Agent" header to send to servers when downloading feeds.
# If you are embedding feedparser in a larger application, you should
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/feedparser/html.py
new/feedparser-6.0.14/feedparser/html.py
--- old/feedparser-6.0.12/feedparser/html.py 2025-09-10 15:22:29.000000000
+0200
+++ new/feedparser-6.0.14/feedparser/html.py 2026-07-30 15:49:13.000000000
+0200
@@ -28,7 +28,7 @@
import html.entities
import re
-from .sgml import *
+from .sgml import sgmllib
_cp1252 = {
128: '\u20ac', # euro sign
@@ -61,7 +61,7 @@
}
-class _BaseHTMLProcessor(sgmllib.SGMLParser, object):
+class _BaseHTMLProcessor(sgmllib.SGMLParser):
special = re.compile("""[<>'"]""")
bare_ampersand = re.compile(r"&(?!#\d+;|#x[0-9a-fA-F]+;|\w+;)")
elements_no_end_tag = {
@@ -109,35 +109,8 @@
else:
return '<' + tag + '></' + tag + '>'
- # By declaring these methods and overriding their compiled code
- # with the code from sgmllib, the original code will execute in
- # feedparser's scope instead of sgmllib's. This means that the
- # `tagfind` and `charref` regular expressions will be found as
- # they're declared above, not as they're declared in sgmllib.
- def goahead(self, i):
- raise NotImplementedError
-
- # Replace goahead with SGMLParser's goahead() code object.
- try:
- goahead.__code__ = sgmllib.SGMLParser.goahead.__code__
- except AttributeError:
- # Python 2
- # noinspection PyUnresolvedReferences
- goahead.func_code = sgmllib.SGMLParser.goahead.func_code
-
- def __parse_starttag(self, i):
- raise NotImplementedError
-
- # Replace __parse_starttag with SGMLParser's parse_starttag() code object.
- try:
- __parse_starttag.__code__ = sgmllib.SGMLParser.parse_starttag.__code__
- except AttributeError:
- # Python 2
- # noinspection PyUnresolvedReferences
- __parse_starttag.func_code =
sgmllib.SGMLParser.parse_starttag.func_code
-
def parse_starttag(self, i):
- j = self.__parse_starttag(i)
+ j = super().parse_starttag(i)
if self._type == 'application/xhtml+xml':
if j > 2 and self.rawdata[j-2:j] == '/>':
self.unknown_endtag(self.lasttag)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/feedparser/sgml.py
new/feedparser-6.0.14/feedparser/sgml.py
--- old/feedparser-6.0.12/feedparser/sgml.py 2025-09-10 15:22:29.000000000
+0200
+++ new/feedparser-6.0.14/feedparser/sgml.py 2026-07-30 16:03:13.000000000
+0200
@@ -27,43 +27,12 @@
import re
-import sgmllib
+import feedparser_sgmllib as sgmllib
__all__ = [
- 'sgmllib',
- 'charref',
- 'tagfind',
- 'attrfind',
- 'entityref',
- 'incomplete',
- 'interesting',
- 'shorttag',
- 'shorttagopen',
- 'starttagopen',
- 'endbracket',
+ "sgmllib",
]
-# sgmllib defines a number of module-level regular expressions that are
-# insufficient for the XML parsing feedparser needs. Rather than modify
-# the variables directly in sgmllib, they're defined here using the same
-# names, and the compiled code objects of several sgmllib.SGMLParser
-# methods are copied into _BaseHTMLProcessor so that they execute in
-# feedparser's scope instead of sgmllib's scope.
-charref = re.compile(r'&#(\d+|[xX][0-9a-fA-F]+);')
-tagfind = re.compile(r'[a-zA-Z][-_.:a-zA-Z0-9]*')
-attrfind = re.compile(
- r"""\s*([a-zA-Z_][-:.a-zA-Z_0-9]*)[$]?(\s*=\s*"""
- r"""('[^']*'|"[^"]*"|[][\-a-zA-Z0-9./,:;+*%?!&$()_#=~'"@]*))?"""
-)
-
-# Unfortunately, these must be copied over to prevent NameError exceptions
-entityref = sgmllib.entityref
-incomplete = sgmllib.incomplete
-interesting = sgmllib.interesting
-shorttag = sgmllib.shorttag
-shorttagopen = sgmllib.shorttagopen
-starttagopen = sgmllib.starttagopen
-
class _EndBracketRegEx:
def __init__(self):
@@ -95,4 +64,4 @@
return self.match.end(n)
-endbracket = _EndBracketRegEx()
+sgmllib.endbracket = _EndBracketRegEx()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/feedparser.egg-info/PKG-INFO
new/feedparser-6.0.14/feedparser.egg-info/PKG-INFO
--- old/feedparser-6.0.12/feedparser.egg-info/PKG-INFO 2025-09-10
15:22:45.000000000 +0200
+++ new/feedparser-6.0.14/feedparser.egg-info/PKG-INFO 2026-07-30
16:06:40.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: feedparser
-Version: 6.0.12
+Version: 6.0.14
Summary: Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom
0.3, and Atom 1.0 feeds
Home-page: https://github.com/kurtmckee/feedparser
Download-URL: https://pypi.python.org/pypi/feedparser
@@ -12,19 +12,19 @@
Platform: Windows
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: XML
-Requires-Python: >=3.6
+Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
-Requires-Dist: sgmllib3k
+Requires-Dist: feedparser-sgmllib<3,>=2
Dynamic: author
Dynamic: author-email
Dynamic: classifier
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/feedparser.egg-info/SOURCES.txt
new/feedparser-6.0.14/feedparser.egg-info/SOURCES.txt
--- old/feedparser-6.0.12/feedparser.egg-info/SOURCES.txt 2025-09-10
15:22:45.000000000 +0200
+++ new/feedparser-6.0.14/feedparser.egg-info/SOURCES.txt 2026-07-30
16:06:40.000000000 +0200
@@ -2,6 +2,7 @@
MANIFEST.in
NEWS
README.rst
+pyproject.toml
setup.py
docs/add_custom_css.py
docs/advanced.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/feedparser.egg-info/requires.txt
new/feedparser-6.0.14/feedparser.egg-info/requires.txt
--- old/feedparser-6.0.12/feedparser.egg-info/requires.txt 2025-09-10
15:22:45.000000000 +0200
+++ new/feedparser-6.0.14/feedparser.egg-info/requires.txt 2026-07-30
16:06:40.000000000 +0200
@@ -1 +1 @@
-sgmllib3k
+feedparser-sgmllib<3,>=2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/pyproject.toml
new/feedparser-6.0.14/pyproject.toml
--- old/feedparser-6.0.12/pyproject.toml 1970-01-01 01:00:00.000000000
+0100
+++ new/feedparser-6.0.14/pyproject.toml 2026-07-30 15:49:13.000000000
+0200
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools>=77.0.3"]
+build-backend = "setuptools.build_meta"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/feedparser-6.0.12/setup.py
new/feedparser-6.0.14/setup.py
--- old/feedparser-6.0.12/setup.py 2025-09-10 15:22:29.000000000 +0200
+++ new/feedparser-6.0.14/setup.py 2026-07-30 16:03:13.000000000 +0200
@@ -58,19 +58,19 @@
download_url='https://pypi.python.org/pypi/feedparser',
platforms=['POSIX', 'Windows'],
packages=['feedparser', 'feedparser.datetimes', 'feedparser.namespaces',
'feedparser.parsers'],
- install_requires=['sgmllib3k'],
- python_requires='>=3.6',
+ install_requires=['feedparser-sgmllib (>=2, <3)'],
+ python_requires='>=3.10',
keywords=['atom', 'cdf', 'feed', 'parser', 'rdf', 'rss'],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
- 'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent',
'Programming Language :: Python',
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
- 'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
+ 'Programming Language :: Python :: 3.12',
+ 'Programming Language :: Python :: 3.13',
+ 'Programming Language :: Python :: 3.14',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: Text Processing :: Markup :: XML',
],