libxml2: upgrade to version 2.9.1

- from libxml2-configure.patch:
  * drop config.sub Android stuff (obsolete)
  * drop Makefile.in disabling targets for Android (hypothetically obsolete)
  * drop xmlversion.h changes (pointless - configure.js generates it)
  * split out libxml2-freebsd.patch.1
  * split out libxml2-config.patch.1
- drop libxml2-long-path.patch (integrated upstream)
- drop libxml2-gnome599717.patch (obsolete)
- drop libxml2-xpath.patch (obsolete)
- drop libxml2-latin.patch (obsolete)
- drop libxml2-aix.patch:
  presumably don't need special check for V7BETA since it's released now
- drop libxml2-mingw.patch:
  actually appears to patch a MSVC-specific part of the file so is
  obsolete anyway

Change-Id: I87bf8968bd4a554852a2791420a5d0db822beeaa
This commit is contained in:
Michael Stahl
2013-11-11 14:24:13 +01:00
parent a3d8715bff
commit f7197cd244
15 changed files with 92 additions and 366 deletions

View File

@@ -75,7 +75,7 @@ export LCMS2_TARBALL := 861ef15fa0bc018f9ddc932c4ad8b6dd-lcms2-2.4.tar.gz
export LIBEXTTEXTCAT_TARBALL := ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
export LIBLANGTAG_TARBALL := 36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2
export LIBXMLSEC_TARBALL := 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
export LIBXML_TARBALL := 7740a8ec23878a2f50120e1faa2730f2-libxml2-2.7.6.tar.gz
export LIBXML_TARBALL := 9c0cfef285d5c4a5c80d00904ddab380-libxml2-2.9.1.tar.gz
export LIBXSLT_TARBALL := e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz
export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
export MARIADB_TARBALL := 05f84c95b610c21c5fd510d10debcabf-mariadb-native-client-1.0.0.tar.bz2

View File

@@ -25,7 +25,7 @@ $(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.dl
$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
endif
else # OS!=WNT
$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.7.6))
$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.9.1))
endif
endif # DISABLE_DYNLOADING

View File

@@ -12,16 +12,11 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,xml2))
$(eval $(call gb_UnpackedTarball_set_tarball,xml2,$(LIBXML_TARBALL),,libxml2))
$(eval $(call gb_UnpackedTarball_add_patches,xml2,\
external/libxml2/libxml2-configure.patch \
external/libxml2/libxml2-gnome599717.patch \
external/libxml2/libxml2-xpath.patch \
external/libxml2/libxml2-config.patch.1 \
external/libxml2/libxml2-freebsd.patch.1 \
external/libxml2/libxml2-global-symbols.patch \
external/libxml2/libxml2-aix.patch \
external/libxml2/libxml2-vc10.patch \
external/libxml2/libxml2-latin.patch \
$(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \
$(if $(filter WNT,$(OS)),external/libxml2/libxml2-long-path.patch \
$(if $(filter GCC,$(COM)),external/libxml2/libxml2-mingw.patch)) \
))
# vim: set noet sw=4 ts=4:

View File

@@ -1,21 +0,0 @@
--- misc/libxml2-2.7.6/config.guess 2010-09-15 14:53:52.000000000 -0500
+++ misc/build/libxml2-2.7.6/config.guess 2010-09-15 14:56:09.000000000 -0500
@@ -548,7 +548,7 @@
echo rs6000-ibm-aix3.2
fi
exit ;;
- *:AIX:*:[456])
+ *:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
@@ -560,6 +560,9 @@
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
+ if [ "$IBM_REV" == "V7BETA" ]; then
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit ;;
*:AIX:*:*)

View File

@@ -18,7 +18,7 @@
@@ -327,7 +327,7 @@
if (result == 0.0) {
-#if defined(TRIO_COMPILER_SUPPORTS_C99)
+#if defined(TRIO_COMPILER_SUPPORTS_C99) && !(defined(__ANDROID__) && defined(__clang__))
result = nan("");

69
external/libxml2/libxml2-config.patch.1 vendored Normal file
View File

@@ -0,0 +1,69 @@
Hack the xml2-config to return paths into WORKDIR.
--- a/xml2-config.in 2009-12-17 11:45:20.000000000 +0000
+++ b/xml2-config.in 2009-12-17 11:45:36.000000000 +0000
@@ -1,9 +1,14 @@
#! /bin/sh
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-includedir=@includedir@
-libdir=@libdir@
+#prefix=@prefix@
+#exec_prefix=@exec_prefix@
+#includedir=@includedir@
+#libdir=@libdir@
+
+prefix=${WORKDIR}/UnpackedTarball/xml2
+exec_prefix=${WORKDIR}/UnpackedTarball/xml2
+includedir=${WORKDIR}/UnpackedTarball/xml2/include
+libdir=${WORKDIR}/UnpackedTarball/xml2/.libs
usage()
{
@@ -67,7 +72,8 @@
;;
--cflags)
- echo @XML_INCLUDEDIR@ @XML_CFLAGS@
+ echo -I${includedir}
+# echo @XML_INCLUDEDIR@ @XML_CFLAGS@
;;
--libtool-libs)
@@ -82,19 +88,24 @@
;;
--libs)
- if [ "`uname`" = "Linux" ]
- then
- if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
- then
- echo @XML_LIBS@ @MODULE_PLATFORM_LIBS@
- else
- echo @XML_LIBDIR@ @XML_LIBS@ @MODULE_PLATFORM_LIBS@
- fi
- else
- echo @XML_LIBDIR@ @XML_LIBS@ @MODULE_PLATFORM_LIBS@ @WIN32_EXTRA_LIBADD@
- fi
+ echo -L${libdir} -lxml2 -lm
+# if [ "`uname`" = "Linux" ]
+# then
+# if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
+# then
+# echo @XML_LIBS@ @MODULE_PLATFORM_LIBS@
+# else
+# echo @XML_LIBDIR@ @XML_LIBS@ @MODULE_PLATFORM_LIBS@
+# fi
+# else
+# echo @XML_LIBDIR@ @XML_LIBS@ @MODULE_PLATFORM_LIBS@ @WIN32_EXTRA_LIBADD@
+# fi
;;
+ print) # ugly configure hack
+ exit 0
+ ;;
+
*)
usage
exit 1

View File

@@ -1,152 +0,0 @@
--- misc/libxml2-2.7.6/config.sub 2009-06-11 11:29:50.000000000 +0200
+++ misc/build/libxml2-2.7.6/config.sub 2011-09-26 18:05:31.000000000 +0200
@@ -120,7 +120,7 @@
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-android* | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
@@ -1275,7 +1275,7 @@
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -mingw32* | -linux-gnu* | -linux-androideabi* | -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
--- misc/libxml2-2.7.6/Makefile.in
+++ misc/build/libxml2-2.7.6/Makefile.in
@@ -41,9 +41,9 @@
testSAX$(EXEEXT) testHTML$(EXEEXT) testXPath$(EXEEXT) \
testURI$(EXEEXT) testThreads$(EXEEXT) testC14N$(EXEEXT) \
testAutomata$(EXEEXT) testRegexp$(EXEEXT) testReader$(EXEEXT) \
- testapi$(EXEEXT) testModule$(EXEEXT) runtest$(EXEEXT) \
+ testapi$(EXEEXT) testModule$(EXEEXT) \
runsuite$(EXEEXT) testchar$(EXEEXT) testdict$(EXEEXT) \
- runxmlconf$(EXEEXT) testrecurse$(EXEEXT)
+ runxmlconf$(EXEEXT)
bin_PROGRAMS = xmllint$(EXEEXT) xmlcatalog$(EXEEXT)
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
--- misc/libxml2-2.7.6/ltmain.sh 2009-10-06 17:39:54.000000000 +0100
+++ misc/build/libxml2-2.7.6/ltmain.sh 2009-12-17 11:43:56.000000000 +0000
@@ -6271,8 +6271,8 @@
;;
freebsd-elf)
- major=".$current"
- versuffix=".$current"
+ major=.`expr $current - $age`
+ versuffix=".$major.$age.$revision";
;;
irix | nonstopux)
--- misc/libxml2-2.7.6/include/libxml/xmlversion.h 2009-12-17 11:45:19.000000000 +0000
+++ misc/build/libxml2-2.7.6/include/libxml/xmlversion.h 2009-12-17 11:45:36.000000000 +0000
@@ -264,7 +264,7 @@
*
* Whether iconv support is available
*/
-#if 1
+#if 0
#define LIBXML_ICONV_ENABLED
#endif
@@ -282,7 +282,7 @@
*
* Whether Debugging module is configured in
*/
-#if 1
+#if 0
#define LIBXML_DEBUG_ENABLED
#endif
@@ -291,7 +291,7 @@
*
* Whether the memory debugging is configured in
*/
-#if 1
+#if 0
#define DEBUG_MEMORY_LOCATION
#endif
@@ -300,7 +300,7 @@
*
* Whether the runtime debugging is configured in
*/
-#if 1
+#if 0
#define LIBXML_DEBUG_RUNTIME
#endif
--- misc/libxml2-2.7.6/xml2-config.in 2009-12-17 11:45:20.000000000 +0000
+++ misc/build/libxml2-2.7.6/xml2-config.in 2009-12-17 11:45:36.000000000 +0000
@@ -1,9 +1,14 @@
#! /bin/sh
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-includedir=@includedir@
-libdir=@libdir@
+#prefix=@prefix@
+#exec_prefix=@exec_prefix@
+#includedir=@includedir@
+#libdir=@libdir@
+
+prefix=${WORKDIR}/UnpackedTarball/xml2
+exec_prefix=${WORKDIR}/UnpackedTarball/xml2
+includedir=${WORKDIR}/UnpackedTarball/xml2/include
+libdir=${WORKDIR}/UnpackedTarball/xml2/.libs
usage()
{
@@ -67,7 +72,8 @@
;;
--cflags)
- echo @XML_INCLUDEDIR@ @XML_CFLAGS@
+ echo -I${includedir}
+# echo @XML_INCLUDEDIR@ @XML_CFLAGS@
;;
--libtool-libs)
@@ -82,19 +88,24 @@
;;
--libs)
- if [ "`uname`" = "Linux" ]
- then
- if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
- then
- echo @XML_LIBS@
- else
- echo @XML_LIBDIR@ @XML_LIBS@
- fi
- else
- echo @XML_LIBDIR@ @XML_LIBS@ @WIN32_EXTRA_LIBADD@
- fi
+ echo -L${libdir} -lxml2 -lm
+# if [ "`uname`" = "Linux" ]
+# then
+# if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
+# then
+# echo @XML_LIBS@
+# else
+# echo @XML_LIBDIR@ @XML_LIBS@
+# fi
+# else
+# echo @XML_LIBDIR@ @XML_LIBS@ @WIN32_EXTRA_LIBADD@
+# fi
;;
+ print) # ugly configure hack
+ exit 0
+ ;;
+
*)
usage
exit 1

View File

@@ -0,0 +1,15 @@
Usual patch to produce Linux-like .so files on FreeBSD
--- a/ltmain.sh 2009-10-06 17:39:54.000000000 +0100
+++ b/ltmain.sh 2009-12-17 11:43:56.000000000 +0000
@@ -6271,8 +6271,8 @@
;;
freebsd-elf)
- major=".$current"
- versuffix=".$current"
+ major=.`expr $current - $age`
+ versuffix=".$major.$age.$revision";
;;
irix | nonstopux)

View File

@@ -14,8 +14,8 @@
LIBXML2_2.6.32 {
@@ -2231,3 +2231,43 @@
xmlXIncludeProcessTreeFlagsData;
} LIBXML2_2.7.3;
xmlXPathSetContextNode;
} LIBXML2_2.9.0;
+# HACK: export global variable accessor functions (globals.h)
+LIBXML2_GLOBAL_VARIABLES {

View File

@@ -1,20 +0,0 @@
--- misc/libxml2-2.7.6/relaxng.c 2009-12-17 11:53:12.000000000 +0000
+++ misc/build/libxml2-2.7.6/relaxng.c 2009-12-17 16:30:43.000000000 +0000
@@ -5369,7 +5369,7 @@
} else {
xmlRngPErr(ctxt, node, XML_RNGP_CHOICE_CONTENT,
"expecting name, anyName, nsName or choice : got %s\n",
- (node == NULL ? "nothing" : node->name), NULL);
+ (node == NULL ? BAD_CAST "nothing" : node->name), NULL);
return (NULL);
}
if (ret != def) {
@@ -9459,7 +9459,7 @@
ctxt->states = NULL;
if (found == 0) {
if (cur == NULL) {
- VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, "noname");
+ VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, BAD_CAST "noname");
} else {
VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, cur->name);
}

View File

@@ -1,32 +0,0 @@
--- misc/libxml2-2.7.6//runtest.c 2011-08-29 02:41:07.876872800 +0900
+++ misc/build/libxml2-2.7.6/runtest.c 2011-08-29 02:47:09.068970800 +0900
@@ -2728,7 +2728,7 @@
"file:///path/to/a%20b.html",
"/path/to/a b.html",
"/path/to/a%20b.html",
- "urip://example.com/r<>sum<75>.html",
+ "urip://example.com/r" "\xe9" "sum" "\xe9" ".html",
"urip://example.com/test?a=1&b=2%263&c=4#foo",
NULL
};
--- misc/libxml2-2.7.6//testapi.c 2011-08-29 02:41:28.088620300 +0900
+++ misc/build/libxml2-2.7.6/testapi.c 2011-08-29 02:46:32.966174100 +0900
@@ -291,7 +291,7 @@
static xmlChar gen_xmlChar(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 0) return('a');
if (no == 1) return(' ');
- if (no == 2) return((xmlChar) '<27>');
+ if (no == 2) return((xmlChar) '\xf8');
return(0);
}
@@ -399,7 +399,7 @@
static xmlChar *gen_const_xmlChar_ptr(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 0) return((xmlChar *) "foo");
if (no == 1) return((xmlChar *) "<foo/>");
- if (no == 2) return((xmlChar *) "n<>ne");
+ if (no == 2) return((xmlChar *) "n" "\xf8" "ne");
if (no == 3) return((xmlChar *) " 2ab ");
return(NULL);
}

View File

@@ -1,34 +0,0 @@
--- misc/libxml2-2.7.6/uri.c 2009-10-02 17:28:55.000000000 +0200
+++ misc/build/libxml2-2.7.6/uri.c 2011-02-24 13:47:19.349299000 +0100
@@ -2479,7 +2479,16 @@
if (path == NULL)
return(NULL);
- /* sanitize filename starting with // so it can be used as URI */
+#if defined(_WIN32)
+ //We must not change the backslashes to slashes if the path starts with
+ // \\?\
+ //Those paths can be up to 32k characters long.
+ len = xmlStrlen(path);
+ if ((len > 3) && (path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && (path[3] == '\\') )
+ return xmlStrdup((const xmlChar *) path);
+#endif
+
+ /* sanitize filename starting with // so it can be used as URI */
if ((path[0] == '/') && (path[1] == '/') && (path[2] != '/'))
path++;
--- misc/libxml2-2.7.6/xmlIO.c 2009-09-24 17:32:00.000000000 +0200
+++ misc/build/libxml2-2.7.6/xmlIO.c 2011-02-24 13:47:26.163762000 +0100
@@ -772,6 +772,11 @@
#ifdef HAVE_STAT
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ //On Windows stat and wstat do not work with long pathname,
+ //which start with '\\?\'
+ if ((xmlStrlen(path) > 3) && (path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && (path[3] == '\\') )
+ return 1;
+
if (xmlWrapStat(path, &stat_buffer) == -1)
return 0;
#else

View File

@@ -1,11 +0,0 @@
--- misc/build/libxml2-2.7.6/include/libxml/xmlexports.h.orig 2011-08-23 10:26:54.000000000 +0200
+++ misc/build/libxml2-2.7.6/include/libxml/xmlexports.h 2011-08-23 10:27:21.000000000 +0200
@@ -56,7 +56,7 @@
#undef XMLPUBVAR
#undef XMLCALL
#undef XMLCDECL
- #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
+ #if 0
#define XMLPUBFUN __declspec(dllexport)
#define XMLPUBVAR __declspec(dllexport)
#else

View File

@@ -1,23 +1,10 @@
--- build/libxml2-2.7.6/win32/Makefile.msvc.old 2010-09-20 20:22:41.500000000 +0200
+++ build/libxml2-2.7.6/win32/Makefile.msvc 2010-09-20 20:23:00.250000000 +0200
@@ -59,6 +59,7 @@
CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H"
CFLAGS = $(CFLAGS) /D "HAVE_LZMA_H"
!endif
CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
+CFLAGS = $(CFLAGS) $(SOLARINC)
# The linker and its options.
LD = link.exe
@@ -91,8 +91,12 @@
LDFLAGS = $(LDFLAGS) /DEBUG
!else
CFLAGS = $(CFLAGS) /D "NDEBUG" /O2
+!if "$(_NMAKE_VER)" >= "10.00.30319.01"
+LDFLAGS = $(LDFLAGS)
+!else
LDFLAGS = $(LDFLAGS) /OPT:NOWIN98
!endif
+!endif
# Libxml object files.
XML_OBJS = $(XML_INTDIR)\c14n.obj\

View File

@@ -1,70 +0,0 @@
--- misc/libxml2-2.7.6/xpath.c 2009-09-24 17:32:00.000000000 +0200
+++ misc/build/libxml2-2.7.6/xpath.c 2011-01-03 17:21:08.788256100 +0100
@@ -8106,9 +8106,17 @@
xmlNodePtr
xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
- if (cur != NULL && cur->children != NULL)
- return cur->children ;
- if (cur == NULL) cur = ctxt->context->node;
+ if ((cur != NULL) && (cur->type != XML_ATTRIBUTE_NODE) &&
+ (cur->type != XML_NAMESPACE_DECL) && (cur->children != NULL))
+ return(cur->children);
+
+ if (cur == NULL) {
+ cur = ctxt->context->node;
+ if (cur->type == XML_NAMESPACE_DECL)
+ return(NULL);
+ if (cur->type == XML_ATTRIBUTE_NODE)
+ cur = cur->parent;
+ }
if (cur == NULL) return(NULL) ; /* ERROR */
if (cur->next != NULL) return(cur->next) ;
do {
@@ -8162,8 +8170,13 @@
xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt, xmlNodePtr cur)
{
if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
- if (cur == NULL)
+ if (cur == NULL) {
cur = ctxt->context->node;
+ if (cur->type == XML_NAMESPACE_DECL)
+ return(NULL);
+ if (cur->type == XML_ATTRIBUTE_NODE)
+ return(cur->parent);
+ }
if (cur == NULL)
return (NULL);
if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE))
@@ -8207,8 +8220,8 @@
cur = ctxt->context->node;
if (cur == NULL)
return (NULL);
- if (cur->type == XML_NAMESPACE_DECL)
- cur = (xmlNodePtr)((xmlNsPtr)cur)->next;
+ if (cur->type == XML_NAMESPACE_DECL)
+ return (NULL);
ctxt->ancestor = cur->parent;
}
if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE))
@@ -11737,11 +11750,16 @@
if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) {
xmlXPathObjectPtr tmp;
- /* pop the result */
+ /* pop the result if any */
tmp = valuePop(ctxt);
- xmlXPathReleaseObject(xpctxt, tmp);
- /* then pop off contextObj, which will be freed later */
- valuePop(ctxt);
+ if (tmp != contextObj) {
+ /*
+ * Free up the result
+ * then pop off contextObj, which will be freed later
+ */
+ xmlXPathReleaseObject(xpctxt, tmp);
+ valuePop(ctxt);
+ }
goto evaluation_error;
}