diff --git a/dev-libs/libxml2/libxml2-2.9.0.recipe b/dev-libs/libxml2/libxml2-2.9.0.recipe deleted file mode 100644 index bd26c3d12..000000000 --- a/dev-libs/libxml2/libxml2-2.9.0.recipe +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION="libxml2 - Version 2 of the library to manipulate XML files" -HOMEPAGE="http://www.xmlsoft.org/" -SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz" -CHECKSUM_MD5="5b9bebf4f5d2200ae2c4efe8fa6103f7" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd libxml2-2.9.0 - libtoolize --force --copy --install - aclocal - autoconf - sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' M* - automake - COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --datarootdir=$COMMON_DOCS \ - --docdir=$COMMON_DOCS/doc \ - --mandir=$COMMON_DOCS/man \ - --with-threads=yes - LDFLAGS="-lnetwork" - make -} - -INSTALL() -{ - cd libxml2-2.9.0 - make install -} - -TEST() -{ - cd libxml2-2.9.0 - make tests -} - -LICENSE="MIT" -COPYRIGHT="1998-2003 Daniel Veillard. All Rights Reserved." diff --git a/dev-libs/libxml2/libxml2-2.9.1.recipe b/dev-libs/libxml2/libxml2-2.9.1.recipe new file mode 100644 index 000000000..f987d36fd --- /dev/null +++ b/dev-libs/libxml2/libxml2-2.9.1.recipe @@ -0,0 +1,225 @@ +SUMMARY="The XML C parser and toolkit of Gnome" +HOMEPAGE="http://www.xmlsoft.org/" +LICENSE="MIT" +COPYRIGHT="1998-2013 Daniel Veillard. All Rights Reserved." +SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz" +CHECKSUM_MD5="9c0cfef285d5c4a5c80d00904ddab380" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="libxml2-2.9.1.patchset" + +# build the python module only for the primary architecture +pythonModuleEnabled=false +if [ -z "$secondaryArchSuffix" ]; then + pythonModuleEnabled=true +fi + +PROVIDES=" + libxml2$secondaryArchSuffix = $portVersion compat >= 2 + lib:libxml2$secondaryArchSuffix = $portVersion compat >= 2 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:xmlcatalog = $portVersion compat >= 2 + cmd:xmllint = $portVersion compat >= 2 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + " +if $pythonModuleEnabled; then + BUILD_REQUIRES="$BUILD_REQUIRES + python + " + # Note: We don't use "cmd:python" here to avoid issues with the + # python search path. +fi + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + lib:libicudata$secondaryArchSuffix + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:sed + " + +PATCH() +{ + # replace hard-coded references to the development documentation dir + sed -i "s,^DEVHELP_DIR=\(.*\),DEVHELP_DIR=${developDocDir}," \ + doc/devhelp/Makefile.am + sed -i "s,%{_datadir}/gtk-doc/html/libxml2,${developDocDir},g" \ + libxml.spec.in +} + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + + withPython= + if $pythonModuleEnabled; then + # We symlink python's directories into our packaging directory and tell + # configure that it can find python there. This way the correct + # installation directory for the python module is determined. + pythonDir="$portPackageLinksDir/python" + ln -s $pythonDir/bin $pythonDir/develop $pythonDir/lib $prefix + withPython="--with-python=$prefix" + fi + + systemDataDir=`finddir B_SYSTEM_DATA_DIRECTORY` + runConfigure ./configure LDFLAGS="-lnetwork" \ + --with-html-dir=$docDir/html \ + --with-html-subdir="" \ + $withPython \ + CFLAGS='-DXML_XML_DEFAULT_CATALOG=\"file://$systemDataDir/xml/catalog\"' + make $jobArgs +} + +INSTALL() +{ + if $pythonModuleEnabled; then + # Unfortunately we can't just remove the in symlinks we created in + # BUILD() and install normally, since then make detects that the + # Python.h is missing and tries to rebuild the module. So we leave + # things as is and use DESTDIR to install the everything in a subdir. + # Then we remove the symlinks and move everything where it belongs. + make DESTDIR=$prefix install + rm -f $prefix/bin $prefix/develop $prefix/lib + mv $prefix/$prefix/* $prefix + rm -r $prefix/packages + else + make install + fi + + # prepare develop/lib + prepareInstalledDevelLibs libxml2 + fixPkgconfig + mv $libDir/xml2Conf.sh $developLibDir/ + fixDevelopLibDirReferences $developLibDir/xml2Conf.sh $binDir/xml2-config + + # python package + if $pythonModuleEnabled; then + packageEntries python \ + $libDir/python* \ + ${docDir}_python* + fi + + # devel package + packageEntries devel \ + $binDir/xml2-config \ + $dataDir \ + $developDir \ + $docDir \ + $manDir/man1/xml2-config.1 \ + $manDir/man3 + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + else + # left-over since all contents has been moved to other packages + rmdir $(dirname $docDir) + fi +} + +TEST() +{ + make tests +} + +# ----- devel package --------------------------------------------------------- + +PROVIDES_devel=" + libxml2${secondaryArchSuffix}_devel = $portVersion + cmd:xml2_config$secondaryArchSuffix = $portVersion compat >= 2 + devel:libxml2$secondaryArchSuffix = $portVersion compat >= 2 + " +REQUIRES_devel=" + libxml2$secondaryArchSuffix == $portVersion base + " + +# ----- python package ------------------------------------------------------- + +if $pythonModuleEnabled; then + SUMMARY_python="The python module for libxml2" + PROVIDES_python=" + libxml2_python = $portVersion + " + REQUIRES_python=" + libxml2 == $portVersion base + cmd:python + " +fi + +# ----- DESCRIPTION ----------------------------------------------------------- + +DESCRIPTION=" + Libxml2 is the XML C parser and toolkit developed for the Gnome project + (but usable outside of the Gnome platform), it is free software available + under the MIT License. XML itself is a metalanguage to design markup + languages, i.e. text language where semantic and structure are added to + the content using extra "markup" information enclosed between angle + brackets. HTML is the most well-known markup language. Though the library + is written in C a variety of language bindings make it available in other + environments. + + Libxml2 implements a number of existing standards related to markup + languages: + + - the XML standard: http://www.w3.org/TR/REC-xml + - Namespaces in XML: http://www.w3.org/TR/REC-xml-names/ + - XML Base: http://www.w3.org/TR/xmlbase/ + - RFC 2396 : Uniform Resource Identifiers + - XML Path Language (XPath) 1.0: http://www.w3.org/TR/xpath + - HTML4 parser: http://www.w3.org/TR/html401/ + - XML Pointer Language (XPointer) Version 1.0: http://www.w3.org/TR/xptr + - XML Inclusions (XInclude) Version 1.0: http://www.w3.org/TR/xinclude/ + - ISO-8859-x encodings, as well as rfc2044 [UTF-8] and rfc2781 [UTF-16] + Unicode encodings, and more if using iconv support part of SGML Open + Technical Resolution TR9401:1997 + - XML Catalogs Working Draft 06 August 2001: + http://www.oasis-open.org/committees/entity/spec-2001-08-06.html + - Canonical XML Version 1.0: + http://www.w3.org/TR/xml-c14n and the Exclusive XML Canonicalization + CR draft http://www.w3.org/TR/xml-exc-c14n + - Relax NG, ISO/IEC 19757-2:2003, + http://www.oasis-open.org/committees/relax-ng/spec-20011203.html + - W3C XML Schemas Part 2: Datatypes REC 02 May 2001 + - W3C xml:id Working Draft 7 April 2004 + + In most cases libxml2 tries to implement the specifications in a + relatively strictly compliant way. As of release 2.4.16, libxml2 passed + all 1800+ tests from the OASIS XML Tests Suite. + + To some extent libxml2 provides support for the following additional + specifications but doesn't claim to implement them completely: + + - Document Object Model (DOM) http://www.w3.org/TR/DOM-Level-2-Core/ + the document model, but it doesn't implement the API itself, gdome2 + does this on top of libxml2 + - RFC 959 : libxml2 implements a basic FTP client code + - RFC 1945 : HTTP/1.0, again a basic HTTP client code + - SAX: a SAX2 like interface and a minimal SAX1 implementation compatible + with early expat versions + + A partial implementation of XML Schemas Part 1: Structure is being worked + on but it would be far too early to make any conformance statement about + it at the moment. + " diff --git a/dev-libs/libxml2/patches/libxml2-2.9.0.patch b/dev-libs/libxml2/patches/libxml2-2.9.0.patch deleted file mode 100644 index b5ca0e802..000000000 --- a/dev-libs/libxml2/patches/libxml2-2.9.0.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- libxml2-2.9.0-orig/threads.c 2012-09-11 03:52:46.000000000 +0000 -+++ libxml2-2.9.0/threads.c 2013-02-12 20:44:23.000000000 +0000 -@@ -146,6 +146,7 @@ - static pthread_key_t globalkey; - static pthread_t mainthread; - static pthread_once_t once_control = PTHREAD_ONCE_INIT; -+static pthread_once_t once_control_init = PTHREAD_ONCE_INIT; - static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; - #elif defined HAVE_WIN32_THREADS - #if defined(HAVE_COMPILER_TLS) -@@ -915,7 +916,7 @@ - #ifdef HAVE_PTHREAD_H - if ((libxml_is_threaded) && (pthread_key_delete != NULL)) - pthread_key_delete(globalkey); -- once_control = PTHREAD_ONCE_INIT; -+ once_control = once_control_init; - #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) - if (globalkey != TLS_OUT_OF_INDEXES) { - xmlGlobalStateCleanupHelperParams *p; ---- libxml2-2.9.0-orig/configure.in 2012-09-11 03:52:46.053739520 +0000 -+++ libxml2-2.9.0/configure.in 2013-02-12 20:37:19.000000000 +0000 -@@ -988,6 +988,11 @@ - *beos*) WITH_THREADS="1" - THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS" - ;; -+ *haiku*) WITH_THREADS="1" -+ THREAD_LIB="" -+ AC_DEFINE([HAVE_PTHREAD_H], [], [Define if is there]) -+ ;; -+ - *linux*) - if test "${GCC}" = "yes" ; then - GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'` diff --git a/dev-libs/libxml2/patches/libxml2-2.9.1.patchset b/dev-libs/libxml2/patches/libxml2-2.9.1.patchset new file mode 100644 index 000000000..f40db0af2 --- /dev/null +++ b/dev-libs/libxml2/patches/libxml2-2.9.1.patchset @@ -0,0 +1,126 @@ +From 52a5d213a7c464b51c0259f855811ecda990e3c6 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +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 a4a9f87..40c06ee 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1221,8 +1221,8 @@ pkgconfig_DATA = libxml-2.0.pc + # + # 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.in b/configure.in +index d449b11..8db6662 100644 +--- a/configure.in ++++ b/configure.in +@@ -784,23 +784,23 @@ 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 /usr/develop/headers/python$PYTHON_VERSION/Python.h + then +- PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION ++ PYTHON_INCLUDES=/usr/develop/headers/python$PYTHON_VERSION + else +- if test -r $with_python/include/Python.h ++ if test -r $with_python/develop/headers/Python.h + then +- PYTHON_INCLUDES=$with_python/include ++ PYTHON_INCLUDES=$with_python/develop/headers + else +- echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h ++ echo could not find python$PYTHON_VERSION/Python.h or $with_python/develop/headers/Python.h + fi + fi + fi +@@ -808,13 +808,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/Makefile.am b/python/Makefile.am +index 34aed96..4695a16 100644 +--- a/python/Makefile.am ++++ b/python/Makefile.am +@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS = 1.4 foreign + + SUBDIRS = . tests + +-docsdir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION) ++docsdir = $(docsdir)_python-$(LIBXML_VERSION) + dist_docs_DATA = TODO + + EXTRA_DIST = \ +diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am +index 95ebead..64d9a4e 100644 +--- a/python/tests/Makefile.am ++++ b/python/tests/Makefile.am +@@ -1,4 +1,4 @@ +-exampledir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples ++exampledir = $(dodir)_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) +-- +1.8.3.4 +