Submitted By:            Xi Ruoyao <xry111@xry111.site>
Date:                    2025-09-20
Initial Package Version: 6.0.1
Upstream Status:         Proposed at https://bugs.launchpad.net/lxml/+bug/2125278
Origin:                  Self
Description:             Fix build failure with libxml2 >= 2.15.  It's
                         technically a one-line change to src/lxml/proxy.pxi,
                         but we need to include the changes to generated
                         files to avoid a dependency on Cython, and a sed
                         with hard-coded line number is also ugly.  Thus the
                         patch is created.

diff --color -Naur lxml-6.0.1.orig/src/lxml/etree.c lxml-6.0.1/src/lxml/etree.c
--- lxml-6.0.1.orig/src/lxml/etree.c	2025-08-22 05:44:14.000000000 +0800
+++ lxml-6.0.1/src/lxml/etree.c	2025-09-21 12:46:23.927821645 +0800
@@ -66,9 +66,12 @@
             "src/lxml/xslt.pxi",
             "src/lxml/xsltext.pxi"
         ],
+        "extra_compile_args": [
+            "-w"
+        ],
         "include_dirs": [
-            "src/lxml/includes",
             "src/lxml",
+            "src/lxml/includes",
             "/usr/include/libxml2",
             "src"
         ],
@@ -35157,7 +35160,7 @@
  *                 _fixThreadDictPtr(&c_element.content.prefix, c_src_dict, c_dict)
  *             c_attribute = c_element.attributes             # <<<<<<<<<<<<<<
  *             while c_attribute:
- *                 _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)
+ *                 _fixThreadDictPtr(<const_xmlChar**>&c_attribute.defaultValue, c_src_dict, c_dict)
 */
       __pyx_t_3 = __pyx_v_c_element->attributes;
       __pyx_v_c_attribute = __pyx_t_3;
@@ -35166,7 +35169,7 @@
  *                 _fixThreadDictPtr(&c_element.content.prefix, c_src_dict, c_dict)
  *             c_attribute = c_element.attributes
  *             while c_attribute:             # <<<<<<<<<<<<<<
- *                 _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)
+ *                 _fixThreadDictPtr(<const_xmlChar**>&c_attribute.defaultValue, c_src_dict, c_dict)
  *                 _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict)
 */
       while (1) {
@@ -35176,15 +35179,15 @@
         /* "src/lxml/proxy.pxi":577
  *             c_attribute = c_element.attributes
  *             while c_attribute:
- *                 _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
+ *                 _fixThreadDictPtr(<const_xmlChar**>&c_attribute.defaultValue, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
  *                 _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict)
  *                 _fixThreadDictPtr(&c_attribute.prefix, c_src_dict, c_dict)
 */
-        __pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_attribute->defaultValue), __pyx_v_c_src_dict, __pyx_v_c_dict);
+        __pyx_f_4lxml_5etree__fixThreadDictPtr(((const xmlChar **)(&__pyx_v_c_attribute->defaultValue)), __pyx_v_c_src_dict, __pyx_v_c_dict);
 
         /* "src/lxml/proxy.pxi":578
  *             while c_attribute:
- *                 _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)
+ *                 _fixThreadDictPtr(<const_xmlChar**>&c_attribute.defaultValue, c_src_dict, c_dict)
  *                 _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
  *                 _fixThreadDictPtr(&c_attribute.prefix, c_src_dict, c_dict)
  *                 _fixThreadDictPtr(&c_attribute.elem, c_src_dict, c_dict)
@@ -35192,7 +35195,7 @@
         __pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_attribute->name), __pyx_v_c_src_dict, __pyx_v_c_dict);
 
         /* "src/lxml/proxy.pxi":579
- *                 _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)
+ *                 _fixThreadDictPtr(<const_xmlChar**>&c_attribute.defaultValue, c_src_dict, c_dict)
  *                 _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict)
  *                 _fixThreadDictPtr(&c_attribute.prefix, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
  *                 _fixThreadDictPtr(&c_attribute.elem, c_src_dict, c_dict)
diff --color -Naur lxml-6.0.1.orig/src/lxml/proxy.pxi lxml-6.0.1/src/lxml/proxy.pxi
--- lxml-6.0.1.orig/src/lxml/proxy.pxi	2025-08-22 05:42:26.000000000 +0800
+++ lxml-6.0.1/src/lxml/proxy.pxi	2025-09-21 12:46:17.599997078 +0800
@@ -574,7 +574,7 @@
                 _fixThreadDictPtr(&c_element.content.prefix, c_src_dict, c_dict)
             c_attribute = c_element.attributes
             while c_attribute:
-                _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)
+                _fixThreadDictPtr(<const_xmlChar**>&c_attribute.defaultValue, c_src_dict, c_dict)
                 _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict)
                 _fixThreadDictPtr(&c_attribute.prefix, c_src_dict, c_dict)
                 _fixThreadDictPtr(&c_attribute.elem, c_src_dict, c_dict)
diff --color -Naur lxml-6.0.1.orig/src/lxml.egg-info/SOURCES.txt lxml-6.0.1/src/lxml.egg-info/SOURCES.txt
--- lxml-6.0.1.orig/src/lxml.egg-info/SOURCES.txt	2025-08-22 05:46:20.000000000 +0800
+++ lxml-6.0.1/src/lxml.egg-info/SOURCES.txt	2025-09-21 12:46:43.074568529 +0800
@@ -10,6 +10,7 @@
 buildlibxml.py
 pyproject.toml
 requirements.txt
+setup.cfg
 setup.py
 setupinfo.py
 test.py

