commit:     b9b44ce66013e1b517cff46a01fc6b2ec0a194c0
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 19 07:00:02 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Fri Apr 19 07:00:02 2024 +0000
URL:        
https://gitweb.gentoo.org/proj/virtualbox-patches.git/commit/?id=b9b44ce6

Backport libxml2 patch from 7.0.16 to live

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 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(-)

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);

Reply via email to