HEX
Server: Apache
System: Windows NT MAGNETO-ARM 10.0 build 22000 (Windows 10) AMD64
User: Michel (0)
PHP: 7.4.7
Disabled: NONE
Upload Files
File: C:/strawberry/licenses/libxslt/libxslt-1.1.33.diff
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/configure.ac libxslt-1.1.33/configure.ac
--- libxslt-1.1.33.original/configure.ac	2019-05-22 01:52:58.226809600 +0200
+++ libxslt-1.1.33/configure.ac	2019-05-22 01:52:56.436713600 +0200
@@ -9,6 +9,7 @@
 AC_CONFIG_SRCDIR([libxslt/xslt.c])
 AC_CONFIG_HEADERS(config.h)
 AC_CANONICAL_HOST
+AC_LIBTOOL_WIN32_DLL
 AC_USE_SYSTEM_EXTENSIONS
 
 dnl
@@ -586,15 +587,17 @@
  WIN32_EXTRA_LDFLAGS="-no-undefined"
  ;;
  *-*-mingw*)
- WIN32_EXTRA_LIBADD="-lwsock32"
+ WIN32_EXTRA_LIBADD="-lws2_32 -lmswsock"
  WIN32_EXTRA_LDFLAGS="-no-undefined"
- AC_DEFINE([_WINSOCKAPI_],1,[Using the Win32 Socket implementation])
- AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around])
- AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around])
+ if test "x${PYTHON}" != "x"
+ then
+   WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd " #-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)
+ fi
  ;;
 esac
 AC_SUBST(WIN32_EXTRA_LIBADD)
 AC_SUBST(WIN32_EXTRA_LDFLAGS)
+AC_SUBST(WIN32_EXTRA_PYTHON_LIBADD)
 
 
 AC_SUBST(XSLTPROCDV)
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/libexslt/crypto.c libxslt-1.1.33/libexslt/crypto.c
--- libxslt-1.1.33.original/libexslt/crypto.c	2019-05-22 01:53:14.525498500 +0200
+++ libxslt-1.1.33/libexslt/crypto.c	2019-05-22 01:52:56.639831000 +0200
@@ -230,8 +230,13 @@
     }
 
     hHash = exsltCryptoCryptoApiCreateHash (ctxt, hCryptProv,
+#ifdef __MINGW32__
+					    CALG_SHA1, (LPVOID) key,
+					    RC4_KEY_LENGTH, (LPVOID) hash,
+#else
 					    CALG_SHA1, key,
 					    RC4_KEY_LENGTH, hash,
+#endif
 					    HASH_DIGEST_LENGTH);
 
     if (!CryptDeriveKey
@@ -281,8 +286,13 @@
     }
 
     hHash = exsltCryptoCryptoApiCreateHash (ctxt, hCryptProv,
+#ifdef __MINGW32__
+					    CALG_SHA1, (LPVOID) key,
+					    RC4_KEY_LENGTH, (LPVOID) hash,
+#else
 					    CALG_SHA1, key,
 					    RC4_KEY_LENGTH, hash,
+#endif
 					    HASH_DIGEST_LENGTH);
 
     if (!CryptDeriveKey
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/libexslt/date.c libxslt-1.1.33/libexslt/date.c
--- libxslt-1.1.33.original/libexslt/date.c	2019-05-22 01:53:14.629631700 +0200
+++ libxslt-1.1.33/libexslt/date.c	2019-05-22 01:52:56.686723100 +0200
@@ -749,6 +749,14 @@
     time_t secs;
     int local_s, gm_s;
     exsltDateValPtr ret;
+#ifdef __MINGW32__
+    gmTm.tm_year = 0;
+    gmTm.tm_mon = 0;
+    gmTm.tm_mday = 0;
+    gmTm.tm_hour = 0;
+    gmTm.tm_min = 0;
+    gmTm.tm_sec = 0;
+#endif
 #ifdef HAVE_ERRNO_H
     char *source_date_epoch;
 #endif /* HAVE_ERRNO_H */
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/libxslt/security.c libxslt-1.1.33/libxslt/security.c
--- libxslt-1.1.33.original/libxslt/security.c	2019-05-22 01:53:19.519802300 +0200
+++ libxslt-1.1.33/libxslt/security.c	2019-05-22 01:52:56.749180200 +0200
@@ -342,8 +342,16 @@
 		}
 	    }
 	    ret = xsltCheckWritePath(sec, ctxt, directory);
-	    if (ret == 1)
+	    if (ret == 1) {
 		ret = mkdir(directory, 0755);
+		if (ret == -1 && errno == EEXIST) {
+		    struct stat buf;
+                    ret = stat(directory, &buf);
+                    if (ret == 0) {
+                        ret = S_ISDIR(buf.st_mode) ? 0 : -1;
+                    }
+		}
+	    }
 	}
 	xmlFree(directory);
 	if (ret < 0)
@@ -387,14 +395,16 @@
 #if defined(_WIN32) && !defined(__CYGWIN__)
     if ((uri->path)&&(uri->path[0]=='/')&&
         (uri->path[1]!='\0')&&(uri->path[2]==':'))
-    ret = xsltCheckWritePath(sec, ctxt, uri->path+1);
+        ret = xsltCheckWritePath(sec, ctxt, uri->path+1);
     else
-#endif
+        ret = xsltCheckWritePath(sec, ctxt, uri->path);
+#else
 
 	/*
 	 * Check if we are allowed to write this file
 	 */
 	ret = xsltCheckWritePath(sec, ctxt, uri->path);
+#endif
 	if (ret <= 0) {
 	    xmlFreeURI(uri);
 	    return(ret);
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/libxslt.m4 libxslt-1.1.33/libxslt.m4
--- libxslt-1.1.33.original/libxslt.m4	2019-05-22 01:53:21.852951400 +0200
+++ libxslt-1.1.33/libxslt.m4	2019-05-22 01:52:55.593024600 +0200
@@ -52,8 +52,10 @@
            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
     if test "x$enable_xslttest" = "xyes" ; then
       ac_save_CFLAGS="$CFLAGS"
+      ac_save_CXXFLAGS="$CXXFLAGS"
       ac_save_LIBS="$LIBS"
       CFLAGS="$CFLAGS $XSLT_CFLAGS"
+      CXXFLAGS="$CXXFLAGS $XSLT_CFLAGS"
       LIBS="$XSLT_LIBS $LIBS"
 dnl
 dnl Now check if the installed libxslt is sufficiently new.
@@ -138,6 +140,7 @@
 }
 ],, no_xslt=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
        CFLAGS="$ac_save_CFLAGS"
+       CXXFLAGS="$ac_save_CXXFLAGS"
        LIBS="$ac_save_LIBS"
      fi
   fi
@@ -158,6 +161,7 @@
        else
           echo "*** Could not run libxslt test program, checking why..."
           CFLAGS="$CFLAGS $XSLT_CFLAGS"
+          CXXFLAGS="$CXXFLAGS $XSLT_CFLAGS"
           LIBS="$LIBS $XSLT_LIBS"
           AC_TRY_LINK([
 #include <libxslt/xslt.h>
@@ -177,6 +181,7 @@
           echo "*** or that you have moved LIBXSLT since it was installed. In the latter case, you"
           echo "*** may want to edit the xslt-config script: $XSLT_CONFIG" ])
           CFLAGS="$ac_save_CFLAGS"
+          CXXFLAGS="$ac_save_CXXFLAGS"
           LIBS="$ac_save_LIBS"
        fi
      fi
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/python/libxslt.c libxslt-1.1.33/python/libxslt.c
--- libxslt-1.1.33.original/python/libxslt.c	2019-05-22 01:53:23.275002600 +0200
+++ libxslt-1.1.33/python/libxslt.c	2019-05-22 01:52:56.483572700 +0200
@@ -23,9 +23,7 @@
 #include <stdio.h>
 #include <stddef.h>
 
-#if (defined(_MSC_VER) || defined(__MINGW32__)) && !defined(vsnprintf)
-#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
-#elif defined(XSLT_NEED_TRIO)
+#if defined(XSLT_NEED_TRIO)
 #include "trio.h"
 #define vsnprintf trio_vsnprintf
 #endif
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/python/libxslt_wrap.h libxslt-1.1.33/python/libxslt_wrap.h
--- libxslt-1.1.33.original/python/libxslt_wrap.h	2019-05-22 01:53:23.383043300 +0200
+++ libxslt-1.1.33/python/libxslt_wrap.h	2019-05-22 01:52:56.296105000 +0200
@@ -17,6 +17,7 @@
 #include <libxslt/transform.h>
 #include <libxslt/variables.h>
 #include <libxslt/xsltconfig.h>
+#include <libxslt/xsltlocale.h>
 
 #define Pystylesheet_Get(v) (((v) == Py_None) ? NULL : \
         (((Pystylesheet_Object *)(v))->obj))
diff -r -u --strip-trailing-cr libxslt-1.1.33.original/python/Makefile.am libxslt-1.1.33/python/Makefile.am
--- libxslt-1.1.33.original/python/Makefile.am	2019-05-22 01:53:23.490887400 +0200
+++ libxslt-1.1.33/python/Makefile.am	2019-05-22 01:52:55.921130500 +0200
@@ -19,7 +19,7 @@
 	libxslt-python-api.xml	\
 	$(DOCS)
 
-libxsltmod_la_LDFLAGS =  $(WIN32_EXTRA_LDFLAGS) -module -avoid-version
+libxsltmod_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -module -avoid-version -shared
 
 if WITH_PYTHON
 mylibs = \
@@ -37,7 +37,7 @@
 	-I../libexslt
 libxsltmod_la_SOURCES = libxslt.c types.c
 nodist_libxsltmod_la_SOURCES = libxslt-py.c
-libxsltmod_la_LIBADD = $(mylibs) $(PYTHON_LIBS)
+libxsltmod_la_LIBADD = $(mylibs) $(PYTHON_LIBS) @WIN32_EXTRA_PYTHON_LIBADD@
 
 libxslt.py: $(srcdir)/libxsl.py libxsltclass.py
 	cat $(srcdir)/libxsl.py libxsltclass.py > $@