Patch-Source: https://github.com/metabrainz/libmusicbrainz/commit/4655b571a70d73d41467091f59c518517c956198.patch
--
From 9ba00067a15479a52262a5126bcb6889da5884b7 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Sun, 8 Oct 2023 11:41:30 -0500
Subject: [PATCH 1/2] libxml: include parser.h

libxml2 removed the inclusion of global.h in a few of its include files,
so we can no longer rely on transitive includes.

This applies to functions like xmlParseFile.

Signed-off-by: Christopher Degawa <ccom@randomderp.com>
---
 src/xmlParser.cc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/xmlParser.cc b/src/xmlParser.cc
index e63df55..53dec25 100644
--- a/src/xmlParser.cc
+++ b/src/xmlParser.cc
@@ -30,6 +30,7 @@
 
 #include <cstring>
 #include <libxml/tree.h>
+#include <libxml/parser.h>
 
 XMLResults::XMLResults()
     : line(0),

From 558c9ba0e6d702d5c877f75be98176f57abf1b02 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Sun, 8 Oct 2023 11:42:55 -0500
Subject: [PATCH 2/2] libxml: constify the storage of xmlGetLastError()

libxml2 recently made it a const return.
Since nothing is being modified of it, this should have no real effect
past satisfying the compiler.

Signed-off-by: Christopher Degawa <ccom@randomderp.com>
---
 src/xmlParser.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xmlParser.cc b/src/xmlParser.cc
index 53dec25..fee684c 100644
--- a/src/xmlParser.cc
+++ b/src/xmlParser.cc
@@ -57,7 +57,7 @@ XMLNode *XMLRootNode::parseFile(const std::string &filename, XMLResults* results
 
     doc = xmlParseFile(filename.c_str());
     if ((doc == NULL) && (results != NULL)) {
-        xmlErrorPtr error = xmlGetLastError();
+        const xmlError *error = xmlGetLastError();
         results->message = error->message;
         results->line = error->line;
         results->code = error->code;
@@ -72,7 +72,7 @@ XMLNode *XMLRootNode::parseString(const std::string &xml, XMLResults* results)
 
     doc = xmlParseMemory(xml.c_str(), xml.length());
     if ((doc == NULL) && (results != NULL)) {
-        xmlErrorPtr error = xmlGetLastError();
+        const xmlError *error = xmlGetLastError();
         results->message = error->message;
         results->line = error->line;
         results->code = error->code;
