aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2012-10-03 13:41:33 +0000
committerKoen Kooi <koen@dominion.thruhere.net>2012-10-04 15:52:54 +0200
commit7fb3b06bacc90a5429fab810258e03607a4add83 (patch)
tree573f6ec5a24290bf6f18cc62baa693de819bb3e8
parent8e26af8d38d7ac96c481320c04395b5e17afab48 (diff)
downloadmeta-openembedded-7fb3b06bacc90a5429fab810258e03607a4add83.tar.gz
libtinyxml: Add recipe for 2.6.2
This imports the recipe for TinyXML from meta-WebOS@e5c99c2cf, does some minor fixes on the recipe and import the patches included in the Debian package. We use PR as r5 to ensure the package is updated when removed from meta-WebOS layer. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-rw-r--r--meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch20
-rw-r--r--meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch62
-rw-r--r--meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb43
3 files changed, 125 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch b/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch
new file mode 100644
index 0000000000..88c962bbe1
--- /dev/null
+++ b/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch
@@ -0,0 +1,20 @@
+Description: TinyXml is built with TIXML_USE_STL, so we have to
+ enforce it when the library is used.
+Author: Felix Geyer <debfx-pkg@fobos.de>
+
+Upstream-Status: Pending
+
+diff -Nur tinyxml-2.5.3/tinyxml.h tinyxml-2.5.3.patch/tinyxml.h
+--- tinyxml-2.5.3/tinyxml.h 2007-05-07 00:41:23.000000000 +0200
++++ tinyxml-2.5.3.patch/tinyxml.h 2009-07-08 22:32:03.000000000 +0200
+@@ -26,6 +26,10 @@
+ #ifndef TINYXML_INCLUDED
+ #define TINYXML_INCLUDED
+
++#ifndef TIXML_USE_STL
++ #define TIXML_USE_STL
++#endif
++
+ #ifdef _MSC_VER
+ #pragma warning( push )
+ #pragma warning( disable : 4530 )
diff --git a/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch b/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch
new file mode 100644
index 0000000000..b801506eae
--- /dev/null
+++ b/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch
@@ -0,0 +1,62 @@
+Description: TinyXML incorrectly encodes text element containing
+ an ampersand followed by either x or #.
+
+Origin: http://sourceforge.net/tracker/index.php?func=detail&aid=3031828&group_id=13559&atid=313559
+
+Upstream-Status: Pending
+
+diff -u -r1.105 tinyxml.cpp
+--- a/tinyxml.cpp
++++ b/tinyxml.cpp
+@@ -57,30 +57,7 @@
+ {
+ unsigned char c = (unsigned char) str[i];
+
+- if ( c == '&'
+- && i < ( (int)str.length() - 2 )
+- && str[i+1] == '#'
+- && str[i+2] == 'x' )
+- {
+- // Hexadecimal character reference.
+- // Pass through unchanged.
+- // &#xA9; -- copyright symbol, for example.
+- //
+- // The -1 is a bug fix from Rob Laveaux. It keeps
+- // an overflow from happening if there is no ';'.
+- // There are actually 2 ways to exit this loop -
+- // while fails (error case) and break (semicolon found).
+- // However, there is no mechanism (currently) for
+- // this function to return an error.
+- while ( i<(int)str.length()-1 )
+- {
+- outString->append( str.c_str() + i, 1 );
+- ++i;
+- if ( str[i] == ';' )
+- break;
+- }
+- }
+- else if ( c == '&' )
++ if ( c == '&' )
+ {
+ outString->append( entity[0].str, entity[0].strLength );
+ ++i;
+diff -u -r1.89 xmltest.cpp
+--- a/xmltest.cpp
++++ b/xmltest.cpp
+@@ -1340,6 +1340,16 @@
+ }*/
+ }
+
++ #ifdef TIXML_USE_STL
++ {
++ TiXmlDocument xml;
++ xml.Parse("<foo>foo&amp;#xa+bar</foo>");
++ std::string str;
++ str << xml;
++ XmlTest( "Entity escaping", "<foo>foo&amp;#xa+bar</foo>", str.c_str() );
++ }
++ #endif
++
+ /* 1417717 experiment
+ {
+ TiXmlDocument xml;
diff --git a/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb b/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
new file mode 100644
index 0000000000..fdadebdfa9
--- /dev/null
+++ b/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
@@ -0,0 +1,43 @@
+# (c) Copyright 2012 Hewlett-Packard Development Company, L.P.
+
+DESCRIPTION = "a simple, small, minimal, C++ XML parser"
+HOMEPAGE = "http://www.sourceforge.net/projects/tinyxml"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://readme.txt;md5=f8f366f3370dda889f60faa7db162cf4"
+SECTION = "libs"
+
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/tinyxml/tinyxml_${@'${PV}'.replace('.', '_')}.tar.gz \
+ file://enforce-use-stl.patch \
+ file://entity-encoding.patch"
+SRC_URI[md5sum] = "c1b864c96804a10526540c664ade67f0"
+SRC_URI[sha256sum] = "15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062645593"
+
+S = "${WORKDIR}/tinyxml"
+
+CXXFLAGS += "-fPIC"
+
+do_compile() {
+ ${CXX} ${CXXFLAGS} -I${S} -c -o ${S}/tinyxml.o ${S}/tinyxml.cpp
+ ${CXX} ${CXXFLAGS} -I${S} -c -o ${S}/tinyxmlerror.o ${S}/tinyxmlerror.cpp
+ ${CXX} ${CXXFLAGS} -I${S} -c -o ${S}/tinyxmlparser.o ${S}/tinyxmlparser.cpp
+ ${CXX} ${CXXFLAGS} \
+ -shared \
+ -Wl,-soname,libtinyxml.so.${PV} \
+ -o ${S}/libtinyxml.so.${PV} \
+ ${LDFLAGS} \
+ ${S}/tinyxml.o \
+ ${S}/tinyxmlparser.o \
+ ${S}/tinyxmlerror.o
+}
+
+do_install() {
+ install -d ${D}${libdir}
+ install -m 0755 ${S}/libtinyxml.so.${PV} ${D}${libdir}
+ ln -sf libtinyxml.so.${PV} ${D}${libdir}/libtinyxml.so
+
+ install -d ${D}${includedir}
+ install -m 0644 ${S}/tinyxml.h ${D}${includedir}
+}
+