diff --git a/backport-loader-dont-use-libxml2-deprecated-API.patch b/backport-loader-dont-use-libxml2-deprecated-API.patch new file mode 100644 index 0000000000000000000000000000000000000000..a466d5c97539f425bc07f309dc502df15cc77fad --- /dev/null +++ b/backport-loader-dont-use-libxml2-deprecated-API.patch @@ -0,0 +1,64 @@ +From 4491dc18abc832965d152a24845d1059397e2212 Mon Sep 17 00:00:00 2001 +From: Roman Bogorodskiy +Date: Thu, 10 Apr 2025 13:54:02 +0200 +Subject: [PATCH] loader: don't use libxml2 deprecated APIs + +Address the following items: + + - Deprecated direct access to buf's content + - Mismatching error function signature + - Deprecated direct access to ctxt's lastError + +Signed-off-by: Roman Bogorodskiy +--- + osinfo/osinfo_loader.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c +index 0a9004af..001fdbe7 100644 +--- a/osinfo/osinfo_loader.c ++++ b/osinfo/osinfo_loader.c +@@ -354,7 +354,7 @@ osinfo_loader_doc(const char *xpath, + xmlXPathFreeObject(obj); + OSINFO_LOADER_SET_ERROR(err, "Cannot format stylesheet"); + } +- ret = g_strdup((char *)buf->content); ++ ret = g_strdup((char *)xmlBufferContent(buf)); + + xmlBufferFree(buf); + xmlXPathFreeObject(obj); +@@ -1902,7 +1902,7 @@ static void osinfo_loader_root(OsinfoLoader *loader, + } + + static void +-catchXMLError(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...) ++catchXMLError(void *ctx, const char *msg, ...) + { + xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; + +@@ -1910,15 +1910,16 @@ catchXMLError(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...) + GError **err = ctxt->_private; + if (!error_is_set(err)) { + gchar *xmlmsg; +- if (ctxt->lastError.file) { ++ const xmlError *xmlErr = xmlCtxtGetLastError(ctx); ++ if (xmlErr->file) { + xmlmsg = g_strdup_printf("%s:%d: %s", +- ctxt->lastError.file, +- ctxt->lastError.line, +- ctxt->lastError.message); ++ xmlErr->file, ++ xmlErr->line, ++ xmlErr->message); + } else { + xmlmsg = g_strdup_printf("at line %d: %s", +- ctxt->lastError.line, +- ctxt->lastError.message); ++ xmlErr->line, ++ xmlErr->message); + } + OSINFO_LOADER_SET_ERROR(ctxt->_private, xmlmsg); + g_free(xmlmsg); +-- +GitLab + diff --git a/libosinfo.spec b/libosinfo.spec index 9308fa9858c1d8e6c79400cf7a581409dce6b293..1fb37e85d4a0ecd680415a8d1656fa6260c1edf8 100644 --- a/libosinfo.spec +++ b/libosinfo.spec @@ -1,10 +1,11 @@ Name: libosinfo Version: 1.12.0 -Release: 2 +Release: 3 Summary: A library for managing OS information for virtualization License: GPL-2.0-or-later AND LGPL-2.1-or-later URL: https://libosinfo.org/ Source: https://releases.pagure.org/%{name}/%{name}-%{version}.tar.xz +Patch0: backport-loader-dont-use-libxml2-deprecated-API.patch BuildRequires: meson >= 0.49.0 BuildRequires: pkgconfig(gio-2.0) >= 2.44 @@ -83,6 +84,9 @@ sed -i -e 's/zh_Hans/zh_CN/g' po/LINGUAS %{_mandir}/man1/osinfo-install-script.1* %changelog +* Sun Apr 13 2025 Funda Wang - 1.12.0-3 +- loader: don't use libxml2 deprecated APIs (upstream #58) + * Mon Nov 11 2024 Funda Wang - 1.12.0-2 - add buildrequires for gettext