Files
packages/utils/mariadb/patches/010-MDEV-36427-FTBFS-with-libxml2-2-14-0.patch
Tianling Shen 153d1eda11 mariadb: fix build with libxml 2.14
Backport an upstream patch to fix build with libxml 2.14.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-08-13 14:16:45 +08:00

57 lines
1.9 KiB
Diff

From b02ad4a6f8ea09c5cdf0a44a9ee57a60f2989f48 Mon Sep 17 00:00:00 2001
From: Sergey Vojtovich <svojtovich@gmail.com>
Date: Sat, 5 Apr 2025 21:06:41 +0400
Subject: [PATCH] MDEV-36427 - FTBFS with libxml2 2.14.0
Connect engine fails to build with libxml2 2.14.0.
Connect engine uses "#ifndef BASE_BUFFER_SIZE" to determine if libxml2 is
available. If libxml2 is unavailable it did redefine xmlElementType enum
of libxml/tree.h. The reasons for this redefinition is vague, most
probably some of these constants were used when connect was compiled with
MSXML, while libxml2 was disabled.
However BASE_BUFFER_SIZE constant was removed from libxml2 recently, as
a result connect fails to build due to xmlElementType constants
redefinition.
Use LIBXML2_SUPPORT instead of BASE_BUFFER_SIZE for libxml2 availability
check.
---
storage/connect/plgxml.h | 4 ++--
storage/connect/tabxml.cpp | 3 +++
2 files changed, 5 insertions(+), 2 deletions(-)
--- a/storage/connect/plgxml.h
+++ b/storage/connect/plgxml.h
@@ -5,7 +5,7 @@
/******************************************************************/
/* Dual XML implementation base classes defines. */
/******************************************************************/
-#if !defined(BASE_BUFFER_SIZE)
+#ifndef LIBXML2_SUPPORT
enum ElementType { // libxml2
XML_ELEMENT_NODE = 1,
XML_ATTRIBUTE_NODE = 2,
@@ -28,7 +28,7 @@ enum ElementType { // libx
XML_XINCLUDE_START = 19,
XML_XINCLUDE_END = 20,
XML_DOCB_DOCUMENT_NODE = 21};
-#endif // !BASE_BUFFER_SIZE
+#endif
//#if !defined(NODE_TYPE_LIST)
#ifdef NOT_USED
--- a/storage/connect/tabxml.cpp
+++ b/storage/connect/tabxml.cpp
@@ -25,6 +25,9 @@
#include <netinet/in.h>
#include <unistd.h>
//#include <ctype.h>
+#ifdef LIBXML2_SUPPORT
+#include <libxml/tree.h>
+#endif
#include "osutil.h"
#define _O_RDONLY O_RDONLY
#endif // !_WIN32