From 3f64a63298ac78f5f2a50a52e3e3f01eef1b51ce Mon Sep 17 00:00:00 2001
From: Krassy Boykinov <kboykinov@teamcentrixx.com>
Date: Thu, 26 Sep 2024 09:06:22 +0200
Subject: [PATCH] main/py3-lxml: upgrade to 5.3.0

---
 main/py3-lxml/APKBUILD                        |   8 +-
 ...ix-test_elementtree-with-expat-2.6.0.patch | 100 ------------------
 main/py3-lxml/tests-fix-encoding-name.patch   |  13 ++-
 3 files changed, 11 insertions(+), 110 deletions(-)
 delete mode 100644 main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch

diff --git a/main/py3-lxml/APKBUILD b/main/py3-lxml/APKBUILD
index 41c720d0fd3a..c3827722a61c 100644
--- a/main/py3-lxml/APKBUILD
+++ b/main/py3-lxml/APKBUILD
@@ -3,7 +3,7 @@
 # Maintainer: Francesco Colista <fcolista@alpinelinux.org>
 pkgname=py3-lxml
 _pkgname=lxml
-pkgver=5.1.0
+pkgver=5.3.0
 pkgrel=0
 pkgdesc="Python3 LXML Library"
 url="https://lxml.de/"
@@ -23,7 +23,6 @@ subpackages="$pkgname-pyc"
 source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
 	libxml-2.11.0.patch
 	tests-fix-encoding-name.patch
-	fix-test_elementtree-with-expat-2.6.0.patch
 	"
 builddir="$srcdir/$_pkgname-$pkgver"
 
@@ -58,8 +57,7 @@ package() {
 }
 
 sha512sums="
-a538f322686a1b2c63211d915db900116b7db467a1cce0a0ad7a93e6c15195a66dc6d091301d1918f2cb513ee3168be939945ae60aa470fd9604f6d46e9eb375  lxml-5.1.0.tar.gz
+7f8a3717645893bc6f790cc9adfb8fdab91c352dc4dc23c0ccb4af9a0d138acf9ef5054e9786af497955f10079e9242dbd63ea9ac39c33bfd71ca2fe4ef4a7c0  lxml-5.3.0.tar.gz
 6436f87042563bb3a08bd7d0216fdb284d639b1a72fde77dce75d7c3e63f4f18ba115df9540fe4298f558df53f9dbfbd781374138544e8e5d9cb5ca5928f343c  libxml-2.11.0.patch
-ef5ba4064166443e07040db315173a4d0cb0d83eb3cd49623f210253a25433ec1c408d6d8e538f93498a211bc1695fdaa3e39f8ac75f36a3319c38bd96ba73eb  tests-fix-encoding-name.patch
-7edb98daa4ea776c18c0b59fed6e54d4bb6e1c14101cdc768a4e5c803b6d94147dc2e13dc5fb3a48e6faa952ef1f7a16712fb6b0306351db6c4e0063f432fac1  fix-test_elementtree-with-expat-2.6.0.patch
+9adaadb7f082557555f9db5f923bb764f0c9d255a9010c0f1b5f5c67690e373b62e0f8418c37ccf13cf23f2f609623516ee87dc73602dea30d5547b6cd60f55e  tests-fix-encoding-name.patch
 "
diff --git a/main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch b/main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch
deleted file mode 100644
index a75644bc2c44..000000000000
--- a/main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 3ccc7d583e325ceb0ebdf8fc295bbb7fc8cd404d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
-Date: Sat, 2 Mar 2024 06:51:01 +0100
-Subject: [PATCH] Fix test_elementtree with Expat 2.6.0 (GH-407)
-
-Feeding the parser by too small chunks defers parsing to prevent
-CVE-2023-52425. Future versions of Expat may be more reactive.
-
-Heavily inspired by https://github.com/python/cpython/commit/4a08e7b3431cd32a0daf22a33421cd3035343dc4
-
-We cannot use a @fails_with_expat_2_6_0 decorator
-because the test passes in ETreePullTestCase.
-
-See https://github.com/python/cpython/issues/115133
-See https://github.com/advisories/GHSA-gh68-jm46-84rf
-Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
----
- src/lxml/tests/test_elementtree.py | 62 +++++++++++++++++++-----------
- 1 file changed, 39 insertions(+), 23 deletions(-)
-
-diff --git a/src/lxml/tests/test_elementtree.py b/src/lxml/tests/test_elementtree.py
-index 8ccf4442a..ef923c5ce 100644
---- a/src/lxml/tests/test_elementtree.py
-+++ b/src/lxml/tests/test_elementtree.py
-@@ -10,6 +10,7 @@
- import io
- import operator
- import os
-+import pyexpat
- import re
- import sys
- import textwrap
-@@ -4383,29 +4384,44 @@ def assert_event_tags(self, parser, expected, max_events=None):
-         self.assertEqual([(action, elem.tag) for action, elem in events],
-                          expected)
- 
--    def test_simple_xml(self):
--        for chunk_size in (None, 1, 5):
--            #with self.subTest(chunk_size=chunk_size):
--                parser = self.etree.XMLPullParser()
--                self.assert_event_tags(parser, [])
--                self._feed(parser, "<!-- comment -->\n", chunk_size)
--                self.assert_event_tags(parser, [])
--                self._feed(parser,
--                           "<root>\n  <element key='value'>text</element",
--                           chunk_size)
--                self.assert_event_tags(parser, [])
--                self._feed(parser, ">\n", chunk_size)
--                self.assert_event_tags(parser, [('end', 'element')])
--                self._feed(parser, "<element>text</element>tail\n", chunk_size)
--                self._feed(parser, "<empty-element/>\n", chunk_size)
--                self.assert_event_tags(parser, [
--                    ('end', 'element'),
--                    ('end', 'empty-element'),
--                    ])
--                self._feed(parser, "</root>\n", chunk_size)
--                self.assert_event_tags(parser, [('end', 'root')])
--                root = self._close_and_return_root(parser)
--                self.assertEqual(root.tag, 'root')
-+    def test_simple_xml(self, chunk_size=None):
-+        parser = self.etree.XMLPullParser()
-+        self.assert_event_tags(parser, [])
-+        self._feed(parser, "<!-- comment -->\n", chunk_size)
-+        self.assert_event_tags(parser, [])
-+        self._feed(parser,
-+                   "<root>\n  <element key='value'>text</element",
-+                   chunk_size)
-+        self.assert_event_tags(parser, [])
-+        self._feed(parser, ">\n", chunk_size)
-+        self.assert_event_tags(parser, [('end', 'element')])
-+        self._feed(parser, "<element>text</element>tail\n", chunk_size)
-+        self._feed(parser, "<empty-element/>\n", chunk_size)
-+        self.assert_event_tags(parser, [
-+            ('end', 'element'),
-+            ('end', 'empty-element'),
-+            ])
-+        self._feed(parser, "</root>\n", chunk_size)
-+        self.assert_event_tags(parser, [('end', 'root')])
-+        root = self._close_and_return_root(parser)
-+        self.assertEqual(root.tag, 'root')
-+
-+    def test_simple_xml_chunk_1(self):
-+        if self.etree is not etree and pyexpat.version_info >= (2, 6, 0):
-+            raise unittest.SkipTest(
-+                "Feeding the parser by too small chunks defers parsing"
-+            )
-+        self.test_simple_xml(chunk_size=1)
-+
-+    def test_simple_xml_chunk_5(self):
-+        if self.etree is not etree and pyexpat.version_info >= (2, 6, 0):
-+            raise unittest.SkipTest(
-+                "Feeding the parser by too small chunks defers parsing"
-+            )
-+        self.test_simple_xml(chunk_size=5)
-+
-+    def test_simple_xml_chunk_22(self):
-+        self.test_simple_xml(chunk_size=22)
- 
-     def test_feed_while_iterating(self):
-         parser = self.etree.XMLPullParser()
diff --git a/main/py3-lxml/tests-fix-encoding-name.patch b/main/py3-lxml/tests-fix-encoding-name.patch
index c25246dff930..fc2a42a15f4c 100644
--- a/main/py3-lxml/tests-fix-encoding-name.patch
+++ b/main/py3-lxml/tests-fix-encoding-name.patch
@@ -1,14 +1,17 @@
-From: Patrycja Rosa <alpine@ptrcnull.me>
-Date: Thu, 10 Feb 2022 14:09:24 +0100
-Subject: test_incremental_xmlfile: fix encoding name
-
 diff --git a/src/lxml/tests/test_incremental_xmlfile.py b/src/lxml/tests/test_incremental_xmlfile.py
+index 3162155..43b79d7 100644
 --- a/src/lxml/tests/test_incremental_xmlfile.py
 +++ b/src/lxml/tests/test_incremental_xmlfile.py
-@@ -173,4 +173,4 @@
+@@ -177,10 +177,10 @@ class _XmlFileTestCaseBase(HelperTestCase):
+             '<test>Comments: &lt;!-- text --&gt;\nEntities: &amp;amp;</test>')
+ 
+     def test_encoding(self):
 -        with etree.xmlfile(self._file, encoding='utf16') as xf:
 +        with etree.xmlfile(self._file, encoding='utf-16') as xf:
              with xf.element('test'):
                  xf.write('toast')
 -        self.assertXml('<test>toast</test>', encoding='utf16')
 +        self.assertXml('<test>toast</test>', encoding='utf-16')
+ 
+     def test_buffering(self):
+         with etree.xmlfile(self._file, buffered=False) as xf:
-- 
GitLab