diff --git a/lxml-5.4.0.tar.gz b/lxml-5.4.0.tar.gz deleted file mode 100644 index 3e69a8c..0000000 --- a/lxml-5.4.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d12832e1dbea4be280b22fd0ea7c9b87f0d8fc51ba06e92dc62d52f804f78ebd -size 3679479 diff --git a/lxml-6.0.0.tar.gz b/lxml-6.0.0.tar.gz new file mode 100644 index 0000000..a679f51 --- /dev/null +++ b/lxml-6.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:032e65120339d44cdc3efc326c9f660f5f7205f3a535c1fdbf898b29ea01fb72 +size 4096938 diff --git a/python-lxml.changes b/python-lxml.changes index 0fb3f78..1b7cc09 100644 --- a/python-lxml.changes +++ b/python-lxml.changes @@ -1,3 +1,39 @@ +------------------------------------------------------------------- +Tue Jul 22 06:12:57 UTC 2025 - Steve Kowalik + +- Update to 6.0.0: + * ``lxml.html.diff`` is faster and provides structurally better diffs. + * The factories ``Element`` and ``ElementTree`` can now be used in type + hints. + * Parsing from ``memoryview`` and other buffers is supported to allow + zero-copy parsing. + * ``lxml.html.builder`` was missing several HTML5 tag names. + * ``CDATA`` can now be written into the incremental ``xmlfile()`` writer. + * A new parser option ``decompress=False`` was added that controls the + automatic input decompression when using libxml2 2.15.0 or later. + * The set of compile time / runtime supported libxml2 feature names is + available as ``etree.LIBXML_COMPILED_FEATURES`` and + ``etree.LIBXML_FEATURES``. + * Predicates in ``.find*()`` could mishandle tag indices if a default + namespace is provided. + * The ``head`` and ``body`` properties of ``lxml.html`` elements failed + if no such element was found. They now return ``None`` instead. + * Tag names provided by code (API, not data) that are longer than + ``INT_MAX`` could be truncated or mishandled in other ways. + * ``.text_content()`` on ``lxml.html`` elements accidentally returned + a "smart string" without additional information. It now returns a plain + string. + * Support for Python < 3.8 was removed. + * Parsing directly from zlib (or lzma) compressed data is now considered + an optional feature in lxml. + * The ``Schematron`` class is deprecated and will become non-functional in + a future lxml version. + * Built using Cython 3.1.2. + * The debug methods ``MemDebug.dump()`` and ``MemDebug.show()`` were + removed completely. +- Use pyproject macros to build and install. +- Dropped patch skip-test-under-libxml2-2.11.1.patch, no longer required. + ------------------------------------------------------------------- Tue May 27 14:56:16 UTC 2025 - Nico Krapp diff --git a/python-lxml.spec b/python-lxml.spec index 5b9294c..f2f14d0 100644 --- a/python-lxml.spec +++ b/python-lxml.spec @@ -18,11 +18,10 @@ %{?sle15_python_module_pythons} Name: python-lxml -Version: 5.4.0 +Version: 6.0.0 Release: 0 Summary: Pythonic XML processing library License: BSD-3-Clause AND GPL-2.0-or-later -Group: Development/Languages/Python URL: https://lxml.de/ Source0: https://files.pythonhosted.org/packages/source/l/lxml/lxml-%{version}.tar.gz Source1: https://lxml.de/lxmldoc-4.5.2.pdf @@ -30,13 +29,12 @@ Source99: python-lxml.rpmlintrc # PATCH-FIX-OPENSUSE Skip a test under libxml2 2.10.4+ # https://bugs.launchpad.net/lxml/+bug/2016939 Patch1: skip-test-under-libxml2-2.10.4.patch -# PATCH-FIX-OPENSUSE Skip a test under libxml2 2.11.1+ -# https://bugs.launchpad.net/lxml/+bug/2018522 -Patch2: skip-test-under-libxml2-2.11.1.patch BuildRequires: %{python_module Cython >= 3.0.7} -BuildRequires: %{python_module base} +BuildRequires: %{python_module base >= 3.9} BuildRequires: %{python_module cssselect >= 0.9.1} +BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools >= 18.0.1} +BuildRequires: %{python_module wheel} BuildRequires: fdupes %if 0%{?suse_version} == 1500 # Assume the best that the old libxml2 in SLE15 is patched for https://gitlab.gnome.org/GNOME/libxml2/-/issues/378 (CVE-2022-2309) @@ -95,26 +93,29 @@ rm src/lxml/lxml.etree_api.h %build export CFLAGS="%{optflags}" -%python_build build_ext -i --with-cython +%pyproject_wheel +# The testsuite relies on the inplace build +%python_expand PYTHON=$python make inplace + +%install +%pyproject_install +%python_expand %fdupes %{buildroot} %check # The tests fail on SLE 11 due to broken incremental parsing in libxml2 export CFLAGS="%{optflags}" export LANG=en_US.UTF-8 export PYTHONUNBUFFERED=x +export PYTHONDONTWRITEBYTECODE=1 # cyclic dependency between html5lib and lxml rm -v src/lxml/html/tests/test_html5parser.py %python_exec test.py -%install -%python_install -%python_expand %fdupes %{buildroot} - %files %{python_files} %license LICENSES.txt %doc CHANGES.txt CREDITS.txt README.rst %{python_sitearch}/lxml/ -%{python_sitearch}/lxml-%{version}-py%{python_version}.egg-info +%{python_sitearch}/lxml-%{version}.dist-info %exclude %{python_sitearch}/lxml/*.h %exclude %{python_sitearch}/lxml/includes/*.h diff --git a/skip-test-under-libxml2-2.11.1.patch b/skip-test-under-libxml2-2.11.1.patch deleted file mode 100644 index 11492ab..0000000 --- a/skip-test-under-libxml2-2.11.1.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: lxml-5.1.0/src/lxml/tests/test_io.py -=================================================================== ---- lxml-5.1.0.orig/src/lxml/tests/test_io.py -+++ lxml-5.1.0/src/lxml/tests/test_io.py -@@ -12,6 +12,7 @@ from .common_imports import ( - read_file, write_to_file, BytesIO, tmpfile - ) - -+import lxml - - class _IOTestCaseBase(HelperTestCase): - """(c)ElementTree compatibility for IO functions/methods -@@ -305,6 +306,7 @@ class _IOTestCaseBase(HelperTestCase): - os.unlink(f.name) - self.assertEqual(utext, root.text) - -+ @unittest.skipIf(lxml.etree.LIBXML_VERSION >= (2, 11, 1), "libxml2 regression has issues with utf16") - def test_iterparse_utf16_bom(self): - utext = 'Søk på nettet' - uxml = '

%s

' % utext