[packages/crossmingw32-libxml2] - updated to 2.13.1, disable bcrypt for now (too old Win32 API implementation)

qboosh qboosh at pld-linux.org
Wed Jun 19 22:01:44 CEST 2024


commit 7c97fee008eb72f3e6b9bb596ac1641af0792bea
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Wed Jun 19 21:55:41 2024 +0200

    - updated to 2.13.1, disable bcrypt for now (too old Win32 API implementation)

 crossmingw32-libxml2.spec | 15 ++++++++----
 libxml2-mingw32.patch     | 30 ++++++++++++++++++++++++
 libxml2-open.gz.patch     | 58 +++++++++++++++++++++--------------------------
 3 files changed, 67 insertions(+), 36 deletions(-)
---
diff --git a/crossmingw32-libxml2.spec b/crossmingw32-libxml2.spec
index 5314580..c2fb014 100644
--- a/crossmingw32-libxml2.spec
+++ b/crossmingw32-libxml2.spec
@@ -2,15 +2,16 @@
 Summary:	libXML library - cross MinGW32 version
 Summary(pl.UTF-8):	Biblioteka libXML wersja 2 - wersja skrośna dla MinGW32
 Name:		crossmingw32-%{realname}
-Version:	2.12.8
+Version:	2.13.1
 Release:	1
 License:	MIT
 Group:		Development/Libraries
 #Source0:	ftp://xmlsoft.org/libxml2/%{realname}-%{version}.tar.gz
-Source0:	https://download.gnome.org/sources/libxml2/2.12/%{realname}-%{version}.tar.xz
-# Source0-md5:	121a262ac4e4b4110a1104ac33676903
+Source0:	https://download.gnome.org/sources/libxml2/2.13/%{realname}-%{version}.tar.xz
+# Source0-md5:	d76c4742c94adb5d027c718fdeb726c8
 Patch0:		%{realname}-open.gz.patch
 Patch1:		%{realname}-largefile.patch
+Patch2:		%{realname}-mingw32.patch
 URL:		http://xmlsoft.org/
 BuildRequires:	autoconf >= 2.68
 BuildRequires:	automake >= 1:1.16.3
@@ -87,6 +88,7 @@ Biblioteka DLL libxml2 dla Windows.
 %setup -q -n %{realname}-%{version}
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %build
 %{__libtoolize}
@@ -101,7 +103,12 @@ CPPFLAGS="%{rpmcppflags} -DWINVER=0x0501"
 	--host=%{target} \
 	--disable-silent-rules \
 	--enable-static \
-	--without-python
+	--with-http \
+	--with-legacy \
+	--with-lzma \
+	--without-python \
+	--with-tls \
+	--with-zlib
 
 %{__make}
 
diff --git a/libxml2-mingw32.patch b/libxml2-mingw32.patch
new file mode 100644
index 0000000..5bf12af
--- /dev/null
+++ b/libxml2-mingw32.patch
@@ -0,0 +1,30 @@
+--- libxml2-2.13.1/dict.c.orig	2024-06-12 13:17:43.000000000 +0200
++++ libxml2-2.13.1/dict.c	2024-06-19 21:40:34.925985581 +0200
+@@ -927,7 +927,6 @@ xmlDictQLookup(xmlDictPtr dict, const xm
+ #ifdef _WIN32
+   #define WIN32_LEAN_AND_MEAN
+   #include <windows.h>
+-  #include <bcrypt.h>
+ #elif defined(HAVE_GETENTROPY)
+   #ifdef HAVE_UNISTD_H
+     #include <unistd.h>
+@@ -954,7 +953,7 @@ xmlInitRandom(void) {
+     xmlInitMutex(&xmlRngMutex);
+ 
+     {
+-#ifdef _WIN32
++#ifdef TOONEW_WIN32
+         NTSTATUS status;
+ 
+         status = BCryptGenRandom(NULL, (unsigned char *) globalRngState,
+--- libxml2-2.13.1/configure.ac.orig	2024-06-19 12:13:03.000000000 +0200
++++ libxml2-2.13.1/configure.ac	2024-06-19 21:49:19.486477127 +0200
+@@ -1083,7 +1083,7 @@ dnl
+ dnl Crypto libraries
+ dnl
+ case "$host" in
+-    *-*-mingw*)
++    *-*-mingw*64*)
+         CRYPTO_LIBS="-lbcrypt"
+         ;;
+ esac
diff --git a/libxml2-open.gz.patch b/libxml2-open.gz.patch
index 644204b..1d01b0c 100644
--- a/libxml2-open.gz.patch
+++ b/libxml2-open.gz.patch
@@ -1,38 +1,32 @@
---- libxml2-2.10.0/xmlIO.c.orig	2022-08-18 16:29:32.843322082 +0200
-+++ libxml2-2.10.0/xmlIO.c	2022-08-18 16:32:12.985787850 +0200
-@@ -1115,8 +1115,33 @@ xmlGzfileOpen_real (const char *filename
+--- libxml2-2.13.0/xmlIO.c.orig	2024-06-14 12:32:12.257784372 +0200
++++ libxml2-2.13.0/xmlIO.c	2024-06-14 19:23:06.355299914 +0200
+@@ -547,6 +547,29 @@
+     fd = open(filename, flags, 0777);
+ #endif /* WIN32 */
  
-     if (path == NULL)
- 	return(NULL);
--    if (!xmlCheckFilename(path))
--        return(NULL);
-+    if (!xmlCheckFilename(path)) {
-+	/* If we cannot open `foo.xml', we try `foo.xml.gz'. However we i
-+	 * append .gz only if filename doesn't alreay end with .gz. */
-+	if (strlen(path) < 3 || strcmp(path + strlen(path) - 3, ".gz") != 0) {
-+	    char *gz_filename = xmlMalloc(strlen(path) + 4);
++#ifdef LIBXML_ZLIB_ENABLED
++    if (fd < 0 && errno == ENOENT) {
++        /* If we cannot open `foo.xml', we try `foo.xml.gz'. However we i
++         * append .gz only if filename doesn't alreay end with .gz. */
++        if (strlen(filename) < 3 || strcmp(filename + strlen(filename) - 3, ".gz") != 0) {
++            char *gz_filename = xmlMalloc(strlen(filename) + 4);
++            int gz_fd;
 +
-+	    if (gz_filename == NULL) {
-+	        xmlGenericError(xmlGenericErrorContext,
-+			        "xmlGzfileOpen:  %s\n",
-+			        "Failure allocating buffer for filename.");
-+	        return NULL;
-+	    }
++            if (gz_filename != NULL) {
++                strcpy(gz_filename, filename);
++                strcat(gz_filename, ".gz");
++            }
 +
-+	    strcpy(gz_filename, path);
-+	    strcat(gz_filename, ".gz");
++            gz_fd = open(gz_filename, flags, 0777);
 +
-+	    fd = NULL;
++            if (gz_fd >= 0)
++                fd = gz_fd;
 +
-+	    if (xmlCheckFilename(gz_filename))
-+		fd = gzopen(gz_filename, "rb");
-+
-+	    xmlFree(gz_filename);
-+	     
-+	    return((void *) fd);
-+	} else
-+	    return NULL;
++            xmlFree(gz_filename);
++        }
 +    }
- 
- #if defined(_WIN32)
-     fd = xmlWrapGzOpenUtf8(path, "rb");
++
++#endif /* LIBXML_ZLIB_ENABLED */
+     if (fd < 0) {
+         /*
+          * Windows and possibly other platforms return EINVAL
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/crossmingw32-libxml2.git/commitdiff/7c97fee008eb72f3e6b9bb596ac1641af0792bea



More information about the pld-cvs-commit mailing list