<pre style='margin:0'>
Ryan Carsten Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c90ef35cfef3b300c1b45be99a541f0868873c5b">https://github.com/macports/macports-ports/commit/c90ef35cfef3b300c1b45be99a541f0868873c5b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c90ef35cfef3b300c1b45be99a541f0868873c5b
</span>Author: Ryan Carsten Schmidt <ryandesign@macports.org>
AuthorDate: Fri May 17 08:09:40 2024 -0500

<span style='display:block; white-space:pre;color:#404040;'>    php*: Fix build with libxml 2.12.x
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/69758
</span>---
 lang/php/Portfile                            |  8 ++++
 lang/php/files/patch-php52-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php52-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php53-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php53-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php54-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php54-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php55-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php55-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php56-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php56-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php70-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php70-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php71-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php71-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php72-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php72-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php73-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php73-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php74-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php74-libxml2-2.12.diff | 61 +++++++++++++++++++++++++++
 lang/php/files/patch-php80-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php80-libxml2-2.12.diff | 63 ++++++++++++++++++++++++++++
 lang/php/files/patch-php81-ext-soap.diff     | 13 ++++++
 lang/php/files/patch-php81-libxml2-2.12.diff | 42 +++++++++++++++++++
 25 files changed, 879 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/Portfile b/lang/php/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 04564ac377f..f77f77877cd 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/php/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -270,6 +270,9 @@ if {[is_sapi_subport]} {
</span>     if {[vercmp ${branch} >= 8.2]} {
         patchfiles-append \
                         patch-${php}-atomic.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-${php}-libxml2-2.12.diff
</span>     }
     if {[vercmp ${branch} >= 8.0]} {
         patchfiles-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2210,6 +2213,11 @@ subport ${php}-soap {
</span> 
     depends_lib-append      port:libxml2
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp ${branch} < 8.2]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-${php}-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     if {[vercmp ${branch} < 7.4]} {
         configure.args-append   --with-libxml-dir=${prefix}
     } else {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php52-ext-soap.diff b/lang/php/files/patch-php52-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8092ac435b0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php52-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2010-11-08 05:34:32.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-20 15:50:36.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -300,7 +300,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx TSRMLS_CC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php52-libxml2-2.12.diff b/lang/php/files/patch-php52-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6ca7ada7659
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php52-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2010-01-03 03:23:27.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-20 15:47:47.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -440,7 +440,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -552,7 +556,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -760,9 +768,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2010-01-03 03:23:27.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-06-04 12:59:16.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,6 +34,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ext/standard/php_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php53-ext-soap.diff b/lang/php/files/patch-php53-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8b6537d79aa
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php53-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-20 15:41:28.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -334,7 +334,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx TSRMLS_CC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php53-libxml2-2.12.diff b/lang/php/files/patch-php53-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..56ca46e76c3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php53-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2014-08-13 14:22:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-20 15:46:25.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -432,7 +432,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -544,7 +548,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -755,9 +763,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-20 15:37:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,6 +36,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ext/standard/php_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php54-ext-soap.diff b/lang/php/files/patch-php54-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8b6537d79aa
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php54-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-20 15:41:28.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -334,7 +334,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx TSRMLS_CC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php54-libxml2-2.12.diff b/lang/php/files/patch-php54-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..fbc0ba3d1f9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php54-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2015-09-01 15:09:37.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-20 15:45:03.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -453,7 +453,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -711,7 +715,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -973,9 +981,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-20 15:37:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,6 +36,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ext/standard/php_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php55-ext-soap.diff b/lang/php/files/patch-php55-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8b6537d79aa
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php55-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-20 15:41:28.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -334,7 +334,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx TSRMLS_CC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php55-libxml2-2.12.diff b/lang/php/files/patch-php55-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e94e4b83d65
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php55-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2016-07-20 03:41:48.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-20 15:43:36.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -469,7 +469,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -727,7 +731,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1000,9 +1008,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-20 15:37:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,6 +36,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ext/standard/php_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php56-ext-soap.diff b/lang/php/files/patch-php56-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8b6537d79aa
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php56-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-20 15:41:28.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -334,7 +334,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx TSRMLS_CC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php56-libxml2-2.12.diff b/lang/php/files/patch-php56-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0ae39243825
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php56-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-20 15:38:21.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -470,7 +470,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -728,7 +732,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1001,9 +1009,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-20 15:37:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,6 +36,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ext/standard/php_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php70-ext-soap.diff b/lang/php/files/patch-php70-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c035eb68d57
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php70-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2020-09-30 00:15:54.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-19 15:04:04.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -330,7 +330,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php70-libxml2-2.12.diff b/lang/php/files/patch-php70-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f7b7e5d4650
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php70-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2019-10-22 11:59:42.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-19 15:08:42.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -477,7 +477,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -728,7 +732,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1006,9 +1014,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2020-09-30 00:15:53.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,6 +39,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "zend_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php71-ext-soap.diff b/lang/php/files/patch-php71-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c035eb68d57
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php71-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2020-09-30 00:15:54.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-19 15:04:04.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -330,7 +330,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php71-libxml2-2.12.diff b/lang/php/files/patch-php71-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f7b7e5d4650
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php71-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2019-10-22 11:59:42.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-19 15:08:42.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -477,7 +477,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -728,7 +732,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1006,9 +1014,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2020-09-30 00:15:53.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,6 +39,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "zend_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php72-ext-soap.diff b/lang/php/files/patch-php72-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c035eb68d57
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php72-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2020-09-30 00:15:54.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-19 15:04:04.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -330,7 +330,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php72-libxml2-2.12.diff b/lang/php/files/patch-php72-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..2b707fe55e1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php72-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2020-09-30 00:15:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2020-09-30 00:15:53.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -477,7 +477,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -728,7 +732,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1009,9 +1017,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2020-09-30 00:15:53.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-19 14:58:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,6 +39,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "zend_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php73-ext-soap.diff b/lang/php/files/patch-php73-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d4c1a56ab27
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php73-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2021-11-16 05:18:30.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-19 14:31:19.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -331,7 +331,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php73-libxml2-2.12.diff b/lang/php/files/patch-php73-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..da6dbef8a4d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php73-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2022-10-31 05:36:09.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-18 01:59:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2021-11-16 05:18:39.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-19 14:29:03.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -485,7 +485,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -736,7 +740,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1017,9 +1025,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2022-10-31 05:36:06.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-18 01:59:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,6 +37,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "zend_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php74-ext-soap.diff b/lang/php/files/patch-php74-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..cdfbe546047
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php74-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2022-10-31 05:36:07.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-18 01:58:15.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -333,7 +333,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php74-libxml2-2.12.diff b/lang/php/files/patch-php74-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..aeac0175c20
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php74-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c   2022-10-31 05:36:09.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c   2024-05-18 01:59:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_LIBXML && HAVE_DOM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2022-10-31 05:36:06.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-18 02:02:02.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -530,7 +530,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -782,7 +786,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1061,9 +1069,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h      2022-10-31 05:36:06.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h      2024-05-18 01:59:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,6 +37,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "zend_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php80-ext-soap.diff b/lang/php/files/patch-php80-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..189b8e36456
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php80-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c.orig        2023-08-03 12:13:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c     2024-05-17 09:10:26.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -331,7 +331,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php80-libxml2-2.12.diff b/lang/php/files/patch-php80-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b82c4f96e24
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php80-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,63 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/dom/document.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/dom/document.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,6 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(HAVE_LIBXML) && defined(HAVE_DOM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_dom.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/SAX.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlsave.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LIBXML_SCHEMAS_ENABLED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/relaxng.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/xmlschemas.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2023-08-03 12:13:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-17 08:58:49.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -481,7 +481,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlResetError((xmlErrorPtr) ptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -732,7 +736,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1035,11 +1043,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_PARSE_PARAMETERS_NONE();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/php_libxml.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/php_libxml.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,6 +35,7 @@ extern zend_module_entry libxml_module_entry;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "zend_smart_str.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/tree.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/parser.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBXML_SAVE_NOEMPTYTAG 1<<2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php81-ext-soap.diff b/lang/php/files/patch-php81-ext-soap.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..089d3c90de7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php81-ext-soap.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/soap/php_sdl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/soap/php_sdl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -332,7 +332,7 @@ static void load_wsdl_ex(zval *this_ptr, char *struri, sdlCtx *ctx, int include)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sdl_restore_uri_credentials(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!wsdl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          xmlErrorPtr xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const xmlError *xmlErrorPtr = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (xmlErrorPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php81-libxml2-2.12.diff b/lang/php/files/patch-php81-libxml2-2.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..095aaae1931
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php81-libxml2-2.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,42 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix libxml2 2.12.x build issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/libxml/libxml.c  2024-04-10 00:53:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/libxml/libxml.c  2024-05-17 07:21:47.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -483,7 +483,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlResetError((xmlErrorPtr) ptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void _php_list_set_error_structure(xmlError *error, const char *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xmlError error_copy;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -736,7 +740,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_end(args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LIBXML_VERSION >= 21200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _php_list_set_error_structure(error, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1009,11 +1017,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Retrieve last error from libxml */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(libxml_get_last_error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xmlErrorPtr error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_PARSE_PARAMETERS_NONE();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const xmlError *error = xmlGetLastError();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           object_init_ex(return_value, libxmlerror_class_entry);
</span></pre><pre style='margin:0'>

</pre>