diff --git a/php-5.4.6-libxml.patch b/php-5.4.6-libxml.patch new file mode 100644 index 0000000..c745c63 --- /dev/null +++ b/php-5.4.6-libxml.patch @@ -0,0 +1,68 @@ +From c4b26cc1b0b0521c75e653fffec2a9e3b4bf8cbb Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Thu, 9 Aug 2012 14:02:33 -0400 +Subject: [PATCH] Update to work with libxml 2.9.0 + +--- + ext/dom/documenttype.c | 4 ++++ + ext/dom/node.c | 8 ++++++++ + ext/simplexml/simplexml.c | 4 ++++ + 3 files changed, 16 insertions(+), 0 deletions(-) + +diff --git a/ext/dom/documenttype.c b/ext/dom/documenttype.c +index d61ba79..eee3b5f 100644 +--- a/ext/dom/documenttype.c ++++ b/ext/dom/documenttype.c +@@ -205,7 +205,11 @@ int dom_documenttype_internal_subset_read(dom_object *obj, zval **retval TSRMLS_ + if (buff != NULL) { + xmlNodeDumpOutput (buff, NULL, (xmlNodePtr) intsubset, 0, 0, NULL); + xmlOutputBufferFlush(buff); ++#ifdef LIBXML2_NEW_BUFFER ++ ZVAL_STRINGL(*retval, xmlOutputBufferGetContent(buff), xmlOutputBufferGetSize(buff), 1); ++#else + ZVAL_STRINGL(*retval, buff->buffer->content, buff->buffer->use, 1); ++#endif + (void)xmlOutputBufferClose(buff); + return SUCCESS; + } +diff --git a/ext/dom/node.c b/ext/dom/node.c +index 5bcb234..727d1bc 100644 +--- a/ext/dom/node.c ++++ b/ext/dom/node.c +@@ -1895,9 +1895,17 @@ static void dom_canonicalization(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ + RETVAL_FALSE; + } else { + if (mode == 0) { ++#ifdef LIBXML2_NEW_BUFFER ++ ret = xmlOutputBufferGetSize(buf); ++#else + ret = buf->buffer->use; ++#endif + if (ret > 0) { ++#ifdef LIBXML2_NEW_BUFFER ++ RETVAL_STRINGL((char *) xmlOutputBufferGetContent(buf), ret, 1); ++#else + RETVAL_STRINGL((char *) buf->buffer->content, ret, 1); ++#endif + } else { + RETVAL_EMPTY_STRING(); + } +diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c +index a379111..2368596 100644 +--- a/ext/simplexml/simplexml.c ++++ b/ext/simplexml/simplexml.c +@@ -1417,7 +1417,11 @@ SXE_METHOD(asXML) + + xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, ((xmlDocPtr) sxe->document->ptr)->encoding); + xmlOutputBufferFlush(outbuf); ++#ifdef LIBXML2_NEW_BUFFER ++ RETVAL_STRINGL((char *)xmlOutputBufferGetContent(outbuf), xmlOutputBufferGetSize(outbuf), 1); ++#else + RETVAL_STRINGL((char *)outbuf->buffer->content, outbuf->buffer->use, 1); ++#endif + xmlOutputBufferClose(outbuf); + } + } else { +-- +1.7.8 + diff --git a/php.spec b/php.spec index e16594d..b34c6bf 100644 --- a/php.spec +++ b/php.spec @@ -87,6 +87,9 @@ Patch42: php-5.3.1-systzdata-v9.patch Patch43: php-5.4.0-phpize.patch # Use system libzip instead of bundled one Patch44: php-5.4.5-system-libzip.patch +# Fix for libxml 2.9.0 +# http://git.php.net/?p=php-src.git;a=commitdiff;h=c4b26cc1b0b0521c75e653fffec2a9e3b4bf8cbb +Patch45: php-5.4.6-libxml.patch # Fixes for tests @@ -587,6 +590,7 @@ support for using the enchant library to PHP. %if %{with_libzip} %patch44 -p1 -b .systzip %endif +%patch45 -p1 -b .libxml290 # Prevent %%doc confusion over LICENSE files cp Zend/LICENSE Zend/ZEND_LICENSE @@ -1286,6 +1290,7 @@ fi * Fri Aug 17 2012 Remi Collet 5.4.6-1 - update to 5.4.6 - update to v9 of systzdata patch +- backport fix for new libxml * Fri Jul 20 2012 Remi Collet 5.4.5-1 - update to 5.4.5