Files
MINGW-packages/mingw-w64-libxml2/0031-apply-msvc-relocation.patch
Christoph Reiter 21a31573cc libxml2: Update to 2.15.1 (#26333)
* 0001-do-not-export-DllMain.patch: refresh
* 0027-decoding-segfault.patch: python bindings no longer built
* 0031-apply-msvc-relocation.patch: refresh

Drop Python bindings as there should be no users left. Let us know
if not.
2025-11-11 09:29:53 +01:00

124 lines
4.3 KiB
Diff

--- libxml2-2.13.8/catalog.c.orig 2025-07-03 08:52:27.341264600 +0200
+++ libxml2-2.13.8/catalog.c 2025-07-03 09:11:36.330242700 +0200
@@ -59,6 +59,38 @@
#define XML_SGML_DEFAULT_CATALOG "file://" XML_SYSCONFDIR "/sgml/catalog"
#endif
+#ifdef __MINGW32__
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+static const char* _get_xml_default_catalog(void) {
+ static char reloc_path[MAX_PATH * 2] = {0};
+ static int initialized = 0;
+ if (!initialized) {
+ HMODULE module_handle;
+ char module_path[MAX_PATH];
+ char* last_slash;
+ if (!GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
+ GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
+ (LPCSTR)&_get_xml_default_catalog,
+ &module_handle) ||
+ !GetModuleFileNameA(module_handle, module_path, sizeof(module_path))) {
+ return "file://" XML_SYSCONFDIR "/xml/catalog";
+ }
+ last_slash = strrchr(module_path, '\\');
+ if (last_slash) {
+ *last_slash = '\0';
+ }
+ snprintf(reloc_path, sizeof(reloc_path), "%s\\..\\etc\\xml\\catalog", module_path);
+ initialized = 1;
+ }
+ return reloc_path;
+}
+
+#undef XML_XML_DEFAULT_CATALOG
+#define XML_XML_DEFAULT_CATALOG _get_xml_default_catalog()
+#endif
+
static xmlChar *xmlCatalogNormalizePublic(const xmlChar *pubID);
static int xmlExpandCatalog(xmlCatalogPtr catal, const char *filename);
--- libxml2-2.13.8/xmllint.c.orig 2025-04-17 13:51:37.000000000 +0200
+++ libxml2-2.13.8/xmllint.c 2025-07-03 09:12:52.266746000 +0200
@@ -91,6 +91,38 @@
#define XML_XML_DEFAULT_CATALOG "file://" XML_SYSCONFDIR "/xml/catalog"
#endif
+#ifdef __MINGW32__
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+static const char* _get_xml_default_catalog(void) {
+ static char reloc_path[MAX_PATH * 2] = {0};
+ static int initialized = 0;
+ if (!initialized) {
+ HMODULE module_handle;
+ char module_path[MAX_PATH];
+ char* last_slash;
+ if (!GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
+ GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
+ (LPCSTR)&_get_xml_default_catalog,
+ &module_handle) ||
+ !GetModuleFileNameA(module_handle, module_path, sizeof(module_path))) {
+ return "file://" XML_SYSCONFDIR "/xml/catalog";
+ }
+ last_slash = strrchr(module_path, '\\');
+ if (last_slash) {
+ *last_slash = '\0';
+ }
+ snprintf(reloc_path, sizeof(reloc_path), "%s\\..\\etc\\xml\\catalog", module_path);
+ initialized = 1;
+ }
+ return reloc_path;
+}
+
+#undef XML_XML_DEFAULT_CATALOG
+#define XML_XML_DEFAULT_CATALOG _get_xml_default_catalog()
+#endif
+
#ifndef STDIN_FILENO
#define STDIN_FILENO 0
#endif
--- libxml2-2.13.8/xmlcatalog.c.orig 2025-04-17 13:51:37.000000000 +0200
+++ libxml2-2.13.8/xmlcatalog.c 2025-07-03 09:11:05.140189000 +0200
@@ -42,6 +42,38 @@
#define XML_SGML_DEFAULT_CATALOG XML_SYSCONFDIR "/sgml/catalog"
#endif
+#ifdef __MINGW32__
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+static const char* _get_sgml_default_catalog(void) {
+ static char reloc_path[MAX_PATH * 2] = {0};
+ static int initialized = 0;
+ if (!initialized) {
+ HMODULE module_handle;
+ char module_path[MAX_PATH];
+ char* last_slash;
+ if (!GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
+ GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
+ (LPCSTR)&_get_sgml_default_catalog,
+ &module_handle) ||
+ !GetModuleFileNameA(module_handle, module_path, sizeof(module_path))) {
+ return XML_SYSCONFDIR "/sgml/catalog";
+ }
+ last_slash = strrchr(module_path, '\\');
+ if (last_slash) {
+ *last_slash = '\0';
+ }
+ snprintf(reloc_path, sizeof(reloc_path), "%s\\..\\etc\\sgml\\catalog", module_path);
+ initialized = 1;
+ }
+ return reloc_path;
+}
+
+#undef XML_SGML_DEFAULT_CATALOG
+#define XML_SGML_DEFAULT_CATALOG _get_sgml_default_catalog()
+#endif
+
/************************************************************************
* *
* Shell Interface *