git: 810d87d2ffa1 - 2025Q4 - textproc/php81-xml: fix compatibility with libxml2>=2.13
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 20 Dec 2025 09:05:42 UTC
The branch 2025Q4 has been updated by bofh:
URL: https://cgit.FreeBSD.org/ports/commit/?id=810d87d2ffa16523950c134705951f3c791efc00
commit 810d87d2ffa16523950c134705951f3c791efc00
Author: Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2025-10-27 21:16:07 +0000
Commit: Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2025-12-20 08:59:57 +0000
textproc/php81-xml: fix compatibility with libxml2>=2.13
Fix compatibility issue with libxml2>=2.13 which caused parse error
on some XML files so that devel/pear work again with php81.
See https://github.com/php/php-src/issues/14834 for details.
Approved by: portmgr blanket (backport trivial fix from upstream)
(cherry picked from commit a8592eb7375ea088a96051ad62e46af739f23331)
---
textproc/php81-xml/Makefile | 1 +
textproc/php81-xml/files/patch-compat.c | 19 +++++++++++++++----
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/textproc/php81-xml/Makefile b/textproc/php81-xml/Makefile
index 6baacc4611cc..0800edeb41eb 100644
--- a/textproc/php81-xml/Makefile
+++ b/textproc/php81-xml/Makefile
@@ -1,3 +1,4 @@
+PORTREVISION= 1
CATEGORIES= textproc
MASTERDIR= ${.CURDIR}/../../lang/php81
diff --git a/textproc/php81-xml/files/patch-compat.c b/textproc/php81-xml/files/patch-compat.c
index 02125961b20c..af608e129191 100644
--- a/textproc/php81-xml/files/patch-compat.c
+++ b/textproc/php81-xml/files/patch-compat.c
@@ -1,6 +1,6 @@
---- compat.c.orig Tue Jul 20 10:55:02 2004
-+++ compat.c Tue Jul 20 10:55:55 2004
-@@ -16,6 +16,10 @@
+--- compat.c.orig 2025-07-01 21:17:52 UTC
++++ compat.c
+@@ -14,6 +14,10 @@
+----------------------------------------------------------------------+
*/
@@ -9,5 +9,16 @@
+#endif
+
#include "php.h"
- #if defined(HAVE_LIBXML) && defined(HAVE_XML) && !defined(HAVE_LIBEXPAT)
+ #if defined(HAVE_LIBXML) && (defined(HAVE_XML) || defined(HAVE_XMLRPC)) && !defined(HAVE_LIBEXPAT)
#include "expat_compat.h"
+@@ -375,7 +379,9 @@ _get_entity(void *user, const xmlChar *name)
+ if (ret == NULL)
+ ret = xmlGetDocEntity(parser->parser->myDoc, name);
+
+- if (ret == NULL || (parser->parser->instate != XML_PARSER_ENTITY_VALUE && parser->parser->instate != XML_PARSER_ATTRIBUTE_VALUE)) {
++/* Fix parse error on some XML files so that devel/pear work again. */
++/* See https://github.com/php/php-src/issues/14834 for details. */
++ if (ret == NULL || parser->parser->instate == XML_PARSER_CONTENT) {
+ if (ret == NULL || ret->etype == XML_INTERNAL_GENERAL_ENTITY || ret->etype == XML_INTERNAL_PARAMETER_ENTITY || ret->etype == XML_INTERNAL_PREDEFINED_ENTITY) {
+ /* Predefined entities will expand unless no cdata handler is present */
+ if (parser->h_default && ! (ret && ret->etype == XML_INTERNAL_PREDEFINED_ENTITY && parser->h_cdata)) {