forked from pool/python-lxml
Compare commits
7 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 32a3b38a24 | |||
| d4ab80368c | |||
| a845284b2a | |||
| 3fb0b8b1d9 | |||
| 26c09de24d | |||
| 4b6b1ff478 | |||
| ec82b5a549 |
BIN
lxml-5.4.0.tar.gz
LFS
Normal file
BIN
lxml-5.4.0.tar.gz
LFS
Normal file
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:032e65120339d44cdc3efc326c9f660f5f7205f3a535c1fdbf898b29ea01fb72
|
|
||||||
size 4096938
|
|
||||||
@@ -1,39 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Tue Jul 22 06:12:57 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
|
||||||
|
|
||||||
- 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 <nico.krapp@suse.com>
|
Tue May 27 14:56:16 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,11 @@
|
|||||||
|
|
||||||
%{?sle15_python_module_pythons}
|
%{?sle15_python_module_pythons}
|
||||||
Name: python-lxml
|
Name: python-lxml
|
||||||
Version: 6.0.0
|
Version: 5.4.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Pythonic XML processing library
|
Summary: Pythonic XML processing library
|
||||||
License: BSD-3-Clause AND GPL-2.0-or-later
|
License: BSD-3-Clause AND GPL-2.0-or-later
|
||||||
|
Group: Development/Languages/Python
|
||||||
URL: https://lxml.de/
|
URL: https://lxml.de/
|
||||||
Source0: https://files.pythonhosted.org/packages/source/l/lxml/lxml-%{version}.tar.gz
|
Source0: https://files.pythonhosted.org/packages/source/l/lxml/lxml-%{version}.tar.gz
|
||||||
Source1: https://lxml.de/lxmldoc-4.5.2.pdf
|
Source1: https://lxml.de/lxmldoc-4.5.2.pdf
|
||||||
@@ -29,12 +30,13 @@ Source99: python-lxml.rpmlintrc
|
|||||||
# PATCH-FIX-OPENSUSE Skip a test under libxml2 2.10.4+
|
# PATCH-FIX-OPENSUSE Skip a test under libxml2 2.10.4+
|
||||||
# https://bugs.launchpad.net/lxml/+bug/2016939
|
# https://bugs.launchpad.net/lxml/+bug/2016939
|
||||||
Patch1: skip-test-under-libxml2-2.10.4.patch
|
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 Cython >= 3.0.7}
|
||||||
BuildRequires: %{python_module base >= 3.9}
|
BuildRequires: %{python_module base}
|
||||||
BuildRequires: %{python_module cssselect >= 0.9.1}
|
BuildRequires: %{python_module cssselect >= 0.9.1}
|
||||||
BuildRequires: %{python_module pip}
|
|
||||||
BuildRequires: %{python_module setuptools >= 18.0.1}
|
BuildRequires: %{python_module setuptools >= 18.0.1}
|
||||||
BuildRequires: %{python_module wheel}
|
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
%if 0%{?suse_version} == 1500
|
%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)
|
# Assume the best that the old libxml2 in SLE15 is patched for https://gitlab.gnome.org/GNOME/libxml2/-/issues/378 (CVE-2022-2309)
|
||||||
@@ -93,29 +95,26 @@ rm src/lxml/lxml.etree_api.h
|
|||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%{optflags}"
|
export CFLAGS="%{optflags}"
|
||||||
%pyproject_wheel
|
%python_build build_ext -i --with-cython
|
||||||
# The testsuite relies on the inplace build
|
|
||||||
%python_expand PYTHON=$python make inplace
|
|
||||||
|
|
||||||
%install
|
|
||||||
%pyproject_install
|
|
||||||
%python_expand %fdupes %{buildroot}
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# The tests fail on SLE 11 due to broken incremental parsing in libxml2
|
# The tests fail on SLE 11 due to broken incremental parsing in libxml2
|
||||||
export CFLAGS="%{optflags}"
|
export CFLAGS="%{optflags}"
|
||||||
export LANG=en_US.UTF-8
|
export LANG=en_US.UTF-8
|
||||||
export PYTHONUNBUFFERED=x
|
export PYTHONUNBUFFERED=x
|
||||||
export PYTHONDONTWRITEBYTECODE=1
|
|
||||||
# cyclic dependency between html5lib and lxml
|
# cyclic dependency between html5lib and lxml
|
||||||
rm -v src/lxml/html/tests/test_html5parser.py
|
rm -v src/lxml/html/tests/test_html5parser.py
|
||||||
%python_exec test.py
|
%python_exec test.py
|
||||||
|
|
||||||
|
%install
|
||||||
|
%python_install
|
||||||
|
%python_expand %fdupes %{buildroot}
|
||||||
|
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%license LICENSES.txt
|
%license LICENSES.txt
|
||||||
%doc CHANGES.txt CREDITS.txt README.rst
|
%doc CHANGES.txt CREDITS.txt README.rst
|
||||||
%{python_sitearch}/lxml/
|
%{python_sitearch}/lxml/
|
||||||
%{python_sitearch}/lxml-%{version}.dist-info
|
%{python_sitearch}/lxml-%{version}-py%{python_version}.egg-info
|
||||||
%exclude %{python_sitearch}/lxml/*.h
|
%exclude %{python_sitearch}/lxml/*.h
|
||||||
%exclude %{python_sitearch}/lxml/includes/*.h
|
%exclude %{python_sitearch}/lxml/includes/*.h
|
||||||
|
|
||||||
|
|||||||
20
skip-test-under-libxml2-2.11.1.patch
Normal file
20
skip-test-under-libxml2-2.11.1.patch
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
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 = '<?xml version="1.0" encoding="UTF-16"?><p>%s</p>' % utext
|
||||||
Reference in New Issue
Block a user