tinyxml: upgraded package to upstream

Upgraded dev-libs/tinyxml to version 2.6.2-r2 on amd64

tinyxml is included by our touch project library, which will be
compiled on host only.

reference CL: CL:*240776

BUG=None
TEST=emerge dev-libs/tinyxml on host.
Manual test to compile the library inside the directory
~/trunk/src/platform/experimental-touch-fw/modules/centroiding using
tinyxml.

Change-Id: I482cbcba63c5ebbd5ff55ab9f4058b7d45eba8cc
Reviewed-on: https://chromium-review.googlesource.com/319700
Commit-Ready: Tai-Hsu Lin <sheckylin@chromium.org>
Tested-by: Tai-Hsu Lin <sheckylin@chromium.org>
Reviewed-by: Tai-Hsu Lin <sheckylin@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/dev-libs/tinyxml/Manifest b/dev-libs/tinyxml/Manifest
new file mode 100644
index 0000000..ce9b438
--- /dev/null
+++ b/dev-libs/tinyxml/Manifest
@@ -0,0 +1 @@
+DIST tinyxml_2_6_2.tar.gz 210124 SHA256 15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062645593 SHA512 133b5db06131a90ad0c2b39b0063f1c8e65e67288a7e5d67e1f7d9ba32af10dc5dfa0462f9723985ee27debe8f09a10a25d4b5a5aaff2ede979b1cebe8e59d56 WHIRLPOOL 6367930385d55a205e5a4a8034c7f62df2bdb33506fc184d73eeb86e3e78c61f802de255176e4b20e9070201fa495e96b37b2fc4d3f0ada24c399b15374542ea
diff --git a/dev-libs/tinyxml/files/Makefile-3 b/dev-libs/tinyxml/files/Makefile-3
new file mode 100644
index 0000000..40ad4fe
--- /dev/null
+++ b/dev-libs/tinyxml/files/Makefile-3
@@ -0,0 +1,44 @@
+AR ?= ar
+CXX ?= g++
+CXXFLAGS += -Wall
+RANLIB ?= ranlib
+LIBDIR ?= /usr/lib
+
+name = libtinyxml
+major = @MAJOR_V@
+minor = @MINOR_V@
+version = $(major).$(minor)
+
+src = tinyxml.cpp tinyxmlparser.cpp tinyxmlerror.cpp tinystr.cpp
+lo = $(addsuffix .lo,$(basename ${src}))
+o = $(addsuffix .o,$(basename ${src}))
+
+lib = so
+ifeq ($(shell uname),Darwin)
+	lib = dylib
+endif
+
+all: $(name).a $(name).$(lib)
+
+%.o: %.cpp
+	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
+
+$(name).a: $(o)
+	$(AR) rc $(name).a $(o)
+	$(RANLIB) $(name).a
+
+%.lo: %.cpp
+	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -fPIC $< -o $@
+
+$(name).so: $(lo)
+	$(CXX) $(LDFLAGS) -fPIC -shared $(lo) -Wl,-soname,$(name).so.$(major) -o $(name).so.$(version)
+	ln -s $(name).so.$(version) $(name).so.$(major)
+	ln -s $(name).so.$(version) $(name).so
+
+$(name).dylib: $(lo)
+	$(CXX) $(LDFLAGS) -fPIC -dynamiclib $(lo) -install_name $(LIBDIR)/$(name).$(major).dylib -o $(name).$(version).dylib
+	ln -s $(name).$(version).dylib $(name).$(major).dylib
+	ln -s $(name).$(version).dylib $(name).dylib
+
+clean:
+	-rm -f *.o *.lo *.so* *.a
diff --git a/dev-libs/tinyxml/files/tinyxml-2.6.1-entity.patch b/dev-libs/tinyxml/files/tinyxml-2.6.1-entity.patch
new file mode 100644
index 0000000..66d89a6
--- /dev/null
+++ b/dev-libs/tinyxml/files/tinyxml-2.6.1-entity.patch
@@ -0,0 +1,64 @@
+? entity.patch
+Index: tinyxml.cpp
+===================================================================
+RCS file: /cvsroot/tinyxml/tinyxml/tinyxml.cpp,v
+retrieving revision 1.105
+diff -u -r1.105 tinyxml.cpp
+--- tinyxml.cpp	5 Jun 2010 19:06:57 -0000	1.105
++++ tinyxml.cpp	19 Jul 2010 21:24:16 -0000
+@@ -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;
+Index: xmltest.cpp
+===================================================================
+RCS file: /cvsroot/tinyxml/tinyxml/xmltest.cpp,v
+retrieving revision 1.89
+diff -u -r1.89 xmltest.cpp
+--- xmltest.cpp	5 Jun 2010 17:41:52 -0000	1.89
++++ xmltest.cpp	19 Jul 2010 21:24:16 -0000
+@@ -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/dev-libs/tinyxml/files/tinyxml-2.6.2-defineSTL.patch b/dev-libs/tinyxml/files/tinyxml-2.6.2-defineSTL.patch
new file mode 100644
index 0000000..7bcde59
--- /dev/null
+++ b/dev-libs/tinyxml/files/tinyxml-2.6.2-defineSTL.patch
@@ -0,0 +1,12 @@
+diff -up tinyxml/tinyxml.h~ tinyxml/tinyxml.h
+--- tinyxml/tinyxml.h~	2007-11-30 22:39:36.000000000 +0100
++++ tinyxml/tinyxml.h	2007-11-30 22:39:36.000000000 +0100
+@@ -26,6 +26,8 @@ distribution.
+ #ifndef TINYXML_INCLUDED
+ #define TINYXML_INCLUDED
+ 
++#define TIXML_USE_STL 1
++
+ #ifdef _MSC_VER
+ #pragma warning( push )
+ #pragma warning( disable : 4530 )
diff --git a/dev-libs/tinyxml/metadata.xml b/dev-libs/tinyxml/metadata.xml
new file mode 100644
index 0000000..310db04
--- /dev/null
+++ b/dev-libs/tinyxml/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer>
+		<email>voyageur@gentoo.org</email>
+		<name>Bernard Cafarelli</name>
+	</maintainer>
+	<use>
+		<flag name="stl">Compile with TIXML_USE_STL support</flag>
+	</use>
+	<upstream>
+		<remote-id type="sourceforge">tinyxml</remote-id>
+	</upstream>
+</pkgmetadata>
diff --git a/dev-libs/tinyxml/tinyxml-2.6.2-r2.ebuild b/dev-libs/tinyxml/tinyxml-2.6.2-r2.ebuild
new file mode 100644
index 0000000..b23ad98
--- /dev/null
+++ b/dev-libs/tinyxml/tinyxml-2.6.2-r2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit flag-o-matic toolchain-funcs eutils multilib
+
+DESCRIPTION="a simple, small, C++ XML parser that can be easily integrating into other programs"
+HOMEPAGE="http://www.grinninglizard.com/tinyxml/index.html"
+SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV//./_}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="*"
+IUSE="debug doc static-libs +stl"
+
+RDEPEND=""
+DEPEND="doc? ( app-doc/doxygen )"
+
+S="${WORKDIR}/${PN}"
+
+src_prepare() {
+	local major_v minor_v
+	major_v=$(echo ${PV} | cut -d \. -f 1)
+	minor_v=$(echo ${PV} | cut -d \. -f 2-3)
+
+	sed -e "s:@MAJOR_V@:$major_v:" \
+	    -e "s:@MINOR_V@:$minor_v:" \
+		"${FILESDIR}"/Makefile-3 > Makefile || die
+
+	epatch "${FILESDIR}"/${PN}-2.6.1-entity.patch
+
+	use debug && append-cppflags -DDEBUG
+	use stl && epatch "${FILESDIR}"/${P}-defineSTL.patch
+
+	if ! use static-libs; then
+		sed -e "/^all:/s/\$(name).a //" -i Makefile || die
+	fi
+
+	tc-export AR CXX RANLIB
+
+	[[ ${CHOST} == *-darwin* ]] && export LIBDIR="${EPREFIX}"/usr/$(get_libdir)
+}
+
+src_install() {
+	dolib.so *$(get_libname)*
+
+	insinto /usr/include
+	doins *.h
+
+	dodoc {changes,readme}.txt
+
+	use doc && dohtml -r docs/*
+}
diff --git a/metadata/md5-cache/dev-libs/tinyxml-2.6.2-r2 b/metadata/md5-cache/dev-libs/tinyxml-2.6.2-r2
new file mode 100644
index 0000000..ced6665
--- /dev/null
+++ b/metadata/md5-cache/dev-libs/tinyxml-2.6.2-r2
@@ -0,0 +1,12 @@
+DEFINED_PHASES=install prepare
+DEPEND=doc? ( app-doc/doxygen )
+DESCRIPTION=a simple, small, C++ XML parser that can be easily integrating into other programs
+EAPI=4
+HOMEPAGE=http://www.grinninglizard.com/tinyxml/index.html
+IUSE=debug doc static-libs +stl
+KEYWORDS=*
+LICENSE=ZLIB
+SLOT=0
+SRC_URI=mirror://sourceforge/tinyxml/tinyxml_2_6_2.tar.gz
+_eclasses_=eutils	06133990e861be0fe60c2b428fd025d9	flag-o-matic	5d5921a298e95441da2f85be419894c0	multilib	3bf24e6abb9b76d9f6c20600f0b716bf	toolchain-funcs	48b38a216afb92db6314d6c3187abea3
+_md5_=2e2854cfe09016464658627fdd8fc693