From bb45df5694fe3549d3edbcf370e5ee23c9dfdf70 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Sat, 22 Nov 2014 20:26:35 +0000 Subject: [PATCH] libxml2: add recipe for version 2.9.2 --- dev-libs/libxml2/libxml2-2.9.2.recipe | 180 ++++++++++++++++++ .../libxml2/patches/libxml2-2.9.2.patchset | 113 +++++++++++ 2 files changed, 293 insertions(+) create mode 100644 dev-libs/libxml2/libxml2-2.9.2.recipe create mode 100644 dev-libs/libxml2/patches/libxml2-2.9.2.patchset diff --git a/dev-libs/libxml2/libxml2-2.9.2.recipe b/dev-libs/libxml2/libxml2-2.9.2.recipe new file mode 100644 index 000000000..b9239ee23 --- /dev/null +++ b/dev-libs/libxml2/libxml2-2.9.2.recipe @@ -0,0 +1,180 @@ +SUMMARY="The XML C parser and toolkit of Gnome" +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. +" +HOMEPAGE="http://www.xmlsoft.org/" +LICENSE="MIT" +COPYRIGHT="1998-2013 Daniel Veillard. All Rights Reserved." +SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-$portVersion.tar.gz" +CHECKSUM_SHA256="5178c30b151d044aefb1b08bf54c3003a0ac55c59c866763997529d60770d5bc" +REVISION="1" +ARCHITECTURES="!x86_gcc2 !x86 x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 !x86" + +PATCHES="libxml2-$portVersion.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 >= 2.7 + " + # 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 + cmd:pkg_config$secondaryArchSuffix + " + +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 + + runConfigure ./configure LDFLAGS="-lnetwork" \ + --with-html-dir=$docDir/html \ + --with-html-subdir="" \ + $withPython + 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 + devel:libz$secondaryArchSuffix + " + +# ----- 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 + diff --git a/dev-libs/libxml2/patches/libxml2-2.9.2.patchset b/dev-libs/libxml2/patches/libxml2-2.9.2.patchset new file mode 100644 index 000000000..e75ad8dfe --- /dev/null +++ b/dev-libs/libxml2/patches/libxml2-2.9.2.patchset @@ -0,0 +1,113 @@ +From 568b086913f12cf60bf6b2f0e76758d0956fa34f 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 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..33d9f8d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -853,23 +853,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 +@@ -881,13 +881,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) +-- +1.8.3.4 +