Files
haikuports/dev-libs/libxml2/patches/libxml2-2.9.2.patchset
Jessica Hamilton 954a419096 libxml2: fix finding catalog files
The previous patch for 2.8.0 didn't actually work at all, as
HAIKU was not defined. Also moved the nested function to its
own local function, as was running into weird crashes otherwise.
2015-05-30 13:37:17 +12:00

190 lines
5.7 KiB
Plaintext

From 52a5d213a7c464b51c0259f855811ecda990e3c6 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Wed, 1 Jan 2014 22:13:22 +0100
Subject: Port patches from libxml2-2.8.0.
diff --git a/Makefile.am b/Makefile.am
index 70720f3..c617e0d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1225,8 +1225,8 @@ cmake_DATA = libxml2-config.cmake
#
# Install the tests program sources as examples
#
-BASE_DIR=$(datadir)/doc
-DOC_MODULE=libxml2-$(VERSION)
+BASE_DIR=$(docdir)
+DOC_MODULE=
EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples
install-data-local:
diff --git a/configure.ac b/configure.ac
index 14ac0a8..e75dd93 100644
--- a/configure.ac
+++ b/configure.ac
@@ -853,24 +853,19 @@ if test "$with_python" != "no" ; then
fi
if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
then
- if test -r $with_python/include/python$PYTHON_VERSION/Python.h
+ if test -r $with_python/develop/headers/python$PYTHON_VERSION/Python.h
then
- PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+ PYTHON_INCLUDES=$with_python/develop/headers/python$PYTHON_VERSION
else
- if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ if test -r $prefix/develop/headers/python$PYTHON_VERSION/Python.h
then
- PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+ PYTHON_INCLUDES=$prefix/develop/headers/python$PYTHON_VERSION
else
- if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ if test -r /boot/system/develop/headers/python$PYTHON_VERSION/Python.h
then
- PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
- else
- if test -r $with_python/include/Python.h
- then
- PYTHON_INCLUDES=$with_python/include
- else
- echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
- fi
+ PYTHON_INCLUDES=/boot/system/develop/headers/python$PYTHON_VERSION
+ else
+ echo could not find python$PYTHON_VERSION/Python.h or $with_python/develop/headers/Python.h
fi
fi
fi
@@ -881,13 +876,13 @@ if test "$with_python" != "no" ; then
fi
if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
then
- if test -d $libdir/python$PYTHON_VERSION/site-packages
+ if test -d $libdir/python$PYTHON_VERSION/vendor-packages
then
- PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
+ PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/vendor-packages
else
- if test -d $with_python/lib/site-packages
+ if test -d $with_python/lib/vendor-packages
then
- PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
+ PYTHON_SITE_PACKAGES=$with_python/lib/vendor-packages
else
PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
fi
diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
index 95ebead..81222d9 100644
--- a/python/tests/Makefile.am
+++ b/python/tests/Makefile.am
@@ -1,4 +1,4 @@
-exampledir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples
+exampledir = $(docdir)_python-$(LIBXML_VERSION)/examples
dist_example_DATA = $(PYTESTS) $(XMLS)
PYTESTS= \
diff --git a/xml2-config.in b/xml2-config.in
index 1957486..9c98a0e 100644
--- a/xml2-config.in
+++ b/xml2-config.in
@@ -40,8 +40,8 @@ while test $# -gt 0; do
case "$1" in
--prefix=*)
prefix=$optarg
- includedir=$prefix/include
- libdir=$prefix/lib
+ includedir=$prefix/develop/headers
+ libdir=$prefix/develop/lib
;;
--prefix)
@@ -50,7 +50,7 @@ while test $# -gt 0; do
--exec-prefix=*)
exec_prefix=$optarg
- libdir=$exec_prefix/lib
+ libdir=$exec_prefix/develop/lib
;;
--exec-prefix)
--
2.2.2
From e084f0448ce3d80d3800b65477514f1d917dd654 Mon Sep 17 00:00:00 2001
From: Jessica Hamilton <jessica.l.hamilton@gmail.com>
Date: Sat, 30 May 2015 11:38:15 +1200
Subject: Haiku: search for catalogs in directories
diff --git a/catalog.c b/catalog.c
index 5773db3..3f0f611 100644
--- a/catalog.c
+++ b/catalog.c
@@ -32,6 +32,9 @@
#include <stdlib.h>
#endif
#include <string.h>
+#ifdef __HAIKU__
+#include <ftw.h>
+#endif
#include <libxml/xmlmemory.h>
#include <libxml/hash.h>
#include <libxml/uri.h>
@@ -70,10 +73,10 @@
#define XML_URN_PUBID "urn:publicid:"
#define XML_CATAL_BREAK ((xmlChar *) -1)
#ifndef XML_XML_DEFAULT_CATALOG
-#define XML_XML_DEFAULT_CATALOG "file:///etc/xml/catalog"
+#define XML_XML_DEFAULT_CATALOG "/boot/system/data/xml/catalog"
#endif
#ifndef XML_SGML_DEFAULT_CATALOG
-#define XML_SGML_DEFAULT_CATALOG "file:///etc/sgml/catalog"
+#define XML_SGML_DEFAULT_CATALOG "/boot/system/data/sgml/catalog"
#endif
#if defined(_WIN32) && defined(_MSC_VER)
@@ -3074,6 +3077,21 @@ xmlCatalogIsEmpty(xmlCatalogPtr catal) {
* *
************************************************************************/
+#ifdef __HAIKU__
+static xmlCatalogEntryPtr *__haikuNextEntry;
+static int __haikuAddCatalog(const char* subpath, const struct stat* sb, int typeflag)
+{
+ if (typeflag == FTW_F) {
+ *__haikuNextEntry = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
+ NULL, BAD_CAST subpath, xmlCatalogDefaultPrefer, NULL);
+ if (*__haikuNextEntry != NULL)
+ __haikuNextEntry = &((*__haikuNextEntry)->next);
+ }
+
+ return 0;
+}
+#endif
+
/**
* xmlInitializeCatalogData:
*
@@ -3166,10 +3184,16 @@ xmlInitializeCatalog(void) {
cur++;
path = (char *) xmlStrndup((const xmlChar *)paths, cur - paths);
if (path != NULL) {
+#ifdef __HAIKU__
+ __haikuNextEntry = nextent;
+ ftw(path, __haikuAddCatalog, 3);
+ nextent = __haikuNextEntry;
+#else
*nextent = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
NULL, BAD_CAST path, xmlCatalogDefaultPrefer, NULL);
if (*nextent != NULL)
nextent = &((*nextent)->next);
+#endif
xmlFree(path);
}
}
--
2.2.2