From b9b44ce66013e1b517cff46a01fc6b2ec0a194c0 Mon Sep 17 00:00:00 2001 From: Viorel Munteanu Date: Fri, 19 Apr 2024 10:00:02 +0300 Subject: Backport libxml2 patch from 7.0.16 to live Signed-off-by: Viorel Munteanu --- patches/021_virtualbox-7.0.14-libxml2-2.12.patch | 43 ---------------------- patches/021_virtualbox-7.0.16-libxml2-2.12.5.patch | 33 +++++++++++++++++ 2 files changed, 33 insertions(+), 43 deletions(-) delete mode 100644 patches/021_virtualbox-7.0.14-libxml2-2.12.patch create mode 100644 patches/021_virtualbox-7.0.16-libxml2-2.12.5.patch diff --git a/patches/021_virtualbox-7.0.14-libxml2-2.12.patch b/patches/021_virtualbox-7.0.14-libxml2-2.12.patch deleted file mode 100644 index a523bad..0000000 --- a/patches/021_virtualbox-7.0.14-libxml2-2.12.patch +++ /dev/null @@ -1,43 +0,0 @@ -Bug: https://bugs.gentoo.org/922445 - -The change in libxml2 is not backwards compatibe. -A patch like the one in arch does not work with 2.11, so just cast the argument to maintain compatibility with both. - -The upstream change is in include/libxml/xmlerror.h: - - typedef xmlError *xmlErrorPtr; - --typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error); -+typedef void (*xmlStructuredErrorFunc) (void *userData, const xmlError *error); - -See also: https://gitlab.archlinux.org/archlinux/packaging/packages/virtualbox/-/blob/main/019-libxml-2-12.patch?ref_type=heads - ---- a/src/VBox/Runtime/r3/xml.cpp -+++ b/src/VBox/Runtime/r3/xml.cpp -@@ -1870,7 +1870,7 @@ - throw std::bad_alloc(); - /* per-thread so it must be here */ - xmlSetGenericErrorFunc(NULL, xmlParserBaseGenericError); -- xmlSetStructuredErrorFunc(NULL, xmlParserBaseStructuredError); -+ xmlSetStructuredErrorFunc(NULL, (xmlStructuredErrorFunc)xmlParserBaseStructuredError); - } - - XmlParserBase::~XmlParserBase() -@@ -1931,7 +1931,7 @@ - pcszFilename, - NULL, // encoding = auto - options))) -- throw XmlError(xmlCtxtGetLastError(m_ctxt)); -+ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt)); - - doc.refreshInternals(); - } -@@ -2191,7 +2191,7 @@ - pcszFilename, - NULL, // encoding = auto - options))) -- throw XmlError(xmlCtxtGetLastError(m_ctxt)); -+ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt)); - - doc.refreshInternals(); - } diff --git a/patches/021_virtualbox-7.0.16-libxml2-2.12.5.patch b/patches/021_virtualbox-7.0.16-libxml2-2.12.5.patch new file mode 100644 index 0000000..2ef7557 --- /dev/null +++ b/patches/021_virtualbox-7.0.16-libxml2-2.12.5.patch @@ -0,0 +1,33 @@ +Bug: https://bugs.gentoo.org/922445 + +The change in libxml2 is not backwards compatibe. + +The upstream change is in include/libxml/xmlerror.h: + + typedef xmlError *xmlErrorPtr; + +-typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error); ++typedef void (*xmlStructuredErrorFunc) (void *userData, const xmlError *error); + +Upstream fixed it for dev-libs/libxml2-2.12.6, but we need the fix for 2.12.5 as well. + +--- a/src/VBox/Runtime/r3/xml.cpp ++++ b/src/VBox/Runtime/r3/xml.cpp +@@ -1856,7 +1856,7 @@ + va_end(args); + } + +-#if LIBXML_VERSION >= 21206 ++#if LIBXML_VERSION >= 21205 + static void xmlStructuredErrorFunc(void *userData, const xmlError *error) RT_NOTHROW_DEF + { + NOREF(userData); +@@ -1878,7 +1878,7 @@ + throw std::bad_alloc(); + /* per-thread so it must be here */ + xmlSetGenericErrorFunc(NULL, xmlParserBaseGenericError); +-#if LIBXML_VERSION >= 21206 ++#if LIBXML_VERSION >= 21205 + xmlSetStructuredErrorFunc(NULL, xmlStructuredErrorFunc); + #else + xmlSetStructuredErrorFunc(NULL, xmlParserBaseStructuredError); -- cgit v1.2.3-65-gdbad