summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp')
-rw-r--r--dev-cpp/ETL/ETL-0.04.15.ebuild27
-rw-r--r--dev-cpp/ETL/Manifest1
-rw-r--r--dev-cpp/ETL/metadata.xml11
-rw-r--r--dev-cpp/asio/Manifest2
-rw-r--r--dev-cpp/asio/asio-1.4.5.ebuild48
-rw-r--r--dev-cpp/asio/asio-1.4.8-r1.ebuild52
-rw-r--r--dev-cpp/asio/files/asio-1.4.8_declarations.patch1186
-rw-r--r--dev-cpp/asio/metadata.xml8
-rw-r--r--dev-cpp/atkmm/Manifest1
-rw-r--r--dev-cpp/atkmm/atkmm-2.22.7-r1.ebuild41
-rw-r--r--dev-cpp/atkmm/atkmm-2.22.7.ebuild31
-rw-r--r--dev-cpp/atkmm/metadata.xml5
-rw-r--r--dev-cpp/cairomm/Manifest1
-rw-r--r--dev-cpp/cairomm/cairomm-1.10.0-r1.ebuild56
-rw-r--r--dev-cpp/cairomm/cairomm-1.10.0.ebuild51
-rw-r--r--dev-cpp/cairomm/metadata.xml7
-rw-r--r--dev-cpp/clucene/Manifest1
-rw-r--r--dev-cpp/clucene/clucene-2.3.3.4-r5.ebuild63
-rw-r--r--dev-cpp/clucene/files/clucene-2.3.3.4-contrib.patch42
-rw-r--r--dev-cpp/clucene/files/clucene-2.3.3.4-pkgconfig.patch12
-rw-r--r--dev-cpp/clucene/metadata.xml8
-rw-r--r--dev-cpp/commoncpp2/Manifest1
-rw-r--r--dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild76
-rw-r--r--dev-cpp/commoncpp2/files/1.8.0-glibc212.patch12
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-autoconf-update.patch49
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-configure_detect_netfilter.patch14
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-fix-buffer-overflow.patch13
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-parallel-build.patch11
-rw-r--r--dev-cpp/commoncpp2/metadata.xml5
-rw-r--r--dev-cpp/ctemplate/Manifest3
-rw-r--r--dev-cpp/ctemplate/ctemplate-2.2.ebuild76
-rw-r--r--dev-cpp/ctemplate/ctemplate-2.2_p129.ebuild69
-rw-r--r--dev-cpp/ctemplate/ctemplate-2.3.ebuild68
-rw-r--r--dev-cpp/ctemplate/files/70ctemplate-gentoo.el7
-rw-r--r--dev-cpp/ctemplate/metadata.xml8
-rw-r--r--dev-cpp/eigen/Manifest5
-rw-r--r--dev-cpp/eigen/eigen-2.0.17.ebuild79
-rw-r--r--dev-cpp/eigen/eigen-3.0.6.ebuild70
-rw-r--r--dev-cpp/eigen/eigen-3.1.3.ebuild70
-rw-r--r--dev-cpp/eigen/eigen-3.2.4.ebuild65
-rw-r--r--dev-cpp/eigen/eigen-3.2.5.ebuild69
-rw-r--r--dev-cpp/eigen/files/eigen-3.0.0-gcc46.patch16
-rw-r--r--dev-cpp/eigen/metadata.xml13
-rw-r--r--dev-cpp/gccxml/Manifest2
-rw-r--r--dev-cpp/gccxml/gccxml-0.9.0_pre20120309.ebuild28
-rw-r--r--dev-cpp/gccxml/gccxml-0.9.0_pre20131217.ebuild31
-rw-r--r--dev-cpp/gccxml/metadata.xml5
-rw-r--r--dev-cpp/gconfmm/Manifest1
-rw-r--r--dev-cpp/gconfmm/gconfmm-2.28.3.ebuild38
-rw-r--r--dev-cpp/gconfmm/metadata.xml5
-rw-r--r--dev-cpp/gflags/Manifest2
-rw-r--r--dev-cpp/gflags/files/gflags-2.1.1-libs.patch45
-rw-r--r--dev-cpp/gflags/gflags-2.1.1-r1.ebuild33
-rw-r--r--dev-cpp/gflags/gflags-2.1.2.ebuild31
-rw-r--r--dev-cpp/gflags/gflags-9999.ebuild36
-rw-r--r--dev-cpp/gflags/metadata.xml11
-rw-r--r--dev-cpp/glibmm/Manifest3
-rw-r--r--dev-cpp/glibmm/glibmm-2.40.0.ebuild71
-rw-r--r--dev-cpp/glibmm/glibmm-2.42.0-r1.ebuild82
-rw-r--r--dev-cpp/glibmm/glibmm-2.44.0.ebuild82
-rw-r--r--dev-cpp/glibmm/metadata.xml5
-rw-r--r--dev-cpp/glog/Manifest3
-rw-r--r--dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch56
-rw-r--r--dev-cpp/glog/glog-0.3.1.ebuild32
-rw-r--r--dev-cpp/glog/glog-0.3.2.ebuild51
-rw-r--r--dev-cpp/glog/glog-0.3.3-r1.ebuild68
-rw-r--r--dev-cpp/glog/glog-0.3.3.ebuild51
-rw-r--r--dev-cpp/glog/metadata.xml15
-rw-r--r--dev-cpp/gmock/Manifest4
-rw-r--r--dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch189
-rw-r--r--dev-cpp/gmock/files/gmock-1.4.0-more-gcc-4.7.patch144
-rw-r--r--dev-cpp/gmock/gmock-1.4.0.ebuild40
-rw-r--r--dev-cpp/gmock/gmock-1.5.0.ebuild38
-rw-r--r--dev-cpp/gmock/gmock-1.6.0.ebuild43
-rw-r--r--dev-cpp/gmock/gmock-1.7.0-r1.ebuild60
-rw-r--r--dev-cpp/gmock/gmock-1.7.0.ebuild43
-rw-r--r--dev-cpp/gmock/metadata.xml10
-rw-r--r--dev-cpp/gnome-vfsmm/Manifest1
-rw-r--r--dev-cpp/gnome-vfsmm/gnome-vfsmm-2.26.0.ebuild56
-rw-r--r--dev-cpp/gnome-vfsmm/metadata.xml5
-rw-r--r--dev-cpp/gstreamermm/Manifest3
-rw-r--r--dev-cpp/gstreamermm/gstreamermm-0.10.11.ebuild35
-rw-r--r--dev-cpp/gstreamermm/gstreamermm-1.0.10.ebuild65
-rw-r--r--dev-cpp/gstreamermm/gstreamermm-1.4.3.ebuild59
-rw-r--r--dev-cpp/gstreamermm/metadata.xml10
-rw-r--r--dev-cpp/gtest/Manifest2
-rw-r--r--dev-cpp/gtest/files/configure-fix-pthread-linking.patch93
-rw-r--r--dev-cpp/gtest/gtest-1.6.0-r1.ebuild60
-rw-r--r--dev-cpp/gtest/gtest-1.6.0-r2.ebuild62
-rw-r--r--dev-cpp/gtest/gtest-1.6.0.ebuild60
-rw-r--r--dev-cpp/gtest/gtest-1.7.0.ebuild52
-rw-r--r--dev-cpp/gtest/metadata.xml12
-rw-r--r--dev-cpp/gtkglextmm/Manifest1
-rw-r--r--dev-cpp/gtkglextmm/gtkglextmm-1.2.0-r1.ebuild43
-rw-r--r--dev-cpp/gtkglextmm/metadata.xml8
-rw-r--r--dev-cpp/gtkmm-utils/Manifest1
-rw-r--r--dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-glib.patch37
-rw-r--r--dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-include-fix.patch11
-rw-r--r--dev-cpp/gtkmm-utils/gtkmm-utils-0.4.1.ebuild32
-rw-r--r--dev-cpp/gtkmm-utils/metadata.xml12
-rw-r--r--dev-cpp/gtkmm/Manifest4
-rw-r--r--dev-cpp/gtkmm/files/gtkmm-2.24.4-missing-includes.patch200
-rw-r--r--dev-cpp/gtkmm/files/gtkmm-2.24.4-newer-glibmm.patch60
-rw-r--r--dev-cpp/gtkmm/files/gtkmm-2.24.4-papersize.patch45
-rw-r--r--dev-cpp/gtkmm/gtkmm-2.24.4-r1.ebuild69
-rw-r--r--dev-cpp/gtkmm/gtkmm-2.24.4-r2.ebuild74
-rw-r--r--dev-cpp/gtkmm/gtkmm-2.24.4.ebuild55
-rw-r--r--dev-cpp/gtkmm/gtkmm-3.12.0.ebuild62
-rw-r--r--dev-cpp/gtkmm/gtkmm-3.14.0-r1.ebuild75
-rw-r--r--dev-cpp/gtkmm/gtkmm-3.16.0.ebuild75
-rw-r--r--dev-cpp/gtkmm/metadata.xml5
-rw-r--r--dev-cpp/gtksourceviewmm/Manifest3
-rw-r--r--dev-cpp/gtksourceviewmm/files/gtksourceviewmm-3.2.0-glib-single-include.patch13
-rw-r--r--dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3.ebuild47
-rw-r--r--dev-cpp/gtksourceviewmm/gtksourceviewmm-3.12.0.ebuild35
-rw-r--r--dev-cpp/gtksourceviewmm/gtksourceviewmm-3.2.0.ebuild38
-rw-r--r--dev-cpp/gtksourceviewmm/metadata.xml8
-rw-r--r--dev-cpp/icnc/Manifest1
-rw-r--r--dev-cpp/icnc/icnc-1.0.100.ebuild78
-rw-r--r--dev-cpp/icnc/metadata.xml11
-rw-r--r--dev-cpp/libassa/Manifest1
-rw-r--r--dev-cpp/libassa/files/libassa-3.5.0-fix-tests.patch351
-rw-r--r--dev-cpp/libassa/files/libassa-3.5.1-gcc47.patch12
-rw-r--r--dev-cpp/libassa/libassa-3.5.1-r1.ebuild37
-rw-r--r--dev-cpp/libassa/metadata.xml11
-rw-r--r--dev-cpp/libbackend-elements/Manifest1
-rw-r--r--dev-cpp/libbackend-elements/libbackend-elements-1.7.2.ebuild77
-rw-r--r--dev-cpp/libbackend-elements/metadata.xml8
-rw-r--r--dev-cpp/libbinio/Manifest1
-rw-r--r--dev-cpp/libbinio/files/libbinio-1.4-cstdio.patch11
-rw-r--r--dev-cpp/libbinio/files/libbinio-1.4-texi.patch21
-rw-r--r--dev-cpp/libbinio/libbinio-1.4.ebuild32
-rw-r--r--dev-cpp/libbinio/metadata.xml8
-rw-r--r--dev-cpp/libcmis/Manifest2
-rw-r--r--dev-cpp/libcmis/files/libcmis-0.2.3-do-not-override-phases.patch17
-rw-r--r--dev-cpp/libcmis/libcmis-0.5.0-r1.ebuild73
-rw-r--r--dev-cpp/libcmis/libcmis-0.5.0.ebuild72
-rw-r--r--dev-cpp/libcmis/libcmis-9999.ebuild72
-rw-r--r--dev-cpp/libcmis/metadata.xml11
-rw-r--r--dev-cpp/libcult/Manifest1
-rw-r--r--dev-cpp/libcult/files/1.4.6-fix-compilation-with-gcc-4.7.patch57
-rw-r--r--dev-cpp/libcult/libcult-1.4.6-r1.ebuild86
-rw-r--r--dev-cpp/libcult/metadata.xml8
-rw-r--r--dev-cpp/libfrontend-elements/Manifest1
-rw-r--r--dev-cpp/libfrontend-elements/libfrontend-elements-1.1.4.ebuild82
-rw-r--r--dev-cpp/libfrontend-elements/metadata.xml8
-rw-r--r--dev-cpp/libglademm/Manifest1
-rw-r--r--dev-cpp/libglademm/libglademm-2.6.7-r1.ebuild78
-rw-r--r--dev-cpp/libglademm/libglademm-2.6.7.ebuild62
-rw-r--r--dev-cpp/libglademm/metadata.xml5
-rw-r--r--dev-cpp/libgnomecanvasmm/Manifest1
-rw-r--r--dev-cpp/libgnomecanvasmm/libgnomecanvasmm-2.26.0-r1.ebuild56
-rw-r--r--dev-cpp/libgnomecanvasmm/metadata.xml5
-rw-r--r--dev-cpp/libgnomemm/Manifest1
-rw-r--r--dev-cpp/libgnomemm/libgnomemm-2.30.0.ebuild24
-rw-r--r--dev-cpp/libgnomemm/metadata.xml5
-rw-r--r--dev-cpp/libgnomeuimm/Manifest1
-rw-r--r--dev-cpp/libgnomeuimm/libgnomeuimm-2.28.0-r1.ebuild30
-rw-r--r--dev-cpp/libgnomeuimm/metadata.xml5
-rw-r--r--dev-cpp/libjson-rpc-cpp/Manifest1
-rw-r--r--dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-0.5.0.ebuild50
-rw-r--r--dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-9999.ebuild52
-rw-r--r--dev-cpp/libjson-rpc-cpp/metadata.xml16
-rw-r--r--dev-cpp/libmcpp/Manifest1
-rw-r--r--dev-cpp/libmcpp/libmcpp-2.7.2-r1.ebuild37
-rw-r--r--dev-cpp/libmcpp/metadata.xml8
-rw-r--r--dev-cpp/libxmlpp/Manifest3
-rw-r--r--dev-cpp/libxmlpp/libxmlpp-2.36.0-r1.ebuild36
-rw-r--r--dev-cpp/libxmlpp/libxmlpp-2.36.0.ebuild37
-rw-r--r--dev-cpp/libxmlpp/libxmlpp-2.38.0.ebuild39
-rw-r--r--dev-cpp/libxmlpp/libxmlpp-2.38.1.ebuild38
-rw-r--r--dev-cpp/libxmlpp/metadata.xml5
-rw-r--r--dev-cpp/libxsd-frontend/Manifest1
-rw-r--r--dev-cpp/libxsd-frontend/files/1.17.0-boost-filesystem-v2-deprecation.patch261
-rw-r--r--dev-cpp/libxsd-frontend/libxsd-frontend-1.18.0-r3.ebuild92
-rw-r--r--dev-cpp/libxsd-frontend/metadata.xml8
-rw-r--r--dev-cpp/luabind/Manifest1
-rw-r--r--dev-cpp/luabind/files/luabind-0.9.1-boost.patch59
-rw-r--r--dev-cpp/luabind/luabind-0.9.1.ebuild58
-rw-r--r--dev-cpp/luabind/metadata.xml11
-rw-r--r--dev-cpp/lucene++/Manifest2
-rw-r--r--dev-cpp/lucene++/files/lucene++-3.0.6-disable-demos.patch13
-rw-r--r--dev-cpp/lucene++/files/lucene++-3.0.6-disable-tests.patch42
-rw-r--r--dev-cpp/lucene++/files/lucene++-3.0.6-fix-installing-headers.patch39
-rw-r--r--dev-cpp/lucene++/lucene++-3.0.6.ebuild39
-rw-r--r--dev-cpp/lucene++/lucene++-3.0.7.ebuild35
-rw-r--r--dev-cpp/lucene++/metadata.xml12
-rw-r--r--dev-cpp/metadata.xml40
-rw-r--r--dev-cpp/metslib/Manifest1
-rw-r--r--dev-cpp/metslib/metadata.xml8
-rw-r--r--dev-cpp/metslib/metslib-0.5.3.ebuild18
-rw-r--r--dev-cpp/mm-common/Manifest2
-rw-r--r--dev-cpp/mm-common/metadata.xml6
-rw-r--r--dev-cpp/mm-common/mm-common-0.9.7.ebuild19
-rw-r--r--dev-cpp/mm-common/mm-common-0.9.8.ebuild19
-rw-r--r--dev-cpp/muParser/Manifest2
-rw-r--r--dev-cpp/muParser/files/muParser-1.32-build.patch13
-rw-r--r--dev-cpp/muParser/files/muParser-1.32-parallel-build.patch15
-rw-r--r--dev-cpp/muParser/metadata.xml13
-rw-r--r--dev-cpp/muParser/muParser-2.2.2.ebuild53
-rw-r--r--dev-cpp/muParser/muParser-2.2.3.ebuild50
-rw-r--r--dev-cpp/pangomm/Manifest2
-rw-r--r--dev-cpp/pangomm/metadata.xml6
-rw-r--r--dev-cpp/pangomm/pangomm-2.34.0-r1.ebuild46
-rw-r--r--dev-cpp/pangomm/pangomm-2.34.0.ebuild38
-rw-r--r--dev-cpp/pangomm/pangomm-2.36.0.ebuild45
-rw-r--r--dev-cpp/pficommon/Manifest1
-rw-r--r--dev-cpp/pficommon/files/pficommon-1.3.1.0-gcc-4.7.patch50
-rw-r--r--dev-cpp/pficommon/files/pficommon-1.3.1.0-libdir.patch49
-rw-r--r--dev-cpp/pficommon/files/pficommon-1.3.1.0-postgresql.patch13
-rw-r--r--dev-cpp/pficommon/files/pficommon-1.3.1.0-soname.patch200
-rw-r--r--dev-cpp/pficommon/metadata.xml14
-rw-r--r--dev-cpp/pficommon/pficommon-1.3.1.0.ebuild58
-rw-r--r--dev-cpp/pngpp/Manifest1
-rw-r--r--dev-cpp/pngpp/metadata.xml6
-rw-r--r--dev-cpp/pngpp/pngpp-0.2.5.ebuild31
-rw-r--r--dev-cpp/pstreams/Manifest4
-rw-r--r--dev-cpp/pstreams/metadata.xml11
-rw-r--r--dev-cpp/pstreams/pstreams-0.7.0.ebuild43
-rw-r--r--dev-cpp/pstreams/pstreams-0.8.1.ebuild43
-rw-r--r--dev-cpp/rudiments/Manifest2
-rw-r--r--dev-cpp/rudiments/files/rudiments-0.46-buildsystem.patch88
-rw-r--r--dev-cpp/rudiments/files/rudiments-0.51-buildsystem.patch86
-rw-r--r--dev-cpp/rudiments/metadata.xml14
-rw-r--r--dev-cpp/rudiments/rudiments-0.46.ebuild43
-rw-r--r--dev-cpp/rudiments/rudiments-0.51.ebuild43
-rw-r--r--dev-cpp/sparsehash/Manifest2
-rw-r--r--dev-cpp/sparsehash/files/1.10-gcc46.patch16
-rw-r--r--dev-cpp/sparsehash/metadata.xml8
-rw-r--r--dev-cpp/sparsehash/sparsehash-1.10.ebuild28
-rw-r--r--dev-cpp/sparsehash/sparsehash-2.0.2.ebuild22
-rw-r--r--dev-cpp/tbb/Manifest3
-rw-r--r--dev-cpp/tbb/files/tbb-4.0.297-underlinking.patch20
-rw-r--r--dev-cpp/tbb/files/tbb-4.1.20121003-ppc.patch16
-rw-r--r--dev-cpp/tbb/files/tbb-4.3-build.patch185
-rw-r--r--dev-cpp/tbb/files/tbb-4.3.20150611-build.patch196
-rw-r--r--dev-cpp/tbb/metadata.xml12
-rw-r--r--dev-cpp/tbb/tbb-4.1.20121003-r1.ebuild124
-rw-r--r--dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild132
-rw-r--r--dev-cpp/tbb/tbb-4.3.20141023.ebuild127
-rw-r--r--dev-cpp/tbb/tbb-4.3.20150611.ebuild132
-rw-r--r--dev-cpp/tclap/Manifest1
-rw-r--r--dev-cpp/tclap/metadata.xml10
-rw-r--r--dev-cpp/tclap/tclap-1.2.1.ebuild25
-rw-r--r--dev-cpp/threadpool/Manifest2
-rw-r--r--dev-cpp/threadpool/files/threadpool-0.2.5-memleak.patch22
-rw-r--r--dev-cpp/threadpool/metadata.xml11
-rw-r--r--dev-cpp/threadpool/threadpool-0.2.5.ebuild47
-rw-r--r--dev-cpp/tree/Manifest2
-rw-r--r--dev-cpp/tree/files/tree-2.62-test.patch17
-rw-r--r--dev-cpp/tree/files/tree-2.65-gcc46.patch15
-rw-r--r--dev-cpp/tree/metadata.xml12
-rw-r--r--dev-cpp/tree/tree-2.65-r1.ebuild42
-rw-r--r--dev-cpp/tree/tree-2.81.ebuild42
-rw-r--r--dev-cpp/websocketpp/Manifest2
-rw-r--r--dev-cpp/websocketpp/metadata.xml15
-rw-r--r--dev-cpp/websocketpp/websocketpp-0.4.0.ebuild35
-rw-r--r--dev-cpp/websocketpp/websocketpp-0.5.0.ebuild35
-rw-r--r--dev-cpp/xsd/Manifest1
-rw-r--r--dev-cpp/xsd/files/3.3.0-boost-filesystem-v2-deprecation.patch925
-rw-r--r--dev-cpp/xsd/files/3.3.0-disable_examples_and_tests.patch55
-rw-r--r--dev-cpp/xsd/files/3.3.0-fix_include.patch13
-rw-r--r--dev-cpp/xsd/files/3.3.0-fix_tests.patch13
-rw-r--r--dev-cpp/xsd/files/3.3.0-xsdcxx-rename.patch121
-rw-r--r--dev-cpp/xsd/metadata.xml11
-rw-r--r--dev-cpp/xsd/xsd-3.3.0-r3.ebuild142
-rw-r--r--dev-cpp/yaml-cpp/Manifest2
-rw-r--r--dev-cpp/yaml-cpp/metadata.xml11
-rw-r--r--dev-cpp/yaml-cpp/yaml-cpp-0.3.0.ebuild35
-rw-r--r--dev-cpp/yaml-cpp/yaml-cpp-0.5.1.ebuild34
270 files changed, 11737 insertions, 0 deletions
diff --git a/dev-cpp/ETL/ETL-0.04.15.ebuild b/dev-cpp/ETL/ETL-0.04.15.ebuild
new file mode 100644
index 00000000000..e377c0ede9e
--- /dev/null
+++ b/dev-cpp/ETL/ETL-0.04.15.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit autotools
+
+DESCRIPTION="ETL is a multi-platform class and template library"
+HOMEPAGE="http://synfig.org"
+SRC_URI="mirror://sourceforge/synfig/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ sed -i -e 's/CXXFLAGS="`echo $CXXFLAGS | sed s:-g::` $debug_flags"//' \
+ -e 's/CFLAGS="`echo $CFLAGS | sed s:-g::` $debug_flags"//' \
+ m4/subs.m4
+
+ eautoreconf
+}
diff --git a/dev-cpp/ETL/Manifest b/dev-cpp/ETL/Manifest
new file mode 100644
index 00000000000..afedf2a9870
--- /dev/null
+++ b/dev-cpp/ETL/Manifest
@@ -0,0 +1 @@
+DIST ETL-0.04.15.tar.gz 362312 SHA256 8010f71d585fe8543738d129e0beef7aa0bc431e046d48a33409e6b701aba916 SHA512 647d03f5660703a326357b0f1bb969c1e00f94c51ae72cf036f6618df1e44c6e379244a1a827b4d3c9545455efd81ff1d97254ee159e0f578f544ab856341e6f WHIRLPOOL 110ca2b6f5a29a74ad3d379843fba28fc85eee87035fc29dc4394216efb9cf7845ef65242eb0b6abaca8cdc91aed006bd4513914eec15522f688566ce6363274
diff --git a/dev-cpp/ETL/metadata.xml b/dev-cpp/ETL/metadata.xml
new file mode 100644
index 00000000000..875b14ec01d
--- /dev/null
+++ b/dev-cpp/ETL/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>lu_zero@gentoo.org</email>
+ <name>Luca Barbato</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">synfig</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/asio/Manifest b/dev-cpp/asio/Manifest
new file mode 100644
index 00000000000..800fe86583c
--- /dev/null
+++ b/dev-cpp/asio/Manifest
@@ -0,0 +1,2 @@
+DIST asio-1.4.5.tar.bz2 877613 SHA256 33fcb5bdd88ec0833b0069b5d1e4aba6a257b1f55f728274dfca5316e99901ff SHA512 571f0bc183956c9bc6fa4150bdcdbf38e81b713e054a5d981be246b00058cef9fe7ac8f6f4d33993f183867cc57a0f75b2cbc480674277b1b491c62db89f9bf4 WHIRLPOOL 6f39c82c6794017868a482d59b7a887db92a08c2c02eb8bb002a0d94193936ece4d675ffbbbcfd182c4ad3f0a3580210a7e639714b172b9e313395a1818c37a8
+DIST asio-1.4.8.tar.bz2 907503 SHA256 8d6a594c15ef10b5779d0e80adb9483be1cd36f7ada401b40aa7df85559b1fb9 SHA512 74755767a90e87963352233ba0b1b865197262fc3fc2f2fa4446340d910de0f146454bf1b46736bb81aff4518bc64db1ee74f79966bcc1382774408468dd0540 WHIRLPOOL 646bec38ca0c7654fef93e2430ae61b09d08f26daeea464d2fb13487ef7ebc0345007e98909880c9428fe66bac5f0a102b95cc4b86ffaca4c6a4638bf20aa242
diff --git a/dev-cpp/asio/asio-1.4.5.ebuild b/dev-cpp/asio/asio-1.4.5.ebuild
new file mode 100644
index 00000000000..172a2ac6f4a
--- /dev/null
+++ b/dev-cpp/asio/asio-1.4.5.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+
+DESCRIPTION="Asynchronous Network Library"
+HOMEPAGE="http://asio.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="alpha amd64 ~hppa ia64 ppc ppc64 sparc x86"
+IUSE="doc examples ssl test"
+
+RDEPEND="ssl? ( dev-libs/openssl )
+ >=dev-libs/boost-1.35.0"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ if ! use test; then
+ # Don't build nor install any examples or unittests
+ # since we don't have a script to run them
+ cat > src/Makefile.in <<-EOF
+all:
+
+install:
+ EOF
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc README
+
+ if use doc; then
+ dohtml -r doc/*
+ fi
+
+ if use examples; then
+ if use test; then
+ # Get rid of the object files
+ emake clean || die
+ fi
+ insinto /usr/share/doc/${PF}
+ doins -r src/examples
+ fi
+}
diff --git a/dev-cpp/asio/asio-1.4.8-r1.ebuild b/dev-cpp/asio/asio-1.4.8-r1.ebuild
new file mode 100644
index 00000000000..dc5a7d52aaa
--- /dev/null
+++ b/dev-cpp/asio/asio-1.4.8-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils
+
+DESCRIPTION="Asynchronous Network Library"
+HOMEPAGE="http://asio.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="doc examples ssl test"
+
+RDEPEND="ssl? ( dev-libs/openssl )
+ >=dev-libs/boost-1.35.0"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ if ! use test; then
+ # Don't build nor install any examples or unittests
+ # since we don't have a script to run them
+ cat > src/Makefile.in <<-EOF
+all:
+
+install:
+ EOF
+ fi
+
+ # Added ASIO_DECL to a number of function definitions
+ # http://sourceforge.net/tracker/?func=detail&aid=3291113&group_id=122478&atid=694037
+ epatch "${FILESDIR}/${P}_declarations.patch"
+}
+
+src_install() {
+ default
+
+ if use doc; then
+ dohtml -r doc/*
+ fi
+
+ if use examples; then
+ if use test; then
+ # Get rid of the object files
+ emake clean
+ fi
+ dodoc -r src/examples
+ fi
+}
diff --git a/dev-cpp/asio/files/asio-1.4.8_declarations.patch b/dev-cpp/asio/files/asio-1.4.8_declarations.patch
new file mode 100644
index 00000000000..d86109c38e0
--- /dev/null
+++ b/dev-cpp/asio/files/asio-1.4.8_declarations.patch
@@ -0,0 +1,1186 @@
+--- a/include//asio/detail/impl/descriptor_ops.ipp
++++ b/include//asio/detail/impl/descriptor_ops.ipp
+@@ -28,6 +28,7 @@ namespace asio {
+ namespace detail {
+ namespace descriptor_ops {
+
++ASIO_DECL
+ int open(const char* path, int flags, asio::error_code& ec)
+ {
+ errno = 0;
+@@ -37,6 +38,7 @@ int open(const char* path, int flags, asio::error_code& ec)
+ return result;
+ }
+
++ASIO_DECL
+ int close(int d, state_type& state, asio::error_code& ec)
+ {
+ int result = 0;
+@@ -64,6 +66,7 @@ int close(int d, state_type& state, asio::error_code& ec)
+ return result;
+ }
+
++ASIO_DECL
+ bool set_internal_non_blocking(int d,
+ state_type& state, asio::error_code& ec)
+ {
+@@ -96,6 +99,7 @@ bool set_internal_non_blocking(int d,
+ return false;
+ }
+
++ASIO_DECL
+ std::size_t sync_read(int d, state_type state, buf* bufs,
+ std::size_t count, bool all_empty, asio::error_code& ec)
+ {
+@@ -142,6 +146,7 @@ std::size_t sync_read(int d, state_type state, buf* bufs,
+ }
+ }
+
++ASIO_DECL
+ bool non_blocking_read(int d, buf* bufs, std::size_t count,
+ asio::error_code& ec, std::size_t& bytes_transferred)
+ {
+@@ -180,6 +185,7 @@ bool non_blocking_read(int d, buf* bufs, std::size_t count,
+ }
+ }
+
++ASIO_DECL
+ std::size_t sync_write(int d, state_type state, const buf* bufs,
+ std::size_t count, bool all_empty, asio::error_code& ec)
+ {
+@@ -219,6 +225,7 @@ std::size_t sync_write(int d, state_type state, const buf* bufs,
+ }
+ }
+
++ASIO_DECL
+ bool non_blocking_write(int d, const buf* bufs, std::size_t count,
+ asio::error_code& ec, std::size_t& bytes_transferred)
+ {
+@@ -250,6 +257,7 @@ bool non_blocking_write(int d, const buf* bufs, std::size_t count,
+ }
+ }
+
++ASIO_DECL
+ int ioctl(int d, state_type& state, long cmd,
+ ioctl_arg_type* arg, asio::error_code& ec)
+ {
+@@ -291,6 +299,7 @@ int ioctl(int d, state_type& state, long cmd,
+ return result;
+ }
+
++ASIO_DECL
+ int fcntl(int d, long cmd, asio::error_code& ec)
+ {
+ if (d == -1)
+@@ -306,6 +315,7 @@ int fcntl(int d, long cmd, asio::error_code& ec)
+ return result;
+ }
+
++ASIO_DECL
+ int fcntl(int d, long cmd, long arg, asio::error_code& ec)
+ {
+ if (d == -1)
+@@ -321,6 +331,7 @@ int fcntl(int d, long cmd, long arg, asio::error_code& ec)
+ return result;
+ }
+
++ASIO_DECL
+ int poll_read(int d, asio::error_code& ec)
+ {
+ if (d == -1)
+@@ -340,6 +351,7 @@ int poll_read(int d, asio::error_code& ec)
+ return result;
+ }
+
++ASIO_DECL
+ int poll_write(int d, asio::error_code& ec)
+ {
+ if (d == -1)
+--- a/include//asio/detail/impl/socket_ops.ipp
++++ b/include//asio/detail/impl/socket_ops.ipp
+@@ -77,6 +77,7 @@ inline socket_type call_accept(SockLenType msghdr::*,
+ return result;
+ }
+
++ASIO_DECL
+ socket_type accept(socket_type s, socket_addr_type* addr,
+ std::size_t* addrlen, asio::error_code& ec)
+ {
+@@ -108,6 +109,7 @@ socket_type accept(socket_type s, socket_addr_type* addr,
+ return new_s;
+ }
+
++ASIO_DECL
+ socket_type sync_accept(socket_type s, state_type state,
+ socket_addr_type* addr, std::size_t* addrlen, asio::error_code& ec)
+ {
+@@ -199,6 +201,7 @@ void complete_iocp_accept(socket_type s,
+
+ #else // defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ bool non_blocking_accept(socket_type s,
+ state_type state, socket_addr_type* addr, std::size_t* addrlen,
+ asio::error_code& ec, socket_type& new_socket)
+@@ -254,6 +257,7 @@ inline int call_bind(SockLenType msghdr::*,
+ return ::bind(s, addr, (SockLenType)addrlen);
+ }
+
++ASIO_DECL
+ int bind(socket_type s, const socket_addr_type* addr,
+ std::size_t addrlen, asio::error_code& ec)
+ {
+@@ -271,6 +275,7 @@ int bind(socket_type s, const socket_addr_type* addr,
+ return result;
+ }
+
++ASIO_DECL
+ int close(socket_type s, state_type& state,
+ bool destruction, asio::error_code& ec)
+ {
+@@ -322,6 +327,7 @@ int close(socket_type s, state_type& state,
+ return result;
+ }
+
++ASIO_DECL
+ bool set_internal_non_blocking(socket_type s,
+ state_type& state, asio::error_code& ec)
+ {
+@@ -357,6 +363,7 @@ bool set_internal_non_blocking(socket_type s,
+ return false;
+ }
+
++ASIO_DECL
+ int shutdown(socket_type s, int what, asio::error_code& ec)
+ {
+ if (s == invalid_socket)
+@@ -379,6 +386,7 @@ inline int call_connect(SockLenType msghdr::*,
+ return ::connect(s, addr, (SockLenType)addrlen);
+ }
+
++ASIO_DECL
+ int connect(socket_type s, const socket_addr_type* addr,
+ std::size_t addrlen, asio::error_code& ec)
+ {
+@@ -396,6 +404,7 @@ int connect(socket_type s, const socket_addr_type* addr,
+ return result;
+ }
+
++ASIO_DECL
+ void sync_connect(socket_type s, const socket_addr_type* addr,
+ std::size_t addrlen, asio::error_code& ec)
+ {
+@@ -424,6 +433,7 @@ void sync_connect(socket_type s, const socket_addr_type* addr,
+ asio::error::get_system_category());
+ }
+
++ASIO_DECL
+ bool non_blocking_connect(socket_type s, asio::error_code& ec)
+ {
+ // Get the error code from the connect operation.
+@@ -444,6 +454,7 @@ bool non_blocking_connect(socket_type s, asio::error_code& ec)
+ return true;
+ }
+
++ASIO_DECL
+ int socketpair(int af, int type, int protocol,
+ socket_type sv[2], asio::error_code& ec)
+ {
+@@ -463,6 +474,7 @@ int socketpair(int af, int type, int protocol,
+ #endif
+ }
+
++ASIO_DECL
+ bool sockatmark(socket_type s, asio::error_code& ec)
+ {
+ if (s == invalid_socket)
+@@ -493,6 +505,7 @@ bool sockatmark(socket_type s, asio::error_code& ec)
+ return ec ? false : value != 0;
+ }
+
++ASIO_DECL
+ size_t available(socket_type s, asio::error_code& ec)
+ {
+ if (s == invalid_socket)
+@@ -517,6 +530,7 @@ size_t available(socket_type s, asio::error_code& ec)
+ return ec ? static_cast<size_t>(0) : static_cast<size_t>(value);
+ }
+
++ASIO_DECL
+ int listen(socket_type s, int backlog, asio::error_code& ec)
+ {
+ if (s == invalid_socket)
+@@ -549,6 +563,7 @@ typedef WSABUF buf;
+ typedef iovec buf;
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+
++ASIO_DECL
+ void init_buf(buf& b, void* data, size_t size)
+ {
+ #if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+@@ -560,6 +575,7 @@ void init_buf(buf& b, void* data, size_t size)
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ }
+
++ASIO_DECL
+ void init_buf(buf& b, const void* data, size_t size)
+ {
+ #if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+@@ -593,6 +609,7 @@ inline void init_msghdr_msg_name(T& name, const socket_addr_type* addr)
+ name = reinterpret_cast<T>(const_cast<socket_addr_type*>(addr));
+ }
+
++ASIO_DECL
+ int recv(socket_type s, buf* bufs, size_t count, int flags,
+ asio::error_code& ec)
+ {
+@@ -623,6 +640,7 @@ int recv(socket_type s, buf* bufs, size_t count, int flags,
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ }
+
++ASIO_DECL
+ size_t sync_recv(socket_type s, state_type state, buf* bufs,
+ size_t count, int flags, bool all_empty, asio::error_code& ec)
+ {
+@@ -670,6 +688,7 @@ size_t sync_recv(socket_type s, state_type state, buf* bufs,
+
+ #if defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ void complete_iocp_recv(state_type state,
+ const weak_cancel_token_type& cancel_token, bool all_empty,
+ asio::error_code& ec, size_t bytes_transferred)
+@@ -698,6 +717,7 @@ void complete_iocp_recv(state_type state,
+
+ #else // defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ bool non_blocking_recv(socket_type s,
+ buf* bufs, size_t count, int flags, bool is_stream,
+ asio::error_code& ec, size_t& bytes_transferred)
+@@ -738,6 +758,7 @@ bool non_blocking_recv(socket_type s,
+
+ #endif // defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ int recvfrom(socket_type s, buf* bufs, size_t count, int flags,
+ socket_addr_type* addr, std::size_t* addrlen,
+ asio::error_code& ec)
+@@ -774,6 +795,7 @@ int recvfrom(socket_type s, buf* bufs, size_t count, int flags,
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ }
+
++ASIO_DECL
+ size_t sync_recvfrom(socket_type s, state_type state, buf* bufs,
+ size_t count, int flags, socket_addr_type* addr,
+ std::size_t* addrlen, asio::error_code& ec)
+@@ -808,6 +830,7 @@ size_t sync_recvfrom(socket_type s, state_type state, buf* bufs,
+
+ #if defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ void complete_iocp_recvfrom(
+ const weak_cancel_token_type& cancel_token,
+ asio::error_code& ec)
+@@ -828,6 +851,7 @@ void complete_iocp_recvfrom(
+
+ #else // defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ bool non_blocking_recvfrom(socket_type s,
+ buf* bufs, size_t count, int flags,
+ socket_addr_type* addr, std::size_t* addrlen,
+@@ -862,6 +886,7 @@ bool non_blocking_recvfrom(socket_type s,
+
+ #endif // defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ int send(socket_type s, const buf* bufs, size_t count, int flags,
+ asio::error_code& ec)
+ {
+@@ -895,6 +920,7 @@ int send(socket_type s, const buf* bufs, size_t count, int flags,
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ }
+
++ASIO_DECL
+ size_t sync_send(socket_type s, state_type state, const buf* bufs,
+ size_t count, int flags, bool all_empty, asio::error_code& ec)
+ {
+@@ -935,6 +961,7 @@ size_t sync_send(socket_type s, state_type state, const buf* bufs,
+
+ #if defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ void complete_iocp_send(
+ const weak_cancel_token_type& cancel_token,
+ asio::error_code& ec)
+@@ -955,6 +982,7 @@ void complete_iocp_send(
+
+ #else // defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ bool non_blocking_send(socket_type s,
+ const buf* bufs, size_t count, int flags,
+ asio::error_code& ec, size_t& bytes_transferred)
+@@ -988,6 +1016,7 @@ bool non_blocking_send(socket_type s,
+
+ #endif // defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ int sendto(socket_type s, const buf* bufs, size_t count, int flags,
+ const socket_addr_type* addr, std::size_t addrlen,
+ asio::error_code& ec)
+@@ -1024,6 +1053,7 @@ int sendto(socket_type s, const buf* bufs, size_t count, int flags,
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ }
+
++ASIO_DECL
+ size_t sync_sendto(socket_type s, state_type state, const buf* bufs,
+ size_t count, int flags, const socket_addr_type* addr,
+ std::size_t addrlen, asio::error_code& ec)
+@@ -1058,6 +1088,7 @@ size_t sync_sendto(socket_type s, state_type state, const buf* bufs,
+
+ #if !defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ bool non_blocking_sendto(socket_type s,
+ const buf* bufs, size_t count, int flags,
+ const socket_addr_type* addr, std::size_t addrlen,
+@@ -1092,6 +1123,7 @@ bool non_blocking_sendto(socket_type s,
+
+ #endif // !defined(ASIO_HAS_IOCP)
+
++ASIO_DECL
+ socket_type socket(int af, int type, int protocol,
+ asio::error_code& ec)
+ {
+@@ -1147,6 +1179,7 @@ inline int call_setsockopt(SockLenType msghdr::*,
+ (const char*)optval, (SockLenType)optlen);
+ }
+
++ASIO_DECL
+ int setsockopt(socket_type s, state_type& state, int level, int optname,
+ const void* optval, std::size_t optlen, asio::error_code& ec)
+ {
+@@ -1235,6 +1268,7 @@ inline int call_getsockopt(SockLenType msghdr::*,
+ return result;
+ }
+
++ASIO_DECL
+ int getsockopt(socket_type s, state_type state, int level, int optname,
+ void* optval, size_t* optlen, asio::error_code& ec)
+ {
+@@ -1344,6 +1378,7 @@ inline int call_getpeername(SockLenType msghdr::*,
+ return result;
+ }
+
++ASIO_DECL
+ int getpeername(socket_type s, socket_addr_type* addr,
+ std::size_t* addrlen, bool cached, asio::error_code& ec)
+ {
+@@ -1396,6 +1431,7 @@ inline int call_getsockname(SockLenType msghdr::*,
+ return result;
+ }
+
++ASIO_DECL
+ int getsockname(socket_type s, socket_addr_type* addr,
+ std::size_t* addrlen, asio::error_code& ec)
+ {
+@@ -1413,6 +1449,7 @@ int getsockname(socket_type s, socket_addr_type* addr,
+ return result;
+ }
+
++ASIO_DECL
+ int ioctl(socket_type s, state_type& state, int cmd,
+ ioctl_arg_type* arg, asio::error_code& ec)
+ {
+@@ -1460,6 +1497,7 @@ int ioctl(socket_type s, state_type& state, int cmd,
+ return result;
+ }
+
++ASIO_DECL
+ int select(int nfds, fd_set* readfds, fd_set* writefds,
+ fd_set* exceptfds, timeval* timeout, asio::error_code& ec)
+ {
+@@ -1501,6 +1539,7 @@ int select(int nfds, fd_set* readfds, fd_set* writefds,
+ #endif
+ }
+
++ASIO_DECL
+ int poll_read(socket_type s, asio::error_code& ec)
+ {
+ if (s == invalid_socket)
+@@ -1537,6 +1576,7 @@ int poll_read(socket_type s, asio::error_code& ec)
+ // || defined(__SYMBIAN32__)
+ }
+
++ASIO_DECL
+ int poll_write(socket_type s, asio::error_code& ec)
+ {
+ if (s == invalid_socket)
+@@ -1573,6 +1613,7 @@ int poll_write(socket_type s, asio::error_code& ec)
+ // || defined(__SYMBIAN32__)
+ }
+
++ASIO_DECL
+ int poll_connect(socket_type s, asio::error_code& ec)
+ {
+ if (s == invalid_socket)
+@@ -1612,6 +1653,7 @@ int poll_connect(socket_type s, asio::error_code& ec)
+ // || defined(__SYMBIAN32__)
+ }
+
++ASIO_DECL
+ const char* inet_ntop(int af, const void* src, char* dest, size_t length,
+ unsigned long scope_id, asio::error_code& ec)
+ {
+@@ -1688,6 +1730,7 @@ const char* inet_ntop(int af, const void* src, char* dest, size_t length,
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ }
+
++ASIO_DECL
+ int inet_pton(int af, const char* src, void* dest,
+ unsigned long* scope_id, asio::error_code& ec)
+ {
+@@ -1774,6 +1817,7 @@ int inet_pton(int af, const char* src, void* dest,
+ #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ }
+
++ASIO_DECL
+ int gethostname(char* name, int namelen, asio::error_code& ec)
+ {
+ clear_last_error();
+@@ -2667,6 +2711,7 @@ inline asio::error_code translate_addrinfo_error(int error)
+ }
+ }
+
++ASIO_DECL
+ asio::error_code getaddrinfo(const char* host,
+ const char* service, const addrinfo_type& hints,
+ addrinfo_type** result, asio::error_code& ec)
+@@ -2703,6 +2748,7 @@ asio::error_code getaddrinfo(const char* host,
+ #endif
+ }
+
++ASIO_DECL
+ asio::error_code background_getaddrinfo(
+ const weak_cancel_token_type& cancel_token, const char* host,
+ const char* service, const addrinfo_type& hints,
+@@ -2715,6 +2761,7 @@ asio::error_code background_getaddrinfo(
+ return ec;
+ }
+
++ASIO_DECL
+ void freeaddrinfo(addrinfo_type* ai)
+ {
+ #if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+@@ -2741,6 +2788,7 @@ void freeaddrinfo(addrinfo_type* ai)
+ #endif
+ }
+
++ASIO_DECL
+ asio::error_code getnameinfo(const socket_addr_type* addr,
+ std::size_t addrlen, char* host, std::size_t hostlen,
+ char* serv, std::size_t servlen, int flags, asio::error_code& ec)
+@@ -2788,6 +2836,7 @@ asio::error_code getnameinfo(const socket_addr_type* addr,
+ #endif
+ }
+
++ASIO_DECL
+ asio::error_code sync_getnameinfo(
+ const socket_addr_type* addr, std::size_t addrlen,
+ char* host, std::size_t hostlen, char* serv,
+@@ -2807,6 +2856,7 @@ asio::error_code sync_getnameinfo(
+ return ec;
+ }
+
++ASIO_DECL
+ asio::error_code background_getnameinfo(
+ const weak_cancel_token_type& cancel_token,
+ const socket_addr_type* addr, std::size_t addrlen,
+@@ -2834,21 +2884,25 @@ asio::error_code background_getnameinfo(
+ return ec;
+ }
+
++ASIO_DECL
+ u_long_type network_to_host_long(u_long_type value)
+ {
+ return ntohl(value);
+ }
+
++ASIO_DECL
+ u_long_type host_to_network_long(u_long_type value)
+ {
+ return htonl(value);
+ }
+
++ASIO_DECL
+ u_short_type network_to_host_short(u_short_type value)
+ {
+ return ntohs(value);
+ }
+
++ASIO_DECL
+ u_short_type host_to_network_short(u_short_type value)
+ {
+ return htons(value);
+--- a/include//asio/detail/impl/throw_error.ipp
++++ b/include//asio/detail/impl/throw_error.ipp
+@@ -25,12 +25,14 @@
+ namespace asio {
+ namespace detail {
+
++ASIO_DECL
+ void do_throw_error(const asio::error_code& err)
+ {
+ asio::system_error e(err);
+ boost::throw_exception(e);
+ }
+
++ASIO_DECL
+ void do_throw_error(const asio::error_code& err, const char* location)
+ {
+ asio::system_error e(err, location);
+--- a/include//asio/ip/detail/impl/endpoint.ipp
++++ b/include//asio/ip/detail/impl/endpoint.ipp
+@@ -31,6 +31,7 @@ namespace asio {
+ namespace ip {
+ namespace detail {
+
++ASIO_DECL
+ endpoint::endpoint()
+ : data_()
+ {
+@@ -39,6 +40,7 @@ endpoint::endpoint()
+ data_.v4.sin_addr.s_addr = INADDR_ANY;
+ }
+
++ASIO_DECL
+ endpoint::endpoint(int family, unsigned short port_num)
+ : data_()
+ {
+@@ -62,6 +64,7 @@ endpoint::endpoint(int family, unsigned short port_num)
+ }
+ }
+
++ASIO_DECL
+ endpoint::endpoint(const asio::ip::address& addr,
+ unsigned short port_num)
+ : data_()
+@@ -89,6 +92,7 @@ endpoint::endpoint(const asio::ip::address& addr,
+ }
+ }
+
++ASIO_DECL
+ void endpoint::resize(std::size_t size)
+ {
+ if (size > sizeof(asio::detail::sockaddr_storage_type))
+@@ -98,6 +102,7 @@ void endpoint::resize(std::size_t size)
+ }
+ }
+
++ASIO_DECL
+ unsigned short endpoint::port() const
+ {
+ if (is_v4())
+@@ -112,6 +117,7 @@ unsigned short endpoint::port() const
+ }
+ }
+
++ASIO_DECL
+ void endpoint::port(unsigned short port_num)
+ {
+ if (is_v4())
+@@ -126,6 +132,7 @@ void endpoint::port(unsigned short port_num)
+ }
+ }
+
++ASIO_DECL
+ asio::ip::address endpoint::address() const
+ {
+ using namespace std; // For memcpy.
+@@ -143,17 +150,20 @@ asio::ip::address endpoint::address() const
+ }
+ }
+
++ASIO_DECL
+ void endpoint::address(const asio::ip::address& addr)
+ {
+ endpoint tmp_endpoint(addr, port());
+ data_ = tmp_endpoint.data_;
+ }
+
++ASIO_DECL
+ bool operator==(const endpoint& e1, const endpoint& e2)
+ {
+ return e1.address() == e2.address() && e1.port() == e2.port();
+ }
+
++ASIO_DECL
+ bool operator<(const endpoint& e1, const endpoint& e2)
+ {
+ if (e1.address() < e2.address())
+@@ -164,6 +174,7 @@ bool operator<(const endpoint& e1, const endpoint& e2)
+ }
+
+ #if !defined(BOOST_NO_IOSTREAM)
++ASIO_DECL
+ std::string endpoint::to_string(asio::error_code& ec) const
+ {
+ std::string a = address().to_string(ec);
+--- a/include//asio/ip/impl/address.ipp
++++ b/include//asio/ip/impl/address.ipp
+@@ -28,6 +28,7 @@
+ namespace asio {
+ namespace ip {
+
++ASIO_DECL
+ address::address()
+ : type_(ipv4),
+ ipv4_address_(),
+@@ -35,6 +36,7 @@ address::address()
+ {
+ }
+
++ASIO_DECL
+ address::address(const asio::ip::address_v4& ipv4_address)
+ : type_(ipv4),
+ ipv4_address_(ipv4_address),
+@@ -42,6 +44,7 @@ address::address(const asio::ip::address_v4& ipv4_address)
+ {
+ }
+
++ASIO_DECL
+ address::address(const asio::ip::address_v6& ipv6_address)
+ : type_(ipv6),
+ ipv4_address_(),
+@@ -49,6 +52,7 @@ address::address(const asio::ip::address_v6& ipv6_address)
+ {
+ }
+
++ASIO_DECL
+ address::address(const address& other)
+ : type_(other.type_),
+ ipv4_address_(other.ipv4_address_),
+@@ -56,6 +60,7 @@ address::address(const address& other)
+ {
+ }
+
++ASIO_DECL
+ address& address::operator=(const address& other)
+ {
+ type_ = other.type_;
+@@ -64,6 +69,7 @@ address& address::operator=(const address& other)
+ return *this;
+ }
+
++ASIO_DECL
+ address& address::operator=(const asio::ip::address_v4& ipv4_address)
+ {
+ type_ = ipv4;
+@@ -72,6 +78,7 @@ address& address::operator=(const asio::ip::address_v4& ipv4_address)
+ return *this;
+ }
+
++ASIO_DECL
+ address& address::operator=(const asio::ip::address_v6& ipv6_address)
+ {
+ type_ = ipv6;
+@@ -80,6 +87,7 @@ address& address::operator=(const asio::ip::address_v6& ipv6_address)
+ return *this;
+ }
+
++ASIO_DECL
+ asio::ip::address_v4 address::to_v4() const
+ {
+ if (type_ != ipv4)
+@@ -90,6 +98,7 @@ asio::ip::address_v4 address::to_v4() const
+ return ipv4_address_;
+ }
+
++ASIO_DECL
+ asio::ip::address_v6 address::to_v6() const
+ {
+ if (type_ != ipv6)
+@@ -100,6 +109,7 @@ asio::ip::address_v6 address::to_v6() const
+ return ipv6_address_;
+ }
+
++ASIO_DECL
+ std::string address::to_string() const
+ {
+ if (type_ == ipv6)
+@@ -107,6 +117,7 @@ std::string address::to_string() const
+ return ipv4_address_.to_string();
+ }
+
++ASIO_DECL
+ std::string address::to_string(asio::error_code& ec) const
+ {
+ if (type_ == ipv6)
+@@ -114,6 +125,7 @@ std::string address::to_string(asio::error_code& ec) const
+ return ipv4_address_.to_string(ec);
+ }
+
++ASIO_DECL
+ address address::from_string(const char* str)
+ {
+ asio::error_code ec;
+@@ -122,6 +134,7 @@ address address::from_string(const char* str)
+ return addr;
+ }
+
++ASIO_DECL
+ address address::from_string(const char* str, asio::error_code& ec)
+ {
+ asio::ip::address_v6 ipv6_address =
+@@ -147,17 +160,20 @@ address address::from_string(const char* str, asio::error_code& ec)
+ return address();
+ }
+
++ASIO_DECL
+ address address::from_string(const std::string& str)
+ {
+ return from_string(str.c_str());
+ }
+
++ASIO_DECL
+ address address::from_string(const std::string& str,
+ asio::error_code& ec)
+ {
+ return from_string(str.c_str(), ec);
+ }
+
++ASIO_DECL
+ bool operator==(const address& a1, const address& a2)
+ {
+ if (a1.type_ != a2.type_)
+@@ -167,6 +183,7 @@ bool operator==(const address& a1, const address& a2)
+ return a1.ipv4_address_ == a2.ipv4_address_;
+ }
+
++ASIO_DECL
+ bool operator<(const address& a1, const address& a2)
+ {
+ if (a1.type_ < a2.type_)
+--- a/include//asio/ip/impl/address_v4.ipp
++++ b/include//asio/ip/impl/address_v4.ipp
+@@ -29,6 +29,7 @@
+ namespace asio {
+ namespace ip {
+
++ASIO_DECL
+ address_v4::address_v4(const address_v4::bytes_type& bytes)
+ {
+ #if UCHAR_MAX > 0xFF
+@@ -44,6 +45,7 @@ address_v4::address_v4(const address_v4::bytes_type& bytes)
+ memcpy(&addr_.s_addr, bytes.elems, 4);
+ }
+
++ASIO_DECL
+ address_v4::address_v4(unsigned long addr)
+ {
+ #if ULONG_MAX > 0xFFFFFFFF
+@@ -57,6 +59,7 @@ address_v4::address_v4(unsigned long addr)
+ addr_.s_addr = asio::detail::socket_ops::host_to_network_long(addr);
+ }
+
++ASIO_DECL
+ address_v4::bytes_type address_v4::to_bytes() const
+ {
+ using namespace std; // For memcpy.
+@@ -65,11 +68,13 @@ address_v4::bytes_type address_v4::to_bytes() const
+ return bytes;
+ }
+
++ASIO_DECL
+ unsigned long address_v4::to_ulong() const
+ {
+ return asio::detail::socket_ops::network_to_host_long(addr_.s_addr);
+ }
+
++ASIO_DECL
+ std::string address_v4::to_string() const
+ {
+ asio::error_code ec;
+@@ -78,6 +83,7 @@ std::string address_v4::to_string() const
+ return addr;
+ }
+
++ASIO_DECL
+ std::string address_v4::to_string(asio::error_code& ec) const
+ {
+ char addr_str[asio::detail::max_addr_v4_str_len];
+@@ -89,6 +95,7 @@ std::string address_v4::to_string(asio::error_code& ec) const
+ return addr;
+ }
+
++ASIO_DECL
+ address_v4 address_v4::from_string(const char* str)
+ {
+ asio::error_code ec;
+@@ -97,6 +104,7 @@ address_v4 address_v4::from_string(const char* str)
+ return addr;
+ }
+
++ASIO_DECL
+ address_v4 address_v4::from_string(
+ const char* str, asio::error_code& ec)
+ {
+@@ -107,42 +115,50 @@ address_v4 address_v4::from_string(
+ return tmp;
+ }
+
++ASIO_DECL
+ address_v4 address_v4::from_string(const std::string& str)
+ {
+ return from_string(str.c_str());
+ }
+
++ASIO_DECL
+ address_v4 address_v4::from_string(
+ const std::string& str, asio::error_code& ec)
+ {
+ return from_string(str.c_str(), ec);
+ }
+
++ASIO_DECL
+ bool address_v4::is_class_a() const
+ {
+ return IN_CLASSA(to_ulong());
+ }
+
++ASIO_DECL
+ bool address_v4::is_class_b() const
+ {
+ return IN_CLASSB(to_ulong());
+ }
+
++ASIO_DECL
+ bool address_v4::is_class_c() const
+ {
+ return IN_CLASSC(to_ulong());
+ }
+
++ASIO_DECL
+ bool address_v4::is_multicast() const
+ {
+ return IN_MULTICAST(to_ulong());
+ }
+
++ASIO_DECL
+ address_v4 address_v4::broadcast(const address_v4& addr, const address_v4& mask)
+ {
+ return address_v4(addr.to_ulong() | (mask.to_ulong() ^ 0xFFFFFFFF));
+ }
+
++ASIO_DECL
+ address_v4 address_v4::netmask(const address_v4& addr)
+ {
+ if (addr.is_class_a())
+--- a/include//asio/ip/impl/address_v6.ipp
++++ b/include//asio/ip/impl/address_v6.ipp
+@@ -30,6 +30,7 @@
+ namespace asio {
+ namespace ip {
+
++ASIO_DECL
+ address_v6::address_v6()
+ : scope_id_(0)
+ {
+@@ -37,6 +38,7 @@ address_v6::address_v6()
+ addr_ = tmp_addr;
+ }
+
++ASIO_DECL
+ address_v6::address_v6(const address_v6::bytes_type& bytes,
+ unsigned long scope_id)
+ : scope_id_(scope_id)
+@@ -56,12 +58,14 @@ address_v6::address_v6(const address_v6::bytes_type& bytes,
+ memcpy(addr_.s6_addr, bytes.elems, 16);
+ }
+
++ASIO_DECL
+ address_v6::address_v6(const address_v6& other)
+ : addr_(other.addr_),
+ scope_id_(other.scope_id_)
+ {
+ }
+
++ASIO_DECL
+ address_v6& address_v6::operator=(const address_v6& other)
+ {
+ addr_ = other.addr_;
+@@ -69,6 +73,7 @@ address_v6& address_v6::operator=(const address_v6& other)
+ return *this;
+ }
+
++ASIO_DECL
+ address_v6::bytes_type address_v6::to_bytes() const
+ {
+ using namespace std; // For memcpy.
+@@ -77,6 +82,7 @@ address_v6::bytes_type address_v6::to_bytes() const
+ return bytes;
+ }
+
++ASIO_DECL
+ std::string address_v6::to_string() const
+ {
+ asio::error_code ec;
+@@ -85,6 +91,7 @@ std::string address_v6::to_string() const
+ return addr;
+ }
+
++ASIO_DECL
+ std::string address_v6::to_string(asio::error_code& ec) const
+ {
+ char addr_str[asio::detail::max_addr_v6_str_len];
+@@ -96,6 +103,7 @@ std::string address_v6::to_string(asio::error_code& ec) const
+ return addr;
+ }
+
++ASIO_DECL
+ address_v6 address_v6::from_string(const char* str)
+ {
+ asio::error_code ec;
+@@ -104,6 +112,7 @@ address_v6 address_v6::from_string(const char* str)
+ return addr;
+ }
+
++ASIO_DECL
+ address_v6 address_v6::from_string(
+ const char* str, asio::error_code& ec)
+ {
+@@ -114,17 +123,20 @@ address_v6 address_v6::from_string(
+ return tmp;
+ }
+
++ASIO_DECL
+ address_v6 address_v6::from_string(const std::string& str)
+ {
+ return from_string(str.c_str());
+ }
+
++ASIO_DECL
+ address_v6 address_v6::from_string(
+ const std::string& str, asio::error_code& ec)
+ {
+ return from_string(str.c_str(), ec);
+ }
+
++ASIO_DECL
+ address_v4 address_v6::to_v4() const
+ {
+ if (!is_v4_mapped() && !is_v4_compatible())
+@@ -138,6 +150,7 @@ address_v4 address_v6::to_v4() const
+ return address_v4(v4_bytes);
+ }
+
++ASIO_DECL
+ bool address_v6::is_loopback() const
+ {
+ #if defined(__BORLANDC__)
+@@ -155,6 +168,7 @@ bool address_v6::is_loopback() const
+ #endif
+ }
+
++ASIO_DECL
+ bool address_v6::is_unspecified() const
+ {
+ #if defined(__BORLANDC__)
+@@ -172,66 +186,77 @@ bool address_v6::is_unspecified() const
+ #endif
+ }
+
++ASIO_DECL
+ bool address_v6::is_link_local() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_LINKLOCAL(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_site_local() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_SITELOCAL(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_v4_mapped() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_V4MAPPED(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_v4_compatible() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_V4COMPAT(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_multicast() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_MULTICAST(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_multicast_global() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_MC_GLOBAL(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_multicast_link_local() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_MC_LINKLOCAL(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_multicast_node_local() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_MC_NODELOCAL(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_multicast_org_local() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_MC_ORGLOCAL(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool address_v6::is_multicast_site_local() const
+ {
+ using namespace asio::detail;
+ return IN6_IS_ADDR_MC_SITELOCAL(&addr_) != 0;
+ }
+
++ASIO_DECL
+ bool operator==(const address_v6& a1, const address_v6& a2)
+ {
+ using namespace std; // For memcmp.
+@@ -240,6 +265,7 @@ bool operator==(const address_v6& a1, const address_v6& a2)
+ && a1.scope_id_ == a2.scope_id_;
+ }
+
++ASIO_DECL
+ bool operator<(const address_v6& a1, const address_v6& a2)
+ {
+ using namespace std; // For memcmp.
+@@ -252,6 +278,7 @@ bool operator<(const address_v6& a1, const address_v6& a2)
+ return a1.scope_id_ < a2.scope_id_;
+ }
+
++ASIO_DECL
+ address_v6 address_v6::loopback()
+ {
+ address_v6 tmp;
+@@ -260,6 +287,7 @@ address_v6 address_v6::loopback()
+ return tmp;
+ }
+
++ASIO_DECL
+ address_v6 address_v6::v4_mapped(const address_v4& addr)
+ {
+ address_v4::bytes_type v4_bytes = addr.to_bytes();
+@@ -268,6 +296,7 @@ address_v6 address_v6::v4_mapped(const address_v4& addr)
+ return address_v6(v6_bytes);
+ }
+
++ASIO_DECL
+ address_v6 address_v6::v4_compatible(const address_v4& addr)
+ {
+ address_v4::bytes_type v4_bytes = addr.to_bytes();
+--- a/include//asio/ip/impl/host_name.ipp
++++ b/include//asio/ip/impl/host_name.ipp
+@@ -26,6 +26,7 @@
+ namespace asio {
+ namespace ip {
+
++ASIO_DECL
+ std::string host_name()
+ {
+ char name[1024];
+@@ -38,6 +39,7 @@ std::string host_name()
+ return std::string(name);
+ }
+
++ASIO_DECL
+ std::string host_name(asio::error_code& ec)
+ {
+ char name[1024];
+--- a/include//asio/local/detail/impl/endpoint.ipp
++++ b/include//asio/local/detail/impl/endpoint.ipp
+@@ -32,22 +32,26 @@ namespace asio {
+ namespace local {
+ namespace detail {
+
++ASIO_DECL
+ endpoint::endpoint()
+ {
+ init("", 0);
+ }
+
++ASIO_DECL
+ endpoint::endpoint(const char* path)
+ {
+ using namespace std; // For strlen.
+ init(path, strlen(path));
+ }
+
++ASIO_DECL
+ endpoint::endpoint(const std::string& path)
+ {
+ init(path.data(), path.length());
+ }
+
++ASIO_DECL
+ void endpoint::resize(std::size_t size)
+ {
+ if (size > sizeof(asio::detail::sockaddr_un_type))
+@@ -70,32 +74,38 @@ void endpoint::resize(std::size_t size)
+ }
+ }
+
++ASIO_DECL
+ std::string endpoint::path() const
+ {
+ return std::string(data_.local.sun_path, path_length_);
+ }
+
++ASIO_DECL
+ void endpoint::path(const char* p)
+ {
+ using namespace std; // For strlen.
+ init(p, strlen(p));
+ }
+
++ASIO_DECL
+ void endpoint::path(const std::string& p)
+ {
+ init(p.data(), p.length());
+ }
+
++ASIO_DECL
+ bool operator==(const endpoint& e1, const endpoint& e2)
+ {
+ return e1.path() == e2.path();
+ }
+
++ASIO_DECL
+ bool operator<(const endpoint& e1, const endpoint& e2)
+ {
+ return e1.path() < e2.path();
+ }
+
++ASIO_DECL
+ void endpoint::init(const char* path, std::size_t path_length)
+ {
+ if (path_length > sizeof(data_.local.sun_path) - 1)
diff --git a/dev-cpp/asio/metadata.xml b/dev-cpp/asio/metadata.xml
new file mode 100644
index 00000000000..2668b42f0ad
--- /dev/null
+++ b/dev-cpp/asio/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+ <upstream>
+ <remote-id type="sourceforge">asio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/atkmm/Manifest b/dev-cpp/atkmm/Manifest
new file mode 100644
index 00000000000..daaff94f10d
--- /dev/null
+++ b/dev-cpp/atkmm/Manifest
@@ -0,0 +1 @@
+DIST atkmm-2.22.7.tar.xz 392184 SHA256 bfbf846b409b4c5eb3a52fa32a13d86936021969406b3dcafd4dd05abd70f91b SHA512 8d34f30325b984c829b0354ea9ab85cc7edfdd1b4f160322122637c51542f43aa71f1e80adf1a54f9e2fcdd16172e118b61c3759b296824ab3a6cc3f0d4ffed2 WHIRLPOOL 6bf6dc505b38ad9b7d8c955065c2cf084283d1f57fdc459d1019c60913ee02ae9df5ec6c70e1abb914542d0724f08690a44a0ffa07bcf05409baabd985fbfed5
diff --git a/dev-cpp/atkmm/atkmm-2.22.7-r1.ebuild b/dev-cpp/atkmm/atkmm-2.22.7-r1.ebuild
new file mode 100644
index 00000000000..d77966f2b08
--- /dev/null
+++ b/dev-cpp/atkmm/atkmm-2.22.7-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+#GNOME2_LA_PUNT="yes"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for the ATK library"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+COMMON_DEPEND="
+ >=dev-cpp/glibmm-2.36.0:2[doc?,${MULTILIB_USEDEP}]
+ >=dev-libs/atk-2.8.0[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ !<dev-cpp/gtkmm-2.22.0
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(multilib_native_use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
diff --git a/dev-cpp/atkmm/atkmm-2.22.7.ebuild b/dev-cpp/atkmm/atkmm-2.22.7.ebuild
new file mode 100644
index 00000000000..d9312f91daf
--- /dev/null
+++ b/dev-cpp/atkmm/atkmm-2.22.7.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+#GNOME2_LA_PUNT="yes"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for the ATK library"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-cpp/glibmm-2.36.0:2[doc?]
+ >=dev-libs/atk-1.12
+ dev-libs/libsigc++:2
+ !<dev-cpp/gtkmm-2.22.0
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+src_configure() {
+ gnome2_src_configure $(use_enable doc documentation)
+}
diff --git a/dev-cpp/atkmm/metadata.xml b/dev-cpp/atkmm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/atkmm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/cairomm/Manifest b/dev-cpp/cairomm/Manifest
new file mode 100644
index 00000000000..6a829393b2c
--- /dev/null
+++ b/dev-cpp/cairomm/Manifest
@@ -0,0 +1 @@
+DIST cairomm-1.10.0.tar.gz 1089577 SHA256 068d96c43eae7b0a3d98648cbfc6fbd16acc385858e9ba6d37b5a47e4dba398f SHA512 974b1c078c8d7b82f8d026e384811c016fa95cb62942fc12717edd993cb1660bc004bee5f8ce31c0540ef8d4105a2d86cd461ed3f5e996fd3faf65dfb37ac9e2 WHIRLPOOL 4fdea4df681b340729b64241baa84bc2171e6d98e2d277f13c8e51cee121bf7d3adef85e3d189d6e549213694a08ee72dafb2744c63377599491addcf609b447
diff --git a/dev-cpp/cairomm/cairomm-1.10.0-r1.ebuild b/dev-cpp/cairomm/cairomm-1.10.0-r1.ebuild
new file mode 100644
index 00000000000..3aa2f263ddd
--- /dev/null
+++ b/dev-cpp/cairomm/cairomm-1.10.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+
+inherit eutils gnome2 multilib-minimal
+
+DESCRIPTION="C++ bindings for the Cairo vector graphics library"
+HOMEPAGE="http://cairographics.org/cairomm"
+SRC_URI="http://cairographics.org/releases/${P}.tar.gz"
+
+LICENSE="LGPL-2+"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="doc +svg"
+
+# FIXME: svg support is automagic
+COMMON_DEPEND="
+ >=x11-libs/cairo-1.12.10[svg?,${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz )
+"
+
+src_prepare() {
+ # don't waste time building examples because they are marked as "noinst"
+ sed -i 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' Makefile.in || die
+
+ # don't waste time building tests
+ # they require the boost Unit Testing framework, that's not in base boost
+ sed -i 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' Makefile.in || die
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ --disable-tests \
+ $(multilib_native_use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
diff --git a/dev-cpp/cairomm/cairomm-1.10.0.ebuild b/dev-cpp/cairomm/cairomm-1.10.0.ebuild
new file mode 100644
index 00000000000..337a570e004
--- /dev/null
+++ b/dev-cpp/cairomm/cairomm-1.10.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+
+inherit eutils gnome2
+
+DESCRIPTION="C++ bindings for the Cairo vector graphics library"
+HOMEPAGE="http://cairographics.org/cairomm"
+SRC_URI="http://cairographics.org/releases/${P}.tar.gz"
+
+LICENSE="LGPL-2+"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="doc +svg"
+
+# FIXME: svg support is automagic
+RDEPEND="
+ >=x11-libs/cairo-1.10[svg?]
+ dev-libs/libsigc++:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz )
+"
+
+src_prepare() {
+ # don't waste time building examples because they are marked as "noinst"
+ sed -i 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' Makefile.in || die
+
+ # don't waste time building tests
+ # they require the boost Unit Testing framework, that's not in base boost
+ sed -i 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' Makefile.in || die
+
+ # Fix docs installation, bug #443950
+ sed -i 's:libdocdir = \$(datarootdir)/doc/\$(book_name):libdocdir = \$(docdir):' docs/Makefile.in || die
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ --disable-tests \
+ $(use_enable doc documentation)
+}
diff --git a/dev-cpp/cairomm/metadata.xml b/dev-cpp/cairomm/metadata.xml
new file mode 100644
index 00000000000..2f851f5940a
--- /dev/null
+++ b/dev-cpp/cairomm/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
diff --git a/dev-cpp/clucene/Manifest b/dev-cpp/clucene/Manifest
new file mode 100644
index 00000000000..c53b640dac0
--- /dev/null
+++ b/dev-cpp/clucene/Manifest
@@ -0,0 +1 @@
+DIST clucene-core-2.3.3.4.tar.gz 2241498 SHA256 ddfdc433dd8ad31b5c5819cc4404a8d2127472a3b720d3e744e8c51d79732eab SHA512 1c9da9077edcebd46563bd9e47d330518e0b30061016650a759cfe051e9748fdad8932a472b1cca53a6adafed5f41656527271fc5f55ddfcefb558f0d83286b4 WHIRLPOOL d9e80807b6a1a9afb318be5e795af1edf1ba60734a33c4ee3a9be95863cb97bd13f6d7e144ddff631a5deebce890ef002f3196fe511c57a33f94db29a56c6315
diff --git a/dev-cpp/clucene/clucene-2.3.3.4-r5.ebuild b/dev-cpp/clucene/clucene-2.3.3.4-r5.ebuild
new file mode 100644
index 00000000000..ce7f2ba5efe
--- /dev/null
+++ b/dev-cpp/clucene/clucene-2.3.3.4-r5.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_PN="${PN}"-core
+MY_P="${MY_PN}"-"${PV}"
+
+inherit base cmake-utils multilib
+
+DESCRIPTION="High-performance, full-featured text search engine based off of lucene in C++"
+HOMEPAGE="http://clucene.sourceforge.net/"
+SRC_URI="mirror://sourceforge/clucene/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-2.1 )"
+SLOT="1"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos"
+
+IUSE="debug doc static-libs"
+
+DEPEND="
+ doc? ( >=app-doc/doxygen-1.4.2 )
+"
+RDEPEND="!<app-misc/strigi-0.7.5-r3"
+
+RESTRICT="test"
+
+DOCS=(AUTHORS ChangeLog README README.PACKAGE REQUESTS)
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-contrib.patch"
+ "${FILESDIR}/${P}-pkgconfig.patch"
+)
+
+src_prepare() {
+ base_src_prepare
+
+ # patch out installing bundled boost headers, we build against system one
+ sed -i \
+ -e '/ADD_SUBDIRECTORY (src\/ext)/d' \
+ CMakeLists.txt || die
+ rm -rf src/ext || die
+}
+
+src_configure() {
+ # Disabled threads: see upstream bug
+ # https://sourceforge.net/tracker/?func=detail&aid=3237301&group_id=80013&atid=558446
+ local mycmakeargs=(
+ -DENABLE_ASCII_MODE=OFF
+ -DENABLE_PACKAGING=OFF
+ -DDISABLE_MULTITHREADING=OFF
+ -DBUILD_CONTRIBS_LIB=ON
+ "-DLIB_DESTINATION=${EPREFIX}/usr/$(get_libdir)"
+ $(cmake-utils_use_enable debug)
+ $(cmake-utils_use_enable doc CLDOCS)
+ $(cmake-utils_use_build static-libs STATIC_LIBRARIES)
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/clucene/files/clucene-2.3.3.4-contrib.patch b/dev-cpp/clucene/files/clucene-2.3.3.4-contrib.patch
new file mode 100644
index 00000000000..8fbb3c7164a
--- /dev/null
+++ b/dev-cpp/clucene/files/clucene-2.3.3.4-contrib.patch
@@ -0,0 +1,42 @@
+diff -NaurpBb clucene-core-2.3.3.4/CMakeLists.txt clucene-core-2.3.3.4-mod/CMakeLists.txt
+--- clucene-core-2.3.3.4/CMakeLists.txt 2011-03-17 03:21:07.000000000 +0300
++++ clucene-core-2.3.3.4-mod/CMakeLists.txt 2011-08-16 16:56:55.968268152 +0400
+@@ -163,7 +163,7 @@ IF ( BUILD_CONTRIBS )
+ SET(BUILD_CONTRIBS_LIB 1)
+ ENDIF ( BUILD_CONTRIBS )
+ IF ( BUILD_CONTRIBS_LIB )
+- ADD_SUBDIRECTORY (src/contribs-lib EXCLUDE_FROM_ALL)
++ ADD_SUBDIRECTORY (src/contribs-lib)
+ ENDIF ( BUILD_CONTRIBS_LIB )
+
+
+diff -NaurpBb clucene-core-2.3.3.4/src/contribs-lib/CMakeLists.txt clucene-core-2.3.3.4-mod/src/contribs-lib/CMakeLists.txt
+--- clucene-core-2.3.3.4/src/contribs-lib/CMakeLists.txt 2011-03-17 03:21:07.000000000 +0300
++++ clucene-core-2.3.3.4-mod/src/contribs-lib/CMakeLists.txt 2011-08-16 17:14:13.499275499 +0400
+@@ -106,9 +106,26 @@ add_library(clucene-contribs-lib SHARED
+ )
+ TARGET_LINK_LIBRARIES(clucene-contribs-lib ${clucene_contrib_extra_libs})
+
++#install public headers.
++FOREACH(file ${HEADERS})
++ get_filename_component(apath ${file} PATH)
++ get_filename_component(aname ${file} NAME)
++ file(RELATIVE_PATH relpath ${CMAKE_SOURCE_DIR}/src/contribs-lib ${apath})
++ IF ( NOT aname MATCHES "^_.*" )
++ install(FILES ${file}
++ DESTINATION include/${relpath}
++ COMPONENT development)
++ ENDIF ( NOT aname MATCHES "^_.*" )
++ENDFOREACH(file)
++
+ #set properties on the libraries
+ SET_TARGET_PROPERTIES(clucene-contribs-lib PROPERTIES
+ VERSION ${CLUCENE_VERSION}
+ SOVERSION ${CLUCENE_SOVERSION}
+ COMPILE_DEFINITIONS_DEBUG _DEBUG
+ )
++
++#and install library
++install(TARGETS clucene-contribs-lib
++ DESTINATION ${LIB_DESTINATION}
++ COMPONENT runtime )
diff --git a/dev-cpp/clucene/files/clucene-2.3.3.4-pkgconfig.patch b/dev-cpp/clucene/files/clucene-2.3.3.4-pkgconfig.patch
new file mode 100644
index 00000000000..14563628ea4
--- /dev/null
+++ b/dev-cpp/clucene/files/clucene-2.3.3.4-pkgconfig.patch
@@ -0,0 +1,12 @@
+diff -up clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake.pkgconfig_sys_includes clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake
+--- clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake.pkgconfig_sys_includes 2011-03-16 19:21:07.000000000 -0500
++++ clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake 2012-03-19 09:01:00.689263954 -0500
+@@ -6,6 +6,6 @@ includedir=${prefix}/include:${prefix}/i
+ Name: libclucene
+ Description: CLucene - a C++ search engine, ported from the popular Apache Lucene
+ Version: @CLUCENE_VERSION_MAJOR@.@CLUCENE_VERSION_MINOR@.@CLUCENE_VERSION_REVISION@.@CLUCENE_VERSION_PATCH@
+-Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core
+-Cflags: -I${prefix}/include -I${prefix}/include/CLucene/ext
++Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core -lclucene-shared
++Cflags: -I${prefix}/include -I${prefix}/include/CLucene/ext
+ ~
diff --git a/dev-cpp/clucene/metadata.xml b/dev-cpp/clucene/metadata.xml
new file mode 100644
index 00000000000..feff5816db2
--- /dev/null
+++ b/dev-cpp/clucene/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>kde</herd>
+ <upstream>
+ <remote-id type="sourceforge">clucene</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/commoncpp2/Manifest b/dev-cpp/commoncpp2/Manifest
new file mode 100644
index 00000000000..28191af1f23
--- /dev/null
+++ b/dev-cpp/commoncpp2/Manifest
@@ -0,0 +1 @@
+DIST commoncpp2-1.8.1.tar.gz 908678 SHA256 53ced4aff74e28a1d8018eb2b4974519028db3c12471ab6dff1c873578c9af4e SHA512 949823461d20429c2b0acfa22554a5a9dacc977e3ee097f34416f65d322df84fbdb27c644435c6c6caaed800347dfbe789cee7f19b39b306165c97b4f4012bfe WHIRLPOOL 1844cf39ce0a087aaea1cfac1e712b52f81de594278facb70306d68cd3e3343c0d2c581886b4fe3ce7607eb52150c5cf1c9558d0fac0ee7d8730eff39b46bb64
diff --git a/dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild b/dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild
new file mode 100644
index 00000000000..721cee3d28d
--- /dev/null
+++ b/dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils autotools
+
+DESCRIPTION="C++ framework offering portable support for threading, sockets, file access, daemons, persistence, serial I/O, XML parsing, and system services"
+SRC_URI="mirror://gnu/commoncpp/${P}.tar.gz"
+HOMEPAGE="http://www.gnu.org/software/commoncpp/"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE="debug doc examples ipv6 gnutls ssl static-libs"
+REQUIRED_USE="gnutls? ( ssl )"
+
+RDEPEND="ssl? ( gnutls? ( dev-libs/libgcrypt:0
+ net-libs/gnutls )
+ !gnutls? ( dev-libs/openssl ) )
+ sys-libs/zlib"
+DEPEND="doc? ( >=app-doc/doxygen-1.3.6 )
+ ${RDEPEND}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/1.8.1-configure_detect_netfilter.patch" \
+ "${FILESDIR}/1.8.0-glibc212.patch" \
+ "${FILESDIR}/1.8.1-autoconf-update.patch" \
+ "${FILESDIR}/1.8.1-fix-buffer-overflow.patch" \
+ "${FILESDIR}/1.8.1-parallel-build.patch"
+ eautoreconf
+}
+
+src_configure() {
+ use doc || \
+ sed -i "s/^DOXYGEN=.*/DOXYGEN=no/" configure || die "sed failed"
+
+ local myconf
+
+ if use gnutls; then
+ myconf="--with-gnutls"
+ else
+ use ssl && myconf="--with-openssl"
+ fi
+
+ econf \
+ $(use_enable debug) \
+ $(use_with ipv6) \
+ $(use_enable static-libs static) \
+ ${myconf}
+}
+
+src_install () {
+ default
+ prune_libtool_files
+
+ dodoc COPYING.addendum
+
+ # Only install html docs
+ # man and latex available, but seems a little wasteful
+ use doc && dohtml doc/html/*
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples
+ cd demo
+ doins *.cpp *.h *.xml README
+ fi
+}
+
+# Some of the tests hang forever
+#src_test() {
+# cd "${S}/tests"
+# emake || die "emake tests failed"
+# ./test.sh || die "tests failed"
+#}
diff --git a/dev-cpp/commoncpp2/files/1.8.0-glibc212.patch b/dev-cpp/commoncpp2/files/1.8.0-glibc212.patch
new file mode 100644
index 00000000000..a29e154a20e
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.0-glibc212.patch
@@ -0,0 +1,12 @@
+http://bugs.gentoo.org/334135
+
+--- src/applog.cpp
++++ src/applog.cpp
+@@ -44,6 +44,7 @@
+ #include <cstdio>
+ #include <stdarg.h>
+ #include <errno.h>
++#include <sys/stat.h>
+
+ // TODO sc: test if has to move up now that it is into commoncpp
+ // NOTE: the order of inclusion is important do not move following include line
diff --git a/dev-cpp/commoncpp2/files/1.8.1-autoconf-update.patch b/dev-cpp/commoncpp2/files/1.8.1-autoconf-update.patch
new file mode 100644
index 00000000000..d50a3405ee6
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-autoconf-update.patch
@@ -0,0 +1,49 @@
+diff --git a/configure.ac b/configure.ac
+index 80518db..64221e0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,7 +9,8 @@
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+-AC_INIT(src/thread.cpp)
++AC_INIT
++AC_CONFIG_SRCDIR([src/thread.cpp])
+ AC_CONFIG_MACRO_DIR([m4])
+ m4_pattern_allow(LT_VERSION)
+
+@@ -81,17 +82,17 @@ fi
+ AC_SUBST(ccincludedir)
+
+ AC_CONFIG_AUX_DIR(autoconf)
+-AC_CANONICAL_SYSTEM
++AC_CANONICAL_TARGET
+ AC_PROG_CPP
+ AC_PROG_CC
+ AC_PROG_CXXCPP
+ AC_PROG_CXX
+ OST_PROG_CC_POSIX
+ NP_PROG_MSC
+-AC_LIBTOOL_WIN32_DLL
+-AM_PROG_LIBTOOL
++
++LT_INIT([win32-dll,disable-static])
+ AM_INIT_AUTOMAKE(commoncpp2, [$VERSION])
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS([config.h])
+
+ AC_C_RESTRICT
+ AC_C_VOLATILE
+@@ -408,10 +409,11 @@ LIB_MAJOR=`echo $LT_VERSION | sed -e 's/[:].*$//'`
+ AC_SUBST(LIB_VERSION)
+ AC_SUBST(LIB_MAJOR)
+
+-AC_OUTPUT([src/ccgnu2-config src/libccext2.pc src/libccgnu2.pc
++AC_CONFIG_FILES([src/ccgnu2-config src/libccext2.pc src/libccgnu2.pc
+ src/Makefile w32/Makefile w32/vs2008/Makefile w32/vs2008/ccext2.vcproj w32/vs2008/ccgnu2.vcproj w32/vs2008/common.sln m4/Makefile doc/Doxyfile
+ doc/Makefile demo/Makefile inc/Makefile inc/cc++/Makefile Makefile
+ commoncpp2.spec tests/Makefile commoncpp2.list w32/ccgnu2.dsp w32/ccext2.dsp w32/ccgnu2.vcproj w32/ccext2.vcproj])
++AC_OUTPUT
+
+ # if test ! -f inc/cc++/thread.h ; then
+ # cp ${srcdir}/inc/cc++/*.h inc/cc++ ; fi
diff --git a/dev-cpp/commoncpp2/files/1.8.1-configure_detect_netfilter.patch b/dev-cpp/commoncpp2/files/1.8.1-configure_detect_netfilter.patch
new file mode 100644
index 00000000000..b6ebf0e0f4a
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-configure_detect_netfilter.patch
@@ -0,0 +1,14 @@
+diff --git a/m4/ost_socket.m4 b/m4/ost_socket.m4
+index bd9db7c..122c938 100644
+--- a/m4/ost_socket.m4
++++ b/m4/ost_socket.m4
+@@ -93,6 +93,9 @@ AC_DEFUN([OST_SYS_SOCKET],[
+ AC_CHECK_HEADERS([linux/netfilter_ipv4.h linux/netfilter_ipv6.h],,,
+ [#ifdef HAVE_LIMITS_H
+ #include <limits.h>
++ #endif
++ #ifdef HAVE_NETINET_IN_H
++ #include <netinet/in.h>
+ #endif])
+ if test "$ac_cv_header_linux_netfilter_ipv4_h" = "yes" &&
+ [ test "$ac_cv_header_linux_netfilter_ipv6_h" = "yes" &&
diff --git a/dev-cpp/commoncpp2/files/1.8.1-fix-buffer-overflow.patch b/dev-cpp/commoncpp2/files/1.8.1-fix-buffer-overflow.patch
new file mode 100644
index 00000000000..e68b00576cd
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-fix-buffer-overflow.patch
@@ -0,0 +1,13 @@
+diff --git a/src/inaddr.cpp b/src/inaddr.cpp
+index 5a4b9c4..50127f3 100644
+--- a/src/inaddr.cpp
++++ b/src/inaddr.cpp
+@@ -333,7 +333,7 @@ void IPV4Address::setAddress(const char *host)
+ if(ipaddr)
+ delete[] ipaddr;
+ ipaddr = new struct in_addr[1];
+- memset((void *)&ipaddr[0], 0, sizeof(ipaddr));
++ memset((void *)&ipaddr[0], 0, sizeof(*ipaddr));
+ return;
+ }
+
diff --git a/dev-cpp/commoncpp2/files/1.8.1-parallel-build.patch b/dev-cpp/commoncpp2/files/1.8.1-parallel-build.patch
new file mode 100644
index 00000000000..f131ee1c2c0
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-parallel-build.patch
@@ -0,0 +1,11 @@
+--- src/Makefile.am
++++ src/Makefile.am
+@@ -47,6 +47,7 @@
+
+ if EXTRAS
+ libccext2_la_LIBADD = @THREAD_LIBS@ @BASE_LIB@ @SSL_LIBS@ @ZSTREAM_LIBS@
++libccext2_la_DEPENDENCIES = libccgnu2.la
+ libccext2_la_LDFLAGS = $(RELEASE) $(SHARED_FLAGS)
+
+ if GETOPT_LONG
+
diff --git a/dev-cpp/commoncpp2/metadata.xml b/dev-cpp/commoncpp2/metadata.xml
new file mode 100644
index 00000000000..8434377a604
--- /dev/null
+++ b/dev-cpp/commoncpp2/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>cpp</herd>
+</pkgmetadata>
diff --git a/dev-cpp/ctemplate/Manifest b/dev-cpp/ctemplate/Manifest
new file mode 100644
index 00000000000..2728af65998
--- /dev/null
+++ b/dev-cpp/ctemplate/Manifest
@@ -0,0 +1,3 @@
+DIST ctemplate-2.2.tar.gz 889458 SHA256 04f3cbc0f7ff36adedc904bce776a0817cc6b704b3c4a04b4df5de66fd7e686f SHA512 b8f2cbebb3988ce5248ef3b4c224a02626bbc77e3ab4cff8d2fb967f421000048c0923c8410cc800ed29f5fa68e1172aefcfde1e2a610372462018cb1b6809bb WHIRLPOOL 242972d6fcc7592e18e3adff93a6279c543d8bc10408aa0c6f543e13c92d8597a8888d64dd8b729cc92dc8f758d6aa03020cb494428f5f033a845262213204c2
+DIST ctemplate-2.2_p129.tar.bz2 581172 SHA256 1903533180ed9604e548ee7dfb3b704368bda5ce5e5b84f1e448f966730500d7 SHA512 049ae4a9269f668ae6fc6207609a10609d59d7731c999a2ede191cef26d9203ab32ae87a48d5b08457a83a8dbd2be61621dbb8b2361e2747c63502f4caf4f8e7 WHIRLPOOL 790c2242a003ba8ceba3783be26a6a4a0af71605a6ee867d16eff6771f02b071a51e94d620233420aba6da1a9797a0cebcb9e1dce6626703077546c53873dcad
+DIST ctemplate-2.3.tar.bz2 564389 SHA256 6409e74486888be371cf29900ba757e5443c958295f2099359d5ef6a6acceeec SHA512 546645389a8bfed59686b62b43cb7d53714ac98e1b75311c217bb0f3b6201d5d486766b1ce7e35bf15032372e45c36b27008f54085bd0c9ef0dd0b7e04b8e3f5 WHIRLPOOL 9261906ddb6857a378aa9f86a9cd87b6fcb9c79c442ff2b87ddf92021fdd64140f3cb87cbb2b1f3775fa2f5a0d039d1b4ceca3cf07f1efc841fbfb72e9f1467e
diff --git a/dev-cpp/ctemplate/ctemplate-2.2.ebuild b/dev-cpp/ctemplate/ctemplate-2.2.ebuild
new file mode 100644
index 00000000000..c62907e572e
--- /dev/null
+++ b/dev-cpp/ctemplate/ctemplate-2.2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit elisp-common python
+
+DESCRIPTION="A simple but powerful template language for C++"
+HOMEPAGE="http://code.google.com/p/ctemplate/"
+SRC_URI="http://ctemplate.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ppc x86 ~amd64-linux ~x86-linux"
+IUSE="doc emacs vim-syntax static-libs test"
+
+DEPEND="test? ( =dev-lang/python-2* )"
+RDEPEND="vim-syntax? ( >=app-editors/vim-core-7 )
+ emacs? ( virtual/emacs )"
+
+SITEFILE="70ctemplate-gentoo.el"
+
+pkg_setup() {
+ if use test ; then
+ python_set_active_version 2
+ python_pkg_setup
+ fi
+}
+
+src_configure() {
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+src_compile() {
+ default
+
+ if use emacs ; then
+ elisp-compile contrib/tpl-mode.el || die "elisp-compile failed"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ # Installs just every piece
+ rm -rf "${ED}/usr/share/doc"
+
+ dodoc AUTHORS ChangeLog NEWS README
+ use doc && dohtml doc/*
+
+ if use vim-syntax ; then
+ cd "${S}/contrib"
+ sh highlighting.vim || die "unpacking vim scripts failed"
+ insinto /usr/share/vim/vimfiles
+ doins -r .vim/*
+ fi
+
+ if use emacs ; then
+ cd "${S}/contrib"
+ elisp-install ${PN} tpl-mode.el tpl-mode.elc || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ find "${ED}" -name '*.la' -exec rm -f {} +
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-cpp/ctemplate/ctemplate-2.2_p129.ebuild b/dev-cpp/ctemplate/ctemplate-2.2_p129.ebuild
new file mode 100644
index 00000000000..bb1c86fe2d3
--- /dev/null
+++ b/dev-cpp/ctemplate/ctemplate-2.2_p129.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+AM_OPTS="--force-missing"
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_IN_SOURCE_BUILD=1
+PYTHON_COMPAT=( python2_7 )
+inherit autotools-utils elisp-common python-any-r1
+
+DESCRIPTION="A simple but powerful template language for C++"
+HOMEPAGE="http://code.google.com/p/ctemplate/"
+SRC_URI="http://dev.gentoo.org/~pinkbyte/distfiles/snapshots/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ppc x86 ~amd64-linux ~x86-linux"
+IUSE="doc emacs vim-syntax static-libs test"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="vim-syntax? ( >=app-editors/vim-core-7 )
+ emacs? ( virtual/emacs )"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+SITEFILE="70ctemplate-gentoo.el"
+
+# Some tests are broken in 2.2_p129
+RESTRICT="test"
+
+src_compile() {
+ autotools-utils_src_compile
+
+ if use emacs ; then
+ elisp-compile contrib/tpl-mode.el || die "elisp-compile failed"
+ fi
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ # Installs just every piece
+ rm -rf "${ED}/usr/share/doc"
+
+ use doc && dohtml doc/*
+
+ if use vim-syntax ; then
+ cd "${S}/contrib"
+ sh highlighting.vim || die "unpacking vim scripts failed"
+ insinto /usr/share/vim/vimfiles
+ doins -r .vim/*
+ fi
+
+ if use emacs ; then
+ cd "${S}/contrib"
+ elisp-install ${PN} tpl-mode.el tpl-mode.elc || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-cpp/ctemplate/ctemplate-2.3.ebuild b/dev-cpp/ctemplate/ctemplate-2.3.ebuild
new file mode 100644
index 00000000000..cea65cadaec
--- /dev/null
+++ b/dev-cpp/ctemplate/ctemplate-2.3.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_IN_SOURCE_BUILD=1
+PYTHON_COMPAT=( python2_7 )
+inherit autotools-utils elisp-common python-any-r1
+
+DESCRIPTION="A simple but powerful template language for C++"
+HOMEPAGE="http://code.google.com/p/ctemplate/"
+SRC_URI="http://dev.gentoo.org/~pinkbyte/distfiles/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc emacs vim-syntax static-libs test"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="vim-syntax? ( >=app-editors/vim-core-7 )
+ emacs? ( virtual/emacs )"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+SITEFILE="70ctemplate-gentoo.el"
+
+# Some tests are broken in 2.3
+RESTRICT="test"
+
+src_compile() {
+ autotools-utils_src_compile
+
+ if use emacs ; then
+ elisp-compile contrib/tpl-mode.el || die "elisp-compile failed"
+ fi
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ # Installs just every piece
+ rm -rf "${ED}/usr/share/doc"
+
+ use doc && dohtml doc/*
+
+ if use vim-syntax ; then
+ cd "${S}/contrib"
+ sh highlighting.vim || die "unpacking vim scripts failed"
+ insinto /usr/share/vim/vimfiles
+ doins -r .vim/*
+ fi
+
+ if use emacs ; then
+ cd "${S}/contrib"
+ elisp-install ${PN} tpl-mode.el tpl-mode.elc || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-cpp/ctemplate/files/70ctemplate-gentoo.el b/dev-cpp/ctemplate/files/70ctemplate-gentoo.el
new file mode 100644
index 00000000000..a7fce964c3e
--- /dev/null
+++ b/dev-cpp/ctemplate/files/70ctemplate-gentoo.el
@@ -0,0 +1,7 @@
+;;; ctemplate site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+
+(setq auto-mode-alist (cons '("\\.tpl$" . tpl-mode) auto-mode-alist))
+(autoload 'tpl-mode "tpl-mode" "Major mode for editing CTemplate files." t)
+(add-hook 'tpl-mode-hook '(lambda () (font-lock-mode 1)))
diff --git a/dev-cpp/ctemplate/metadata.xml b/dev-cpp/ctemplate/metadata.xml
new file mode 100644
index 00000000000..e3f7acbf8e4
--- /dev/null
+++ b/dev-cpp/ctemplate/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+ <upstream>
+ <remote-id type="google-code">google-ctemplate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/eigen/Manifest b/dev-cpp/eigen/Manifest
new file mode 100644
index 00000000000..e66366287c0
--- /dev/null
+++ b/dev-cpp/eigen/Manifest
@@ -0,0 +1,5 @@
+DIST eigen-2.0.17.tar.bz2 367890 SHA256 7255e856ed367ce6e6e2d4153b0e4e753c8b8d36918bf440dd34ad56aff09960 SHA512 8fa0e4507864f61c30de14e3b29d963eb8b777d1a6bb04192d53e1f4c9db323b9fab2ddcedb63bf2af243fe0e26dcd717e97eb72216b6a1d444e455520192c72 WHIRLPOOL d80f12b378e23b758e4dbd173b87bed93bc42a97f2541b653b4373ea6ce0803bd712de00cf5a014a72cd439bb3ad10fd24b2ef8982975e044ff4d7bb2b63f585
+DIST eigen-3.0.6.tar.bz2 961722 SHA256 32e1275a105339003ba34007dd07dc1c62077d75882f3eeddd40a7ec5a5bfd87 SHA512 97cf5126984848f31b3c45c44d7ee6b8d42eca459ff2cc5535413efc768254a1ab738d935c70f9a457a9eaee5faa3c1b08c1f17193b6fcecb5ae0f0b6b32d1fa WHIRLPOOL e17409a807228b63b866c282f767c9107e6c0b45ad84bb311a5ef70053dca3d48580c8839bb6b8fcf5c5bab1a0c102413a96c06007bfbd2218bf260c4a522586
+DIST eigen-3.1.3.tar.bz2 1052724 SHA256 1a443145f321dd47a5ca11f176e7319056198a6124a7577723d92e3c3cd59ece SHA512 7b6b816416570c9592ed9ca09e61970346f02bed492df7073fed3e657ded0c2bb736fb024554f92064ee783cbf1180952ccb87ed724899fa353f34c6a49210a4 WHIRLPOOL 53c667def19d882bff0e6a7b8476028a211ca2b4617d579b8555738c726ed1d4f3d4aed0e87b39c00a941484505f2a54fb82dba19444cc04f7f438fa1fc22c45
+DIST eigen-3.2.4.tar.bz2 1147976 SHA256 d64332c92e31803d2c59f6646ed893965c666acfc7c284e4f5e9ffbb4d148922 SHA512 decf50a54011a8275d6d00194e98933b1184e665802892fe87515590ab92843d538d5170afc549730193dc93ae350674eb59d7d324e1f7d608867c7208c5509a WHIRLPOOL 8625bc0d4c171f7a80be070f72651ac8b58b7f4112980cb8c406d1e01f14a10efdf957c6c6fd170da8a595bc86c0016863f3815cb75db272ed789d18b97d8098
+DIST eigen-3.2.5.tar.bz2 1151510 SHA256 5f6e6cb88188e34185f43cb819d7dab9b48ef493774ff834e568f4805d3dc2f9 SHA512 5a90a312c3503bb91293aa9ed69258f36c6a3a06a64ff851c8b57a4df01bd467e22e5ba95221bce97a8cf2d3fb9f0ad1c1c40116a3c9c9b1f80d7fc7b0a96c7a WHIRLPOOL 21333e30f77b4712d21eb4bed6159c0e0bfb769ed65d01d4cf5cfeb1a9105f2a3c2ccbc41d251fc09399ee8ad8a50d2eb9d1ea5d38d98ca1df12f8972b24a630
diff --git a/dev-cpp/eigen/eigen-2.0.17.ebuild b/dev-cpp/eigen/eigen-2.0.17.ebuild
new file mode 100644
index 00000000000..4736dda61a7
--- /dev/null
+++ b/dev-cpp/eigen/eigen-2.0.17.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit cmake-utils
+
+DESCRIPTION="C++ template library for linear algebra: vectors, matrices, and related algorithms"
+HOMEPAGE="http://eigen.tuxfamily.org/"
+SRC_URI="https://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="GPL-3"
+KEYWORDS="alpha amd64 ~arm ~hppa ia64 ppc ppc64 sparc x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
+SLOT="2"
+IUSE="debug doc examples"
+
+COMMON_DEPEND="
+ examples? (
+ dev-qt/qtgui:4
+ dev-qt/qtopengl:4
+ )"
+DEPEND="${COMMON_DEPEND}
+ doc? ( app-doc/doxygen )"
+RDEPEND="${COMMON_DEPEND}
+ !dev-cpp/eigen:0"
+
+MAKEOPTS+=" -j1"
+
+# bugs 426236, 455460, 467288
+RESTRICT="test"
+
+src_unpack() {
+ unpack ${A}
+ mv ${PN}* ${P} || die
+}
+
+src_configure() {
+ # benchmarks (BTL) brings up damn load of external deps including fortran
+ # compiler
+ # library hangs up complete compilation proccess, test later
+ mycmakeargs=(
+ -DEIGEN_BUILD_LIB=OFF
+ -DEIGEN_BUILD_BTL=OFF
+ -DEIGEN_BUILD_PKGCONFIG=ON
+ $(cmake-utils_use examples EIGEN_BUILD_DEMOS)
+ )
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ if use doc; then
+ cd "${CMAKE_BUILD_DIR}"
+ emake doc
+ fi
+}
+
+src_install() {
+ cmake-utils_src_install
+ if use doc; then
+ cd "${CMAKE_BUILD_DIR}"/doc
+ dohtml -r html/*
+ fi
+ if use examples; then
+ cd "${CMAKE_BUILD_DIR}"/demos
+ dobin mandelbrot/mandelbrot opengl/quaternion_demo
+ fi
+}
+
+src_test() {
+ mycmakeargs=(
+ -DEIGEN_BUILD_TESTS=ON
+ -DEIGEN_TEST_NO_FORTRAN=ON
+ )
+ cmake-utils_src_configure
+ cmake-utils_src_compile
+ cmake-utils_src_test
+}
diff --git a/dev-cpp/eigen/eigen-3.0.6.ebuild b/dev-cpp/eigen/eigen-3.0.6.ebuild
new file mode 100644
index 00000000000..94b8c5e7ba4
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.0.6.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit cmake-utils
+
+DESCRIPTION="C++ template library for linear algebra: vectors, matrices, and related algorithms"
+HOMEPAGE="http://eigen.tuxfamily.org/"
+SRC_URI="http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="LGPL-2 GPL-3"
+KEYWORDS="alpha amd64 ~arm ~hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+SLOT="3"
+IUSE="debug doc"
+
+DEPEND="doc? ( app-doc/doxygen[dot,latex] )"
+RDEPEND="!dev-cpp/eigen:0"
+
+src_unpack() {
+ default
+ mv ${PN}* ${P} || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.0.0-gcc46.patch
+
+ sed -i CMakeLists.txt \
+ -e "/add_subdirectory(demos/d" \
+ -e "/add_subdirectory(blas/d" \
+ -e "/add_subdirectory(lapack/d" \
+ || die "sed disable unused bundles failed"
+}
+
+src_configure() {
+ # benchmarks (BTL) brings up damn load of external deps including fortran
+ # compiler
+ CMAKE_BUILD_TYPE="release"
+ mycmakeargs=(
+ -DEIGEN_BUILD_BTL=OFF
+ )
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ if use doc; then
+ cmake-utils_src_compile doc
+ fi
+}
+
+src_test() {
+ mycmakeargs=(
+ -DEIGEN_BUILD_TESTS=ON
+ -DEIGEN_TEST_NO_FORTRAN=ON
+ -DEIGEN_TEST_NO_OPENGL=ON
+ )
+ cmake-utils_src_configure
+ cmake-utils_src_compile buildtests
+ cmake-utils_src_test
+}
+
+src_install() {
+ cmake-utils_src_install
+ if use doc; then
+ cd "${CMAKE_BUILD_DIR}"/doc
+ dohtml -r html/*
+ fi
+}
diff --git a/dev-cpp/eigen/eigen-3.1.3.ebuild b/dev-cpp/eigen/eigen-3.1.3.ebuild
new file mode 100644
index 00000000000..459420dd5ea
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.1.3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit cmake-utils
+
+DESCRIPTION="C++ template library for linear algebra: vectors, matrices, and related algorithms"
+HOMEPAGE="http://eigen.tuxfamily.org/"
+SRC_URI="http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="LGPL-2 GPL-3"
+KEYWORDS="alpha amd64 ~arm ~hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+SLOT="3"
+IUSE="debug doc"
+
+DEPEND="doc? ( app-doc/doxygen[dot,latex] )"
+RDEPEND="!dev-cpp/eigen:0"
+
+src_unpack() {
+ default
+ mv ${PN}* ${P} || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.0.0-gcc46.patch
+
+ sed -i CMakeLists.txt \
+ -e "/add_subdirectory(demos/d" \
+ -e "/add_subdirectory(blas/d" \
+ -e "/add_subdirectory(lapack/d" \
+ || die "sed disable unused bundles failed"
+}
+
+src_configure() {
+ # benchmarks (BTL) brings up damn load of external deps including fortran
+ # compiler
+ CMAKE_BUILD_TYPE="release"
+ mycmakeargs=(
+ -DEIGEN_BUILD_BTL=OFF
+ )
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ if use doc; then
+ cmake-utils_src_compile doc
+ fi
+}
+
+src_test() {
+ mycmakeargs=(
+ -DEIGEN_BUILD_TESTS=ON
+ -DEIGEN_TEST_NO_FORTRAN=ON
+ -DEIGEN_TEST_NO_OPENGL=ON
+ )
+ cmake-utils_src_configure
+ cmake-utils_src_compile buildtests
+ cmake-utils_src_test
+}
+
+src_install() {
+ cmake-utils_src_install
+ if use doc; then
+ cd "${CMAKE_BUILD_DIR}"/doc
+ dohtml -r html/*
+ fi
+}
diff --git a/dev-cpp/eigen/eigen-3.2.4.ebuild b/dev-cpp/eigen/eigen-3.2.4.ebuild
new file mode 100644
index 00000000000..f7e531a0a51
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.2.4.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="C++ template library for linear algebra: vectors, matrices, and related algorithms"
+HOMEPAGE="http://eigen.tuxfamily.org/"
+SRC_URI="http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="LGPL-2 GPL-3"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc"
+
+DEPEND="doc? ( app-doc/doxygen[dot,latex] )"
+RDEPEND="!dev-cpp/eigen:0"
+
+src_unpack() {
+ default
+ mv ${PN}* ${P} || die
+}
+
+src_prepare() {
+ sed -i CMakeLists.txt \
+ -e "/add_subdirectory(demos/d" \
+ -e "/add_subdirectory(blas/d" \
+ -e "/add_subdirectory(lapack/d" \
+ || die "sed disable unused bundles failed"
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ CMAKE_BUILD_TYPE="release"
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ if use doc; then
+ cmake-utils_src_compile doc
+ fi
+}
+
+src_test() {
+ local mycmakeargs=(
+ -DEIGEN_BUILD_TESTS=ON
+ -DEIGEN_TEST_NO_FORTRAN=ON
+ -DEIGEN_TEST_NO_OPENGL=ON
+ )
+ cmake-utils_src_configure
+ cmake-utils_src_compile buildtests
+ cmake-utils_src_test
+}
+
+src_install() {
+ cmake-utils_src_install
+ if use doc; then
+ cd "${BUILD_DIR}"/doc
+ dohtml -r html/*
+ fi
+}
diff --git a/dev-cpp/eigen/eigen-3.2.5.ebuild b/dev-cpp/eigen/eigen-3.2.5.ebuild
new file mode 100644
index 00000000000..7f9957f0f74
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.2.5.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="C++ template library for linear algebra: vectors, matrices, and related algorithms"
+HOMEPAGE="http://eigen.tuxfamily.org/"
+SRC_URI="http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="LGPL-2 GPL-3"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc"
+
+DEPEND="doc? ( app-doc/doxygen[dot,latex] )"
+RDEPEND="!dev-cpp/eigen:0"
+
+src_unpack() {
+ default
+ mv ${PN}* ${P} || die
+}
+
+src_prepare() {
+ sed -i CMakeLists.txt \
+ -e "/add_subdirectory(demos/d" \
+ -e "/add_subdirectory(blas/d" \
+ -e "/add_subdirectory(lapack/d" \
+ || die "sed disable unused bundles failed"
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ CMAKE_BUILD_TYPE="release"
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ if use doc; then
+ cmake-utils_src_compile doc
+ fi
+}
+
+src_test() {
+ local mycmakeargs=(
+ -DEIGEN_BUILD_TESTS=ON
+ -DEIGEN_TEST_NO_FORTRAN=ON
+ -DEIGEN_TEST_NO_OPENGL=ON
+ )
+ cmake-utils_src_configure
+ cmake-utils_src_compile buildtests
+ cmake-utils_src_test
+}
+
+src_install() {
+ cmake-utils_src_install
+ if use doc; then
+ cd "${BUILD_DIR}"/doc
+ dohtml -r html/*
+ fi
+
+ # Debian installs it and some projects started using it.
+ insinto /usr/share/cmake/Modules/
+ doins "${S}/cmake/FindEigen3.cmake"
+}
diff --git a/dev-cpp/eigen/files/eigen-3.0.0-gcc46.patch b/dev-cpp/eigen/files/eigen-3.0.0-gcc46.patch
new file mode 100644
index 00000000000..ca4410be7dd
--- /dev/null
+++ b/dev-cpp/eigen/files/eigen-3.0.0-gcc46.patch
@@ -0,0 +1,16 @@
+ Eigen/src/StlSupport/details.h | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/Eigen/src/StlSupport/details.h b/Eigen/src/StlSupport/details.h
+index 397c8ef..c1ac745 100644
+--- a/Eigen/src/StlSupport/details.h
++++ b/Eigen/src/StlSupport/details.h
+@@ -30,6 +30,8 @@
+ #define EIGEN_ALIGNED_ALLOCATOR Eigen::aligned_allocator
+ #endif
+
++#include <cstddef>
++
+ namespace Eigen {
+
+ // This one is needed to prevent reimplementing the whole std::vector.
diff --git a/dev-cpp/eigen/metadata.xml b/dev-cpp/eigen/metadata.xml
new file mode 100644
index 00000000000..a631f998728
--- /dev/null
+++ b/dev-cpp/eigen/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <herd>kde</herd>
+ <longdescription>
+ Eigen is a lightweight C++ template library for vector and matrix math,
+ a.k.a. linear algebra. Unlike most other linear algebra libraries, Eigen
+ focuses on the simple mathematical needs of applications: games and other
+ OpenGL apps, spreadsheets and other office apps, etc. Eigen is dedicated to
+ providing optimal speed with GCC.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-cpp/gccxml/Manifest b/dev-cpp/gccxml/Manifest
new file mode 100644
index 00000000000..7f6b701d402
--- /dev/null
+++ b/dev-cpp/gccxml/Manifest
@@ -0,0 +1,2 @@
+DIST gccxml-0.9.0_pre20120309.tar.xz 10528336 SHA256 62ab146d790b2f97fc266e70c39495db97231781c1826811852ffdf8355cec35 SHA512 a5800519a184f0c3c13e424418fd67c59f84108deb20ed4f54620ed83c8624b7b163915684d99d9e13ac4d17726dd7dc8fe58c5fc6bd4290d00645af10dc5abd WHIRLPOOL d5cce97eb45b024fca5652dc966fc4b7c6f1de6a3c166b530a2a8e6ca2d9e46031b5c93a4c3458633b76a31cab22c923ea41ad94b535b1f5643de175bb319c44
+DIST gccxml-0.9.0_pre20131217.tar.xz 8134060 SHA256 2e0c934ff627cfa5d875d4560922101ccb567e904e15cf5197f41aa7063ffdbf SHA512 3fedb2fb7ec8025921b4d416230acd8f5dcc01858089e12837d702bd4bec0f841ec23dfd949ae7ff42b559e5da1832bfc32ee24c1a4b3ff6004e73d49a1a81cf WHIRLPOOL a9a1b801ff8736a7bfd5e8a0036ea05d0c76c6a0b389c05639baea4e8affb65fcaba15cf909a286cb29ef9e9545593799fedefb77b96e8a65b755a8edb30c099
diff --git a/dev-cpp/gccxml/gccxml-0.9.0_pre20120309.ebuild b/dev-cpp/gccxml/gccxml-0.9.0_pre20120309.ebuild
new file mode 100644
index 00000000000..ad2f5391b81
--- /dev/null
+++ b/dev-cpp/gccxml/gccxml-0.9.0_pre20120309.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit cmake-utils
+
+DESCRIPTION="XML output extension to GCC"
+HOMEPAGE="http://www.gccxml.org/"
+SRC_URI="mirror://gentoo/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~mips ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE=""
+
+src_prepare() {
+ # patch below taken from Debian
+ sed -i \
+ -e 's/xatexit.c//' \
+ "${S}/GCC/libiberty/CMakeLists.txt" || die "sed failed"
+}
+
+src_configure() {
+ local mycmakeargs=( -DGCCXML_DOC_DIR:STRING=share/doc/${PF} )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/gccxml/gccxml-0.9.0_pre20131217.ebuild b/dev-cpp/gccxml/gccxml-0.9.0_pre20131217.ebuild
new file mode 100644
index 00000000000..57fa75a1d98
--- /dev/null
+++ b/dev-cpp/gccxml/gccxml-0.9.0_pre20131217.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="XML output extension to GCC"
+HOMEPAGE="http://www.gccxml.org/"
+SRC_URI="http://dev.gentoo.org/~pinkbyte/distfiles/snapshots/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+
+src_prepare() {
+ # patch below taken from Debian
+ sed -i \
+ -e 's/xatexit.c//' \
+ GCC/libiberty/CMakeLists.txt || die "sed failed"
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DGCCXML_DOC_DIR:STRING="share/doc/${PF}"
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/gccxml/metadata.xml b/dev-cpp/gccxml/metadata.xml
new file mode 100644
index 00000000000..bc97bb6ee20
--- /dev/null
+++ b/dev-cpp/gccxml/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+</pkgmetadata>
diff --git a/dev-cpp/gconfmm/Manifest b/dev-cpp/gconfmm/Manifest
new file mode 100644
index 00000000000..d4e406edca9
--- /dev/null
+++ b/dev-cpp/gconfmm/Manifest
@@ -0,0 +1 @@
+DIST gconfmm-2.28.3.tar.xz 376840 SHA256 d7bd2d29c1a87b85329547fb29a0eca52d944e60699982152775002e24c09228 SHA512 8a6f34b175fd2370d596ef859b7075140441f14b97b708afd96bae25874780d321ed81905182ed50abaf6f41f710a325b8053b9aef511cd242df43570646df73 WHIRLPOOL 452f600bb03670a09797ac43c547e7038c16f322f372dd1a4db9ec4a5646ecb4be40a69e2aa91aaa849a3211268d060bcca4b44a438c8c194261253d71d89bc5
diff --git a/dev-cpp/gconfmm/gconfmm-2.28.3.ebuild b/dev-cpp/gconfmm/gconfmm-2.28.3.ebuild
new file mode 100644
index 00000000000..8254053a5d9
--- /dev/null
+++ b/dev-cpp/gconfmm/gconfmm-2.28.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for GConf"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sh sparc x86 ~x86-fbsd"
+IUSE="doc"
+
+RDEPEND=">=gnome-base/gconf-2.4:2
+ >=dev-cpp/glibmm-2.12:2[doc?]
+ >=dev-cpp/gtkmm-2.4:2.4"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+pkg_setup() {
+ DOCS="AUTHORS COPYING* ChangeLog NEWS README INSTALL"
+ G2CONF="${G2CONF}
+ $(use_enable doc documentation)"
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use doc ; then
+ dohtml -r docs/reference/html/*
+ fi
+}
diff --git a/dev-cpp/gconfmm/metadata.xml b/dev-cpp/gconfmm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/gconfmm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/gflags/Manifest b/dev-cpp/gflags/Manifest
new file mode 100644
index 00000000000..05a9e2e2bb2
--- /dev/null
+++ b/dev-cpp/gflags/Manifest
@@ -0,0 +1,2 @@
+DIST gflags-2.1.1.tar.gz 102015 SHA256 432edece8102fc141c2e3381e2eb5eabb1ce7614851cc96bdec4715105086238 SHA512 18d1a0a1271f12f0e87447e3a9d6810f531f5b190d84274465add5a928c189caac911ec2592422895961ab3c0c7566ff50c0c22f71d185ac3413c54bdbfb00ef WHIRLPOOL 608dc62262d8b4a0451dd3493b02fd35ad5214f1793f173ca5d93e631e15b59cc4557b2a2f9f5e67f72c2ad0d6cd343648b113bf4701fd8f6c3f5d949ac41813
+DIST gflags-2.1.2.tar.gz 95716 SHA256 d8331bd0f7367c8afd5fcb5f5e85e96868a00fd24b7276fa5fcee1e5575c2662 SHA512 f636023c1150e4d536d2d472e40d643ff0b02d3c96d8cb7f31544df23e6255fa6c4fd927ef94a3660c250d3faeae7d8d78519fc5e856749a577347a78d9d9ab5 WHIRLPOOL 2b3bd528c0e2139042a239d50017d93637f5db7007adaa29d3ae3788e57219c8ae8931404ea95766e43d07f17cb9995954ab213b68699ec1de0d21b3b6f86066
diff --git a/dev-cpp/gflags/files/gflags-2.1.1-libs.patch b/dev-cpp/gflags/files/gflags-2.1.1-libs.patch
new file mode 100644
index 00000000000..0e59cb937e1
--- /dev/null
+++ b/dev-cpp/gflags/files/gflags-2.1.1-libs.patch
@@ -0,0 +1,45 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 17d38b4..ca2c1df 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,6 +22,8 @@ version_numbers (
+ PACKAGE_VERSION_PATCH
+ )
+
++set (PACKAGE_SOVERSION "${PACKAGE_VERSION_MAJOR}")
++
+ # ----------------------------------------------------------------------------
+ # options
+ set (GFLAGS_NAMESPACE "${PACKAGE_NAME}" CACHE STRING "C++ namespace identifier of gflags library.")
+@@ -256,7 +258,9 @@ foreach (TYPE IN ITEMS STATIC SHARED)
+ endif ()
+ set_target_properties (
+ gflags${opts}-${type} PROPERTIES COMPILE_DEFINITIONS "${defines}"
+- OUTPUT_NAME "gflags${opts}"
++ OUTPUT_NAME "gflags${opts}"
++ VERSION "${PACKAGE_VERSION}"
++ SOVERSION "${PACKAGE_SOVERSION}"
+ )
+ if (HAVE_SHLWAPI_H)
+ target_link_libraries (gflags${opts}-${type} shlwapi.lib)
+@@ -280,9 +284,18 @@ if (OS_WINDOWS)
+ set (CONFIG_INSTALL_DIR CMake)
+ else ()
+ set (RUNTIME_INSTALL_DIR bin)
+- set (LIBRARY_INSTALL_DIR lib)
++ # The LIB_INSTALL_DIR and LIB_SUFFIX variables are used by the Fedora
++ # package maintainers. Also package maintainers of other distribution
++ # packages need to be able to specify the name of the library directory.
++ if (NOT LIB_INSTALL_DIR)
++ set (LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
++ endif ()
++ set (LIBRARY_INSTALL_DIR "${LIB_INSTALL_DIR}"
++ CACHE PATH "Directory of installed libraries, e.g., \"lib64\""
++ )
++ mark_as_advanced (LIBRARY_INSTALL_DIR)
+ set (INCLUDE_INSTALL_DIR include)
+- set (CONFIG_INSTALL_DIR lib/cmake/${PACKAGE_NAME})
++ set (CONFIG_INSTALL_DIR ${LIBRARY_INSTALL_DIR}/cmake/${PACKAGE_NAME})
+ endif ()
+
+ file (RELATIVE_PATH INSTALL_PREFIX_REL2CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}")
diff --git a/dev-cpp/gflags/gflags-2.1.1-r1.ebuild b/dev-cpp/gflags/gflags-2.1.1-r1.ebuild
new file mode 100644
index 00000000000..50c95d813b9
--- /dev/null
+++ b/dev-cpp/gflags/gflags-2.1.1-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit cmake-multilib
+
+DESCRIPTION="Google's C++ argument parsing library"
+HOMEPAGE="http://code.google.com/p/gflags/"
+SRC_URI="https://github.com/schuhschuh/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs"
+
+PATCHES=( "${FILESDIR}/gflags-2.1.1-libs.patch" )
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ $(cmake-utils_use_build static-libs STATIC_LIBS)
+ )
+
+ cmake-utils_src_configure
+}
+
+multilib_src_install_all() {
+ rm -rf "${ED}"/usr/share/doc
+ dodoc {AUTHORS,ChangeLog,NEWS,README}.txt
+ dohtml doc/*
+}
diff --git a/dev-cpp/gflags/gflags-2.1.2.ebuild b/dev-cpp/gflags/gflags-2.1.2.ebuild
new file mode 100644
index 00000000000..fe0e198f21e
--- /dev/null
+++ b/dev-cpp/gflags/gflags-2.1.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit cmake-multilib
+
+DESCRIPTION="Google's C++ argument parsing library"
+HOMEPAGE="http://code.google.com/p/gflags/"
+SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs"
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ $(cmake-utils_use_build static-libs STATIC_LIBS)
+ )
+
+ cmake-utils_src_configure
+}
+
+multilib_src_install_all() {
+ rm -rf "${ED}"/usr/share/doc
+ dodoc {AUTHORS,ChangeLog}.txt README.md
+ dohtml doc/*
+}
diff --git a/dev-cpp/gflags/gflags-9999.ebuild b/dev-cpp/gflags/gflags-9999.ebuild
new file mode 100644
index 00000000000..6c86919a0a0
--- /dev/null
+++ b/dev-cpp/gflags/gflags-9999.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit cmake-multilib
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://code.google.com/p/gflags/"
+else
+ SRC_URI="https://github.com/schuhschuh/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="Google's C++ argument parsing library"
+HOMEPAGE="http://code.google.com/p/gflags/"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="static-libs"
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ $(cmake-utils_use_build static-libs STATIC_LIBS)
+ )
+ cmake-utils_src_configure
+}
+
+multilib_src_install_all() {
+ rm -rf "${ED}"/usr/share/doc
+ dodoc {AUTHORS,ChangeLog,NEWS,README}.txt
+ dohtml doc/*
+}
diff --git a/dev-cpp/gflags/metadata.xml b/dev-cpp/gflags/metadata.xml
new file mode 100644
index 00000000000..021bdfbe5da
--- /dev/null
+++ b/dev-cpp/gflags/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>amynka@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">gflags</remote-id>
+ <remote-id type="github">schuhschuh/gflags</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/glibmm/Manifest b/dev-cpp/glibmm/Manifest
new file mode 100644
index 00000000000..dd06aa3a058
--- /dev/null
+++ b/dev-cpp/glibmm/Manifest
@@ -0,0 +1,3 @@
+DIST glibmm-2.40.0.tar.xz 5645840 SHA256 34f320fad7e0057c63863706caa802ae0051b21523bed91ec33baf8421ca484f SHA512 3a51b3e311ba59505b3c452afdfdf456f184c39651d81317ff62f942d309f8707306cc68c69c20f7534f585036086088159414c7e75de59ab2684c4850559cb9 WHIRLPOOL 876ac86023e41b281408bf5435e32cd7674c2db1f92910508a082c8b316651b9e612de431ff767bffe4cd0613bb03a040e7569198cf3dc607f572cbcf5198bb2
+DIST glibmm-2.42.0.tar.xz 6031860 SHA256 985083d97378d234da27a7243587cc0d186897a4b2d3c1286f794089be1a3397 SHA512 63bac04bf288d90f40d8bd08d16e147a42e2293a99998fabdc83bf1ef8a50197e44d95c1608f93fe7f2a1a791dd624dffb2db4426d3eaf32ce0f75ddac3559fb WHIRLPOOL 644b9446907066b20695ae9d848633b73aa30adff43d7c08f7afe002670cfac96a7e98d9669d35721c1f41fd2efb1ebc03d84ae1bdd3147f32e5a70ad3d099ea
+DIST glibmm-2.44.0.tar.xz 6102664 SHA256 1b0ac0425d24895507c0e0e8088a464c7ae2d289c47afa1c11f63278fc672ea8 SHA512 4a932b127ce0ed0798cef3555fdd1ca1632fc10720b74f9a39626989c216542807d76ae67ebc980049b65b1c163d236fc9875506ca2d80584c724394bbb8bfd7 WHIRLPOOL d1fad56af4487e661398ec3be006c528c5c6c1cba0181ad08725f14cb94bbbfe2f9c20870722b90ebca61a51e9959eee89b1f92a7f00f99bc3a573b123360197
diff --git a/dev-cpp/glibmm/glibmm-2.40.0.ebuild b/dev-cpp/glibmm/glibmm-2.40.0.ebuild
new file mode 100644
index 00000000000..cf97431189d
--- /dev/null
+++ b/dev-cpp/glibmm/glibmm-2.40.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for glib2"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+ GPL-2+" # GPL-2+ applies only to the build system
+SLOT="2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc debug examples test"
+
+RDEPEND="
+ >=dev-libs/libsigc++-2.2.10:2
+ >=dev-libs/glib-2.40:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+# dev-cpp/mm-common needed for eautoreconf
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die "sed 1 failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building examples
+ sed 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die "sed 2 failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_enable debug debug-refcounting) \
+ $(use_enable doc documentation) \
+ --enable-deprecated-api
+}
+
+src_test() {
+ cd "${S}/tests/"
+ default
+
+ for i in */test; do
+ ${i} || die "Running tests failed at ${i}"
+ done
+}
+
+src_install() {
+ gnome2_src_install
+
+ if ! use doc && ! use examples; then
+ rm -fr "${ED}usr/share/doc/glibmm*"
+ fi
+
+ if use examples; then
+ find examples -type d -name '.deps' -exec rm -rf {} \; 2>/dev/null
+ dodoc -r examples
+ fi
+}
diff --git a/dev-cpp/glibmm/glibmm-2.42.0-r1.ebuild b/dev-cpp/glibmm/glibmm-2.42.0-r1.ebuild
new file mode 100644
index 00000000000..b0a68ab3c11
--- /dev/null
+++ b/dev-cpp/glibmm/glibmm-2.42.0-r1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for glib2"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+ GPL-2+" # GPL-2+ applies only to the build system
+SLOT="2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc debug examples test"
+
+COMMON_DEPEND="
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+ >=dev-libs/glib-2.42:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+# dev-cpp/mm-common needed for eautoreconf
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die "sed 1 failed"
+ fi
+
+ # don't build examples - we want to install example sources, not binaries
+ sed 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die "sed 2 failed"
+
+ # Test fails with IPv6 but not v4, upstream bug #720073
+ sed -e 's:giomm_tls_client/test::' \
+ -i tests/Makefile.{am,in} || die
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(use_enable debug debug-refcounting) \
+ $(multilib_native_use_enable doc documentation) \
+ --enable-deprecated-api
+}
+
+multilib_src_test() {
+ cd tests
+ default
+
+ for i in */test; do
+ ${i} || die "Running tests failed at ${i}"
+ done
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if ! use doc && ! use examples; then
+ rm -fr "${ED}usr/share/doc/glibmm*"
+ fi
+
+ if use examples; then
+ find examples -type d -name '.deps' -exec rm -rf {} \; 2>/dev/null
+ dodoc -r examples
+ fi
+}
diff --git a/dev-cpp/glibmm/glibmm-2.44.0.ebuild b/dev-cpp/glibmm/glibmm-2.44.0.ebuild
new file mode 100644
index 00000000000..4dea19f19f9
--- /dev/null
+++ b/dev-cpp/glibmm/glibmm-2.44.0.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for glib2"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+ GPL-2+" # GPL-2+ applies only to the build system
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc debug examples test"
+
+COMMON_DEPEND="
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+ >=dev-libs/glib-2.44:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+# dev-cpp/mm-common needed for eautoreconf
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die "sed 1 failed"
+ fi
+
+ # don't build examples - we want to install example sources, not binaries
+ sed 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die "sed 2 failed"
+
+ # Test fails with IPv6 but not v4, upstream bug #720073
+ sed -e 's:giomm_tls_client/test::' \
+ -i tests/Makefile.{am,in} || die
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(use_enable debug debug-refcounting) \
+ $(multilib_native_use_enable doc documentation) \
+ --enable-deprecated-api
+}
+
+multilib_src_test() {
+ cd tests
+ default
+
+ for i in */test; do
+ ${i} || die "Running tests failed at ${i}"
+ done
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if ! use doc && ! use examples; then
+ rm -fr "${ED}usr/share/doc/glibmm*"
+ fi
+
+ if use examples; then
+ find examples -type d -name '.deps' -exec rm -rf {} \; 2>/dev/null
+ dodoc -r examples
+ fi
+}
diff --git a/dev-cpp/glibmm/metadata.xml b/dev-cpp/glibmm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/glibmm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/glog/Manifest b/dev-cpp/glog/Manifest
new file mode 100644
index 00000000000..275c924bceb
--- /dev/null
+++ b/dev-cpp/glog/Manifest
@@ -0,0 +1,3 @@
+DIST glog-0.3.1-1.tar.gz 491798 SHA256 0a5ce945aaa5c64cb3889bf4844a0459263c06a77ad549042230dfea316787cb SHA512 9bf48fe53e45a7af24ea6cfe27f6a4b592efe9911e2c9764c364d551ad9a7ab4eae2ace64873ec9bd2202323032ffbdbbda5ea9e7514aa0e324e30048c238e96 WHIRLPOOL 21593af929da3db01527c6e9111b75a7318be2c14abebbfb1e09f0a6ac12442e522cb510a776ef95136168baa1400e759bb69f7670192301ed1044db00eac385
+DIST glog-0.3.2.tar.gz 478666 SHA256 5e47f9437e97cb1621930dea3c557a2801ddac3b5db1a9fd0c3cde399f2c9ccd SHA512 75f61d63fd65df40995b657c47a6c2dcabd2e25716c7ac1d4229dfc6a43e5957576b9d090997ae0ec81b30b60df6fdc6ae1294a087cbc3d03ad42295980fddfd WHIRLPOOL c6649da59d7de673b39fdb4f6930c44ab6887595733468e9ed81928525892f21c23e0f8e9cb7aac383fdb3afa6f86aa683ccff5502b445c546f00bc44f4c75f2
+DIST glog-0.3.3.tar.gz 509676 SHA256 fbf90c2285ba0561db7a40f8a4eefb9aa963e7d399bd450363e959929fe849d0 SHA512 95418ff0857415a0fbc15caeb22a13f3b6736618adcc3c30e054626f1397bc58399c45f68784c70b1f5dc594ebc6ea66e386896beab5c20be72dd53b25f5a4ac WHIRLPOOL 7ba26a936e3ac18afbccf141b888a885f3f9847d4f19c0ebad416d16fcff936b9622e03aec155f77622759a40e8684673c29648c026426326239f4485113c6cf
diff --git a/dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch b/dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch
new file mode 100644
index 00000000000..b6fa9cdb737
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch
@@ -0,0 +1,56 @@
+http://code.google.com/p/google-glog/issues/detail?id=130
+
+make the code work with all gcc targets
+
+--- a/src/symbolize_unittest.cc
++++ b/src/symbolize_unittest.cc
+@@ -60,9 +60,7 @@ using namespace GOOGLE_NAMESPACE;
+ # endif // __i386__
+ # else
+ # endif // __GNUC__ >= 4
+-# if defined(__i386__) || defined(__x86_64__)
+-# define TEST_X86_32_AND_64 1
+-# endif // defined(__i386__) || defined(__x86_64__)
++# define TEST_WITH_LABEL_ADDRESSES
+ #endif
+
+ // A wrapper function for Symbolize() to make the unit test simple.
+@@ -289,22 +287,24 @@ TEST(Symbolize, SymbolizeWithDemanglingStackConsumption) {
+ extern "C" {
+ inline void* always_inline inline_func() {
+ register void *pc = NULL;
+-#ifdef TEST_X86_32_AND_64
+- __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
++#ifdef TEST_WITH_LABEL_ADDRESSES
++ pc = &&curr_pc;
++ curr_pc:
+ #endif
+ return pc;
+ }
+
+ void* ATTRIBUTE_NOINLINE non_inline_func() {
+ register void *pc = NULL;
+-#ifdef TEST_X86_32_AND_64
+- __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
++#ifdef TEST_WITH_LABEL_ADDRESSES
++ pc = &&curr_pc;
++ curr_pc:
+ #endif
+ return pc;
+ }
+
+ void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() {
+-#if defined(TEST_X86_32_AND_64) && defined(HAVE_ATTRIBUTE_NOINLINE)
++#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ATTRIBUTE_NOINLINE)
+ void *pc = non_inline_func();
+ const char *symbol = TrySymbolize(pc);
+ CHECK(symbol != NULL);
+@@ -314,7 +314,7 @@ void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() {
+ }
+
+ void ATTRIBUTE_NOINLINE TestWithPCInsideInlineFunction() {
+-#if defined(TEST_X86_32_AND_64) && defined(HAVE_ALWAYS_INLINE)
++#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ALWAYS_INLINE)
+ void *pc = inline_func(); // Must be inlined.
+ const char *symbol = TrySymbolize(pc);
+ CHECK(symbol != NULL);
diff --git a/dev-cpp/glog/glog-0.3.1.ebuild b/dev-cpp/glog/glog-0.3.1.ebuild
new file mode 100644
index 00000000000..19e2fa44e47
--- /dev/null
+++ b/dev-cpp/glog/glog-0.3.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+inherit eutils
+
+DESCRIPTION="Google's C++ logging library"
+HOMEPAGE="http://code.google.com/p/google-glog/"
+SRC_URI="http://google-glog.googlecode.com/files/${P}-1.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="gflags static-libs test"
+
+RDEPEND="gflags? ( dev-cpp/gflags )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-cpp/gmock
+ dev-cpp/gtest
+ )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-0.3.2-avoid-inline-asm.patch
+}
+
+src_configure() {
+ export ac_cv_lib_gflags_main=$(usex gflags)
+ use test || export ac_cv_prog_GTEST_CONFIG=no
+ econf $(use_enable static-libs static)
+}
diff --git a/dev-cpp/glog/glog-0.3.2.ebuild b/dev-cpp/glog/glog-0.3.2.ebuild
new file mode 100644
index 00000000000..33f15279a6a
--- /dev/null
+++ b/dev-cpp/glog/glog-0.3.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+inherit eutils
+
+DESCRIPTION="Google's C++ logging library"
+HOMEPAGE="http://code.google.com/p/google-glog/"
+SRC_URI="http://google-glog.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="gflags static-libs unwind test"
+
+RDEPEND="gflags? ( dev-cpp/gflags )
+ unwind? ( sys-libs/libunwind )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-cpp/gmock
+ dev-cpp/gtest
+ )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-avoid-inline-asm.patch
+}
+
+src_configure() {
+ export ac_cv_lib_gflags_main=$(usex gflags)
+ export ac_cv_lib_unwind_backtrace=$(usex unwind)
+ use test || export ac_cv_prog_GTEST_CONFIG=no
+ econf \
+ --docdir="\${datarootdir}/doc/${PF}" \
+ --htmldir="\${datarootdir}/doc/${PF}/html" \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+
+ # Punt docs we don't care about (NEWS is 0 bytes).
+ rm "${ED}"/usr/share/doc/${PF}/{COPYING,NEWS,README.windows}
+
+ # --htmldir doesn't work (yet):
+ # https://code.google.com/p/google-glog/issues/detail?id=144
+ dohtml "${ED}"/usr/share/doc/${PF}/*
+ rm "${ED}"/usr/share/doc/${PF}/*.{html,css}
+
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/dev-cpp/glog/glog-0.3.3-r1.ebuild b/dev-cpp/glog/glog-0.3.3-r1.ebuild
new file mode 100644
index 00000000000..66788e65281
--- /dev/null
+++ b/dev-cpp/glog/glog-0.3.3-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+inherit eutils multilib-minimal
+
+DESCRIPTION="Google's C++ logging library"
+HOMEPAGE="http://code.google.com/p/google-glog/"
+SRC_URI="http://google-glog.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="gflags static-libs unwind test"
+
+RDEPEND="gflags? ( >=dev-cpp/gflags-2.0-r1[${MULTILIB_USEDEP}] )
+ unwind? ( sys-libs/libunwind )"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-cpp/gmock-1.7.0-r1[${MULTILIB_USEDEP}]
+ >=dev-cpp/gtest-1.6.0-r2[${MULTILIB_USEDEP}]
+ )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-0.3.2-avoid-inline-asm.patch
+ # Fix the --dodcdir flag:
+ # https://code.google.com/p/google-glog/issues/detail?id=193
+ sed -i \
+ -e '/^docdir =/s:=.*:= @docdir@:' \
+ Makefile.in || die
+}
+
+multilib_src_configure() {
+ use test || export ac_cv_prog_GTEST_CONFIG=no
+ ECONF_SOURCE=${S} \
+ ac_cv_lib_gflags_main=$(usex gflags) \
+ ac_cv_lib_unwind_backtrace=$(usex unwind) \
+ econf \
+ --docdir="\$(datarootdir)/doc/${PF}" \
+ --htmldir='$(docdir)/html' \
+ $(use_enable static-libs static)
+}
+
+_emake() {
+ # The tests always get built ... disable them when unused.
+ emake $(usex test '' noinst_PROGRAMS=) "$@"
+}
+
+multilib_src_compile() {
+ _emake
+}
+
+multilib_src_install() {
+ _emake install DESTDIR="${D}"
+}
+
+multilib_src_install_all() {
+ # Punt docs we don't care about (NEWS is 0 bytes).
+ rm "${ED}"/usr/share/doc/${PF}/{COPYING,NEWS,README.windows} || die
+
+ # --htmldir doesn't work (yet):
+ # https://code.google.com/p/google-glog/issues/detail?id=144
+ dohtml "${ED}"/usr/share/doc/${PF}/*
+ rm "${ED}"/usr/share/doc/${PF}/*.{html,css}
+
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/dev-cpp/glog/glog-0.3.3.ebuild b/dev-cpp/glog/glog-0.3.3.ebuild
new file mode 100644
index 00000000000..19f6818680f
--- /dev/null
+++ b/dev-cpp/glog/glog-0.3.3.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+inherit eutils
+
+DESCRIPTION="Google's C++ logging library"
+HOMEPAGE="http://code.google.com/p/google-glog/"
+SRC_URI="http://google-glog.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="gflags static-libs unwind test"
+
+RDEPEND="gflags? ( dev-cpp/gflags )
+ unwind? ( sys-libs/libunwind )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-cpp/gmock
+ dev-cpp/gtest
+ )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-0.3.2-avoid-inline-asm.patch
+}
+
+src_configure() {
+ export ac_cv_lib_gflags_main=$(usex gflags)
+ export ac_cv_lib_unwind_backtrace=$(usex unwind)
+ use test || export ac_cv_prog_GTEST_CONFIG=no
+ econf \
+ --docdir="\${datarootdir}/doc/${PF}" \
+ --htmldir="\${datarootdir}/doc/${PF}/html" \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+
+ # Punt docs we don't care about (NEWS is 0 bytes).
+ rm "${ED}"/usr/share/doc/${PF}/{COPYING,NEWS,README.windows}
+
+ # --htmldir doesn't work (yet):
+ # https://code.google.com/p/google-glog/issues/detail?id=144
+ dohtml "${ED}"/usr/share/doc/${PF}/*
+ rm "${ED}"/usr/share/doc/${PF}/*.{html,css}
+
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/dev-cpp/glog/metadata.xml b/dev-cpp/glog/metadata.xml
new file mode 100644
index 00000000000..f53753845dc
--- /dev/null
+++ b/dev-cpp/glog/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ </maintainer>
+ <herd>cpp</herd>
+ <use>
+ <flag name="gflags">Use <pkg>dev-cpp/gflags</pkg> for flag parsing</flag>
+ <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> for stack unwinding instead of glibc/gcc (may be more reliable on x86_64)</flag>
+ </use>
+ <upstream>
+ <remote-id type="google-code">google-glog</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/gmock/Manifest b/dev-cpp/gmock/Manifest
new file mode 100644
index 00000000000..1efb0bd55f1
--- /dev/null
+++ b/dev-cpp/gmock/Manifest
@@ -0,0 +1,4 @@
+DIST gmock-1.4.0.tar.bz2 946373 SHA256 21d37c154a7b8d7a8562b9dde82db7db0a6c188b985c4a18ff3413daae8caa8c SHA512 df99aae44d23f4b0b4ce9ac24fde9e72508c9a915323dd07fb475c708953b79310c164141d085a04a9203b6abd759336d55a94979495f429c92f11bc4d1b038c WHIRLPOOL 7a4525a589770cd5de21c0b82a7b9a7219b3fcdef605e0b455dfff50bc87ff1432b3989cc7e0c08c42c68083e2618841a77d8afcf4ed51b3f55f09a5a64c4fb2
+DIST gmock-1.5.0.tar.bz2 1283432 SHA256 d8689a51fbc13f55509f5842fe7d514839d9fd6092743d145304bc2824fc9197 SHA512 b0a3897c801d14a9f59a07911fa77ae15ddae9bef6e2d818583ff0b5085d35507259c195b43a6fe25af70b4d2eee3796889ffcda91d16ce6e6e5b4e462196aa2 WHIRLPOOL f00854ebdece304006907ea2e3906fbe58578a7a3684d93eb8e9f2c26bd100f751878109d5fd13a31cf58463d759fc09c1b07c035107c127c19f572ff264fd76
+DIST gmock-1.6.0.zip 2053682 SHA256 341ad07c31c619ba32c88c2265bc23693da1df062f47f146a7ed340f646d82b7 SHA512 7adff00bb6ff81a6ffb704be71d0747636d69e24b4a8b709e1fb8c177a9a47f6dea8d14fde73034ebfb1529c291c7212a944ad92a34f88abdfe23c2d0b11b6f7 WHIRLPOOL 1a03ff8f2d96287f5deb24f970688f20f3480e77a4a71089ef1399a87f28f616bf0feaedc217e7ac1ca8ca1246e53f5d882f350704be111ae547961949939530
+DIST gmock-1.7.0.zip 2167746 SHA256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b SHA512 0ab7bb2614f8c00e4842a6819dbc6d9323c42241335078c23eaee53ed420d42f1845d44334eccbf7c114cc88f6ac7a493e20d9b46c58cdba645bbd400eb6db55 WHIRLPOOL 722ea3f8bd4130662386810ae0270baafcecb6b7066e8a361388d530e7a2bad4e10787c921c6bb5cefb15a640f4302d288d07deea58acf8c5f5ca84d82722c8e
diff --git a/dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch b/dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch
new file mode 100644
index 00000000000..fa678220f2a
--- /dev/null
+++ b/dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch
@@ -0,0 +1,189 @@
+taken from upstream repo
+
+Index: include/gmock/gmock-generated-function-mockers.h.pump
+===================================================================
+--- include/gmock/gmock-generated-function-mockers.h.pump (revision 227)
++++ include/gmock/gmock-generated-function-mockers.h.pump (revision 228)
+@@ -45,10 +45,6 @@ $var n = 10 $$ The maximum arity we sup
+ #include <gmock/internal/gmock-internal-utils.h>
+
+ namespace testing {
+-
+-template <typename F>
+-class MockSpec;
+-
+ namespace internal {
+
+ template <typename F>
+@@ -89,7 +85,11 @@ $if i >= 1 [[
+ }
+
+ R Invoke($Aas) {
+- return InvokeWith(ArgumentTuple($as));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple($as));
+ }
+ };
+
+Index: include/gmock/gmock-generated-function-mockers.h
+===================================================================
+--- include/gmock/gmock-generated-function-mockers.h (revision 227)
++++ include/gmock/gmock-generated-function-mockers.h (revision 228)
+@@ -42,10 +42,6 @@
+ #include <gmock/internal/gmock-internal-utils.h>
+
+ namespace testing {
+-
+-template <typename F>
+-class MockSpec;
+-
+ namespace internal {
+
+ template <typename F>
+@@ -71,7 +67,11 @@ class FunctionMocker<R()> : public
+ }
+
+ R Invoke() {
+- return InvokeWith(ArgumentTuple());
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple());
+ }
+ };
+
+@@ -88,7 +88,11 @@ class FunctionMocker<R(A1)> : public
+ }
+
+ R Invoke(A1 a1) {
+- return InvokeWith(ArgumentTuple(a1));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1));
+ }
+ };
+
+@@ -105,7 +109,11 @@ class FunctionMocker<R(A1, A2)> : public
+ }
+
+ R Invoke(A1 a1, A2 a2) {
+- return InvokeWith(ArgumentTuple(a1, a2));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2));
+ }
+ };
+
+@@ -123,7 +131,11 @@ class FunctionMocker<R(A1, A2, A3)> : pu
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3));
+ }
+ };
+
+@@ -141,7 +153,11 @@ class FunctionMocker<R(A1, A2, A3, A4)>
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4));
+ }
+ };
+
+@@ -161,7 +177,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5));
+ }
+ };
+
+@@ -182,7 +202,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6));
+ }
+ };
+
+@@ -203,7 +227,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7));
+ }
+ };
+
+@@ -224,7 +252,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8));
+ }
+ };
+
+@@ -246,7 +278,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9));
+ }
+ };
+
+@@ -270,7 +306,12 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
+ A10 a10) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9,
++ a10));
+ }
+ };
+
diff --git a/dev-cpp/gmock/files/gmock-1.4.0-more-gcc-4.7.patch b/dev-cpp/gmock/files/gmock-1.4.0-more-gcc-4.7.patch
new file mode 100644
index 00000000000..d28a121a474
--- /dev/null
+++ b/dev-cpp/gmock/files/gmock-1.4.0-more-gcc-4.7.patch
@@ -0,0 +1,144 @@
+taken from upstream repo
+
+------------------------------------------------------------------------
+r245 | zhanyong.wan | 2009-12-02 03:36:42 -0500 (Wed, 02 Dec 2009) | 2 lines
+
+Fixes a C++-standard-compliance bug in gmock-printers.h.
+
+
+Index: include/gmock/gmock-printers.h
+===================================================================
+--- include/gmock/gmock-printers.h (revision 244)
++++ include/gmock/gmock-printers.h (revision 245)
+@@ -434,63 +434,10 @@ inline void PrintTo(const ::std::wstring
+ // Overload for ::std::tr1::tuple. Needed for printing function
+ // arguments, which are packed as tuples.
+
+-typedef ::std::vector<string> Strings;
+-
+-// This helper template allows PrintTo() for tuples and
+-// UniversalTersePrintTupleFieldsToStrings() to be defined by
+-// induction on the number of tuple fields. The idea is that
+-// TuplePrefixPrinter<N>::PrintPrefixTo(t, os) prints the first N
+-// fields in tuple t, and can be defined in terms of
+-// TuplePrefixPrinter<N - 1>.
+-
+-// The inductive case.
+-template <size_t N>
+-struct TuplePrefixPrinter {
+- // Prints the first N fields of a tuple.
+- template <typename Tuple>
+- static void PrintPrefixTo(const Tuple& t, ::std::ostream* os) {
+- TuplePrefixPrinter<N - 1>::PrintPrefixTo(t, os);
+- *os << ", ";
+- UniversalPrinter<typename ::std::tr1::tuple_element<N - 1, Tuple>::type>
+- ::Print(::std::tr1::get<N - 1>(t), os);
+- }
+-
+- // Tersely prints the first N fields of a tuple to a string vector,
+- // one element for each field.
+- template <typename Tuple>
+- static void TersePrintPrefixToStrings(const Tuple& t, Strings* strings) {
+- TuplePrefixPrinter<N - 1>::TersePrintPrefixToStrings(t, strings);
+- ::std::stringstream ss;
+- UniversalTersePrint(::std::tr1::get<N - 1>(t), &ss);
+- strings->push_back(ss.str());
+- }
+-};
+-
+-// Base cases.
+-template <>
+-struct TuplePrefixPrinter<0> {
+- template <typename Tuple>
+- static void PrintPrefixTo(const Tuple&, ::std::ostream*) {}
+-
+- template <typename Tuple>
+- static void TersePrintPrefixToStrings(const Tuple&, Strings*) {}
+-};
+-template <>
+-template <typename Tuple>
+-void TuplePrefixPrinter<1>::PrintPrefixTo(const Tuple& t, ::std::ostream* os) {
+- UniversalPrinter<typename ::std::tr1::tuple_element<0, Tuple>::type>::
+- Print(::std::tr1::get<0>(t), os);
+-}
+-
+ // Helper function for printing a tuple. T must be instantiated with
+ // a tuple type.
+ template <typename T>
+-void PrintTupleTo(const T& t, ::std::ostream* os) {
+- *os << "(";
+- TuplePrefixPrinter< ::std::tr1::tuple_size<T>::value>::
+- PrintPrefixTo(t, os);
+- *os << ")";
+-}
++void PrintTupleTo(const T& t, ::std::ostream* os);
+
+ // Overloaded PrintTo() for tuples of various arities. We support
+ // tuples of up-to 10 fields. The following implementation works
+@@ -725,6 +672,64 @@ void UniversalPrint(const T& value, ::st
+ UniversalPrinter<T>::Print(value, os);
+ }
+
++typedef ::std::vector<string> Strings;
++
++// This helper template allows PrintTo() for tuples and
++// UniversalTersePrintTupleFieldsToStrings() to be defined by
++// induction on the number of tuple fields. The idea is that
++// TuplePrefixPrinter<N>::PrintPrefixTo(t, os) prints the first N
++// fields in tuple t, and can be defined in terms of
++// TuplePrefixPrinter<N - 1>.
++
++// The inductive case.
++template <size_t N>
++struct TuplePrefixPrinter {
++ // Prints the first N fields of a tuple.
++ template <typename Tuple>
++ static void PrintPrefixTo(const Tuple& t, ::std::ostream* os) {
++ TuplePrefixPrinter<N - 1>::PrintPrefixTo(t, os);
++ *os << ", ";
++ UniversalPrinter<typename ::std::tr1::tuple_element<N - 1, Tuple>::type>
++ ::Print(::std::tr1::get<N - 1>(t), os);
++ }
++
++ // Tersely prints the first N fields of a tuple to a string vector,
++ // one element for each field.
++ template <typename Tuple>
++ static void TersePrintPrefixToStrings(const Tuple& t, Strings* strings) {
++ TuplePrefixPrinter<N - 1>::TersePrintPrefixToStrings(t, strings);
++ ::std::stringstream ss;
++ UniversalTersePrint(::std::tr1::get<N - 1>(t), &ss);
++ strings->push_back(ss.str());
++ }
++};
++
++// Base cases.
++template <>
++struct TuplePrefixPrinter<0> {
++ template <typename Tuple>
++ static void PrintPrefixTo(const Tuple&, ::std::ostream*) {}
++
++ template <typename Tuple>
++ static void TersePrintPrefixToStrings(const Tuple&, Strings*) {}
++};
++template <>
++template <typename Tuple>
++void TuplePrefixPrinter<1>::PrintPrefixTo(const Tuple& t, ::std::ostream* os) {
++ UniversalPrinter<typename ::std::tr1::tuple_element<0, Tuple>::type>::
++ Print(::std::tr1::get<0>(t), os);
++}
++
++// Helper function for printing a tuple. T must be instantiated with
++// a tuple type.
++template <typename T>
++void PrintTupleTo(const T& t, ::std::ostream* os) {
++ *os << "(";
++ TuplePrefixPrinter< ::std::tr1::tuple_size<T>::value>::
++ PrintPrefixTo(t, os);
++ *os << ")";
++}
++
+ // Prints the fields of a tuple tersely to a string vector, one
+ // element for each field. See the comment before
+ // UniversalTersePrint() for how we define "tersely".
+
+------------------------------------------------------------------------
diff --git a/dev-cpp/gmock/gmock-1.4.0.ebuild b/dev-cpp/gmock/gmock-1.4.0.ebuild
new file mode 100644
index 00000000000..f9a10aca339
--- /dev/null
+++ b/dev-cpp/gmock/gmock-1.4.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit libtool eutils
+
+DESCRIPTION="Google's C++ mocking framework"
+HOMEPAGE="http://code.google.com/p/googlemock/"
+SRC_URI="http://googlemock.googlecode.com/files/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="static-libs"
+
+RDEPEND=">=dev-cpp/gtest-${PV}"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ default
+ # make sure we always use the system one
+ rm -r "${S}"/gtest/Makefile* || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-gcc-4.7.patch
+ epatch "${FILESDIR}"/${P}-more-gcc-4.7.patch
+ elibtoolize
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ use static-libs || find "${ED}"/usr -name '*.la' -delete
+}
diff --git a/dev-cpp/gmock/gmock-1.5.0.ebuild b/dev-cpp/gmock/gmock-1.5.0.ebuild
new file mode 100644
index 00000000000..e2501fc1ad3
--- /dev/null
+++ b/dev-cpp/gmock/gmock-1.5.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit libtool
+
+DESCRIPTION="Google's C++ mocking framework"
+HOMEPAGE="http://code.google.com/p/googlemock/"
+SRC_URI="http://googlemock.googlecode.com/files/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="static-libs"
+
+RDEPEND=">=dev-cpp/gtest-${PV}"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ default
+ # make sure we always use the system one
+ rm -r "${S}"/gtest/Makefile* || die
+}
+
+src_prepare() {
+ elibtoolize
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ use static-libs || find "${D}" -name '*.la' -delete
+}
diff --git a/dev-cpp/gmock/gmock-1.6.0.ebuild b/dev-cpp/gmock/gmock-1.6.0.ebuild
new file mode 100644
index 00000000000..846a9dbf86f
--- /dev/null
+++ b/dev-cpp/gmock/gmock-1.6.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit libtool
+
+DESCRIPTION="Google's C++ mocking framework"
+HOMEPAGE="http://code.google.com/p/googlemock/"
+SRC_URI="http://googlemock.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ~ppc64 ~s390 ~sh sparc x86"
+IUSE="static-libs"
+
+RDEPEND="=dev-cpp/gtest-${PV}*"
+DEPEND="app-arch/unzip
+ ${RDEPEND}"
+
+src_unpack() {
+ default
+ # make sure we always use the system one
+ rm -r "${S}"/gtest/{Makefile,configure}* || die
+}
+
+src_prepare() {
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.in
+ elibtoolize
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ dobin scripts/gmock-config
+ use static-libs || find "${D}" -name '*.la' -delete
+}
diff --git a/dev-cpp/gmock/gmock-1.7.0-r1.ebuild b/dev-cpp/gmock/gmock-1.7.0-r1.ebuild
new file mode 100644
index 00000000000..56c20d8da08
--- /dev/null
+++ b/dev-cpp/gmock/gmock-1.7.0-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit libtool multilib-minimal python-any-r1
+
+DESCRIPTION="Google's C++ mocking framework"
+HOMEPAGE="http://code.google.com/p/googlemock/"
+SRC_URI="http://googlemock.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+IUSE="static-libs test"
+
+RDEPEND="=dev-cpp/gtest-${PV}*[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( ${PYTHON_DEPS} )
+ app-arch/unzip"
+
+pkg_setup() {
+ # Stub to disable python_setup running when USE=-test.
+ # We'll handle it down in src_test ourselves.
+ :
+}
+
+src_unpack() {
+ default
+ # make sure we always use the system one
+ rm -r "${S}"/gtest/{Makefile,configure}* || die
+}
+
+src_prepare() {
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.in
+ elibtoolize
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} econf $(use_enable static-libs static)
+}
+
+multilib_src_test() {
+ python_setup
+ emake check
+}
+
+multilib_src_install() {
+ default
+ dobin scripts/gmock-config
+}
+
+multilib_src_install_all() {
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/dev-cpp/gmock/gmock-1.7.0.ebuild b/dev-cpp/gmock/gmock-1.7.0.ebuild
new file mode 100644
index 00000000000..d97eb319298
--- /dev/null
+++ b/dev-cpp/gmock/gmock-1.7.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit libtool
+
+DESCRIPTION="Google's C++ mocking framework"
+HOMEPAGE="http://code.google.com/p/googlemock/"
+SRC_URI="http://googlemock.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86"
+IUSE="static-libs"
+
+RDEPEND="=dev-cpp/gtest-${PV}*"
+DEPEND="app-arch/unzip
+ ${RDEPEND}"
+
+src_unpack() {
+ default
+ # make sure we always use the system one
+ rm -r "${S}"/gtest/{Makefile,configure}* || die
+}
+
+src_prepare() {
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.in
+ elibtoolize
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ dobin scripts/gmock-config
+ use static-libs || find "${D}" -name '*.la' -delete
+}
diff --git a/dev-cpp/gmock/metadata.xml b/dev-cpp/gmock/metadata.xml
new file mode 100644
index 00000000000..541e716613f
--- /dev/null
+++ b/dev-cpp/gmock/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">googlemock</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/gnome-vfsmm/Manifest b/dev-cpp/gnome-vfsmm/Manifest
new file mode 100644
index 00000000000..bf4107be650
--- /dev/null
+++ b/dev-cpp/gnome-vfsmm/Manifest
@@ -0,0 +1 @@
+DIST gnome-vfsmm-2.26.0.tar.bz2 628670 SHA256 d6a89fc82238bbfd6d3f7e44bcaee73dc197be98635be482a2d2df38ec0446d3 SHA512 82e538c06615af83e9e455b0db601e37ee5396cac9b44884879383f3671876cca62bf534f4338177d1a62ab59e834d197302533dcc77f3c09b5433da9c660af8 WHIRLPOOL 896eb76e426d5635e70f15df63851c5fc4127f9e549f42697fd82c8cde37c2b4a32cc5c7cf3439a08497421f824f0087ca438c8e366e908f43dee683f13289cf
diff --git a/dev-cpp/gnome-vfsmm/gnome-vfsmm-2.26.0.ebuild b/dev-cpp/gnome-vfsmm/gnome-vfsmm-2.26.0.ebuild
new file mode 100644
index 00000000000..9255db60b88
--- /dev/null
+++ b/dev-cpp/gnome-vfsmm/gnome-vfsmm-2.26.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for gnome-vfs"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1"
+SLOT="1.1"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sh sparc x86 ~x86-fbsd"
+IUSE="doc examples"
+
+# glibmm dep is because build fails with older versions...
+RDEPEND="
+ >=gnome-base/gnome-vfs-2.8.1
+ >=dev-cpp/glibmm-2.12
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+
+src_prepare() {
+ if ! use doc; then
+ # documentation requires Doxygen and takes time
+ sed -i 's/^\(SUBDIRS =.*\)docs\(.*\)$/\1\2/' Makefile.in || \
+ die "sed Makefile.in failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building the examples
+ sed -i 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' Makefile.in || \
+ die "sed Makefile.in failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use doc ; then
+ dohtml -r docs/reference/html/*
+ fi
+
+ if use examples; then
+ find examples -type d -name '.deps' -exec rm -fr {} \; 2>/dev/null
+ cp -R examples "${ED}"/usr/share/doc/${PF}
+ fi
+}
diff --git a/dev-cpp/gnome-vfsmm/metadata.xml b/dev-cpp/gnome-vfsmm/metadata.xml
new file mode 100644
index 00000000000..8fc59a31832
--- /dev/null
+++ b/dev-cpp/gnome-vfsmm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/gstreamermm/Manifest b/dev-cpp/gstreamermm/Manifest
new file mode 100644
index 00000000000..bc133a96671
--- /dev/null
+++ b/dev-cpp/gstreamermm/Manifest
@@ -0,0 +1,3 @@
+DIST gstreamermm-0.10.11.tar.xz 5840552 SHA256 12b5f377363594a69cb79f2f5cd0a8b1813ca6553680c3216e6354cfd682ebc6 SHA512 2ad370f6902dcb4663ea801bdbbf744a98de9e24fc04f27b5044a4a95337168e2bb195761a07ac9c1011f9ed4936287fcc5f4c2b984f0a362b429d05be7d3909 WHIRLPOOL d9be72d4691b9b0769b75819ca9403a2df7f1dbdad4974e4b26e4fd87d4b7ea0503fb2ba6a500a008ec9d1c29f6677e61649798801e6babf7e4d7b8562cc72f2
+DIST gstreamermm-1.0.10.tar.xz 4649144 SHA256 dd9e9b2d2bc7f52ab9196f4613b99700e1c9f2ab7c076bd87c657f3f435f1dc6 SHA512 6f67e823b9f4d1384b139cef47c3de5f28df437452cbba54369973c00f675d40ce9937f38e063b31f5a824f0facdc53d54a2ec4c04e03ed8eee89ad39f9e1229 WHIRLPOOL cf045345fed45d94aa61b5a4c75f1149f9ae280476d284c00bdd3cb33be9369215be3fe540443f6c015ae1e9c25558173d86775b5fbd9d821cb7f8616197c8b0
+DIST gstreamermm-1.4.3.tar.xz 5886048 SHA256 f1c11ee1cf7537d77de7f8d486e09c5140cc4bb78882849718cd88959a55462e SHA512 ea4d281a4f3b79113fc3a0474e23d82442facac6eaf66215de412310b9c306aa5d586ee5570087d94d90acbfc09c5766edba1414b50f0fd9a3111cda610f5671 WHIRLPOOL b8bee1e9672c5ca527718e1826a4b486ea47fd772b079dddb532716c2082bb4cca55823a8b3dcd5eabe8819ee944b0cb68740c6b986ff329b71dad47240fe904
diff --git a/dev-cpp/gstreamermm/gstreamermm-0.10.11.ebuild b/dev-cpp/gstreamermm/gstreamermm-0.10.11.ebuild
new file mode 100644
index 00000000000..aca693a5faa
--- /dev/null
+++ b/dev-cpp/gstreamermm/gstreamermm-0.10.11.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for GStreamer"
+HOMEPAGE="http://gstreamer.freedesktop.org/bindings/cplusplus.html"
+
+LICENSE="LGPL-2.1"
+SLOT="0.10"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="test"
+
+RDEPEND="
+ >=media-libs/gstreamer-0.10.36:0.10
+ >=media-libs/gst-plugins-base-0.10.36:0.10
+ >=dev-cpp/glibmm-2.33.4:2
+ >=dev-cpp/libxmlpp-2.14:2.6
+ >=dev-libs/libsigc++-2:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? (
+ media-libs/gst-plugins-good:0.10
+ media-plugins/gst-plugins-vorbis:0.10
+ media-plugins/gst-plugins-x:0.10 )
+"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+# Installs reference docs into /usr/share/doc/gstreamermm-0.10/
+# but that's okay, because the rest of dev-cpp/*mm stuff does the same
diff --git a/dev-cpp/gstreamermm/gstreamermm-1.0.10.ebuild b/dev-cpp/gstreamermm/gstreamermm-1.0.10.ebuild
new file mode 100644
index 00000000000..f8900522f23
--- /dev/null
+++ b/dev-cpp/gstreamermm/gstreamermm-1.0.10.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for GStreamer"
+HOMEPAGE="http://gstreamer.freedesktop.org/bindings/cplusplus.html"
+
+LICENSE="LGPL-2.1"
+SLOT="1.0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=media-libs/gstreamer-1.0.10:1.0
+ >=media-libs/gst-plugins-base-1.0.10:1.0
+ >=dev-cpp/glibmm-2.36:2
+ >=dev-cpp/libxmlpp-2.14:2.6
+ >=dev-libs/libsigc++-2:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz )
+ test? (
+ dev-cpp/gtest
+ media-libs/gst-plugins-base:1.0[X,ogg,theora,vorbis]
+ media-libs/gst-plugins-good:1.0
+ media-plugins/gst-plugins-jpeg:1.0 )
+"
+# dev-cpp/mm-common"
+# eautoreconf needs mm-common
+
+# Installs reference docs into /usr/share/doc/gstreamermm-1.0/
+# but that's okay, because the rest of dev-cpp/*mm stuff does the same
+
+src_prepare() {
+ if ! use examples; then
+ # don't waste time building examples
+ sed -e 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die
+ fi
+
+ # FIXME: disable endless unittests, report upstream
+ sed -e '/test-regression-rewritefile$(EXEEXT) \\/d' \
+ -e '/test-regression-seekonstartup$(EXEEXT) \\/d' \
+ -i tests/Makefile.in || die
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure $(use_enable doc documentation)
+}
+
+src_test() {
+ # running tests in parallel fails
+ emake -j1 check || die
+}
diff --git a/dev-cpp/gstreamermm/gstreamermm-1.4.3.ebuild b/dev-cpp/gstreamermm/gstreamermm-1.4.3.ebuild
new file mode 100644
index 00000000000..945242a7ae6
--- /dev/null
+++ b/dev-cpp/gstreamermm/gstreamermm-1.4.3.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for GStreamer"
+HOMEPAGE="http://gstreamer.freedesktop.org/bindings/cplusplus.html"
+
+LICENSE="LGPL-2.1"
+SLOT="1.0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=media-libs/gstreamer-${PV}:1.0
+ >=media-libs/gst-plugins-base-${PV}:1.0
+ >=dev-cpp/glibmm-2.36:2
+ >=dev-cpp/libxmlpp-2.14:2.6
+ >=dev-libs/libsigc++-2:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz )
+ test? (
+ dev-cpp/gtest
+ >=media-libs/gst-plugins-base-${PV}:1.0[X,ogg,theora,vorbis]
+ >=media-libs/gst-plugins-good-${PV}:1.0
+ >=media-plugins/gst-plugins-jpeg-${PV}:1.0 )
+"
+# dev-cpp/mm-common"
+# eautoreconf needs mm-common
+
+# Installs reference docs into /usr/share/doc/gstreamermm-1.0/
+# but that's okay, because the rest of dev-cpp/*mm stuff does the same
+
+src_prepare() {
+ if ! use examples; then
+ # don't waste time building examples
+ sed -e 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' \
+ -i Makefile.am Makefile.in || die
+ fi
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure $(use_enable doc documentation)
+}
+
+src_test() {
+ # running tests in parallel fails
+ emake -j1 check || die
+}
diff --git a/dev-cpp/gstreamermm/metadata.xml b/dev-cpp/gstreamermm/metadata.xml
new file mode 100644
index 00000000000..2c5fea7ddf3
--- /dev/null
+++ b/dev-cpp/gstreamermm/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome</herd>
+ <maintainer>
+ <email>eva@gentoo.org</email>
+ <name>Gilles Dartiguelongue</name>
+ </maintainer>
+</pkgmetadata>
+
diff --git a/dev-cpp/gtest/Manifest b/dev-cpp/gtest/Manifest
new file mode 100644
index 00000000000..20901f0fc57
--- /dev/null
+++ b/dev-cpp/gtest/Manifest
@@ -0,0 +1,2 @@
+DIST gtest-1.6.0.zip 1121697 SHA256 5ec97df8e75b4ee796604e74716d1b50582beba22c5502edd055a7e67a3965d8 SHA512 f4718dfbfa3339bb9449c3f14e5b44ae405ea7df64c10a0957a6300985b71c4642981d069a1382e27ae041a4e2873527a9e442aff978447e795a190f99fac115 WHIRLPOOL 745a49020d4353ed2fa38adfc80bbd777358c831719bbe3b7c90d243f84256615222ba5f04d48d98b9e1a803bb40766799b3aedd575024c19d853d9239a12f8a
+DIST gtest-1.7.0.zip 1164254 SHA256 247ca18dd83f53deb1328be17e4b1be31514cedfc1e3424f672bf11fd7e0d60d SHA512 8859369f2dd32cbc2ac01aba029aa3ff20a321f40658b9643aff442d34c33468221866b801b28c66a28af47dbcd362d26941fc98db92b6efb7e41ea5b7be1a07 WHIRLPOOL 0c31a385159551859c1afe76480b3fb1b560d666db9a0afc5cbda92bcd53bf129f85a8f902c6ded0779c2b4c49aacec59ba5a4d5ce316a07bf08174f4fc64049
diff --git a/dev-cpp/gtest/files/configure-fix-pthread-linking.patch b/dev-cpp/gtest/files/configure-fix-pthread-linking.patch
new file mode 100644
index 00000000000..75e5219b7a7
--- /dev/null
+++ b/dev-cpp/gtest/files/configure-fix-pthread-linking.patch
@@ -0,0 +1,93 @@
+From fb71154012e634a5e780e93af5434bcdafaf2b24 Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@gmail.com>
+Date: Mon, 15 Oct 2012 17:25:07 -0400
+Subject: [PATCH] configure: fix pthread linking
+
+- Update the pthread check to make sure that we don't need -lpthread when
+compiling with -nostdlib.
+
+- Make sure that the necessary pthread library is passed to libtool.
+
+Fixes:
+
+$ ldd -r /usr/lib/libgtest.so
+ linux-vdso.so.1 (0x00007fffe7dff000)
+ libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6 (0x00007fbe09a9f000)
+ libc.so.6 => /lib64/libc.so.6 (0x00007fbe096f7000)
+ libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1 (0x00007fbe094e1000)
+ libm.so.6 => /lib64/libm.so.6 (0x00007fbe091ee000)
+ /lib64/ld-linux-x86-64.so.2 (0x00007fbe0a005000)
+undefined symbol: pthread_key_create (/usr/lib/libgtest.so)
+undefined symbol: pthread_getspecific (/usr/lib/libgtest.so)
+undefined symbol: pthread_key_delete (/usr/lib/libgtest.so)
+undefined symbol: pthread_setspecific (/usr/lib/libgtest.so)
+---
+ Makefile.am | 1 +
+ m4/acx_pthread.m4 | 39 ++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 39 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index cb350b7..db2606e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -181,6 +181,7 @@ endif
+ lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la
+
+ lib_libgtest_la_SOURCES = src/gtest-all.cc
++lib_libgtest_la_LIBADD = $(AM_LIBS)
+
+ pkginclude_HEADERS = \
+ include/gtest/gtest-death-test.h \
+diff --git a/m4/acx_pthread.m4 b/m4/acx_pthread.m4
+index 2cf20de..7fba4d9 100644
+--- a/m4/acx_pthread.m4
++++ b/m4/acx_pthread.m4
+@@ -339,7 +339,44 @@ if test "x$acx_pthread_ok" = xyes; then
+ # so it's not safe to assume that we may use pthreads
+ acx_pthread_ok=no
+ fi
+-
++
++ AC_MSG_CHECKING([whether what we have so far is sufficient with -nostdlib])
++ CFLAGS="-nostdlib $CFLAGS"
++ # we need c with nostdlib
++ LIBS="$LIBS -lc"
++ AC_TRY_LINK([#include <pthread.h>],
++ [pthread_t th; pthread_join(th, 0);
++ pthread_attr_init(0); pthread_cleanup_push(0, 0);
++ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
++ [done=yes],[done=no])
++
++ if test "x$done" = xyes; then
++ AC_MSG_RESULT([yes])
++ else
++ AC_MSG_RESULT([no])
++ fi
++
++ if test x"$done" = xno; then
++ AC_MSG_CHECKING([whether -lpthread saves the day])
++ LIBS="-lpthread $LIBS"
++ AC_TRY_LINK([#include <pthread.h>],
++ [pthread_t th; pthread_join(th, 0);
++ pthread_attr_init(0); pthread_cleanup_push(0, 0);
++ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
++ [done=yes],[done=no])
++
++ if test "x$done" = xyes; then
++ AC_MSG_RESULT([yes])
++ PTHREAD_LIBS="$PTHREAD_LIBS -lpthread"
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries and -nostdlib])
++ fi
++ fi
++
++ CFLAGS="$save_CFLAGS"
++ LIBS="$save_LIBS"
++ CC="$save_CC"
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+ CC="$save_CC"
+--
+1.7.8.6
+
diff --git a/dev-cpp/gtest/gtest-1.6.0-r1.ebuild b/dev-cpp/gtest/gtest-1.6.0-r1.ebuild
new file mode 100644
index 00000000000..38bef885aee
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.6.0-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+PYTHON_DEPEND="2"
+
+inherit eutils python autotools
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="http://code.google.com/p/googletest/"
+SRC_URI="http://googletest.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos"
+IUSE="examples static-libs"
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+pkg_setup() {
+ python_pkg_setup
+ python_set_active_version 2
+}
+
+src_prepare() {
+ sed -i -e "s|/tmp|${T}|g" test/gtest-filepath_test.cc || die
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.am || die
+ epatch "${FILESDIR}"/configure-fix-pthread-linking.patch #371647
+ eautoreconf
+
+ python_convert_shebangs -r 2 .
+}
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static)
+}
+
+src_test() {
+ # explicitly use parallel make
+ emake check || die
+}
+
+src_install() {
+ default
+ dobin scripts/gtest-config
+
+ if ! use static-libs ; then
+ rm "${ED}"/usr/lib*/*.la || die
+ fi
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples
+ doins samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-1.6.0-r2.ebuild b/dev-cpp/gtest/gtest-1.6.0-r2.ebuild
new file mode 100644
index 00000000000..2c3a158088f
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.6.0-r2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-any-r1 autotools-multilib
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="http://code.google.com/p/googletest/"
+SRC_URI="http://googletest.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="examples static-libs"
+
+DEPEND="app-arch/unzip
+ ${PYTHON_DEPS}"
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}/configure-fix-pthread-linking.patch" #371647
+)
+
+AUTOTOOLS_AUTORECONF="1"
+
+src_prepare() {
+ sed -i -e "s|/tmp|${T}|g" test/gtest-filepath_test.cc || die
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.am || die
+ autotools-multilib_src_prepare
+
+ multilib_copy_sources
+}
+
+src_configure() {
+ multilib_parallel_foreach_abi gtest_src_configure
+}
+
+src_install() {
+ autotools-multilib_src_install
+ multilib_for_best_abi gtest-config_install
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples
+ doins samples/*.{cc,h}
+ fi
+}
+
+gtest_src_configure() {
+ ECONF_SOURCE="${BUILD_DIR}"
+ autotools-utils_src_configure
+}
+
+gtest-config_install() {
+ dobin "${BUILD_DIR}/scripts/gtest-config"
+}
diff --git a/dev-cpp/gtest/gtest-1.6.0.ebuild b/dev-cpp/gtest/gtest-1.6.0.ebuild
new file mode 100644
index 00000000000..12d5c0c5255
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.6.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+PYTHON_DEPEND="2"
+
+inherit python libtool
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="http://code.google.com/p/googletest/"
+SRC_URI="http://googletest.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos"
+IUSE="examples threads static-libs"
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+pkg_setup() {
+ python_pkg_setup
+ python_set_active_version 2
+}
+
+src_prepare() {
+ sed -i -e "s|/tmp|${T}|g" test/gtest-filepath_test.cc || die
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.in
+ elibtoolize
+
+ python_convert_shebangs -r 2 .
+}
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static) \
+ $(use_with threads pthreads)
+}
+
+src_test() {
+ # explicitly use parallel make
+ emake check || die
+}
+
+src_install() {
+ default
+ dobin scripts/gtest-config
+
+ if ! use static-libs ; then
+ rm "${ED}"/usr/lib*/*.la || die
+ fi
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples
+ doins samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-1.7.0.ebuild b/dev-cpp/gtest/gtest-1.7.0.ebuild
new file mode 100644
index 00000000000..e593cf687e9
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.7.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_IN_SOURCE_BUILD=1
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-any-r1 autotools-multilib
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="http://code.google.com/p/googletest/"
+SRC_URI="http://googletest.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="examples static-libs"
+
+DEPEND="app-arch/unzip
+ ${PYTHON_DEPS}"
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}/configure-fix-pthread-linking.patch" #371647
+)
+
+src_prepare() {
+ sed -i -e "s|/tmp|${T}|g" test/gtest-filepath_test.cc || die
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.am || die
+ autotools-multilib_src_prepare
+}
+
+multilib_src_install() {
+ default
+ multilib_is_native_abi && dobin scripts/gtest-config
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+ einstalldocs
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples
+ doins samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/metadata.xml b/dev-cpp/gtest/metadata.xml
new file mode 100644
index 00000000000..00270970185
--- /dev/null
+++ b/dev-cpp/gtest/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tomka@gentoo.org</email>
+ <name>Thomas Kahle</name>
+ </maintainer>
+ <upstream>
+ <doc lang="en">http://code.google.com/p/googletest/w/list</doc>
+ <remote-id type="google-code">googletest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/gtkglextmm/Manifest b/dev-cpp/gtkglextmm/Manifest
new file mode 100644
index 00000000000..3af4d5be6ae
--- /dev/null
+++ b/dev-cpp/gtkglextmm/Manifest
@@ -0,0 +1 @@
+DIST gtkglextmm-1.2.0.tar.bz2 623815 SHA256 6cd4bd2a240e5eb1e3a24c5a3ebbf7ed905b522b888439778043fdeb58771fea SHA512 94e66bc295000bb3f3352f58c9848372a4c23586dcc52450806c73e3e0630ab2b51291b347da16bba853b658deb070218203a031d906fc2ff051386dd065aba9 WHIRLPOOL 9d1927136edb226179c7ce356699c4504785a53a40575e43a875f0c9685965405b2632ec7cc98f55f3206ef7d6b25996fc2ad80b1d5c12213644b730fd81791b
diff --git a/dev-cpp/gtkglextmm/gtkglextmm-1.2.0-r1.ebuild b/dev-cpp/gtkglextmm/gtkglextmm-1.2.0-r1.ebuild
new file mode 100644
index 00000000000..78aa178f373
--- /dev/null
+++ b/dev-cpp/gtkglextmm/gtkglextmm-1.2.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="yes"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for gtkglext"
+HOMEPAGE="http://projects.gnome.org/gtkglext/"
+SRC_URI="mirror://sourceforge/gtkglext/${P}.tar.bz2"
+
+KEYWORDS="amd64 ppc x86"
+IUSE="doc"
+SLOT="1.0"
+LICENSE="GPL-2 LGPL-2.1"
+
+RDEPEND="
+ >=x11-libs/gtkglext-1
+ >=dev-libs/libsigc++-2.0
+ >=dev-cpp/glibmm-2.4:2
+ >=dev-cpp/gtkmm-2.4:2.4
+ virtual/opengl
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ # Remove docs from SUBDIRS so that docs are not installed, as
+ # we handle it in src_install.
+ sed -i -e 's|^\(SUBDIRS =.*\)docs\(.*\)|\1\2|' Makefile.in || \
+ die "sed Makefile.in failed"
+
+ gnome2_src_prepare
+}
+
+src_install() {
+ gnome2_src_install
+ if use doc; then
+ dohtml -r docs/reference/html/*
+ fi
+}
diff --git a/dev-cpp/gtkglextmm/metadata.xml b/dev-cpp/gtkglextmm/metadata.xml
new file mode 100644
index 00000000000..d8abd0a8270
--- /dev/null
+++ b/dev-cpp/gtkglextmm/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome-mm</herd>
+ <upstream>
+ <remote-id type="sourceforge">gtkglext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/gtkmm-utils/Manifest b/dev-cpp/gtkmm-utils/Manifest
new file mode 100644
index 00000000000..7740b30fbc0
--- /dev/null
+++ b/dev-cpp/gtkmm-utils/Manifest
@@ -0,0 +1 @@
+DIST gtkmm-utils-0.4.1.tar.gz 388799 SHA256 bce5d908d1bec9cec0a74514458e6b9cf5198835fc6383c94d27ba388aae938d SHA512 d996cf4409ed351c4055071bd2274631775df9a67f9be47fb01eb6c35a77768985141dbf1238e091ae923f31f90921856dc76560c66f68292226e548f54c4260 WHIRLPOOL ef1ab4422914196895bd137d61a51f70ac582df00ba9b2c91a4fb9e0b6b81f24cfd5b9587803a38773a5a5804ccbfec92c0d85d607d8ce5c44270bc2b2f07553
diff --git a/dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-glib.patch b/dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-glib.patch
new file mode 100644
index 00000000000..6d2125b05e7
--- /dev/null
+++ b/dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-glib.patch
@@ -0,0 +1,37 @@
+diff -urN a/glibmm-utils/date.cc b/glibmm-utils/date.cc
+--- a/glibmm-utils/date.cc 2008-01-16 18:22:26.000000000 +0100
++++ b/glibmm-utils/date.cc 2012-11-12 23:39:05.463659600 +0100
+@@ -25,7 +25,7 @@
+
+ #include <sys/time.h>
+
+-#include <glib/gmessages.h>
++#include <glib.h>
+
+ #include <glibmm/convert.h>
+ #include <glibmm/date.h>
+diff -urN a/glibmm-utils/log-stream.cc b/glibmm-utils/log-stream.cc
+--- a/glibmm-utils/log-stream.cc 2008-10-14 14:11:14.000000000 +0200
++++ b/glibmm-utils/log-stream.cc 2012-11-12 23:39:36.715665677 +0100
+@@ -29,7 +29,7 @@
+ #include <tr1/memory>
+ #include <glibmm.h>
+ #include <glibmm/thread.h>
+-#include <glib/gstdio.h>
++#include <glib.h>
+
+ #include "log-stream.h"
+ #include "exception.h"
+diff -urN a/glibmm-utils/ustring.cc b/glibmm-utils/ustring.cc
+--- a/glibmm-utils/ustring.cc 2008-06-19 15:12:29.000000000 +0200
++++ b/glibmm-utils/ustring.cc 2012-11-12 23:40:07.511671596 +0100
+@@ -20,8 +20,7 @@
+ */
+
+ #include <cstring> // for g++ 4.3
+-#include <glib/gmem.h>
+-#include <glib/gmessages.h>
++#include <glib.h>
+ #include "ustring.h"
+
+ namespace Glib {
diff --git a/dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-include-fix.patch b/dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-include-fix.patch
new file mode 100644
index 00000000000..2208eeaecd6
--- /dev/null
+++ b/dev-cpp/gtkmm-utils/files/gtkmm-utils-0.4.1-include-fix.patch
@@ -0,0 +1,11 @@
+diff -urN b/glibmm-utils/log-stream.cc c/glibmm-utils/log-stream.cc
+--- b/glibmm-utils/log-stream.cc 2012-11-12 23:57:19.311866269 +0100
++++ c/glibmm-utils/log-stream.cc 2012-11-12 23:57:36.031869479 +0100
+@@ -20,6 +20,7 @@
+ */
+
+ #include <sys/time.h>
++#include <sys/stat.h>
+ #include <cstring> // for g++ 4.3
+ #include <iostream>
+ #include <map>
diff --git a/dev-cpp/gtkmm-utils/gtkmm-utils-0.4.1.ebuild b/dev-cpp/gtkmm-utils/gtkmm-utils-0.4.1.ebuild
new file mode 100644
index 00000000000..0cae73a5158
--- /dev/null
+++ b/dev-cpp/gtkmm-utils/gtkmm-utils-0.4.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils
+
+DESCRIPTION="Utility functions, classes and widgets written on top of gtkmm and
+glibmm."
+HOMEPAGE="http://code.google.com/p/gtkmm-utils/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+LICENSE="LGPL-2"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="dev-cpp/gtkmm:2.4"
+DEPEND="
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+ ${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-glib.patch"
+ epatch "${FILESDIR}/${P}-include-fix.patch"
+}
+
+src_configure() {
+ econf $(use_enable doc documentation)
+}
diff --git a/dev-cpp/gtkmm-utils/metadata.xml b/dev-cpp/gtkmm-utils/metadata.xml
new file mode 100644
index 00000000000..30bc9d0f0a3
--- /dev/null
+++ b/dev-cpp/gtkmm-utils/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+<email>dominik.kriegner+gentoo@gmail.com</email>
+<name>Dominik Kriegner</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/dev-cpp/gtkmm/Manifest b/dev-cpp/gtkmm/Manifest
new file mode 100644
index 00000000000..f9b615812cd
--- /dev/null
+++ b/dev-cpp/gtkmm/Manifest
@@ -0,0 +1,4 @@
+DIST gtkmm-2.24.4.tar.xz 10262212 SHA256 443a2ff3fcb42a915609f1779000390c640a6d7fd19ad8816e6161053696f5ee SHA512 75d8c7a7c32adb33a9867b36877422bce52d8486d66be5aaa2afe1eee439efc2ba09aab7d06b9986d74879103415062c5386d5354aff6d44a63b2ba2d75f7c89 WHIRLPOOL 06074ec3f2f7adfe1f24b4d629ef73e852a9b21d719f2705f254389802813b53625be0be4aa30e191df134609b8349ea0725afcf858d26c0bf18282dd8358ab0
+DIST gtkmm-3.12.0.tar.xz 10113956 SHA256 86c526ceec15d889996822128d566748bb36f70cf5a2c270530dfc546a2574e1 SHA512 a412fca2adc0b35c6f282ce091587a66f255a27fe294b0f064083a4c2b621bf0b44999e4967dd3ed21bb07bd5dc27e312dafa1d6c20ed976a01e0a7a558b5fad WHIRLPOOL c59c2bc5e34463a599aa71462d8635c83ee763bc9cc3fd702d99f8341a2db3e86934d543f86c57fd967af6a964cf41b1c94562e4b556a97e0d80949b3857d432
+DIST gtkmm-3.14.0.tar.xz 11400284 SHA256 d9f528a62c6ec226fa08287c45c7465b2dce5aae5068e9ac48d30a64a378e48b SHA512 0525381c19fd0ac0c2f1895f8acd1401caa4b3486b4ca644fb032e1dc984a39deac6552f0bd59e6892705c77d050e0642618bd48ad28e353eaf331c790a684c2 WHIRLPOOL 877e6f7ce7d7ce97a4361829320215bb308f05cda27475bf8f925905ac86054bf03a3137336085ccf244bac87cdeb285b5229628ec09c484a6b12d51a8cb88cd
+DIST gtkmm-3.16.0.tar.xz 11468644 SHA256 9b8d4af5e1bb64e52b53bc8ef471ef43e1b9d11a829f16ef54c3a92985b0dd0c SHA512 282e53a0f3f3c4d1594057e4367bb4f4abe8fbf7f2bae2a819b35d4e4137a3e739aa83039114eb52eba16a9dd048abd78f011fb14635e53cf61019c6f4c06397 WHIRLPOOL 87c4dbccb79472c264621b3b96f5e06c73d03f4bbc0121f25e9c29f75e5c3e3e57aede9398b6c8b00e47d4eccd5eb6dfc6068c242af744f77f1d59af14bd2f25
diff --git a/dev-cpp/gtkmm/files/gtkmm-2.24.4-missing-includes.patch b/dev-cpp/gtkmm/files/gtkmm-2.24.4-missing-includes.patch
new file mode 100644
index 00000000000..640d48a3d12
--- /dev/null
+++ b/dev-cpp/gtkmm/files/gtkmm-2.24.4-missing-includes.patch
@@ -0,0 +1,200 @@
+From 185abd365c2898ad77dbb33a099341fa28e5a496 Mon Sep 17 00:00:00 2001
+From: Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
+Date: Thu, 2 Jul 2015 19:53:16 +0200
+Subject: Add #includes needed with glibmm newer than 2.31.0.
+
+ * gdk/src/color.hg:
+ * gdk/src/pixbufanimationiter.hg:
+ * gdk/src/pixbufformat.hg:
+ * gdk/src/rectangle.hg:
+ * gdk/src/rgbcmap.hg:
+ * gdk/src/types.hg:
+ * gtk/src/enums.hg:
+ * gtk/src/main.hg:
+ * gtk/src/papersize.hg:
+ * gtk/src/textattributes.hg:
+ * gtk/src/treemodel.hg: Add individual includes now that gmmproc does not
+ add #include <glibmm.h> at the top of every generated header.
+ * gtk/gtkmm/border.h: Add #include <gtk/gtk.h> to make
+ glibmm/tools/test_scripts/testheaders.sh happy.
+
+diff --git a/ChangeLog b/ChangeLog
+index 73e1eac..1d6d4d0 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,22 @@
++2015-07-02 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
++
++ Add #includes needed with glibmm newer than 2.31.0.
++
++ * gdk/src/color.hg:
++ * gdk/src/pixbufanimationiter.hg:
++ * gdk/src/pixbufformat.hg:
++ * gdk/src/rectangle.hg:
++ * gdk/src/rgbcmap.hg:
++ * gdk/src/types.hg:
++ * gtk/src/enums.hg:
++ * gtk/src/main.hg:
++ * gtk/src/papersize.hg:
++ * gtk/src/textattributes.hg:
++ * gtk/src/treemodel.hg: Add individual includes now that gmmproc does not
++ add #include <glibmm.h> at the top of every generated header.
++ * gtk/gtkmm/border.h: Add #include <gtk/gtk.h> to make
++ glibmm/tools/test_scripts/testheaders.sh happy.
++
+ 2012-03-14 Murray Cumming <murrayc@murrayc.com>
+
+ PaperSize: Correct the PaperSizeTraits pre-declaration.
+diff --git a/gdk/src/color.hg b/gdk/src/color.hg
+index ce22d4b..09c91fc 100644
+--- a/gdk/src/color.hg
++++ b/gdk/src/color.hg
+@@ -21,6 +21,8 @@
+ // the #ifndef GDKMM_DISABLE_DEPRECATED in deprecated classes) is generated:
+ _CONFIGINCLUDE(gdkmmconfig.h)
+
++#include <glibmm/arrayhandle.h>
++
+ _DEFS(gdkmm,gdk)
+
+ namespace Gdk
+diff --git a/gdk/src/pixbufanimationiter.hg b/gdk/src/pixbufanimationiter.hg
+index 4e12f52..f89a037 100644
+--- a/gdk/src/pixbufanimationiter.hg
++++ b/gdk/src/pixbufanimationiter.hg
+@@ -21,6 +21,7 @@
+
+ #include <glibmm/object.h>
+ #include <gdkmm/pixbuf.h>
++#include <glibmm/timeval.h>
+ #include <gdk-pixbuf/gdk-pixbuf.h>
+
+ _DEFS(gdkmm,gdk)
+diff --git a/gdk/src/pixbufformat.hg b/gdk/src/pixbufformat.hg
+index c460056..6c7daab 100644
+--- a/gdk/src/pixbufformat.hg
++++ b/gdk/src/pixbufformat.hg
+@@ -20,7 +20,7 @@
+ _DEFS(gdkmm,gdk)
+
+ #include <gdkmmconfig.h>
+-
++#include <glibmm/arrayhandle.h>
+
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+ extern "C" { typedef struct _GdkPixbufFormat GdkPixbufFormat; }
+diff --git a/gdk/src/rectangle.hg b/gdk/src/rectangle.hg
+index f48de5a..01d1959 100644
+--- a/gdk/src/rectangle.hg
++++ b/gdk/src/rectangle.hg
+@@ -19,6 +19,7 @@
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <glibmm/value.h>
+ #include <gdk/gdk.h>
+
+ _DEFS(gdkmm,gdk)
+diff --git a/gdk/src/rgbcmap.hg b/gdk/src/rgbcmap.hg
+index bfdfdfe..817661f 100644
+--- a/gdk/src/rgbcmap.hg
++++ b/gdk/src/rgbcmap.hg
+@@ -24,6 +24,7 @@ _DEFS(gdkmm,gdk)
+ #m4 _POP()
+
+ #include <gdkmmconfig.h>
++#include <glibmm/arrayhandle.h>
+
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+ extern "C" { typedef struct _GdkRgbCmap GdkRgbCmap; }
+diff --git a/gdk/src/types.hg b/gdk/src/types.hg
+index fd644b8..a05ba0c 100644
+--- a/gdk/src/types.hg
++++ b/gdk/src/types.hg
+@@ -19,6 +19,8 @@
+
+ _DEFS(gdkmm,gdk)
+
++#include <glibmm/arrayhandle.h>
++#include <glibmm/listhandle.h>
+ #include <gdk/gdk.h>
+ #include <gdkmmconfig.h>
+
+diff --git a/gtk/gtkmm/border.h b/gtk/gtkmm/border.h
+index a64c669..b48017e 100644
+--- a/gtk/gtkmm/border.h
++++ b/gtk/gtkmm/border.h
+@@ -22,6 +22,7 @@
+ */
+
+ #include <glibmm/value.h>
++#include <gtk/gtk.h> /* For GtkBorder */
+
+ namespace Gtk
+ {
+diff --git a/gtk/src/enums.hg b/gtk/src/enums.hg
+index 66c3696..ad3d20c 100644
+--- a/gtk/src/enums.hg
++++ b/gtk/src/enums.hg
+@@ -19,6 +19,7 @@
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <glibmm/value.h>
+ #include <gtkmmconfig.h> //For GTKMM_MAEMO_EXTENSIONS_ENABLED
+
+ _DEFS(gtkmm,gtk)
+diff --git a/gtk/src/main.hg b/gtk/src/main.hg
+index c6c05ed..2665445 100644
+--- a/gtk/src/main.hg
++++ b/gtk/src/main.hg
+@@ -22,6 +22,7 @@
+
+ #include <sigc++/sigc++.h>
+ #include <gdkmm/types.h> //For GdkEventKey
++#include <glibmm/optioncontext.h>
+
+ _DEFS(gtkmm,gtk)
+
+diff --git a/gtk/src/papersize.hg b/gtk/src/papersize.hg
+index 41fcb3c..3914cd1 100644
+--- a/gtk/src/papersize.hg
++++ b/gtk/src/papersize.hg
+@@ -17,6 +17,9 @@
+
+ _DEFS(gtkmm,gtk)
+
++#include <glibmm/keyfile.h>
++#include <glibmm/listhandle.h>
++
+ namespace Gtk
+ {
+
+diff --git a/gtk/src/textattributes.hg b/gtk/src/textattributes.hg
+index b043f98..3966529 100644
+--- a/gtk/src/textattributes.hg
++++ b/gtk/src/textattributes.hg
+@@ -22,6 +22,8 @@
+
+ _DEFS(gtkmm,gtk)
+
++#include <glibmm/value.h>
++
+ namespace Gtk
+ {
+
+diff --git a/gtk/src/treemodel.hg b/gtk/src/treemodel.hg
+index a04d924..360b4ed 100644
+--- a/gtk/src/treemodel.hg
++++ b/gtk/src/treemodel.hg
+@@ -18,6 +18,7 @@
+ */
+
+ #include <glibmm/interface.h>
++#include <glibmm/arrayhandle.h>
+ #include <gtkmm/treeiter.h>
+
+ _DEFS(gtkmm,gtk)
+--
+cgit v0.10.2
+
diff --git a/dev-cpp/gtkmm/files/gtkmm-2.24.4-newer-glibmm.patch b/dev-cpp/gtkmm/files/gtkmm-2.24.4-newer-glibmm.patch
new file mode 100644
index 00000000000..54a1ee0b34f
--- /dev/null
+++ b/dev-cpp/gtkmm/files/gtkmm-2.24.4-newer-glibmm.patch
@@ -0,0 +1,60 @@
+From 9d52f886ffe556f9615f98a280d3a036a9ecf28e Mon Sep 17 00:00:00 2001
+From: Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
+Date: Sun, 5 Jul 2015 15:41:11 +0200
+Subject: More fixes to suit newish glibmm.
+
+ * gtk/src/entrycompletion.hg: Add a missing double quote in
+ _WRAP_PROPERTY("text_column, int), to avoid a warning from gmmproc 2.41.0
+ or newer.
+ * gtk/src/printunixdialog.hg: get_selected_printer(): Ref-counting correction.
+ Fix a .->, typo to make the refreturn option actually be used. Necessary
+ with gmmproc 2.29.13 or newer. Discussed in bug #657751, comment 5.
+
+diff --git a/ChangeLog b/ChangeLog
+index 1d6d4d0..c61ffa3 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,14 @@
++2015-07-05 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
++
++ More fixes to suit newish glibmm.
++
++ * gtk/src/entrycompletion.hg: Add a missing double quote in
++ _WRAP_PROPERTY("text_column, int), to avoid a warning from gmmproc 2.41.0
++ or newer.
++ * gtk/src/printunixdialog.hg: get_selected_printer(): Ref-counting correction.
++ Fix a .->, typo to make the refreturn option actually be used. Necessary
++ with gmmproc 2.29.13 or newer. Discussed in bug #657751, comment 5.
++
+ 2015-07-02 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
+
+ Add #includes needed with glibmm newer than 2.31.0.
+diff --git a/gtk/src/entrycompletion.hg b/gtk/src/entrycompletion.hg
+index 3a32e4f..70c5cc7 100644
+--- a/gtk/src/entrycompletion.hg
++++ b/gtk/src/entrycompletion.hg
+@@ -218,7 +218,7 @@ dnl
+
+ _WRAP_PROPERTY("model", Glib::RefPtr<Gtk::TreeModel>)
+ _WRAP_PROPERTY("minimum_key_length", int)
+- _WRAP_PROPERTY("text_column, int)
++ _WRAP_PROPERTY("text_column", int)
+ _WRAP_PROPERTY("inline_completion", bool)
+ _WRAP_PROPERTY("popup_completion", bool)
+ _WRAP_PROPERTY("popup_set_width", bool)
+diff --git a/gtk/src/printunixdialog.hg b/gtk/src/printunixdialog.hg
+index 87de89f..c05e5c3 100644
+--- a/gtk/src/printunixdialog.hg
++++ b/gtk/src/printunixdialog.hg
+@@ -71,7 +71,7 @@ public:
+ #m4 _CONVERSION(`GtkPrinter*',`Glib::RefPtr<const Printer>',`Glib::wrap($3)')
+
+ _WRAP_METHOD(Glib::RefPtr<Printer> get_selected_printer(), gtk_print_unix_dialog_get_selected_printer, refreturn)
+- _WRAP_METHOD(Glib::RefPtr<const Printer> get_selected_printer() const, gtk_print_unix_dialog_get_selected_printer, refreturn. constversion)
++ _WRAP_METHOD(Glib::RefPtr<const Printer> get_selected_printer() const, gtk_print_unix_dialog_get_selected_printer, refreturn, constversion)
+
+ void add_custom_tab(const Widget& child, const Glib::ustring& tab_label);
+ _WRAP_METHOD(void add_custom_tab(const Widget& child, const Widget& tab_label), gtk_print_unix_dialog_add_custom_tab)
+--
+cgit v0.10.2
+
diff --git a/dev-cpp/gtkmm/files/gtkmm-2.24.4-papersize.patch b/dev-cpp/gtkmm/files/gtkmm-2.24.4-papersize.patch
new file mode 100644
index 00000000000..fb4d2b7dddd
--- /dev/null
+++ b/dev-cpp/gtkmm/files/gtkmm-2.24.4-papersize.patch
@@ -0,0 +1,45 @@
+From 4fb3efa910a46364fa8ec4d60fcce557200e4dcb Mon Sep 17 00:00:00 2001
+From: Murray Cumming <murrayc@murrayc.com>
+Date: Wed, 14 Mar 2012 11:41:46 +0100
+Subject: PaperSize: Correct the PaperSizeTraits pre-declaration.
+
+* gtk/src/papersize.hg: PaperSizeTraits is a struct, not a class.
+clang++ noticed this while building Glom, though I have not run it on all of
+gtkmm.
+
+diff --git a/ChangeLog b/ChangeLog
+index ec2ce5a..73e1eac 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,4 +1,15 @@
++2012-03-14 Murray Cumming <murrayc@murrayc.com>
++
++ PaperSize: Correct the PaperSizeTraits pre-declaration.
++
++ * gtk/src/papersize.hg: PaperSizeTraits is a struct, not a class.
++ clang++ noticed this while building Glom, though I have not run it on all of
++ gtkmm.
++
+ 2.24.4:
++
++(Just regenerated with the correct glibmm version.)
++
+ 2.24.3:
+
+ 2013-04-04 Hubert Figuière <hub@figuiere.net>
+diff --git a/gtk/src/papersize.hg b/gtk/src/papersize.hg
+index 2e5700d..41fcb3c 100644
+--- a/gtk/src/papersize.hg
++++ b/gtk/src/papersize.hg
+@@ -21,7 +21,7 @@ namespace Gtk
+ {
+
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+-class PaperSizeTraits;
++struct PaperSizeTraits;
+ #endif
+
+ /** Common paper names, from PWG 5101.1-2002 PWG: Standard for Media Standardized Names
+--
+cgit v0.10.2
+
diff --git a/dev-cpp/gtkmm/gtkmm-2.24.4-r1.ebuild b/dev-cpp/gtkmm/gtkmm-2.24.4-r1.ebuild
new file mode 100644
index 00000000000..e499b37b5cb
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-2.24.4-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2.4"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+COMMON_DEPEND="
+ >=dev-cpp/glibmm-2.34.1:2[${MULTILIB_USEDEP}]
+ >=x11-libs/gtk+-2.24.15:2[${MULTILIB_USEDEP}]
+ >=x11-libs/gdk-pixbuf-2.28:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/atkmm-2.22.7[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.10.0-r1[${MULTILIB_USEDEP}]
+ >=dev-cpp/pangomm-2.34.0:1.4[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 1 failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)demos\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 2 failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ --enable-api-atkmm \
+ $(multilib_native_use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
+
+multilib_src_install_all() {
+ DOCS="AUTHORS ChangeLog PORTING NEWS README"
+ einstalldocs
+}
diff --git a/dev-cpp/gtkmm/gtkmm-2.24.4-r2.ebuild b/dev-cpp/gtkmm/gtkmm-2.24.4-r2.ebuild
new file mode 100644
index 00000000000..63289ed85fc
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-2.24.4-r2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit eutils gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2.4"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+COMMON_DEPEND="
+ >=dev-cpp/glibmm-2.34.1:2[${MULTILIB_USEDEP}]
+ >=x11-libs/gtk+-2.24.15:2[${MULTILIB_USEDEP}]
+ >=x11-libs/gdk-pixbuf-2.28:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/atkmm-2.22.7[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.10.0-r1[${MULTILIB_USEDEP}]
+ >=dev-cpp/pangomm-2.34.0:1.4[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+
+src_prepare() {
+ # Apply fixes from 2.24 branch
+ epatch "${FILESDIR}"/${P}-papersize.patch
+ epatch "${FILESDIR}"/${P}-missing-includes.patch
+ epatch "${FILESDIR}"/${P}-newer-glibmm.patch
+
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 1 failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)demos\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 2 failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ --enable-api-atkmm \
+ $(multilib_native_use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
+
+multilib_src_install_all() {
+ DOCS="AUTHORS ChangeLog PORTING NEWS README"
+ einstalldocs
+}
diff --git a/dev-cpp/gtkmm/gtkmm-2.24.4.ebuild b/dev-cpp/gtkmm/gtkmm-2.24.4.ebuild
new file mode 100644
index 00000000000..8c4c468bc21
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-2.24.4.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2.4"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=dev-cpp/glibmm-2.27.93:2
+ >=x11-libs/gtk+-2.24:2
+ >=dev-cpp/atkmm-2.22.2
+ >=dev-cpp/cairomm-1.2.2
+ >=dev-cpp/pangomm-2.27.1:1.4
+ dev-libs/libsigc++:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 1 failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)demos\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 2 failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ DOCS="AUTHORS ChangeLog PORTING NEWS README"
+ gnome2_src_configure \
+ --enable-api-atkmm \
+ $(use_enable doc documentation)
+}
diff --git a/dev-cpp/gtkmm/gtkmm-3.12.0.ebuild b/dev-cpp/gtkmm/gtkmm-3.12.0.ebuild
new file mode 100644
index 00000000000..7b197b144c7
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-3.12.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="3.0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="aqua doc examples test wayland +X"
+REQUIRED_USE="|| ( aqua wayland X )"
+
+RDEPEND="
+ >=dev-cpp/glibmm-2.38.0:2
+ >=x11-libs/gtk+-3.12:3[aqua?,wayland?,X?]
+ >=x11-libs/gdk-pixbuf-2.26:2
+ >=dev-cpp/atkmm-2.22.2
+ >=dev-cpp/cairomm-1.9.2.2
+ >=dev-cpp/pangomm-2.27.1:1.4
+ dev-libs/libsigc++:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+# dev-cpp/mm-common"
+# eautoreconf needs mm-common
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 1 failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)demos\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 2 failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ DOCS="AUTHORS ChangeLog PORTING NEWS README"
+ gnome2_src_configure \
+ --enable-api-atkmm \
+ $(use_enable doc documentation) \
+ $(use_enable aqua quartz-backend) \
+ $(use_enable wayland wayland-backend) \
+ $(use_enable X x11-backend)
+}
diff --git a/dev-cpp/gtkmm/gtkmm-3.14.0-r1.ebuild b/dev-cpp/gtkmm/gtkmm-3.14.0-r1.ebuild
new file mode 100644
index 00000000000..5e58e0792d8
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-3.14.0-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="3.0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="aqua doc examples test wayland +X"
+REQUIRED_USE="|| ( aqua wayland X )"
+
+COMMON_DEPEND="
+ >=dev-cpp/glibmm-2.41.2:2[${MULTILIB_USEDEP}]
+ >=x11-libs/gtk+-3.14:3[aqua?,wayland?,X?,${MULTILIB_USEDEP}]
+ >=x11-libs/gdk-pixbuf-2.28:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/atkmm-2.22.7[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.10.0-r1[${MULTILIB_USEDEP}]
+ >=dev-cpp/pangomm-2.34.0:1.4[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+# dev-cpp/mm-common"
+# eautoreconf needs mm-common
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 1 failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)demos\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 2 failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ --enable-api-atkmm \
+ $(multilib_native_use_enable doc documentation) \
+ $(use_enable aqua quartz-backend) \
+ $(use_enable wayland wayland-backend) \
+ $(use_enable X x11-backend)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
+
+multilib_src_install_all() {
+ DOCS="AUTHORS ChangeLog PORTING NEWS README"
+ einstalldocs
+}
diff --git a/dev-cpp/gtkmm/gtkmm-3.16.0.ebuild b/dev-cpp/gtkmm/gtkmm-3.16.0.ebuild
new file mode 100644
index 00000000000..37ab08ce2c7
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-3.16.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="3.0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="aqua doc examples test wayland +X"
+REQUIRED_USE="|| ( aqua wayland X )"
+
+COMMON_DEPEND="
+ >=dev-cpp/glibmm-2.44.0:2[${MULTILIB_USEDEP}]
+ >=x11-libs/gtk+-3.16:3[aqua?,wayland?,X?,${MULTILIB_USEDEP}]
+ >=x11-libs/gdk-pixbuf-2.28:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/atkmm-2.22.7[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.10.0-r1[${MULTILIB_USEDEP}]
+ >=dev-cpp/pangomm-2.34.0:1.4[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+# dev-cpp/mm-common"
+# eautoreconf needs mm-common
+
+src_prepare() {
+ if ! use test; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 1 failed"
+ fi
+
+ if ! use examples; then
+ # don't waste time building tests
+ sed 's/^\(SUBDIRS =.*\)demos\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 2 failed"
+ fi
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ --enable-api-atkmm \
+ $(multilib_native_use_enable doc documentation) \
+ $(use_enable aqua quartz-backend) \
+ $(use_enable wayland wayland-backend) \
+ $(use_enable X x11-backend)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
+
+multilib_src_install_all() {
+ DOCS="AUTHORS ChangeLog PORTING NEWS README"
+ einstalldocs
+}
diff --git a/dev-cpp/gtkmm/metadata.xml b/dev-cpp/gtkmm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/gtkmm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/gtksourceviewmm/Manifest b/dev-cpp/gtksourceviewmm/Manifest
new file mode 100644
index 00000000000..6f8f5c6116e
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/Manifest
@@ -0,0 +1,3 @@
+DIST gtksourceviewmm-2.10.3.tar.xz 742184 SHA256 0000df1b582d7be2e412020c5d748f21c0e6e5074c6b2ca8529985e70479375b SHA512 e6ddc4f585251f68e48cf0ea2c33bce02a90031efcd885105a82837715d659a317ee0845b476fc54c1c4c71b518df41ce494505af1524db6acb733e51f44e6ca WHIRLPOOL 35ae10e70e6d2a8c59e9be6552229034b844efdf1c730c20b75b9e6dbdd85d88e7b12104dbce400ba83b2745677d4abb04e994e3e75b8d3a2bdc8e9b920699de
+DIST gtksourceviewmm-3.12.0.tar.xz 1046368 SHA256 73939031bcc60e6ad31a315ec84b132deba15e5732de16e75fe424a619267ace SHA512 c4318039ad683a69e6610fa8da058327726e57e485445a9fd2a5d9ef7afd603d30f5954e586c5f9b586d0cd2ef9e444ba7cbf17c44bae8e4c20bd54dcec8288f WHIRLPOOL 130927a9aede6572db20cb660aa64612abd7cf7e53313fcc029ea1806483bd818ce1fc67c2422fac6740d4f52f0d8ffe824d6fccc382750e66f91dd859488fe0
+DIST gtksourceviewmm-3.2.0.tar.xz 742028 SHA256 9dc0c44f00627e434a36ac7c3a34d9c30ebe45eb6dc682dc733a85dcead2ba66 SHA512 f77ee09ee4966e705a5742af0d9caec306517faf998e99b26dc94340190e4a1326a4127e55e6d6b4035757805043f9460310ce9689c5478a5cc8a797a5cffef0 WHIRLPOOL 9f73d2f83147f1f898576f1a80688c2d654cfe351bb1863b7d161e2a0b7b03c4c8516774cf70d176719a8e14a384fe184ff83b3275f8207efd33ed1cec7e9f0d
diff --git a/dev-cpp/gtksourceviewmm/files/gtksourceviewmm-3.2.0-glib-single-include.patch b/dev-cpp/gtksourceviewmm/files/gtksourceviewmm-3.2.0-glib-single-include.patch
new file mode 100644
index 00000000000..c708ff1b27e
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/files/gtksourceviewmm-3.2.0-glib-single-include.patch
@@ -0,0 +1,13 @@
+Index: gtksourceviewmm-3.2.0/tests/search/main.cc
+===================================================================
+--- gtksourceviewmm-3.2.0.orig/tests/search/main.cc
++++ gtksourceviewmm-3.2.0/tests/search/main.cc
+@@ -6,7 +6,7 @@
+ #include <cstring>
+ #include <gtkmm.h>
+ #include <gtksourceviewmm.h>
+-#include <glib/gmessages.h>
++#include <glib.h>
+
+ using namespace std ;
+ using namespace Gtk;
diff --git a/dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3.ebuild b/dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3.ebuild
new file mode 100644
index 00000000000..874b96f0273
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for gtksourceview"
+HOMEPAGE="http://projects.gnome.org/gtksourceviewmm/"
+
+KEYWORDS="amd64 ppc x86"
+IUSE="doc"
+SLOT="2.0"
+LICENSE="LGPL-2.1"
+
+RDEPEND=">=dev-cpp/gtkmm-2.12:2.4
+ dev-cpp/atkmm
+ >=x11-libs/gtksourceview-2.10.0:2.0
+ !>=dev-cpp/libgtksourceviewmm-1"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+
+pkg_setup() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+ G2CONF="${G2CONF}
+ $(use_enable doc documentation)
+ --disable-static"
+}
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # Remove docs from SUBDIRS so that docs are not installed, as
+ # we handle it in src_install.
+ sed -i -e 's|^\(SUBDIRS =.*\)$(doc_subdirs)\(.*\)|\1\2|' Makefile.in || \
+ die "sed Makefile.in failed"
+}
+
+src_install() {
+ gnome2_src_install
+ use doc && dohtml -r docs/reference/html/*
+}
diff --git a/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.12.0.ebuild b/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.12.0.ebuild
new file mode 100644
index 00000000000..6f6515cb2d6
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.12.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2 eutils
+
+DESCRIPTION="C++ bindings for gtksourceview"
+HOMEPAGE="http://projects.gnome.org/gtksourceviewmm/"
+
+KEYWORDS="amd64 ppc x86"
+IUSE="doc"
+SLOT="3.0"
+LICENSE="LGPL-2.1"
+
+RDEPEND="
+ >=dev-cpp/glibmm-2.28:2
+ >=dev-cpp/gtkmm-3.2:3.0
+ >=x11-libs/gtksourceview-3.12:3.0
+
+ dev-cpp/atkmm
+ dev-cpp/cairomm
+ dev-cpp/pangomm:1.4
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+
+src_configure() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+ gnome2_src_configure $(use_enable doc documentation)
+}
diff --git a/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.2.0.ebuild b/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.2.0.ebuild
new file mode 100644
index 00000000000..6fc3c5fec05
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.2.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2 eutils
+
+DESCRIPTION="C++ bindings for gtksourceview"
+HOMEPAGE="http://projects.gnome.org/gtksourceviewmm/"
+
+KEYWORDS="amd64 ~ppc x86"
+IUSE="doc"
+SLOT="3.0"
+LICENSE="LGPL-2.1"
+
+RDEPEND=">=dev-cpp/glibmm-2.28:2
+ >=dev-cpp/gtkmm-3.2:3.0
+ >=x11-libs/gtksourceview-3.2:3.0
+
+ dev-cpp/atkmm
+ dev-cpp/cairomm
+ dev-cpp/pangomm:1.4"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+
+pkg_setup() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+ G2CONF="${G2CONF} $(use_enable doc documentation)"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-3.2.0-glib-single-include.patch"
+ gnome2_src_prepare
+}
diff --git a/dev-cpp/gtksourceviewmm/metadata.xml b/dev-cpp/gtksourceviewmm/metadata.xml
new file mode 100644
index 00000000000..3d42796a3a5
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome-mm</herd>
+ <longdescription>
+ Gtkmm (C++) wrapper for gtksourceview
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-cpp/icnc/Manifest b/dev-cpp/icnc/Manifest
new file mode 100644
index 00000000000..a520d9a8a8b
--- /dev/null
+++ b/dev-cpp/icnc/Manifest
@@ -0,0 +1 @@
+DIST icnc-1.0.100.tar.gz 27164070 SHA256 1004d054a7a9a80a3607e434b7d9c4958a89298d13391613dc4db8bf8dcb22aa SHA512 b6c231504ed36676d5c4a9c651c7ce6bee078a415c8d365dbe66208a5226a71c62924ee7bc0b36f8c35bff20ed5f0baf2710f581595d08fe10a1d799b3982a8b WHIRLPOOL b19bebea58fd39f67cfb8d9f94bc8d4588bb57fda1105d4b4227ffde183344b4ff02776d2328a874ad90823077d36237b20d28182bd7ceb4dfd4efb7da8a6907
diff --git a/dev-cpp/icnc/icnc-1.0.100.ebuild b/dev-cpp/icnc/icnc-1.0.100.ebuild
new file mode 100644
index 00000000000..964a0e2fdab
--- /dev/null
+++ b/dev-cpp/icnc/icnc-1.0.100.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils multilib python-any-r1
+
+DESCRIPTION="Intel Concurrent Collections for C++ - Parallelism without the Pain"
+HOMEPAGE="https://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc"
+
+if [[ $PV = 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/icnc/icnc.git"
+ KEYWORDS=
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="doc examples mpi test"
+RESTRICT="test" #currently tests only work if icnc is already installed
+
+RDEPEND="
+ >=dev-cpp/tbb-4.2
+ sys-libs/glibc
+ mpi? ( virtual/mpi )
+ "
+DEPEND="
+ ${RDEPEND}
+ doc? ( app-doc/doxygen )
+ test? ( ${PYTHON_DEPS} )
+ "
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use mpi BUILD_LIBS_FOR_MPI)
+ -DLIB=$(get_libdir)
+ $(cmake-utils_use_find_package doc Doxygen)
+ )
+ cmake-utils_src_configure
+ if use test ; then
+ mycmakeargs=( -DRUN_DIST=OFF )
+ CMAKE_USE_DIR="${S}/tests" \
+ BUILD_DIR="${WORKDIR}/${P}_tests_build" \
+ cmake-utils_src_configure
+ fi
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ use test && BUILD_DIR="${WORKDIR}/${P}_tests_build" cmake-utils_src_compile
+}
+
+src_test() {
+ BUILD_DIR="${WORKDIR}/${P}_tests_build" cmake-utils_src_test
+}
+
+src_install() {
+ cmake-utils_src_install
+ if use doc ; then
+ insinto /usr/share/doc/${P}/html
+ doins -r "${ED}"/usr/doc/api/*
+ fi
+ rm -fr "${ED}"/usr/doc
+ if use examples ; then
+ insinto /usr/share/${PN}/examples
+ doins -r "${ED}"/usr/samples/*
+ fi
+ rm -r "${ED}"/usr/samples || die
+ insinto /usr/share/${PN}/
+ doins -r "${ED}"/usr/misc/*
+ rm -r "${ED}"/usr/misc/ || die
+}
diff --git a/dev-cpp/icnc/metadata.xml b/dev-cpp/icnc/metadata.xml
new file mode 100644
index 00000000000..c3e80bdd77d
--- /dev/null
+++ b/dev-cpp/icnc/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ottxor@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">icnc/icnc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/libassa/Manifest b/dev-cpp/libassa/Manifest
new file mode 100644
index 00000000000..fdb3b04ae19
--- /dev/null
+++ b/dev-cpp/libassa/Manifest
@@ -0,0 +1 @@
+DIST libassa-3.5.1.tar.gz 641255 SHA256 c1245a98373f37c0e286b327e2d750fd20278c71f47f2018053b4d799d33172c SHA512 ad00cb1de21bece699e49d31247201f62604f8d7d1e8f385f7b0eb20bf2bb953bfc741363a5009f64f0f262100cc09f136a49a0dab6ea330424dee1965a3c2c7 WHIRLPOOL e1272e069f1deda79c7fb2d2b198c66c152b159198aa53ba21ebd723b4f7e5146d9ca58cdc4140c948184995add9f5b72a62467046ff65df17330a7c4ef46bf7
diff --git a/dev-cpp/libassa/files/libassa-3.5.0-fix-tests.patch b/dev-cpp/libassa/files/libassa-3.5.0-fix-tests.patch
new file mode 100644
index 00000000000..47bdde8d556
--- /dev/null
+++ b/dev-cpp/libassa/files/libassa-3.5.0-fix-tests.patch
@@ -0,0 +1,351 @@
+diff --git a/tests/autoptr.test b/tests/autoptr.test
+index 92bc7b5..6deac5f 100755
+--- a/tests/autoptr.test
++++ b/tests/autoptr.test
+@@ -98,7 +98,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/bufio.test b/tests/bufio.test
+index 60faab1..ab3986f 100755
+--- a/tests/bufio.test
++++ b/tests/bufio.test
+@@ -41,7 +41,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/charinbuffer.test b/tests/charinbuffer.test
+index 8de99d7..0076db0 100755
+--- a/tests/charinbuffer.test
++++ b/tests/charinbuffer.test
+@@ -39,7 +39,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/common_utils.test b/tests/common_utils.test
+index 21cd063..11f8b50 100755
+--- a/tests/common_utils.test
++++ b/tests/common_utils.test
+@@ -63,7 +63,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/connector.test b/tests/connector.test
+index 54d1928..364930b 100755
+--- a/tests/connector.test
++++ b/tests/connector.test
+@@ -37,7 +37,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/connector2.test b/tests/connector2.test
+index e843f89..6a6474a 100755
+--- a/tests/connector2.test
++++ b/tests/connector2.test
+@@ -40,7 +40,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/echoxdr.test b/tests/echoxdr.test
+index 8280374..985d657 100755
+--- a/tests/echoxdr.test
++++ b/tests/echoxdr.test
+@@ -48,7 +48,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/fdset.test b/tests/fdset.test
+index 8800539..a57a17a 100755
+--- a/tests/fdset.test
++++ b/tests/fdset.test
+@@ -43,7 +43,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/fork.test b/tests/fork.test
+index a70cae3..ec0c4d0 100755
+--- a/tests/fork.test
++++ b/tests/fork.test
+@@ -43,7 +43,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/genserver.test b/tests/genserver.test
+index 5877499..18d19d4 100755
+--- a/tests/genserver.test
++++ b/tests/genserver.test
+@@ -38,7 +38,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/glops.test b/tests/glops.test
+index d24f5e4..f666394 100755
+--- a/tests/glops.test
++++ b/tests/glops.test
+@@ -49,7 +49,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/idset.test b/tests/idset.test
+index a900d2f..97a69c7 100755
+--- a/tests/idset.test
++++ b/tests/idset.test
+@@ -48,7 +48,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/inet_address.test b/tests/inet_address.test
+index deac989..298ea98 100755
+--- a/tests/inet_address.test
++++ b/tests/inet_address.test
+@@ -49,7 +49,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/inifile.test b/tests/inifile.test
+index dae0529..9da154c 100755
+--- a/tests/inifile.test
++++ b/tests/inifile.test
+@@ -58,7 +58,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/logger.test b/tests/logger.test
+index 6c38072..fccd4fa 100755
+--- a/tests/logger.test
++++ b/tests/logger.test
+@@ -77,7 +77,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/memdump.test b/tests/memdump.test
+index 0f4465f..662fb96 100755
+--- a/tests/memdump.test
++++ b/tests/memdump.test
+@@ -72,7 +72,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/pidflock.test b/tests/pidflock.test
+index 33f5a0f..424ef0a 100755
+--- a/tests/pidflock.test
++++ b/tests/pidflock.test
+@@ -42,7 +42,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/pipe.test b/tests/pipe.test
+index a1b134f..ab4888a 100755
+--- a/tests/pipe.test
++++ b/tests/pipe.test
+@@ -45,7 +45,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/pq.test b/tests/pq.test
+index a45b024..6495533 100755
+--- a/tests/pq.test
++++ b/tests/pq.test
+@@ -38,7 +38,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/reactor.test b/tests/reactor.test
+index 8072201..918c904 100755
+--- a/tests/reactor.test
++++ b/tests/reactor.test
+@@ -68,7 +68,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/regexp.test b/tests/regexp.test
+index 087331c..c936fdc 100755
+--- a/tests/regexp.test
++++ b/tests/regexp.test
+@@ -42,7 +42,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/rt.test b/tests/rt.test
+index 3d854bd..8703d75 100755
+--- a/tests/rt.test
++++ b/tests/rt.test
+@@ -42,7 +42,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/semaphore.test b/tests/semaphore.test
+index 012888d..b78fe91 100755
+--- a/tests/semaphore.test
++++ b/tests/semaphore.test
+@@ -38,7 +38,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/sighand.test b/tests/sighand.test
+index b3e7975..482c105 100755
+--- a/tests/sighand.test
++++ b/tests/sighand.test
+@@ -57,7 +57,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/sighands.test b/tests/sighands.test
+index 653bb84..6b6d96e 100755
+--- a/tests/sighands.test
++++ b/tests/sighands.test
+@@ -47,7 +47,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/timer_queue.test b/tests/timer_queue.test
+index 30e2a62..036cbb7 100755
+--- a/tests/timer_queue.test
++++ b/tests/timer_queue.test
+@@ -38,7 +38,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
+diff --git a/tests/timeval.test b/tests/timeval.test
+index b15cfdd..6c7d186 100755
+--- a/tests/timeval.test
++++ b/tests/timeval.test
+@@ -47,7 +47,7 @@ if ${CMP} -s out ok; then
+ else
+ echo "ok:" >&2
+ cat ok >&2
+- exit 1
++ exit 0
+ fi
+
+ # Mungle error output to remove leading directories, 'lt-' or
diff --git a/dev-cpp/libassa/files/libassa-3.5.1-gcc47.patch b/dev-cpp/libassa/files/libassa-3.5.1-gcc47.patch
new file mode 100644
index 00000000000..725636a3967
--- /dev/null
+++ b/dev-cpp/libassa/files/libassa-3.5.1-gcc47.patch
@@ -0,0 +1,12 @@
+diff --git a/assa/CommonUtils.h b/assa/CommonUtils.h
+index 2db38d2..4db27f6 100644
+--- a/assa/CommonUtils.h
++++ b/assa/CommonUtils.h
+@@ -16,6 +16,7 @@
+
+ #include <sstream>
+
++#include <unistd.h>
+ #include <string>
+ #include <vector>
+ using std::vector;
diff --git a/dev-cpp/libassa/libassa-3.5.1-r1.ebuild b/dev-cpp/libassa/libassa-3.5.1-r1.ebuild
new file mode 100644
index 00000000000..f198f3c2cad
--- /dev/null
+++ b/dev-cpp/libassa/libassa-3.5.1-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit eutils
+
+DESCRIPTION="A networking library based on Adaptive Communication Patterns"
+HOMEPAGE="http://libassa.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc static-libs"
+
+RDEPEND="net-libs/libtirpc"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )"
+
+DOCS=( AUTHORS ChangeLog NEWS README TODO )
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.5.0-fix-tests.patch \
+ "${FILESDIR}"/${P}-gcc47.patch
+}
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static) \
+ $(use_enable doc doxygen)
+}
+
+src_install() {
+ default
+ find "${ED}" -name "*.la" -exec rm -rf {} + || die "failed to delete .la files"
+}
diff --git a/dev-cpp/libassa/metadata.xml b/dev-cpp/libassa/metadata.xml
new file mode 100644
index 00000000000..018c50fda48
--- /dev/null
+++ b/dev-cpp/libassa/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>angelos@gentoo.org</email>
+ <name>Christoph Mende</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">libassa</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/libbackend-elements/Manifest b/dev-cpp/libbackend-elements/Manifest
new file mode 100644
index 00000000000..6270cd610be
--- /dev/null
+++ b/dev-cpp/libbackend-elements/Manifest
@@ -0,0 +1 @@
+DIST libbackend-elements-1.7.2.tar.bz2 22501 SHA256 803c5a9ff7422da04a6d2802214cee09c2eeddf7608866c34eb23e73bb92d3f7 SHA512 480563aa55c317a417bd3326ae108ee6bd8fbd9d3e6757f9387d5c407b8f2f4ae8194e2ee90c3ec05fa8d05113251d9850c176919e4e8b322409ff6625c29355 WHIRLPOOL fdba6955119b02b8b623d6d427593577049ee163389b0d42a0f45f0da7b816d49a267c18c6beab32f62b3adc414d8e752944ec31e6bd77781269d35e3272e843
diff --git a/dev-cpp/libbackend-elements/libbackend-elements-1.7.2.ebuild b/dev-cpp/libbackend-elements/libbackend-elements-1.7.2.ebuild
new file mode 100644
index 00000000000..65d2151e09c
--- /dev/null
+++ b/dev-cpp/libbackend-elements/libbackend-elements-1.7.2.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit toolchain-funcs versionator
+
+DESCRIPTION="A collection of elementary building blocks for implementing compiler backends in c++"
+HOMEPAGE="http://kolpackov.net/projects/libbackend-elements/"
+SRC_URI="ftp://kolpackov.net/pub/projects/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ppc64 x86"
+IUSE=""
+
+RDEPEND=">=dev-cpp/libcult-1.4.6-r1
+ dev-libs/boost"
+DEPEND="${RDEPEND}
+ dev-util/build:0.3"
+
+src_configure() {
+ BOOST_PKG="$(best_version ">=dev-libs/boost-1.35.0-r5")"
+ BOOST_VER="$(get_version_component_range 1-2 "${BOOST_PKG/*boost-/}")"
+ BOOST_VER="$(replace_all_version_separators _ "${BOOST_VER}")"
+ BOOST_INC="/usr/include/boost-${BOOST_VER}"
+
+ mkdir -p build/{ld,cxx/gnu,import/libboost,import/libcult}
+
+ cat >> build/cxx/configuration-dynamic.make <<- EOF
+cxx_id := gnu
+cxx_optimize := n
+cxx_debug := n
+cxx_rpath := n
+cxx_pp_extra_options :=
+cxx_extra_options := ${CXXFLAGS} -I${BOOST_INC}
+cxx_ld_extra_options := ${LDFLAGS}
+cxx_extra_libs :=
+cxx_extra_lib_paths :=
+ EOF
+
+ cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF
+cxx_gnu := $(tc-getCXX)
+cxx_gnu_libraries :=
+cxx_gnu_optimization_options :=
+ EOF
+
+ cat >> build/import/libboost/configuration-dynamic.make <<- EOF
+libboost_installed := y
+libboost_suffix := -mt-${BOOST_VER}
+ EOF
+
+ cat >> build/import/libcult/configuration-dynamic.make <<- EOF
+libcult_installed := y
+ EOF
+
+ cat >> build/ld/configuration-lib-dynamic.make <<- EOF
+ld_lib_type := shared
+ EOF
+
+ MAKEOPTS+=" verbose=1"
+}
+
+src_install() {
+ find backend-elements -iname "*.cxx" \
+ -o -iname "makefile" \
+ -o -iname "*.o" -o -iname "*.d" \
+ -o -iname "*.m4" -o -iname "*.l" \
+ -o -iname "*.cpp-options" -o -iname "*.so" | xargs rm -f
+ rm -rf backend-elements/arch
+
+ insinto /usr/include
+ doins -r backend-elements
+
+ dodoc NEWS README documentation/[[:upper:]]*
+ dohtml -A xhtml -r documentation/*
+}
diff --git a/dev-cpp/libbackend-elements/metadata.xml b/dev-cpp/libbackend-elements/metadata.xml
new file mode 100644
index 00000000000..75dd2ca7d30
--- /dev/null
+++ b/dev-cpp/libbackend-elements/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-cpp/libbinio/Manifest b/dev-cpp/libbinio/Manifest
new file mode 100644
index 00000000000..a65de3e4375
--- /dev/null
+++ b/dev-cpp/libbinio/Manifest
@@ -0,0 +1 @@
+DIST libbinio-1.4.tar.bz2 307664 SHA256 4a32d3154517510a3fe4f2dc95e378dcc818a4a921fc0cb992bdc0d416a77e75 SHA512 974b9ecf4f889350dc5b8509a68af392644804c72a291dc1c0e7738f5b0ca3a28b1819ce35c98ae1e58fc9888481feb596b2ba1704e1b85207f64c050bc0230d WHIRLPOOL 75eaef8d5fc2381c577d167cfd8e69937fd143930d96ac5f31dbaf4a7536abf6c08f5839f624fbfaba3f6dd8774ae6037dc7a8f392366b4426d0d0904333ee26
diff --git a/dev-cpp/libbinio/files/libbinio-1.4-cstdio.patch b/dev-cpp/libbinio/files/libbinio-1.4-cstdio.patch
new file mode 100644
index 00000000000..f5ee5e99e0d
--- /dev/null
+++ b/dev-cpp/libbinio/files/libbinio-1.4-cstdio.patch
@@ -0,0 +1,11 @@
+diff -Naurp libbinio-1.4-orig/src/binwrap.cpp libbinio-1.4/src/binwrap.cpp
+--- libbinio-1.4-orig/src/binwrap.cpp 2009-05-16 15:02:48.000000000 +0200
++++ libbinio-1.4/src/binwrap.cpp 2009-05-16 15:05:45.000000000 +0200
+@@ -18,6 +18,7 @@
+ */
+
+ #include "binwrap.h"
++#include <cstdio>
+
+ #if BINIO_ENABLE_IOSTREAM
+
diff --git a/dev-cpp/libbinio/files/libbinio-1.4-texi.patch b/dev-cpp/libbinio/files/libbinio-1.4-texi.patch
new file mode 100644
index 00000000000..da55e9836ee
--- /dev/null
+++ b/dev-cpp/libbinio/files/libbinio-1.4-texi.patch
@@ -0,0 +1,21 @@
+Patch from http://libbinio.cvs.sourceforge.net/viewvc/libbinio/libbinio/doc/libbinio.texi?r1=1.13&r2=1.14
+--- doc/libbinio.texi 2004/08/18 19:55:22 1.13
++++ doc/libbinio.texi 2006/05/14 21:36:13 1.14
+@@ -9,7 +9,7 @@
+ This manual documents the binary I/O stream class library, version
+ @value{VERSION}. It was last updated on @value{UPDATED}.
+
+-Copyright @copyright{} 2002 - 2004 Simon Peter
++Copyright @copyright{} 2002 - 2005 Simon Peter
+
+ @quotation
+ Permission is granted to copy, distribute and/or modify this document
+@@ -27,7 +27,7 @@
+
+ @dircategory Software Libraries
+ @direntry
+-* libbinio: (libbinio) Binary I/O stream class library @value{VERSION}
++* libbinio: (libbinio). Binary I/O stream class library @value{VERSION}
+ @end direntry
+
+ @titlepage
diff --git a/dev-cpp/libbinio/libbinio-1.4.ebuild b/dev-cpp/libbinio/libbinio-1.4.ebuild
new file mode 100644
index 00000000000..7150bedd9ca
--- /dev/null
+++ b/dev-cpp/libbinio/libbinio-1.4.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit eutils
+
+DESCRIPTION="Binary I/O stream class library"
+HOMEPAGE="http://libbinio.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="static-libs"
+
+DOCS=( AUTHORS NEWS README )
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}-cstdio.patch \
+ "${FILESDIR}"/${P}-texi.patch
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ rm -f "${ED}"usr/lib*/${PN}.la
+}
diff --git a/dev-cpp/libbinio/metadata.xml b/dev-cpp/libbinio/metadata.xml
new file mode 100644
index 00000000000..4b4b0b04ad2
--- /dev/null
+++ b/dev-cpp/libbinio/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+ <upstream>
+ <remote-id type="sourceforge">libbinio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/libcmis/Manifest b/dev-cpp/libcmis/Manifest
new file mode 100644
index 00000000000..cb665989b82
--- /dev/null
+++ b/dev-cpp/libcmis/Manifest
@@ -0,0 +1,2 @@
+DIST libcmis-0.5.0-gcc5.patch.gz 12452 SHA256 523763acda1de64bb40761fae1ce1b089756fba1bb0390587d6491b75ffafbea SHA512 75423caf195d9b6f2c0752f08fd9950ff1dac67884f7445da2389fb24ad13c2c29fbf73f29f6f60b1b440ad261c32697edf3a2ee9aba779630d40afdbf5d5495 WHIRLPOOL 5cbc92051da8dc99b6d575f13c6d3c853668dd1ce169e0f215f2d20cbaf1d77408d9af0844be5e04c1308e840110a0e5dd49ee86f0207bbead7361962c830cdb
+DIST libcmis-0.5.0.tar.gz 738119 SHA256 a87e02913dee3ee659db5abf6d7dafcfcd85dd4b24bf4389d8d4afe8c8dcf9b6 SHA512 abfdf5654ef8763c9744587ba831acea93cc0ba7deaa8d807eed2e9077be848db0334430f7c2d6eecefeb90f520abbe81364a86790c0aa4363724816aec4793b WHIRLPOOL 03041a0eb4af8fb515082731c4737f7c153756073464785994c431f54b27130b8407459efb5bcb4a26689a0baa1f5014e48cfa334948fb7d90fe646d5f8f0a02
diff --git a/dev-cpp/libcmis/files/libcmis-0.2.3-do-not-override-phases.patch b/dev-cpp/libcmis/files/libcmis-0.2.3-do-not-override-phases.patch
new file mode 100644
index 00000000000..0a4741400f6
--- /dev/null
+++ b/dev-cpp/libcmis/files/libcmis-0.2.3-do-not-override-phases.patch
@@ -0,0 +1,17 @@
+diff -urN libcmis-0.2.3.old//Makefile.am libcmis-0.2.3/Makefile.am
+--- libcmis-0.2.3.old//Makefile.am 2012-08-09 10:18:22.559384031 +0200
++++ libcmis-0.2.3/Makefile.am 2012-08-09 10:18:44.797384029 +0200
+@@ -12,11 +12,11 @@
+ cmis-client.1: doc/cmis-client.xml
+ $(DOCBOOK2X) $<
+
+-install-data-am: cmis-client.1
++install-data-local: cmis-client.1
+ mkdir -p $(DESTDIR)$(mandir)/man1/
+ $(INSTALL_DATA) cmis-client.1 $(DESTDIR)$(mandir)/man1/
+
+-uninstall-am:
++uninstall-local:
+ -rm -rf $(DESTDIR)$(mandir)/man1/
+ endif
+
diff --git a/dev-cpp/libcmis/libcmis-0.5.0-r1.ebuild b/dev-cpp/libcmis/libcmis-0.5.0-r1.ebuild
new file mode 100644
index 00000000000..bb288c9fa4f
--- /dev/null
+++ b/dev-cpp/libcmis/libcmis-0.5.0-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="git://git.code.sf.net/p/libcmis/code"
+[[ ${PV} == 9999 ]] && SCM_ECLASS="git-r3"
+inherit eutils alternatives autotools ${SCM_ECLASS}
+unset SCM_ECLASS
+
+DESCRIPTION="C++ client library for the CMIS interface"
+HOMEPAGE="https://sourceforge.net/projects/libcmis/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz http://dev.gentoo.org/~dilfridge/distfiles/${P}-gcc5.patch.gz"
+
+LICENSE="|| ( GPL-2 LGPL-2 MPL-1.1 )"
+SLOT="0.5"
+
+# Don't move KEYWORDS on the previous line or ekeyword won't work # 399061
+[[ ${PV} == 9999 ]] || \
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+
+IUSE="static-libs man test"
+
+RDEPEND="
+ !dev-cpp/libcmis:0
+ !dev-cpp/libcmis:0.2
+ !dev-cpp/libcmis:0.3
+ !dev-cpp/libcmis:0.4
+ dev-libs/boost:=
+ dev-libs/libxml2
+ net-misc/curl
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ man? (
+ app-text/docbook2X
+ dev-libs/libxslt
+ )
+ test? (
+ dev-util/cppcheck
+ dev-util/cppunit
+ )
+"
+
+src_prepare() {
+ epatch "${WORKDIR}/${P}-gcc5.patch"
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ --program-suffix=-${SLOT} \
+ --disable-werror \
+ $(use_with man) \
+ $(use_enable static-libs static) \
+ $(use_enable test tests) \
+ --enable-client
+}
+
+src_install() {
+ default
+ prune_libtool_files --all
+}
+
+pkg_postinst() {
+ alternatives_auto_makesym /usr/bin/cmis-client "/usr/bin/cmis-client-[0-9].[0-9]"
+}
+
+pkg_postrm() {
+ alternatives_auto_makesym /usr/bin/cmis-client "/usr/bin/cmis-client-[0-9].[0-9]"
+}
diff --git a/dev-cpp/libcmis/libcmis-0.5.0.ebuild b/dev-cpp/libcmis/libcmis-0.5.0.ebuild
new file mode 100644
index 00000000000..d3f9f034274
--- /dev/null
+++ b/dev-cpp/libcmis/libcmis-0.5.0.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="git://git.code.sf.net/p/libcmis/code"
+[[ ${PV} == 9999 ]] && SCM_ECLASS="git-r3"
+inherit eutils alternatives autotools ${SCM_ECLASS}
+unset SCM_ECLASS
+
+DESCRIPTION="C++ client library for the CMIS interface"
+HOMEPAGE="https://sourceforge.net/projects/libcmis/"
+[[ ${PV} == 9999 ]] || SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 LGPL-2 MPL-1.1 )"
+SLOT="0.5"
+
+# Don't move KEYWORDS on the previous line or ekeyword won't work # 399061
+[[ ${PV} == 9999 ]] || \
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+
+IUSE="static-libs man test"
+
+RDEPEND="
+ !dev-cpp/libcmis:0
+ !dev-cpp/libcmis:0.2
+ !dev-cpp/libcmis:0.3
+ !dev-cpp/libcmis:0.4
+ dev-libs/boost:=
+ dev-libs/libxml2
+ net-misc/curl
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ man? (
+ app-text/docbook2X
+ dev-libs/libxslt
+ )
+ test? (
+ dev-util/cppcheck
+ dev-util/cppunit
+ )
+"
+
+src_prepare() {
+ [[ ${PV} == 9999 ]] && eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ --program-suffix=-${SLOT} \
+ --disable-werror \
+ $(use_with man) \
+ $(use_enable static-libs static) \
+ $(use_enable test tests) \
+ --enable-client
+}
+
+src_install() {
+ default
+ prune_libtool_files --all
+}
+
+pkg_postinst() {
+ alternatives_auto_makesym /usr/bin/cmis-client "/usr/bin/cmis-client-[0-9].[0-9]"
+}
+
+pkg_postrm() {
+ alternatives_auto_makesym /usr/bin/cmis-client "/usr/bin/cmis-client-[0-9].[0-9]"
+}
diff --git a/dev-cpp/libcmis/libcmis-9999.ebuild b/dev-cpp/libcmis/libcmis-9999.ebuild
new file mode 100644
index 00000000000..dfc690240e0
--- /dev/null
+++ b/dev-cpp/libcmis/libcmis-9999.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="git://git.code.sf.net/p/libcmis/code"
+[[ ${PV} == 9999 ]] && SCM_ECLASS="git-r3"
+inherit eutils alternatives autotools ${SCM_ECLASS}
+unset SCM_ECLASS
+
+DESCRIPTION="C++ client library for the CMIS interface"
+HOMEPAGE="https://sourceforge.net/projects/libcmis/"
+[[ ${PV} == 9999 ]] || SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 LGPL-2 MPL-1.1 )"
+SLOT="0.5"
+
+# Don't move KEYWORDS on the previous line or ekeyword won't work # 399061
+[[ ${PV} == 9999 ]] || \
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="static-libs man test"
+
+RDEPEND="
+ !dev-cpp/libcmis:0
+ !dev-cpp/libcmis:0.2
+ !dev-cpp/libcmis:0.3
+ !dev-cpp/libcmis:0.4
+ dev-libs/boost:=
+ dev-libs/libxml2
+ net-misc/curl
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ man? (
+ app-text/docbook2X
+ dev-libs/libxslt
+ )
+ test? (
+ dev-util/cppcheck
+ dev-util/cppunit
+ )
+"
+
+src_prepare() {
+ [[ ${PV} == 9999 ]] && eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ --program-suffix=-${SLOT} \
+ --disable-werror \
+ $(use_with man) \
+ $(use_enable static-libs static) \
+ $(use_enable test tests) \
+ --enable-client
+}
+
+src_install() {
+ default
+ prune_libtool_files --all
+}
+
+pkg_postinst() {
+ alternatives_auto_makesym /usr/bin/cmis-client "/usr/bin/cmis-client-[0-9].[0-9]"
+}
+
+pkg_postrm() {
+ alternatives_auto_makesym /usr/bin/cmis-client "/usr/bin/cmis-client-[0-9].[0-9]"
+}
diff --git a/dev-cpp/libcmis/metadata.xml b/dev-cpp/libcmis/metadata.xml
new file mode 100644
index 00000000000..56ce0451177
--- /dev/null
+++ b/dev-cpp/libcmis/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openoffice</herd>
+ <use>
+ <flag name="man">Build and install man pages.</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">libcmis</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/libcult/Manifest b/dev-cpp/libcult/Manifest
new file mode 100644
index 00000000000..2be1c500e6f
--- /dev/null
+++ b/dev-cpp/libcult/Manifest
@@ -0,0 +1 @@
+DIST libcult-1.4.6.tar.bz2 51036 SHA256 f1b51023880440d3e673bf9c3d2b034f1e16511b33ab006cd9f7d937246e48ac SHA512 4a3a3a2967bf8c8eaf47b028bbd475245d89ba746352b62a0e8fdc80ba912e90a928e2f4c863812b86e4c3881294d816a822c0f63a0aea2edc3f08d80365b3fd WHIRLPOOL 4bbf5e4ff7bef4c0c086b2c0be318c733b545f5910e72876ccf967d138df0d3de3b3c1f368147d64fd42828a7eecf1c3a5884c397f964df23dc0308ed8e13b43
diff --git a/dev-cpp/libcult/files/1.4.6-fix-compilation-with-gcc-4.7.patch b/dev-cpp/libcult/files/1.4.6-fix-compilation-with-gcc-4.7.patch
new file mode 100644
index 00000000000..f7b169a7cde
--- /dev/null
+++ b/dev-cpp/libcult/files/1.4.6-fix-compilation-with-gcc-4.7.patch
@@ -0,0 +1,57 @@
+From 2ef8e0426baad35a3438f9497005c3e3391e23f0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tm@dev-zero.ch>
+Date: Fri, 1 Jun 2012 10:12:33 +0200
+Subject: [PATCH 2/2] fix compilation with gcc-4.7
+
+---
+ cult/mm/evptr.hxx | 4 ++--
+ cult/mm/shptr.hxx | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/cult/mm/evptr.hxx b/cult/mm/evptr.hxx
+index 18f232c..ed0bd93 100644
+--- a/cult/mm/evptr.hxx
++++ b/cult/mm/evptr.hxx
+@@ -70,7 +70,7 @@ namespace Cult
+ Evptr&
+ operator= (Evptr const& ep)
+ {
+- assign (ep.cp_ ? ep.cp_ : ep.p_, ep.c_);
++ this->assign (ep.cp_ ? ep.cp_ : ep.p_, ep.c_);
+
+ return *this;
+ }
+@@ -79,7 +79,7 @@ namespace Cult
+ Evptr&
+ operator= (Evptr<Y> const& ep)
+ {
+- assign (ep.cp_ ? ep.cp_ : ep.p_, ep.c_);
++ this->assign (ep.cp_ ? ep.cp_ : ep.p_, ep.c_);
+
+ return *this;
+ }
+diff --git a/cult/mm/shptr.hxx b/cult/mm/shptr.hxx
+index a5e1257..6630b1c 100644
+--- a/cult/mm/shptr.hxx
++++ b/cult/mm/shptr.hxx
+@@ -45,7 +45,7 @@ namespace Cult
+ Shptr&
+ operator= (Shptr const& ap)
+ {
+- assign (ap);
++ this->assign (ap);
+ return *this;
+ }
+
+@@ -53,7 +53,7 @@ namespace Cult
+ Shptr&
+ operator= (Shptr<Y> const& ap)
+ {
+- assign (ap);
++ this->assign (ap);
+ return *this;
+ }
+
+--
+1.7.8.5
+
diff --git a/dev-cpp/libcult/libcult-1.4.6-r1.ebuild b/dev-cpp/libcult/libcult-1.4.6-r1.ebuild
new file mode 100644
index 00000000000..aa97dc1e596
--- /dev/null
+++ b/dev-cpp/libcult/libcult-1.4.6-r1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils toolchain-funcs versionator
+
+DESCRIPTION="A collection of C++ libraries"
+HOMEPAGE="http://kolpackov.net/projects/libcult/"
+SRC_URI="ftp://kolpackov.net/pub/projects/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ppc64 x86"
+IUSE="examples"
+
+DEPEND="dev-util/build:0.3
+ sys-devel/m4"
+RDEPEND=""
+
+src_prepare() {
+ # never build the examples
+ sed -i \
+ -e 's| $(out_base)/examples/[[:alnum:]\.]*||' \
+ -e '/examples\/makefile/d' \
+ makefile || die "sed failed"
+
+ epatch "${FILESDIR}/${PV}-fix-compilation-with-gcc-4.7.patch"
+}
+
+src_configure() {
+ mkdir -p build/{cxx/gnu,ld}
+
+ cat >> build/configuration-dynamic.make <<- EOF
+cult_dr := y
+cult_threads := y
+cult_network := y
+ EOF
+
+ cat >> build/cxx/configuration-dynamic.make <<- EOF
+cxx_id := gnu
+cxx_optimize := n
+cxx_debug := n
+cxx_rpath := n
+cxx_pp_extra_options :=
+cxx_extra_options := ${CXXFLAGS}
+cxx_ld_extra_options := ${LDFLAGS}
+cxx_extra_libs :=
+cxx_extra_lib_paths :=
+ EOF
+
+ cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF
+cxx_gnu := $(tc-getCXX)
+cxx_gnu_libraries :=
+cxx_gnu_optimization_options :=
+ EOF
+
+ cat >> build/ld/configuration-lib-dynamic.make <<- EOF
+ld_lib_type := shared
+ EOF
+
+ MAKEOPTS+=" verbose=1"
+}
+
+src_install() {
+ dolib.so cult/libcult.so
+
+ find cult -iname "*.cxx" \
+ -o -iname "makefile" \
+ -o -iname "*.o" -o -iname "*.d" \
+ -o -iname "*.m4" -o -iname "*.l" \
+ -o -iname "*.cpp-options" -o -iname "*.so" | xargs rm -f
+ rm -rf cult/arch
+
+ insinto /usr/include
+ doins -r cult
+
+ dodoc NEWS README documentation/[[:upper:]]*
+ dohtml -A xhtml -r documentation/*
+
+ if use examples ; then
+ find examples -name makefile -delete
+ # preserving symlinks in the examples
+ cp -dpR examples "${D}/usr/share/doc/${PF}"
+ fi
+}
diff --git a/dev-cpp/libcult/metadata.xml b/dev-cpp/libcult/metadata.xml
new file mode 100644
index 00000000000..75dd2ca7d30
--- /dev/null
+++ b/dev-cpp/libcult/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-cpp/libfrontend-elements/Manifest b/dev-cpp/libfrontend-elements/Manifest
new file mode 100644
index 00000000000..3f215748ff3
--- /dev/null
+++ b/dev-cpp/libfrontend-elements/Manifest
@@ -0,0 +1 @@
+DIST libfrontend-elements-1.1.4.tar.bz2 17766 SHA256 ea1cdf861e5922af9a1b85371fe76d0bcbbc17ca0939e907a8fde552f5900b63 SHA512 2d371259171fdc5605b9ada6e4036fb8ac6ea09e6dbaf13d90651cf532b2ffa2f007ccf8e4b42bf1e333df1bc31a7434f7b68a6a15e2090eea462a97b4188afe WHIRLPOOL 65a60689c401efda4fa1813af3f97245c80ec4fa285d52b593a3e9dcbb3402b1768e0378f45d54abbef4bd32f59535c589b4a092fd3bedb240a06e991d17671a
diff --git a/dev-cpp/libfrontend-elements/libfrontend-elements-1.1.4.ebuild b/dev-cpp/libfrontend-elements/libfrontend-elements-1.1.4.ebuild
new file mode 100644
index 00000000000..c0a6b03f4c0
--- /dev/null
+++ b/dev-cpp/libfrontend-elements/libfrontend-elements-1.1.4.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit toolchain-funcs versionator
+
+DESCRIPTION="A collection of elementary building blocks for implementing compiler frontends in c++"
+HOMEPAGE="http://kolpackov.net/projects/libfrontend-elements/"
+SRC_URI="ftp://kolpackov.net/pub/projects/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ppc64 x86"
+IUSE="examples"
+
+RDEPEND=">=dev-cpp/libcult-1.4.6-r1"
+DEPEND="${RDEPEND}
+ dev-util/build:0.3"
+
+src_prepare() {
+ # never build the examples
+ sed -i \
+ -e 's| $(out_base)/examples/[[:alnum:]\.]*||' \
+ -e '/examples\/makefile/d' \
+ makefile || die "sed failed"
+}
+
+src_configure() {
+ mkdir -p build/{ld,cxx/gnu,import/libcult}
+
+ cat >> build/cxx/configuration-dynamic.make <<- EOF
+cxx_id := gnu
+cxx_optimize := n
+cxx_debug := n
+cxx_rpath := n
+cxx_pp_extra_options :=
+cxx_extra_options := ${CXXFLAGS}
+cxx_ld_extra_options := ${LDFLAGS}
+cxx_extra_libs :=
+cxx_extra_lib_paths :=
+ EOF
+
+ cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF
+cxx_gnu := $(tc-getCXX)
+cxx_gnu_libraries :=
+cxx_gnu_optimization_options :=
+ EOF
+
+ cat >> build/import/libcult/configuration-dynamic.make <<- EOF
+libcult_installed := y
+ EOF
+
+ cat >> build/ld/configuration-lib-dynamic.make <<- EOF
+ld_lib_type := shared
+ EOF
+
+ MAKEOPTS+=" verbose=1"
+}
+
+src_install() {
+ dolib.so frontend-elements/libfrontend-elements.so
+
+ find frontend-elements -iname "*.cxx" \
+ -o -iname "makefile" \
+ -o -iname "*.o" -o -iname "*.d" \
+ -o -iname "*.m4" -o -iname "*.l" \
+ -o -iname "*.cpp-options" -o -iname "*.so" | xargs rm -f
+ rm -rf frontend-elements/arch
+
+ insinto /usr/include
+ doins -r frontend-elements
+
+ dodoc NEWS README documentation/[[:upper:]]*
+ dohtml -A xhtml -r documentation/*
+
+ if use examples ; then
+ find examples -name makefile -delete
+ # preserving symlinks in the examples
+ cp -dpR examples "${D}/usr/share/doc/${PF}"
+ fi
+}
diff --git a/dev-cpp/libfrontend-elements/metadata.xml b/dev-cpp/libfrontend-elements/metadata.xml
new file mode 100644
index 00000000000..75dd2ca7d30
--- /dev/null
+++ b/dev-cpp/libfrontend-elements/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-cpp/libglademm/Manifest b/dev-cpp/libglademm/Manifest
new file mode 100644
index 00000000000..d77e6f95e3e
--- /dev/null
+++ b/dev-cpp/libglademm/Manifest
@@ -0,0 +1 @@
+DIST libglademm-2.6.7.tar.bz2 326385 SHA256 38543c15acf727434341cc08c2b003d24f36abc22380937707fc2c5c687a2bc3 SHA512 d7042d0549df9322d3202d5c0733d65b153a8ff451bb9e401b9d93a915ec4c2c086428e4febcbae2ecec5936955b7afbc59beff93d492f23b7b8e2b19fe806b0 WHIRLPOOL a25ae3601df4ba201f1b5aeeca9f5527cd804d9481ef7795f651096419833d8a3cbab53d731ac2464ed20b85110d3003011a7fb2ea87e227ad75d301f5317df9
diff --git a/dev-cpp/libglademm/libglademm-2.6.7-r1.ebuild b/dev-cpp/libglademm/libglademm-2.6.7-r1.ebuild
new file mode 100644
index 00000000000..61a11594362
--- /dev/null
+++ b/dev-cpp/libglademm/libglademm-2.6.7-r1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ bindings for libglade"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2.4"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="doc examples"
+
+COMMON_DEPEND="
+ >=gnome-base/libglade-2.6.4-r1:2.0[${MULTILIB_USEDEP}]
+ >=dev-cpp/gtkmm-2.24.3:2.4[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.34.1:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ # we will control install manually in install
+ sed -i 's/^\(SUBDIRS =.*\)docs\(.*\)$/\1\2/' Makefile.am Makefile.in || \
+ die "sed Makefile.{am,in} failed (1)"
+
+ # don't waste time building the examples
+ sed -i 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' \
+ Makefile.am Makefile.in || die "sed Makefile.{am,in} failed (2)"
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure
+}
+
+multilib_src_compile() {
+ gnome2_src_compile
+
+ if multilib_is_native_abi && use doc; then
+ emake -C "docs/reference" all || die "emake doc failed"
+ fi
+}
+
+multilib_src_install() {
+ gnome2_src_install
+
+ if use examples; then
+ emake -C "examples" distclean || die "examples clean up failed"
+ fi
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc ; then
+ dohtml -r docs/reference/html/*
+ fi
+
+ if use examples; then
+ find "${S}/examples" -name "Makefile*" -delete \
+ || die "examples cleanup failed"
+ insinto "/usr/share/doc/${PF}"
+ doins -r examples || die "doins failed"
+ fi
+}
diff --git a/dev-cpp/libglademm/libglademm-2.6.7.ebuild b/dev-cpp/libglademm/libglademm-2.6.7.ebuild
new file mode 100644
index 00000000000..7d3d9dab314
--- /dev/null
+++ b/dev-cpp/libglademm/libglademm-2.6.7.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for libglade"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2.4"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sh sparc x86 ~x86-fbsd"
+IUSE="doc examples"
+
+RDEPEND="
+ >=gnome-base/libglade-2.6.1:2.0
+ >=dev-cpp/gtkmm-2.6:2.4
+ >=dev-cpp/glibmm-2.4:2
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ # we will control install manually in install
+ sed -i 's/^\(SUBDIRS =.*\)docs\(.*\)$/\1\2/' Makefile.am Makefile.in || \
+ die "sed Makefile.{am,in} failed (1)"
+
+ # don't waste time building the examples
+ sed -i 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' \
+ Makefile.am Makefile.in || die "sed Makefile.{am,in} failed (2)"
+
+ gnome2_src_prepare
+}
+
+src_compile() {
+ gnome2_src_compile
+
+ if use doc; then
+ emake -C "${S}/docs/reference" all || die "emake doc failed"
+ fi
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use doc ; then
+ dohtml -r docs/reference/html/*
+ fi
+
+ if use examples; then
+ emake -C "${S}/examples" distclean || die "examples clean up failed"
+ find "${S}/examples" -name "Makefile*" -delete \
+ || die "examples cleanup failed"
+ insinto "/usr/share/doc/${PF}"
+ doins -r examples || die "doins failed"
+ fi
+}
diff --git a/dev-cpp/libglademm/metadata.xml b/dev-cpp/libglademm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/libglademm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/libgnomecanvasmm/Manifest b/dev-cpp/libgnomecanvasmm/Manifest
new file mode 100644
index 00000000000..441a42779ad
--- /dev/null
+++ b/dev-cpp/libgnomecanvasmm/Manifest
@@ -0,0 +1 @@
+DIST libgnomecanvasmm-2.26.0.tar.bz2 327215 SHA256 996577f97f459a574919e15ba7fee6af8cda38a87a98289e9a4f54752d83e918 SHA512 23795c856674b79f82d2e5cffdfdbf67a387fe6a21081fef1d96d0f614a121710c7f1e175612a286f5946a60cea4e8506aef7833a7bdf73084d6266c09aad66b WHIRLPOOL fa038d43633e5e56a3fcd7e8b737a4d0c57a5932735859d350c4c8cbffba89cd73149638d498531bbee044131bbd39c271ee4422d169ab1eb159886b13ea2367
diff --git a/dev-cpp/libgnomecanvasmm/libgnomecanvasmm-2.26.0-r1.ebuild b/dev-cpp/libgnomecanvasmm/libgnomecanvasmm-2.26.0-r1.ebuild
new file mode 100644
index 00000000000..fc60c9a6590
--- /dev/null
+++ b/dev-cpp/libgnomecanvasmm/libgnomecanvasmm-2.26.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for libgnomecanvas"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="doc examples"
+
+RDEPEND="
+ >=gnome-base/libgnomecanvas-2.6
+ >=dev-cpp/gtkmm-2.4:2.4
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+
+src_prepare() {
+ if ! use examples; then
+ # don't waste time building the examples
+ sed -i 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' Makefile.in || \
+ die "sed Makefile.in failed"
+ fi
+ gnome2_src_prepare
+}
+
+src_compile() {
+ gnome2_src_compile
+
+ if use doc; then
+ cd "${S}/docs/reference"
+ emake all || die "failed to build API docs"
+ fi
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use doc ; then
+ dohtml -r docs/reference/html/*
+ fi
+
+ if use examples; then
+ cp -R examples "${D}/usr/share/doc/${PF}"
+ fi
+}
diff --git a/dev-cpp/libgnomecanvasmm/metadata.xml b/dev-cpp/libgnomecanvasmm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/libgnomecanvasmm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/libgnomemm/Manifest b/dev-cpp/libgnomemm/Manifest
new file mode 100644
index 00000000000..aa8682b34a8
--- /dev/null
+++ b/dev-cpp/libgnomemm/Manifest
@@ -0,0 +1 @@
+DIST libgnomemm-2.30.0.tar.bz2 364011 SHA256 2a01f068ff73a1985d050e75f899fec34ac13622e2ead43523a4e2b0875042cf SHA512 9d4cf332ad511600504e95a64decb3dcecc14943ebb7d928c2b1fff82b2d99727754fd0252802c700092e8efad0e14ab9aacaf9af63c6bb1f9e25334f667317f WHIRLPOOL 9a8efdd58b4455a884a5073d22748e53fe0177e8636dc4793aa268b9aa47740f5918bd50d3749d044fde99b1ad0345fa83fcf83a26e518be7174dbfa6b0fefda
diff --git a/dev-cpp/libgnomemm/libgnomemm-2.30.0.ebuild b/dev-cpp/libgnomemm/libgnomemm-2.30.0.ebuild
new file mode 100644
index 00000000000..e5d5fc2f5e3
--- /dev/null
+++ b/dev-cpp/libgnomemm/libgnomemm-2.30.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+GNOME2_LA_PUNT="yes"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for libgnome"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sh sparc x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=dev-cpp/gtkmm-2.8:2.4
+ >=gnome-base/libgnome-2.6"
+DEPEND="virtual/pkgconfig
+ ${RDEPEND}"
+
+DOCS="AUTHORS ChangeLog NEWS README TODO"
diff --git a/dev-cpp/libgnomemm/metadata.xml b/dev-cpp/libgnomemm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/libgnomemm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/libgnomeuimm/Manifest b/dev-cpp/libgnomeuimm/Manifest
new file mode 100644
index 00000000000..46495f20bb8
--- /dev/null
+++ b/dev-cpp/libgnomeuimm/Manifest
@@ -0,0 +1 @@
+DIST libgnomeuimm-2.28.0.tar.bz2 382428 SHA256 6cb46494913f1e5e34b94a0f5b9ff8ef238bb71e3b08d0ef0ab7f4a7c88211d3 SHA512 f02ee119bff2d42bd7fc61719988de45e497c7a5cc151a438ad3601c2bf55d6ecfeb001b22032a47f15dc6f7eb4cf4c5412c3246969a24ff0579a9b89d5dab15 WHIRLPOOL a41b02886f17ed79c36c090a212ac19504e5c9be803d6666cc7babe8726bc7050a11576a0ce65b8e4de25354ad948b46047562257b24e3cdd9660bd230145da2
diff --git a/dev-cpp/libgnomeuimm/libgnomeuimm-2.28.0-r1.ebuild b/dev-cpp/libgnomeuimm/libgnomeuimm-2.28.0-r1.ebuild
new file mode 100644
index 00000000000..1f99419b5a7
--- /dev/null
+++ b/dev-cpp/libgnomeuimm/libgnomeuimm-2.28.0-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GNOME_TARBALL_SUFFIX="bz2"
+GCONF_DEBUG="no"
+
+inherit gnome2 eutils
+
+DESCRIPTION="C++ bindings for libgnomeui"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="
+ >=gnome-base/libgnomeui-2.7.1
+ dev-cpp/glibmm
+ >=dev-cpp/libgnomemm-2.16.0
+ >=dev-cpp/libgnomecanvasmm-2.6
+ >=dev-cpp/gconfmm-2.6
+ >=dev-cpp/libglademm-2.4
+ >=dev-cpp/gnome-vfsmm-2.16
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
diff --git a/dev-cpp/libgnomeuimm/metadata.xml b/dev-cpp/libgnomeuimm/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/libgnomeuimm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/libjson-rpc-cpp/Manifest b/dev-cpp/libjson-rpc-cpp/Manifest
new file mode 100644
index 00000000000..4a27c093b3e
--- /dev/null
+++ b/dev-cpp/libjson-rpc-cpp/Manifest
@@ -0,0 +1 @@
+DIST libjson-rpc-cpp-0.5.0.tar.gz 124494 SHA256 e6d8d6c20517bb38eba9dba7f372e0a95432c4cbf55ec9b136ba841faa0a6d99 SHA512 9929f76899186f62d3201d3c884a4557e3bd55acfe0533b9a0cf543e01e6d2e5972239df7425c1a43bd59fd205261b91796fdaa1ab54b55cb5765250e473d2d4 WHIRLPOOL 95b51bdfd86e63e84556c490281829d211d937cb30a503b863180cac4a2a0894eb03ed931511e9336903f1ddad6b899921e1e09663af9cc0e5739569ddc14472
diff --git a/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-0.5.0.ebuild b/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-0.5.0.ebuild
new file mode 100644
index 00000000000..62e02bd19ab
--- /dev/null
+++ b/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-0.5.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="JSON-RPC (1.0 & 2.0) framework for C++"
+HOMEPAGE="https://github.com/cinemast/libjson-rpc-cpp"
+SRC_URI="https://github.com/cinemast/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc +http-client +http-server +stubgen test"
+
+RDEPEND="
+ dev-libs/jsoncpp:=
+ http-client? ( net-misc/curl:= )
+ http-server? ( net-libs/libmicrohttpd:= )
+ stubgen? ( dev-libs/argtable:= )"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )
+ test? ( dev-libs/boost )"
+
+src_configure() {
+ local mycmakeargs=(
+ -DHTTP_CLIENT=$(usex http-client)
+ -DHTTP_SERVER=$(usex http-server)
+ # they are not installed
+ -DCOMPILE_EXAMPLES=NO
+ -DCOMPILE_STUBGEN=$(usex stubgen)
+ -DCOMPILE_TESTS=$(usex test)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+
+ use doc && emake -C "${BUILD_DIR}" doc
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ use doc && dodoc -r "${BUILD_DIR}"/doc/html
+}
diff --git a/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-9999.ebuild b/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-9999.ebuild
new file mode 100644
index 00000000000..abbdc454f8f
--- /dev/null
+++ b/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-9999.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="https://github.com/cinemast/${PN}"
+EGIT_BRANCH=develop
+inherit cmake-utils git-r3
+
+DESCRIPTION="JSON-RPC (1.0 & 2.0) framework for C++"
+HOMEPAGE="https://github.com/cinemast/libjson-rpc-cpp"
+SRC_URI=""
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS=""
+IUSE="doc +http-client +http-server +stubgen test"
+
+RDEPEND="
+ dev-libs/jsoncpp:=
+ http-client? ( net-misc/curl:= )
+ http-server? ( net-libs/libmicrohttpd:= )
+ stubgen? ( dev-libs/argtable:= )"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )
+ test? ( dev-libs/boost )"
+
+src_configure() {
+ local mycmakeargs=(
+ -DHTTP_CLIENT=$(usex http-client)
+ -DHTTP_SERVER=$(usex http-server)
+ # they are not installed
+ -DCOMPILE_EXAMPLES=NO
+ -DCOMPILE_STUBGEN=$(usex stubgen)
+ -DCOMPILE_TESTS=$(usex test)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+
+ use doc && emake -C "${BUILD_DIR}" doc
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ use doc && dodoc -r "${BUILD_DIR}"/doc/html
+}
diff --git a/dev-cpp/libjson-rpc-cpp/metadata.xml b/dev-cpp/libjson-rpc-cpp/metadata.xml
new file mode 100644
index 00000000000..257ab0c4a97
--- /dev/null
+++ b/dev-cpp/libjson-rpc-cpp/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <use>
+ <flag name="http-client">Build support for HTTP client using <pkg>dev-util/curl</pkg></flag>
+ <flag name="http-server">Build support for HTTP server using <pkg>net-libs/libmicrohttpd</pkg></flag>
+ <flag name="stubgen">Build header stub code generator (needed for development and when pregenerated headers are not bundled)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">cinemast/libjson-rpc-cpp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/libmcpp/Manifest b/dev-cpp/libmcpp/Manifest
new file mode 100644
index 00000000000..bd31c64fe8a
--- /dev/null
+++ b/dev-cpp/libmcpp/Manifest
@@ -0,0 +1 @@
+DIST mcpp-2.7.2.tar.gz 1533457 SHA256 3b9b4421888519876c4fc68ade324a3bbd81ceeb7092ecdbbc2055099fcb8864 SHA512 1ca885cb13fdb684de9d0595a9215b52f48a93a69077d82cdcacafe40d9a61fb77b00a3ff2b8890e7bc0a0fcc0c8d70d4093c00c280351cd4459aba67c573235 WHIRLPOOL 6e0985344a731c16419f6ec3812a0075a117856344a66a2009ad1b4c5869db8b74ddabfa5b72cc0f622ad27a1a91c4b02a329c48441fea139b428265c23fa2b6
diff --git a/dev-cpp/libmcpp/libmcpp-2.7.2-r1.ebuild b/dev-cpp/libmcpp/libmcpp-2.7.2-r1.ebuild
new file mode 100644
index 00000000000..2cc7000e2fa
--- /dev/null
+++ b/dev-cpp/libmcpp/libmcpp-2.7.2-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+MY_P=${P/lib/}
+
+DESCRIPTION="A portable C++ preprocessor"
+HOMEPAGE="http://mcpp.sourceforge.net"
+SRC_URI="mirror://sourceforge/mcpp/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ia64 x86 ~x64-macos ~x86-linux"
+IUSE="static-libs"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_configure() {
+ econf \
+ --enable-mcpplib \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ rm -rf "${ED}/usr/share/doc"
+ dodoc ChangeLog NEWS README doc/*.pdf
+ dohtml doc/*.html
+
+ use static-libs || rm -rf "${ED}"/usr/lib*/*.la
+}
diff --git a/dev-cpp/libmcpp/metadata.xml b/dev-cpp/libmcpp/metadata.xml
new file mode 100644
index 00000000000..980da83dc13
--- /dev/null
+++ b/dev-cpp/libmcpp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+ <upstream>
+ <remote-id type="sourceforge">mcpp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/libxmlpp/Manifest b/dev-cpp/libxmlpp/Manifest
new file mode 100644
index 00000000000..b6f70286121
--- /dev/null
+++ b/dev-cpp/libxmlpp/Manifest
@@ -0,0 +1,3 @@
+DIST libxml++-2.36.0.tar.xz 861456 SHA256 bfdf327bf9ebd12946b7aa6a152045f209d5c9fecd06ebfcdf9b3e7c1af6e2e1 SHA512 52372b3a969dc4a16d1ec70275e3c97ac20acc14703a2875ba41d1eb8fe3f318c10e02d601ceac1a0d35f47e7d7033ebd5e87c122db6b373e847d543eddbe9a6 WHIRLPOOL 19804748859cbf6144e56f1ee1746cf2b30995c70e5f74a0dd3b51b38982832a9ece6a519f43e83dca424110f98bd86e8d3d4120ce8ac59b4b837f2d4f132bba
+DIST libxml++-2.38.0.tar.xz 940844 SHA256 5698b03f5d320fb8310e30780e328f03debca12c557434ee031aea9baf3b1346 SHA512 539ea25b2e1f871dc0c06e4033659a3d6ee5bd3cb54f625ba47b0f8a8dead049602c5d28369a497c52f48f370625d5da1b187ef542fbdd2e54fd907b308cfc67 WHIRLPOOL 4056f4dedf27a6b52623bb070fc106a165d3a3f97b39e2c0f00ce2673f7901c6653c9c48ad5171b86bf8bbb9335baead8e7e0630adbefc13899dcf342c428677
+DIST libxml++-2.38.1.tar.xz 947556 SHA256 882529189b03db6c69925b3f579ab1941feb4f02b5fe2612504ee7e498a4a05f SHA512 d60f283ca2a056bf81fd6083c10dd9d469bb62dcb06ded9ea3549bc1d0053ed14f47bd86394761825f69d9d0f3a02781f1fd121244b9ce8f9637ad21e0d177f8 WHIRLPOOL 92b4222bd1626e4e5baa6dbf1ff8479a594a49fe04bbc3279e1c2da41dd0c6e12b57e5d5eaa295f3f6361af53f2288eb9e2cb31dbdbd8e781178717327a5069c
diff --git a/dev-cpp/libxmlpp/libxmlpp-2.36.0-r1.ebuild b/dev-cpp/libxmlpp/libxmlpp-2.36.0-r1.ebuild
new file mode 100644
index 00000000000..d26934cebca
--- /dev/null
+++ b/dev-cpp/libxmlpp/libxmlpp-2.36.0-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+GNOME_ORG_MODULE="${PN/pp/++}"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ wrapper for the libxml2 XML parser library"
+HOMEPAGE="http://libxmlplusplus.sourceforge.net/"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND=">=dev-libs/libxml2-2.7.3[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.32[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+multilib_src_prepare() {
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
diff --git a/dev-cpp/libxmlpp/libxmlpp-2.36.0.ebuild b/dev-cpp/libxmlpp/libxmlpp-2.36.0.ebuild
new file mode 100644
index 00000000000..171440d8d9c
--- /dev/null
+++ b/dev-cpp/libxmlpp/libxmlpp-2.36.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+GNOME_ORG_MODULE="${PN/pp/++}"
+
+inherit gnome2
+
+DESCRIPTION="C++ wrapper for the libxml2 XML parser library"
+HOMEPAGE="http://libxmlplusplus.sourceforge.net/"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="~alpha amd64 ~arm hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND=">=dev-libs/libxml2-2.7.3
+ >=dev-cpp/glibmm-2.32"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ DOCS="AUTHORS ChangeLog NEWS README*"
+ G2CONF="${G2CONF} $(use_enable doc documentation)"
+
+ gnome2_src_prepare
+}
+
+src_install() {
+ gnome2_src_install
+
+ rm -fr "${ED}"usr/share/doc/libxml++*
+ use doc && dohtml docs/reference/html/*
+}
diff --git a/dev-cpp/libxmlpp/libxmlpp-2.38.0.ebuild b/dev-cpp/libxmlpp/libxmlpp-2.38.0.ebuild
new file mode 100644
index 00000000000..54a7c88b713
--- /dev/null
+++ b/dev-cpp/libxmlpp/libxmlpp-2.38.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+#GNOME2_LA_PUNT="yes"
+GNOME_ORG_MODULE="${PN/pp/++}"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ wrapper for the libxml2 XML parser library"
+HOMEPAGE="http://libxmlplusplus.sourceforge.net/"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-libs/libxml2-2.7.3[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.32[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+multilib_src_prepare() {
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
diff --git a/dev-cpp/libxmlpp/libxmlpp-2.38.1.ebuild b/dev-cpp/libxmlpp/libxmlpp-2.38.1.ebuild
new file mode 100644
index 00000000000..c14533256cd
--- /dev/null
+++ b/dev-cpp/libxmlpp/libxmlpp-2.38.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_ORG_MODULE="${PN/pp/++}"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ wrapper for the libxml2 XML parser library"
+HOMEPAGE="http://libxmlplusplus.sourceforge.net/"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="~alpha amd64 ~arm hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-libs/libxml2-2.7.7[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.32[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+multilib_src_prepare() {
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
diff --git a/dev-cpp/libxmlpp/metadata.xml b/dev-cpp/libxmlpp/metadata.xml
new file mode 100644
index 00000000000..57c9d9c1a1d
--- /dev/null
+++ b/dev-cpp/libxmlpp/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
diff --git a/dev-cpp/libxsd-frontend/Manifest b/dev-cpp/libxsd-frontend/Manifest
new file mode 100644
index 00000000000..72d108a37d7
--- /dev/null
+++ b/dev-cpp/libxsd-frontend/Manifest
@@ -0,0 +1 @@
+DIST libxsd-frontend-1.18.0.tar.bz2 66937 SHA256 78382d44ae0575fec04eb2e2e70c2bb751b49eb995aad725d3c2e9ee8ac98590 SHA512 fdff24659037d99ca37a15c2bc33a91e9864d2df20210c13230ab64c3c5ecd7aebefe5c7b3b316812d8f844ca38c297931d74d19a278bf986de80e2f0c54d223 WHIRLPOOL 94f092087f17b0694821ab1f7864fa80639c7daf73e6926d665365d624f46d69d1f74e0de4af901a399593bf52020311614c000d94160505a429728f0d3e2818
diff --git a/dev-cpp/libxsd-frontend/files/1.17.0-boost-filesystem-v2-deprecation.patch b/dev-cpp/libxsd-frontend/files/1.17.0-boost-filesystem-v2-deprecation.patch
new file mode 100644
index 00000000000..cd575a6ccdc
--- /dev/null
+++ b/dev-cpp/libxsd-frontend/files/1.17.0-boost-filesystem-v2-deprecation.patch
@@ -0,0 +1,261 @@
+diff -Naurb -I '^//' -I '^# copyright' -x build libxsd-frontend-1.17.0/tests/dump/driver.cxx xsd-3.3.0-2+dep/libxsd-frontend/tests/dump/driver.cxx
+--- libxsd-frontend-1.17.0/tests/dump/driver.cxx 2010-04-27 21:31:24.000000000 +0200
++++ xsd-3.3.0-2+dep/libxsd-frontend/tests/dump/driver.cxx 2012-08-23 11:30:16.074750804 +0200
+@@ -586,7 +586,11 @@
+
+ // Parse schema.
+ //
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ SemanticGraph::Path path (argv[i], boost::filesystem::native);
++#else
++ SemanticGraph::Path path (argv[i]);
++#endif
+
+ Parser parser (true, false, true);
+ Evptr<SemanticGraph::Schema> tu (parser.parse (path));
+diff -Naurb -I '^//' -I '^# copyright' -x build libxsd-frontend-1.17.0/xsd-frontend/parser.cxx xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/parser.cxx
+--- libxsd-frontend-1.17.0/xsd-frontend/parser.cxx 2010-04-27 21:31:24.000000000 +0200
++++ xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/parser.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -1274,7 +1274,11 @@
+ operator () (SemanticGraph::Path const& x,
+ SemanticGraph::Path const& y) const
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ return x.native_file_string () < y.native_file_string ();
++#else
++ return x.string () < y.string ();
++#endif
+ }
+ };
+
+@@ -1627,9 +1631,15 @@
+ friend Boolean
+ operator< (SchemaId const& x, SchemaId const& y)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ return x.path_.native_file_string () < y.path_.native_file_string ()
+ || (x.path_.native_file_string () == y.path_.native_file_string ()
+ && x.ns_ < y.ns_);
++#else
++ return x.path_.string () < y.path_.string ()
++ || (x.path_.string () == y.path_.string ()
++ && x.ns_ < y.ns_);
++#endif
+ }
+
+ private:
+@@ -2376,6 +2386,7 @@
+ Path path, rel_path, abs_path;
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ try
+ {
+ path = Path (loc);
+@@ -2386,6 +2397,10 @@
+ //
+ path = Path (loc, boost::filesystem::native);
+ }
++#else
++ // The new ABI does not have a fallback native representation
++ path = Path (loc.c_str());
++#endif
+
+ if (path.is_complete ())
+ {
+@@ -2479,6 +2494,7 @@
+ Path path, rel_path, abs_path;
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ try
+ {
+ path = Path (loc);
+@@ -2489,6 +2505,10 @@
+ //
+ path = Path (loc, boost::filesystem::native);
+ }
++#else
++ // The new API does not have a fallback native representation.
++ path = Path (loc.c_str());
++#endif
+
+ if (path.is_complete ())
+ {
+@@ -4674,9 +4694,14 @@
+ return true;
+
+
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ XSDFrontend::SemanticGraph::Path abs_path (
+ XML::transcode_to_narrow (e.getLocation ()->getURI ()),
+ boost::filesystem::native);
++#else
++ XSDFrontend::SemanticGraph::Path abs_path (
++ XML::transcode_to_narrow (e.getLocation ()->getURI ()).c_str());
++#endif
+
+ XSDFrontend::SemanticGraph::Path rel_path (ctx_.file (abs_path));
+
+@@ -4729,8 +4754,12 @@
+ base_ (base),
+ ctx_ (ctx)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ setSystemId (XML::XMLChString (
+ String (abs_.native_file_string ())).c_str ());
++#else
++ setSystemId (XML::XMLChString (String (abs_.string ())).c_str ());
++#endif
+ }
+
+ virtual Xerces::BinInputStream*
+@@ -4803,8 +4832,12 @@
+
+ // base_uri should be a valid path by now.
+ //
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ Path base (XML::transcode_to_narrow (base_uri),
+ boost::filesystem::native);
++#else
++ Path base (XML::transcode_to_narrow (base_uri).c_str());
++#endif
+
+ if (prv_id == 0)
+ {
+@@ -4830,6 +4863,7 @@
+ {
+ Path path;
+
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ try
+ {
+ path = Path (path_str);
+@@ -4840,6 +4874,10 @@
+ //
+ path = Path (path_str, boost::filesystem::native);
+ }
++#else
++ // The new ABI does not have a fallback native representation
++ path = Path (path_str.c_str());
++#endif
+
+ Path base_dir (base.branch_path ());
+
+diff -Naurb -I '^//' -I '^# copyright' -x build libxsd-frontend-1.17.0/xsd-frontend/semantic-graph/elements.cxx xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/semantic-graph/elements.cxx
+--- libxsd-frontend-1.17.0/xsd-frontend/semantic-graph/elements.cxx 2010-04-27 21:31:24.000000000 +0200
++++ xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/semantic-graph/elements.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -342,5 +342,9 @@
+ std::wostream&
+ operator<< (std::wostream& os, XSDFrontend::SemanticGraph::Path const& path)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ return os << path.native_file_string ().c_str ();
++#else
++ return os << path.string ().c_str ();
++#endif
+ }
+diff -Naurb -I '^//' -I '^# copyright' -x build libxsd-frontend-1.17.0/xsd-frontend/transformations/anonymous.cxx xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/transformations/anonymous.cxx
+--- libxsd-frontend-1.17.0/xsd-frontend/transformations/anonymous.cxx 2010-04-27 21:31:24.000000000 +0200
++++ xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/transformations/anonymous.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -275,7 +275,11 @@
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_str = file.native_file_string ();
++#else
++ file_str = file.string ();
++#endif
+ }
+
+ String name (
+@@ -358,7 +362,11 @@
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_str = file.native_file_string ();
++#else
++ file_str = file.string ();
++#endif
+ }
+ }
+
+@@ -441,7 +449,11 @@
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_str = file.native_file_string ();
++#else
++ file_str = file.string ();
++#endif
+ }
+
+ String name (
+@@ -639,7 +651,11 @@
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_str = file.native_file_string ();
++#else
++ file_str = file.string ();
++#endif
+ }
+
+ String name (
+diff -Naurb -I '^//' -I '^# copyright' -x build libxsd-frontend-1.17.0/xsd-frontend/transformations/schema-per-type.cxx xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/transformations/schema-per-type.cxx
+--- libxsd-frontend-1.17.0/xsd-frontend/transformations/schema-per-type.cxx 2010-04-27 21:31:24.000000000 +0200
++++ xsd-3.3.0-2+dep/libxsd-frontend/xsd-frontend/transformations/schema-per-type.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -167,7 +167,11 @@
+
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ path = Path (file_name);
++#else
++ path = Path (file_name.c_str());
++#endif
+ }
+ catch (InvalidPath const&)
+ {
+@@ -349,6 +353,7 @@
+ //
+ NarrowString abs_path;
+
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ // Try to use the portable representation of the path. If that
+ // fails, fall back to the native representation.
+ //
+@@ -360,9 +365,17 @@
+ {
+ abs_path = path.native_file_string ();
+ }
++#else
++ // The new ABI does not have a fallback native representation
++ abs_path = path.string ();
++#endif
+
+ NarrowString tf (trans_.translate_schema (abs_path));
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ NarrowString file (tf ? tf : path.leaf ());
++#else
++ NarrowString file (tf ? tf : path.filename ().string());
++#endif
+
+ Size p (file.rfind ('.'));
+ NarrowString ext (
+@@ -389,7 +402,11 @@
+
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ (*i)->context ().set ("renamed", SemanticGraph::Path (new_name));
++#else
++ (*i)->context ().set ("renamed", SemanticGraph::Path (new_name.c_str()));
++#endif
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
diff --git a/dev-cpp/libxsd-frontend/libxsd-frontend-1.18.0-r3.ebuild b/dev-cpp/libxsd-frontend/libxsd-frontend-1.18.0-r3.ebuild
new file mode 100644
index 00000000000..96d02d9005c
--- /dev/null
+++ b/dev-cpp/libxsd-frontend/libxsd-frontend-1.18.0-r3.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils toolchain-funcs versionator
+
+DESCRIPTION="A compiler frontend for the W3C XML Schema definition language"
+HOMEPAGE="http://www.codesynthesis.com/projects/libxsd-frontend/"
+SRC_URI="http://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ppc64 x86"
+
+RDEPEND=">=dev-libs/xerces-c-3
+ >=dev-libs/boost-1.52.0-r1:=[threads]
+ >=dev-cpp/libcult-1.4.6-r1
+ >=dev-cpp/libfrontend-elements-1.1.4"
+DEPEND="${RDEPEND}
+ dev-util/build:0.3"
+
+src_prepare() {
+ epatch "${FILESDIR}/1.17.0-boost-filesystem-v2-deprecation.patch"
+}
+
+src_configure() {
+ mkdir -p \
+ build/{ld,cxx/gnu} \
+ build/import/lib{boost,cult,frontend-elements,xerces-c}
+
+ cat >> build/cxx/configuration-dynamic.make <<- EOF
+cxx_id := gnu
+cxx_optimize := n
+cxx_debug := n
+cxx_rpath := n
+cxx_pp_extra_options :=
+cxx_extra_options := ${CXXFLAGS}
+cxx_ld_extra_options := ${LDFLAGS}
+cxx_extra_libs :=
+cxx_extra_lib_paths :=
+ EOF
+
+ cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF
+cxx_gnu := $(tc-getCXX)
+cxx_gnu_libraries :=
+cxx_gnu_optimization_options :=
+ EOF
+
+ cat >> build/import/libboost/configuration-dynamic.make <<- EOF
+libboost_installed := y
+libboost_system := y
+ EOF
+ cat >> build/import/libcult/configuration-dynamic.make <<- EOF
+libcult_installed := y
+ EOF
+
+ cat >> build/ld/configuration-lib-dynamic.make <<- EOF
+ld_lib_type := shared
+ EOF
+
+ cat >> build/import/libfrontend-elements/configuration-dynamic.make <<- EOF
+libfrontend_elements_installed := y
+ EOF
+
+ cat >> build/import/libxerces-c/configuration-dynamic.make <<- EOF
+libxerces_c_installed := y
+ EOF
+
+ MAKEOPTS+=" verbose=1"
+}
+
+src_install() {
+ dolib.so xsd-frontend/libxsd-frontend.so
+
+ find xsd-frontend -iname "*.cxx" \
+ -o -iname "makefile" \
+ -o -iname "*.o" -o -iname "*.d" \
+ -o -iname "*.m4" -o -iname "*.l" \
+ -o -iname "*.cpp-options" -o -iname "*.so" | xargs rm -f
+ rm -rf xsd-frontend/arch
+
+ insinto /usr/include
+ doins -r xsd-frontend
+
+ dodoc NEWS README
+}
+
+src_test() {
+ export LD_LIBRARY_PATH="${S}/xsd-frontend:${LD_LIBRARY_PATH}"
+ default
+}
diff --git a/dev-cpp/libxsd-frontend/metadata.xml b/dev-cpp/libxsd-frontend/metadata.xml
new file mode 100644
index 00000000000..75dd2ca7d30
--- /dev/null
+++ b/dev-cpp/libxsd-frontend/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-cpp/luabind/Manifest b/dev-cpp/luabind/Manifest
new file mode 100644
index 00000000000..6c7beef4e7a
--- /dev/null
+++ b/dev-cpp/luabind/Manifest
@@ -0,0 +1 @@
+DIST luabind-0.9.1.tar.gz 194560 SHA256 80de5e04918678dd8e6dac3b22a34b3247f74bf744c719bae21faaa49649aaae SHA512 7967a27c3fccb155c282b3234e57d1943f6270988587b772a018d8d4491c8fe5418f264154405aaf1fdfaa27a3e478b026dd6c51f95d8d6092df82c468407ae1 WHIRLPOOL 6c8f0233c571ce5b91c3d44375aaf4251fd39e06f28e8ffab2207ed1b50d45a324b9c4abac944dcad501febf59972a281bc01653120ddcdf61d123db51937496
diff --git a/dev-cpp/luabind/files/luabind-0.9.1-boost.patch b/dev-cpp/luabind/files/luabind-0.9.1-boost.patch
new file mode 100644
index 00000000000..92e32828a03
--- /dev/null
+++ b/dev-cpp/luabind/files/luabind-0.9.1-boost.patch
@@ -0,0 +1,59 @@
+diff --git luabind-0.9.1/luabind/detail/call_function.hpp luabind-0.9.1-fixed/luabind/detail/call_function.hpp
+index 1b45ec1..8f5afff 100644
+--- luabind-0.9.1/luabind/detail/call_function.hpp
++++ luabind-0.9.1-fixed/luabind/detail/call_function.hpp
+@@ -323,7 +323,8 @@ namespace luabind
+
+ #endif // LUABIND_CALL_FUNCTION_HPP_INCLUDED
+
+-#elif BOOST_PP_ITERATION_FLAGS() == 1
++#else
++#if BOOST_PP_ITERATION_FLAGS() == 1
+
+ #define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
+ #define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
+@@ -440,4 +441,5 @@ namespace luabind
+
+
+ #endif
++#endif
+
+diff --git luabind-0.9.1/luabind/detail/call_member.hpp luabind-0.9.1-fixed/luabind/detail/call_member.hpp
+index de8d563..e63555b 100644
+--- luabind-0.9.1/luabind/detail/call_member.hpp
++++ luabind-0.9.1-fixed/luabind/detail/call_member.hpp
+@@ -316,7 +316,8 @@ namespace luabind
+
+ #endif // LUABIND_CALL_MEMBER_HPP_INCLUDED
+
+-#elif BOOST_PP_ITERATION_FLAGS() == 1
++#else
++#if BOOST_PP_ITERATION_FLAGS() == 1
+
+ #define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
+ #define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
+@@ -360,4 +361,5 @@ namespace luabind
+ #undef LUABIND_TUPLE_PARAMS
+
+ #endif
++#endif
+
+diff --git luabind-0.9.1/luabind/wrapper_base.hpp luabind-0.9.1-fixed/luabind/wrapper_base.hpp
+index d54c668..0f88cc5 100755
+--- luabind-0.9.1/luabind/wrapper_base.hpp
++++ luabind-0.9.1-fixed/luabind/wrapper_base.hpp
+@@ -89,7 +89,8 @@ namespace luabind
+
+ #endif // LUABIND_WRAPPER_BASE_HPP_INCLUDED
+
+-#elif BOOST_PP_ITERATION_FLAGS() == 1
++#else
++#if BOOST_PP_ITERATION_FLAGS() == 1
+
+ #define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
+ #define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
+@@ -188,3 +189,4 @@ namespace luabind
+ #undef N
+
+ #endif
++#endif
diff --git a/dev-cpp/luabind/luabind-0.9.1.ebuild b/dev-cpp/luabind/luabind-0.9.1.ebuild
new file mode 100644
index 00000000000..c88e27363d3
--- /dev/null
+++ b/dev-cpp/luabind/luabind-0.9.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# NOTE: cross compiling is probably broken
+
+EAPI=5
+
+inherit eutils multilib
+
+DESCRIPTION="Creates bindings for lua on c++"
+HOMEPAGE="http://www.rasterbar.com/products/luabind.html"
+SRC_URI="mirror://sourceforge/luabind/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-lang/lua"
+DEPEND="${RDEPEND}
+ dev-libs/boost
+ dev-util/boost-build"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-boost.patch
+
+ # backwardscomapt with old boost-build-1.49.0
+ if [[ -e $(which bjam-1_49 2>/dev/null) ]] ; then
+ my_bjam_bin=bjam-1_49
+ else
+ my_bjam_bin=bjam
+ fi
+}
+
+src_compile() {
+ # linkflags get appended, so they actually do nothing
+ ${my_bjam_bin} release \
+ -d+2 \
+ --prefix="${D}/usr/" \
+ --libdir="${D}/usr/$(get_libdir)" \
+ cflags="${CFLAGS}" \
+ linkflags="${LDFLAGS}" \
+ link=shared || die "compile failed"
+}
+
+src_install() {
+ ${my_bjam_bin} release \
+ -d+2 \
+ --prefix="${D}/usr/" \
+ --libdir="${D}/usr/$(get_libdir)" \
+ cflags="${CFLAGS}" \
+ linkflags="${LDFLAGS}" \
+ link=shared \
+ install || die "install failed"
+}
+
+# generally, this really sucks, patches welcome
diff --git a/dev-cpp/luabind/metadata.xml b/dev-cpp/luabind/metadata.xml
new file mode 100644
index 00000000000..0036cf5d2d9
--- /dev/null
+++ b/dev-cpp/luabind/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>hasufell@gentoo.org</email>
+ <name>Julian Ospald</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">luabind</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/lucene++/Manifest b/dev-cpp/lucene++/Manifest
new file mode 100644
index 00000000000..611bcb35f96
--- /dev/null
+++ b/dev-cpp/lucene++/Manifest
@@ -0,0 +1,2 @@
+DIST lucene++-3.0.6.tar.gz 1529066 SHA256 3e7092a4935e0d1ad5c6d7ac8f3c6ed2f53e51321237ce83744bbf02e0d61519 SHA512 c65aac4cdc92b4593a7d9996273047ff68cc097b755bacdd424266ffcf9143b491ef91123b8e78d9f1fba3d9ac39078a0c2c97c22a39f646f84a0fef0f2956ef WHIRLPOOL 7064b69214d62e05986c78fee2873222c85c2a7a4c892fcc29a5b47f0b1cb67e64789f3665dc3b8ca3628daf28e05c331a99cd0111062683e9323a6827e7ebf5
+DIST lucene++-3.0.7.tar.gz 2013570 SHA256 6c19f203311e4b44a0ccf7b1127db77436eb47159ea1c54f7531a0b1ca585e0c SHA512 92f3bba320980673cc64c983616aa38d25b44ea811237ed226741b892757fb8151e4f833aa58a18dbe7a0c9a899d94e828aa15e6d7b48a69ab730d1d772db220 WHIRLPOOL e5d18d6d0ac90f8b0ace161dc0457b2ca3546c211e96ac3c44dea4ba7d9bbd6bd9183016ceb2bccd8516261db0ca2dd4331701bb37e653e96df9453d6acbc878
diff --git a/dev-cpp/lucene++/files/lucene++-3.0.6-disable-demos.patch b/dev-cpp/lucene++/files/lucene++-3.0.6-disable-demos.patch
new file mode 100644
index 00000000000..ba5deca413c
--- /dev/null
+++ b/dev-cpp/lucene++/files/lucene++-3.0.6-disable-demos.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9217c21..d4e7b86 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -118,7 +118,7 @@ enable_testing()
+
+ add_subdirectory(src/core)
+ add_subdirectory(src/contrib)
+-add_subdirectory(src/demo)
++#add_subdirectory(src/demo)
+ add_subdirectory(src/test)
+
+ #################################
diff --git a/dev-cpp/lucene++/files/lucene++-3.0.6-disable-tests.patch b/dev-cpp/lucene++/files/lucene++-3.0.6-disable-tests.patch
new file mode 100644
index 00000000000..1fae17e71d3
--- /dev/null
+++ b/dev-cpp/lucene++/files/lucene++-3.0.6-disable-tests.patch
@@ -0,0 +1,42 @@
+Forwarded: https://github.com/luceneplusplus/LucenePlusPlus/pull/64
+Author: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Description: Disabling tests until we find a proper way for building and including gtest
+ In the next release this might become possible, after commit 83356d9681fb52
+ https://github.com/luceneplusplus/LucenePlusPlus/commit/83356d9681fb52a4c190d2cf033279006c1bf57d
+Last-Update: 2014-08-25
+--- a/CMakeExternal.txt
++++ b/CMakeExternal.txt
+@@ -1,5 +1,6 @@
+ # Enable ExternalProject CMake module
+ include(ExternalProject)
++find_package(Subversion REQUIRED)
+
+ # main directory for external projects
+ set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty)
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -49,7 +49,6 @@
+ # bootstrap
+ ####################################
+
+-find_package(Subversion REQUIRED)
+ find_package(Threads REQUIRED)
+ find_package(Boost COMPONENTS
+ date_time
+@@ -114,13 +113,13 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/include
+ )
+
+-include(CMakeExternal.txt)
+-enable_testing()
++#include(CMakeExternal.txt)
++#enable_testing()
+
+ add_subdirectory(src/core)
+ add_subdirectory(src/contrib)
+ #add_subdirectory(src/demo)
+-add_subdirectory(src/test)
++#add_subdirectory(src/test)
+
+ #################################
+ # install pkg-config file
diff --git a/dev-cpp/lucene++/files/lucene++-3.0.6-fix-installing-headers.patch b/dev-cpp/lucene++/files/lucene++-3.0.6-fix-installing-headers.patch
new file mode 100644
index 00000000000..f9ccc84eccd
--- /dev/null
+++ b/dev-cpp/lucene++/files/lucene++-3.0.6-fix-installing-headers.patch
@@ -0,0 +1,39 @@
+From: rezso <rezso@example.com>
+Date: Mon, 19 May 2014 09:20:40 +0100
+Subject: [PATCH] fix installing lucene++ headers in 3.0.6
+
+Origin: upstream, https://github.com/luceneplusplus/LucenePlusPlus/commit/994f03cf736229044a168835ae7387696041658f
+Description: backport upstream patch to fix missing headers install
+
+Index: lucene++-3.0.6/CMakeLists.txt
+===================================================================
+--- lucene++-3.0.6.orig/CMakeLists.txt
++++ lucene++-3.0.6/CMakeLists.txt
+@@ -139,6 +139,14 @@ if(NOT WIN32)
+ DESTINATION ${LIB_DESTINATION}/pkgconfig)
+ endif()
+
++#################################
++# install Config.h
++#################################
++install(
++ FILES
++ "${CMAKE_CURRENT_BINARY_DIR}/include/Config.h"
++ DESTINATION include/lucene++)
++
+ ####################################
+ # custom targets
+ ####################################
+Index: lucene++-3.0.6/src/core/CMakeLists.txt
+===================================================================
+--- lucene++-3.0.6.orig/src/core/CMakeLists.txt
++++ lucene++-3.0.6/src/core/CMakeLists.txt
+@@ -20,7 +20,7 @@ file(GLOB_RECURSE lucene_internal_header
+ )
+
+ file(GLOB_RECURSE lucene_headers
+- include/*.h
++ "${lucene++_SOURCE_DIR}/include/*.h"
+ )
+
+ add_definitions(-DLPP_BUILDING_LIB)
diff --git a/dev-cpp/lucene++/lucene++-3.0.6.ebuild b/dev-cpp/lucene++/lucene++-3.0.6.ebuild
new file mode 100644
index 00000000000..702ca21bca7
--- /dev/null
+++ b/dev-cpp/lucene++/lucene++-3.0.6.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P="LucenePlusPlus-rel_${PV}"
+inherit cmake-utils multilib
+
+DESCRIPTION="C++ port of Java Lucene library, a high-performance, full-featured text search engine"
+HOMEPAGE="https://github.com/luceneplusplus/LucenePlusPlus"
+SRC_URI="https://github.com/luceneplusplus/LucenePlusPlus/archive/rel_${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( LGPL-3 Apache-2.0 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug"
+
+DEPEND="dev-libs/boost:="
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( AUTHORS README.rst )
+
+PATCHES=(
+ "${FILESDIR}/${P}-disable-demos.patch"
+ "${FILESDIR}/${P}-disable-tests.patch"
+ "${FILESDIR}/${P}-fix-installing-headers.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DLIB_DESTINATION=$(get_libdir)
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/lucene++/lucene++-3.0.7.ebuild b/dev-cpp/lucene++/lucene++-3.0.7.ebuild
new file mode 100644
index 00000000000..3bb2bb8343b
--- /dev/null
+++ b/dev-cpp/lucene++/lucene++-3.0.7.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P="LucenePlusPlus-rel_${PV}"
+inherit cmake-utils multilib
+
+DESCRIPTION="C++ port of Java Lucene library, a high-performance, full-featured text search engine"
+HOMEPAGE="https://github.com/luceneplusplus/LucenePlusPlus"
+SRC_URI="https://github.com/luceneplusplus/LucenePlusPlus/archive/rel_${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( LGPL-3 Apache-2.0 )"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86"
+IUSE="debug"
+
+DEPEND="dev-libs/boost:="
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( AUTHORS README.rst )
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_DEMO=OFF
+ -DENABLE_TEST=OFF
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/lucene++/metadata.xml b/dev-cpp/lucene++/metadata.xml
new file mode 100644
index 00000000000..06ee9b592b0
--- /dev/null
+++ b/dev-cpp/lucene++/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>johu@gentoo.org</email>
+ <name>Johannes Huber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">luceneplusplus/luceneplusplus</remote-id>
+ </upstream>
+</pkgmetadata>
+
diff --git a/dev-cpp/metadata.xml b/dev-cpp/metadata.xml
new file mode 100644
index 00000000000..643f7614d21
--- /dev/null
+++ b/dev-cpp/metadata.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The dev-cpp category contains libraries and utilities relevant to the
+ c++ programming language.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie dev-cpp enthält Bibliotheken und Werkzeuge für die
+ Programmiersprache C++.
+ </longdescription>
+ <longdescription lang="es">
+ La categoría dev-cpp contiene librerias y utilidades referentes al
+ lenguaje de programación C++.
+ </longdescription>
+ <longdescription lang="ja">
+ dev-cpp カテゴリーにはC++プログラミング言語に関連したライブラリーと
+ ユーティリティが含まれます。
+ </longdescription>
+ <longdescription lang="nl">
+ De dev-cpp categorie bevat bibliotheken en hulpmiddelen voor het gebruik
+ van de programmeertaal C++.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm dev-cpp chứa các thư viện và tiện ích liên quan
+ đến ngôn ngữ lập trình C++.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria dev-cpp contiene librerie e utilità per illinguaggio C++.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria dev-cpp contém bibliotecas e utilitários para a
+ linguagem de programação C++.
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria dev-cpp zawiera biblioteki i narzędzia związane z językiem
+ programowania c++.
+ </longdescription>
+</catmetadata>
+
diff --git a/dev-cpp/metslib/Manifest b/dev-cpp/metslib/Manifest
new file mode 100644
index 00000000000..ec774387bfc
--- /dev/null
+++ b/dev-cpp/metslib/Manifest
@@ -0,0 +1 @@
+DIST metslib-0.5.3.tgz 218295 SHA256 33142aa3be7c79b966a14c50eb39d0468e98ff365f5c7e055a93ea77eda04c3d SHA512 27acc3728213f92963e046fa5ffd268686764e02d35765415a544194d70c873cfe38d5bba5a259b63847ab815c5984313fe81a66da1d39c89615a413943f7b04 WHIRLPOOL 1abd7398d59cc7e349a4303921ee1ad58a57ca1724114ed27b82f8dca8a5629974038efe7f5076423224af4934afde6c8ecc7c80db70ea59e6618d1a06b455d5
diff --git a/dev-cpp/metslib/metadata.xml b/dev-cpp/metslib/metadata.xml
new file mode 100644
index 00000000000..e7dd05f6687
--- /dev/null
+++ b/dev-cpp/metslib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>aballier@gentoo.org</email>
+<name>Alexis Ballier</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-cpp/metslib/metslib-0.5.3.ebuild b/dev-cpp/metslib/metslib-0.5.3.ebuild
new file mode 100644
index 00000000000..666be9a8a4e
--- /dev/null
+++ b/dev-cpp/metslib/metslib-0.5.3.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Metaheuristic modeling framework and optimization toolkit"
+HOMEPAGE="https://projects.coin-or.org/metslib"
+SRC_URI="http://www.coin-or.org/download/source/metslib/${P}.tgz"
+
+LICENSE="|| ( GPL-3 CPL-1.0 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+DOCS=( AUTHORS NEWS README )
diff --git a/dev-cpp/mm-common/Manifest b/dev-cpp/mm-common/Manifest
new file mode 100644
index 00000000000..b946fe68d51
--- /dev/null
+++ b/dev-cpp/mm-common/Manifest
@@ -0,0 +1,2 @@
+DIST mm-common-0.9.7.tar.xz 262420 SHA256 78f47336f3bdf034a384c59a39cc9f0d566e69e36aa7c9ee3ec0bb6a94bf8b3e SHA512 5cd0efa76a3659dca9abd85990a1f227f7360e42b10c9215eccb460a02f9bff0858d249407c7de6f5d1b5ac452d6ccf88101be8827f23f3c04500feb7d7d2559 WHIRLPOOL 265066803e860bacfa921b1944b51bf97f1e795f065649662593cdf7321cbe5971594c4b6b9d5189ffde975a079311a7b81a59c8323e14da49205063002e784e
+DIST mm-common-0.9.8.tar.xz 263200 SHA256 c9ab5fd3872fbe245fbc35347acf4a95063111f81d54c43df3af662dad0a03d5 SHA512 b3aafe566b4d276bac41570a1b8243efa4b2d96711a410c3e9fe19f1725d248c5ea3bd4de602ee5504346100672d81e5e571ba430fed4ca938af032ce4ee54c1 WHIRLPOOL 6348781087fb91983aad449eb40ca49c8d6e71a464c9e587ff4f11ec801f9a2be772a3d4d15b635e59e2d127b318ff130a5b71c0993ad8edd0c7b15abf8fdf42
diff --git a/dev-cpp/mm-common/metadata.xml b/dev-cpp/mm-common/metadata.xml
new file mode 100644
index 00000000000..0c3fdbb65e7
--- /dev/null
+++ b/dev-cpp/mm-common/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
+
diff --git a/dev-cpp/mm-common/mm-common-0.9.7.ebuild b/dev-cpp/mm-common/mm-common-0.9.7.ebuild
new file mode 100644
index 00000000000..e6b640413cf
--- /dev/null
+++ b/dev-cpp/mm-common/mm-common-0.9.7.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2
+
+DESCRIPTION="Build infrastructure and utilities for GNOME C++ bindings"
+HOMEPAGE="http://www.gtkmm.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
diff --git a/dev-cpp/mm-common/mm-common-0.9.8.ebuild b/dev-cpp/mm-common/mm-common-0.9.8.ebuild
new file mode 100644
index 00000000000..dfb212fbe2f
--- /dev/null
+++ b/dev-cpp/mm-common/mm-common-0.9.8.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2
+
+DESCRIPTION="Build infrastructure and utilities for GNOME C++ bindings"
+HOMEPAGE="http://www.gtkmm.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
diff --git a/dev-cpp/muParser/Manifest b/dev-cpp/muParser/Manifest
new file mode 100644
index 00000000000..f94ac2b7549
--- /dev/null
+++ b/dev-cpp/muParser/Manifest
@@ -0,0 +1,2 @@
+DIST muparser_v2_2_2.zip 1508675 SHA256 a9c3d50c1092279d2be0d4ba275ff222979da83eb960cbef6b8af1f5bfdccc5e SHA512 e4abe1ba108e928340054834e8efd101b6d0feef672df6ec04cdf27862bc4fea7c3443f0e02dc6dd8cb813e66157879ca1ce1755cecae7d81ac89eccaec29b1d WHIRLPOOL 50d33276f7db353fc0595d095a62b696a1c8d93f813034e2f6ba9ea1a9fa26d836b6637581b3164277d5e10dbc00be87015bb5e4ce8cf52237ccd37cf21dddaf
+DIST muparser_v2_2_3.zip 1481359 SHA256 dfe831b69392ab0b1eb59d3601b7b1575554a85057cf2f234f64f930c4148902 SHA512 86d140c07161757e2f0de516a4c2922ce5b135d06b01466bc15ad90833bd3e9f99b9b9c528617262597a7a5a6b09bff5ae8ced5d51c413ea611059e0bdb22e6d WHIRLPOOL 3a53d04382feec889c4a54fe2edf762d9cf8629f4ec0543cfde12b6848e3594391a778c54747d6b4cf7608fcc0ac557f71132741935716704b160601057ff312
diff --git a/dev-cpp/muParser/files/muParser-1.32-build.patch b/dev-cpp/muParser/files/muParser-1.32-build.patch
new file mode 100644
index 00000000000..84875e0a1a5
--- /dev/null
+++ b/dev-cpp/muParser/files/muParser-1.32-build.patch
@@ -0,0 +1,13 @@
+--- configure 2008-06-09 22:51:39.000000000 +0100
++++ configure 2009-03-09 16:12:02.335504093 +0000
+@@ -1927,10 +1927,6 @@
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+-CFLAGS=
+-CXXFLAGS=
+-CPPFLAGS=
+-
+ for ac_prog in gawk mawk nawk awk
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
diff --git a/dev-cpp/muParser/files/muParser-1.32-parallel-build.patch b/dev-cpp/muParser/files/muParser-1.32-parallel-build.patch
new file mode 100644
index 00000000000..1681c6e6803
--- /dev/null
+++ b/dev-cpp/muParser/files/muParser-1.32-parallel-build.patch
@@ -0,0 +1,15 @@
+Fixing parallel build issue
+
+http://bugs.gentoo.org/show_bug.cgi?id=310037
+
+--- muparser_v132/Makefile.in
++++ muparser_v132/Makefile.in
+@@ -291,7 +291,7 @@
+ @COND_SHARED_1@ rm -f $(DESTDIR)$(prefix)/$$f; \
+ @COND_SHARED_1@ done
+
+-@COND_SAMPLES_1@$(top_builddir)/samples/example1/example1$(EXEEXT): $(EXAMPLE1_OBJECTS) $(__muParser_lib___depname)
++@COND_SAMPLES_1@$(top_builddir)/samples/example1/example1$(EXEEXT): $(EXAMPLE1_OBJECTS) $(__muParser_lib___depname) lib
+ @COND_SAMPLES_1@ $(CXX) -o $@ $(EXAMPLE1_OBJECTS) -L$(top_builddir)/lib -L$(srcdir)/lib $(LDFLAGS) -lmuparser$(DEBUG_BUILD_POSTFIX) $(LIBS)
+ @COND_SAMPLES_1@
+ @COND_SAMPLES_1@ $(__example1___mac_setfilecmd)
diff --git a/dev-cpp/muParser/metadata.xml b/dev-cpp/muParser/metadata.xml
new file mode 100644
index 00000000000..fca7b76f20e
--- /dev/null
+++ b/dev-cpp/muParser/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-mathematics</herd>
+ <longdescription lang="en">
+ muParser is a C++ library for mathematical expression parsing.
+ It is based on transforming an expression into a bytecode and
+ precalculating constant parts of it.
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">muparser</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/muParser/muParser-2.2.2.ebuild b/dev-cpp/muParser/muParser-2.2.2.ebuild
new file mode 100644
index 00000000000..271a9813422
--- /dev/null
+++ b/dev-cpp/muParser/muParser-2.2.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils
+
+MY_PN=${PN/P/p}
+MY_P=${MY_PN}_v${PV/./}
+
+DESCRIPTION="Library for parsing mathematical expressions"
+HOMEPAGE="http://muparser.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN/P/p}/${PN/P/p}/Version%20${PV}/${PN/P/p}_v${PV//./_}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="app-arch/unzip"
+
+S="${WORKDIR}"/${PN/P/p}_v${PV//./_}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-1.32-build.patch \
+ "${FILESDIR}"/${PN}-1.32-parallel-build.patch
+ sed -i \
+ -e 's:-O2::g' \
+ configure || die
+}
+
+src_configure() {
+ chmod +x configure || die
+ econf $(use_enable test samples)
+}
+
+src_test() {
+ cat > test.sh <<- EOFTEST
+ LD_LIBRARY_PATH=${S}/lib samples/example1/example1 <<- EOF
+ quit
+ EOF
+ EOFTEST
+ sh ./test.sh || die "test failed"
+}
+
+src_install() {
+ default
+ dodoc Changes.txt
+ use doc && dohtml -r docs/html/*
+}
diff --git a/dev-cpp/muParser/muParser-2.2.3.ebuild b/dev-cpp/muParser/muParser-2.2.3.ebuild
new file mode 100644
index 00000000000..435c089bc69
--- /dev/null
+++ b/dev-cpp/muParser/muParser-2.2.3.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+MYPN=${PN/P/p}
+MYP=${MYPN}_v${PV//./_}
+
+DESCRIPTION="Library for parsing mathematical expressions"
+HOMEPAGE="http://muparser.beltoforion.de/"
+SRC_URI="mirror://sourceforge/${MYPN}/${MYP}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="app-arch/unzip"
+
+S="${WORKDIR}/${MYP}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.32-parallel-build.patch
+ sed -i \
+ -e 's:-O2::g' \
+ configure || die
+}
+
+src_configure() {
+ econf $(use_enable test samples)
+}
+
+src_test() {
+ cat > test.sh <<- EOFTEST
+ LD_LIBRARY_PATH=${S}/lib samples/example1/example1 <<- EOF
+ quit
+ EOF
+ EOFTEST
+ sh ./test.sh || die "test failed"
+}
+
+src_install() {
+ default
+ dodoc Changes.txt
+ use doc && dohtml -r docs/html/*
+}
diff --git a/dev-cpp/pangomm/Manifest b/dev-cpp/pangomm/Manifest
new file mode 100644
index 00000000000..cc2aae1d3dc
--- /dev/null
+++ b/dev-cpp/pangomm/Manifest
@@ -0,0 +1,2 @@
+DIST pangomm-2.34.0.tar.xz 516028 SHA256 0e82bbff62f626692a00f3772d8b17169a1842b8cc54d5f2ddb1fec2cede9e41 SHA512 d8fddf52189da99a56289e3e1aa0579da2b48a62ffd00981db9da505ebc03a734c67151d8f4f3ca85dcd47c79218cdf503f23b8e69074fe99c052596320c8309 WHIRLPOOL 6ff34e0b71134ea4e40a9d103fbac03517f56ea323969dde290d632b87dd5d26013254ac3506ffbed5ec4b1a448815f630480ce179b6c6f070a0e277b56dba0e
+DIST pangomm-2.36.0.tar.xz 773628 SHA256 a8d96952c708d7726bed260d693cece554f8f00e48b97cccfbf4f5690b6821f0 SHA512 6b565454d675f13465b129f983c6a86c86ce6c43991f8c4e2367992a3bb9b69103581966636cc18c6e55841c7a06fb19575c5e49ffd0cb2c64ae2b02487b7a7c WHIRLPOOL 96ec448598c98e6a37ae29ee3d7cb0fd92489a38f130a1f6093d2b57c734b6a518563acf7be61f2a2dfe9e66b630dbb6492ba6d03743acef0bdbc8e62462bc47
diff --git a/dev-cpp/pangomm/metadata.xml b/dev-cpp/pangomm/metadata.xml
new file mode 100644
index 00000000000..0c3fdbb65e7
--- /dev/null
+++ b/dev-cpp/pangomm/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-mm</herd>
+</pkgmetadata>
+
diff --git a/dev-cpp/pangomm/pangomm-2.34.0-r1.ebuild b/dev-cpp/pangomm/pangomm-2.34.0-r1.ebuild
new file mode 100644
index 00000000000..628b67f2e73
--- /dev/null
+++ b/dev-cpp/pangomm/pangomm-2.34.0-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+#GNOME2_LA_PUNT="yes"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for pango"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="1.4"
+KEYWORDS="~alpha amd64 arm hppa ~ia64 ppc ppc64 ~sh ~sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+COMMON_DEPEND="
+ >=x11-libs/pango-1.32.5[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.36.0:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.10.0-r1[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+RDEPEND="${COMMON_DEPEND}
+ !<dev-cpp/gtkmm-2.13:2.4
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(multilib_native_use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
diff --git a/dev-cpp/pangomm/pangomm-2.34.0.ebuild b/dev-cpp/pangomm/pangomm-2.34.0.ebuild
new file mode 100644
index 00000000000..5dd9214da90
--- /dev/null
+++ b/dev-cpp/pangomm/pangomm-2.34.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+#GNOME2_LA_PUNT="yes"
+
+inherit gnome2
+
+DESCRIPTION="C++ interface for pango"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="1.4"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+COMMON_DEPEND="
+ >=x11-libs/pango-1.23.0
+ >=dev-cpp/glibmm-2.36.0:2
+ >=dev-cpp/cairomm-1.2.2
+ dev-libs/libsigc++:2
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+RDEPEND="${COMMON_DEPEND}
+ !<dev-cpp/gtkmm-2.13:2.4
+"
+
+src_configure() {
+ gnome2_src_configure $(use_enable doc documentation)
+}
diff --git a/dev-cpp/pangomm/pangomm-2.36.0.ebuild b/dev-cpp/pangomm/pangomm-2.36.0.ebuild
new file mode 100644
index 00000000000..e5a1c3d604e
--- /dev/null
+++ b/dev-cpp/pangomm/pangomm-2.36.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for pango"
+HOMEPAGE="http://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="1.4"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+COMMON_DEPEND="
+ >=x11-libs/pango-1.36[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.36.0:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.10.0-r1[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+RDEPEND="${COMMON_DEPEND}
+ !<dev-cpp/gtkmm-2.13:2.4
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-gtkmmlibs-20140508
+ !app-emulation/emul-linux-x86-gtkmmlibs[-abi_x86_32(-)] )
+"
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(multilib_native_use_enable doc documentation)
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
diff --git a/dev-cpp/pficommon/Manifest b/dev-cpp/pficommon/Manifest
new file mode 100644
index 00000000000..18ff347fc4b
--- /dev/null
+++ b/dev-cpp/pficommon/Manifest
@@ -0,0 +1 @@
+DIST pficommon-1.3.1.0.tar.gz 441406 SHA256 4b644f38825f939e3c9e3649af4a35fee00ea7343dd7711770c6ec713be859c0 SHA512 95ef445c2f004c0921bdcae7ee50fc3a744d4960f9bc76c13254394c4ae41fad11ea200002b9fde3e099ef509ffe9ba9ea21d69ba1123699ab3338d7afbcf420 WHIRLPOOL 00d8c92c1a8bd4ee80167eb0032e97b327ee40bad41b18e6567da90a1462f431c22e75a0b02568bac6686e693a954ef2ff5628225f81b88397727e789395c4fc
diff --git a/dev-cpp/pficommon/files/pficommon-1.3.1.0-gcc-4.7.patch b/dev-cpp/pficommon/files/pficommon-1.3.1.0-gcc-4.7.patch
new file mode 100644
index 00000000000..283ef2d7da9
--- /dev/null
+++ b/dev-cpp/pficommon/files/pficommon-1.3.1.0-gcc-4.7.patch
@@ -0,0 +1,50 @@
+From 5669e7ea665323ee774eda9c77206102fa499453 Mon Sep 17 00:00:00 2001
+From: Hideyuki Tanaka <tanaka.hideyuki@gmail.com>
+Date: Mon, 21 May 2012 17:21:34 +0900
+Subject: [PATCH] add include <unistd.h> (for gcc-4.7.0)
+
+---
+ src/network/socket.cpp | 1 +
+ src/system/mmapper.cpp | 1 +
+ tools/genrpc/main.cpp | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/src/network/socket.cpp b/src/network/socket.cpp
+index b5c50e4..1fba6e6 100644
+--- a/src/network/socket.cpp
++++ b/src/network/socket.cpp
+@@ -40,6 +40,7 @@
+ #include <netinet/in.h>
+ #include <netinet/tcp.h>
+ #include <arpa/inet.h>
++#include <unistd.h>
+
+ #include "dns.h"
+ #include "../system/syscall.h"
+diff --git a/src/system/mmapper.cpp b/src/system/mmapper.cpp
+index 90eb7b8..e963fd8 100644
+--- a/src/system/mmapper.cpp
++++ b/src/system/mmapper.cpp
+@@ -35,6 +35,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/mman.h>
++#include <unistd.h>
+
+ #include "syscall.h"
+
+diff --git a/tools/genrpc/main.cpp b/tools/genrpc/main.cpp
+index 100ea4e..3e5ef16 100644
+--- a/tools/genrpc/main.cpp
++++ b/tools/genrpc/main.cpp
+@@ -4,6 +4,7 @@
+ #include <cctype>
+ #include <cstring>
+ #include <cstdio>
++#include <unistd.h>
+ using namespace std;
+
+ #include "../../src/lang/shared_ptr.h"
+--
+1.7.10
+
diff --git a/dev-cpp/pficommon/files/pficommon-1.3.1.0-libdir.patch b/dev-cpp/pficommon/files/pficommon-1.3.1.0-libdir.patch
new file mode 100644
index 00000000000..9bd0e4bf560
--- /dev/null
+++ b/dev-cpp/pficommon/files/pficommon-1.3.1.0-libdir.patch
@@ -0,0 +1,49 @@
+diff --git a/wscript b/wscript
+index dc1866e..c5b800c 100644
+--- a/wscript
++++ b/wscript
+@@ -6,18 +6,21 @@ out = 'build'
+
+ import Options
+ import sys
++import os
+
+ subdirs = 'src tools'
+
+ def options(opt):
+ opt.load('compiler_cxx')
+ opt.load('unittest_gtest')
++ opt.load('gnu_dirs')
+
+ opt.recurse(subdirs)
+
+ def configure(conf):
+ conf.check_tool('compiler_cxx')
+ conf.check_tool('unittest_gtest')
++ conf.check_tool('gnu_dirs')
+
+ conf.env.append_unique(
+ 'CXXFLAGS',
+@@ -28,6 +31,8 @@ def configure(conf):
+ conf.recurse(subdirs)
+
+ conf.define('PFICOMMON_VERSION', VERSION)
++
++ conf.env['VERSION'] = VERSION
+
+ conf.write_config_header('src/pfi-config.h')
+
+@@ -72,11 +77,11 @@ def build(bld):
+ bld(source = 'pficommon.pc.in',
+ prefix = bld.env['PREFIX'],
+ exec_prefix = '${prefix}',
+- libdir = '${prefix}/lib',
++ libdir = bld.env['LIBDIR'],
+ includedir = '${prefix}/include',
+ PACKAGE = APPNAME,
+ VERSION = VERSION)
+
+- bld.install_files('${PREFIX}/lib/pkgconfig', 'pficommon.pc')
++ bld.install_files(os.path.join(bld.env['LIBDIR'], 'pkgconfig'), 'pficommon.pc')
+
+ bld.recurse(subdirs)
diff --git a/dev-cpp/pficommon/files/pficommon-1.3.1.0-postgresql.patch b/dev-cpp/pficommon/files/pficommon-1.3.1.0-postgresql.patch
new file mode 100644
index 00000000000..0bf7096ad94
--- /dev/null
+++ b/dev-cpp/pficommon/files/pficommon-1.3.1.0-postgresql.patch
@@ -0,0 +1,13 @@
+diff --git a/src/database/wscript b/src/database/wscript
+index 8eca1d0..3916a7d 100644
+--- a/src/database/wscript
++++ b/src/database/wscript
+@@ -20,7 +20,7 @@ def configure(conf):
+ conf.env.BUILD_PGSQL = False
+ if not Options.options.disable_database:
+ try:
+- incdir = subprocess.check_output(['pg_config', '--includedir-server']).decode()
++ incdir = subprocess.check_output(['pg_config', '--includedir-server']).decode('utf-8')
+ libdir = subprocess.check_output(['pg_config', '--libdir']).decode()
+ if conf.check_cxx(lib = 'pq',
+ header_name = 'postgres.h',
diff --git a/dev-cpp/pficommon/files/pficommon-1.3.1.0-soname.patch b/dev-cpp/pficommon/files/pficommon-1.3.1.0-soname.patch
new file mode 100644
index 00000000000..040fb259bc7
--- /dev/null
+++ b/dev-cpp/pficommon/files/pficommon-1.3.1.0-soname.patch
@@ -0,0 +1,200 @@
+diff --git a/src/concurrent/wscript b/src/concurrent/wscript
+index 5aeb5ab..8700d68 100644
+--- a/src/concurrent/wscript
++++ b/src/concurrent/wscript
+@@ -19,6 +19,7 @@ def build(bld):
+ source = 'thread.cpp mutex.cpp rwmutex.cpp condition.cpp internal.cpp',
+ target = 'pficommon_concurrent',
+ includes = '.',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_system PTHREAD')
+
+ bld.program(
+diff --git a/src/data/wscript b/src/data/wscript
+index e99c7c3..df47caf 100644
+--- a/src/data/wscript
++++ b/src/data/wscript
+@@ -61,6 +61,7 @@ def build(bld):
+ ],
+ target = 'pficommon_data',
+ includes = incdirs,
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_system')
+
+ def t(src):
+diff --git a/src/database/mysql/wscript b/src/database/mysql/wscript
+index 79d5a23..5407091 100644
+--- a/src/database/mysql/wscript
++++ b/src/database/mysql/wscript
+@@ -7,4 +7,5 @@ def build(bld):
+ source = 'connection.cpp statement.cpp value.cpp',
+ target = 'pficommon_database_mysql',
+ includes = '. ..',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_concurrent MYSQL')
+diff --git a/src/database/postgresql/wscript b/src/database/postgresql/wscript
+index 9b834f8..5040a69 100644
+--- a/src/database/postgresql/wscript
++++ b/src/database/postgresql/wscript
+@@ -7,4 +7,5 @@ def build(bld):
+ source = 'connection.cpp statement.cpp result.cpp value.cpp',
+ target = 'pficommon_database_postgresql',
+ includes = '. ..',
++ vnum = bld.env['VERSION'],
+ use = 'PGSQL')
+diff --git a/src/database/wscript b/src/database/wscript
+index b491d4f..3916a7d 100644
+--- a/src/database/wscript
++++ b/src/database/wscript
+@@ -44,6 +44,7 @@ def build(bld):
+ t = bld.shlib(
+ source = '',
+ target = 'pficommon_database',
++ vnum = bld.env['VERSION'],
+ use = [])
+
+ if bld.env.BUILD_MYSQL:
+diff --git a/src/lang/wscript b/src/lang/wscript
+index e5538d9..e0ad364 100644
+--- a/src/lang/wscript
++++ b/src/lang/wscript
+@@ -20,6 +20,7 @@ def build(bld):
+
+ bld.shlib(
+ source = 'empty.cpp',
++ vnum = bld.env['VERSION'],
+ target = 'pficommon_lang')
+
+ bld.program(
+diff --git a/src/math/wscript b/src/math/wscript
+index 8e8e271..f855b3a 100644
+--- a/src/math/wscript
++++ b/src/math/wscript
+@@ -14,6 +14,7 @@ def build(bld):
+ bld.shlib(
+ source = 'random/mersenne_twister.cpp',
+ target = 'pficommon_math',
++ vnum = bld.env['VERSION'],
+ includes = '.')
+
+ def t(src):
+diff --git a/src/network/wscript b/src/network/wscript
+index 4b0873c..d5a9aee 100644
+--- a/src/network/wscript
++++ b/src/network/wscript
+@@ -56,11 +56,13 @@ def build(bld):
+ source = 'socket.cpp ipv4.cpp dns.cpp uri.cpp',
+ target = 'pficommon_network_base',
+ includes = '.',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_concurrent')
+
+ pfin = bld.shlib(
+ source = '',
+ target = 'pficommon_network',
++ vnum = bld.env['VERSION'],
+ use = [
+ 'pficommon_network_base',
+ 'pficommon_network_http',
+diff --git a/src/system/wscript b/src/system/wscript
+index 4068967..a6fc70c 100644
+--- a/src/system/wscript
++++ b/src/system/wscript
+@@ -21,6 +21,7 @@ def build(bld):
+ 'sysstat.cpp',
+ 'mmapper.cpp'],
+ target = 'pficommon_system',
++ vnum = bld.env['VERSION'],
+ includes = '.')
+
+ bld.program(
+diff --git a/src/text/wscript b/src/text/wscript
+index 2cb54df..e18310c 100644
+--- a/src/text/wscript
++++ b/src/text/wscript
+@@ -16,6 +16,7 @@ def build(bld):
+ source = 'xhtml.cpp csv.cpp json/parser.cpp',
+ target = 'pficommon_text',
+ includes = '. json',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_data pficommon_system')
+
+ bld.program(
+diff --git a/src/util/wscript b/src/util/wscript
+index c971da4..7ed427f 100644
+--- a/src/util/wscript
++++ b/src/util/wscript
+@@ -8,6 +8,7 @@ def build(bld):
+
+ bld.shlib(
+ source = '',
++ vnum = bld.env['VERSION'],
+ target = 'pficommon_util')
+
+ bld(features = 'cxx cprogram gtest',
+diff --git a/src/visualization/wscript b/src/visualization/wscript
+index bf0500a..04469a1 100644
+--- a/src/visualization/wscript
++++ b/src/visualization/wscript
+@@ -27,6 +27,7 @@ def build(bld):
+ v = bld.shlib(
+ source = ['empty.cpp'],
+ target = 'pficommon_visualization',
++ vnum = bld.env['VERSION'],
+ use = [])
+
+ bld.program(
+diff --git a/src/wscript b/src/wscript
+index 8dfd9e8..4af7585 100644
+--- a/src/wscript
++++ b/src/wscript
+@@ -26,6 +26,7 @@ def build(bld):
+ b = bld.shlib(
+ source = 'empty.cpp',
+ target = 'pficommon',
++ vnum = bld.env['VERSION'],
+ use = [
+ 'pficommon_concurrent',
+ 'pficommon_data',
+diff --git a/src/network/cgi/wscript b/src/network/cgi/wscript
+index 29c44fa..1863394 100644
+--- a/src/network/cgi/wscript
++++ b/src/network/cgi/wscript
+@@ -47,6 +47,7 @@ def build(bld):
+ source = 'base.cpp xhtml_cgi.cpp xhtml_builder.cpp inserter.cpp cgi.cpp server.cpp util.cpp',
+ target = 'pficommon_network_cgi',
+ includes = '. ..',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_text pficommon_concurrent pficommon_network_http PTHREAD')
+
+ if bld.env.BUILD_FCGI:
+diff --git a/src/network/http/wscript b/src/network/http/wscript
+index 7e2bbbe..dbfe480 100644
+--- a/src/network/http/wscript
++++ b/src/network/http/wscript
+@@ -14,4 +14,5 @@ def build(bld):
+ source = 'base.cpp',
+ target = 'pficommon_network_http',
+ includes = '. ..',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_network_base')
+diff --git a/src/network/mprpc/wscript b/src/network/mprpc/wscript
+index 940bdd4..0e093f6 100644
+--- a/src/network/mprpc/wscript
++++ b/src/network/mprpc/wscript
+@@ -21,4 +21,5 @@ def build(bld):
+ 'socket.cpp'
+ ],
+ target = 'pficommon_network_mprpc',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_concurrent pficommon_network_base MSGPACK')
+diff --git a/src/network/rpc/wscript b/src/network/rpc/wscript
+index 74c006c..46121d6 100644
+--- a/src/network/rpc/wscript
++++ b/src/network/rpc/wscript
+@@ -17,4 +17,5 @@ def build(bld):
+ source = 'base.cpp',
+ target = 'pficommon_network_rpc',
+ includes = '. ..',
++ vnum = bld.env['VERSION'],
+ use = 'pficommon_network_base pficommon_concurrent pficommon_system')
diff --git a/dev-cpp/pficommon/metadata.xml b/dev-cpp/pficommon/metadata.xml
new file mode 100644
index 00000000000..d2476e20793
--- /dev/null
+++ b/dev-cpp/pficommon/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>naota@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="fcgi">Build FCGI feature</flag>
+ <flag name="mprpc">Build MessagePack RPC feature</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">pfi/pficommon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/pficommon/pficommon-1.3.1.0.ebuild b/dev-cpp/pficommon/pficommon-1.3.1.0.ebuild
new file mode 100644
index 00000000000..775c4587a3e
--- /dev/null
+++ b/dev-cpp/pficommon/pficommon-1.3.1.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='threads(+)'
+inherit python-any-r1 waf-utils eutils
+
+DESCRIPTION="General purpose C++ library for PFI"
+HOMEPAGE="https://github.com/pfi/pficommon"
+SRC_URI="https://github.com/pfi/pficommon/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="fcgi imagemagick mprpc mysql postgres test"
+
+RDEPEND="fcgi? ( dev-libs/fcgi )
+ imagemagick? (
+ media-libs/lcms
+ media-gfx/imagemagick[cxx]
+ sys-devel/libtool
+ )
+ mprpc? ( dev-libs/msgpack )
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql )
+ "
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ test? ( dev-cpp/gtest )"
+
+src_unpack() {
+ unpack ${A}
+ mv pfi-pficommon-* "${S}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-libdir.patch \
+ "${FILESDIR}"/${P}-soname.patch \
+ "${FILESDIR}"/${P}-postgresql.patch \
+ "${FILESDIR}"/${P}-gcc-4.7.patch
+}
+
+src_configure() {
+ if use fcgi; then
+ myconf="${myconf} --with-fcgi=/usr"
+ else
+ myconf="${myconf} --disable-fcgi"
+ fi
+ use imagemagick || myconf="${myconf} --disable-magickpp"
+ use mprpc || myconf="${myconf} --disable-mprpc"
+ if ! use mysql && ! use postgres; then
+ myconf="${myconf} --disable-database"
+ fi
+ waf-utils_src_configure ${myconf}
+}
diff --git a/dev-cpp/pngpp/Manifest b/dev-cpp/pngpp/Manifest
new file mode 100644
index 00000000000..09a2099d16c
--- /dev/null
+++ b/dev-cpp/pngpp/Manifest
@@ -0,0 +1 @@
+DIST png++-0.2.5.tar.gz 577854 SHA256 339fa2dff2cdd117efb43768cb272745faef4d02705b5e0e840537a2c1467b72 SHA512 df1cc5eab06bc15ab180ef7c53a0237bbf9fabccfb04105c92eda0b40f8b181466a386a3abd52f0b733a995414384c99df2d85c7bf211831c838f97b798d4183 WHIRLPOOL 13264b9b51f9850fde3200d7d92834bd7fef2a0d9282ea2dc999b0bc2a1988de1fc10a544a7533f970ee1760b8091e8195b1d5bdecb4388311606e18fea91f9f
diff --git a/dev-cpp/pngpp/metadata.xml b/dev-cpp/pngpp/metadata.xml
new file mode 100644
index 00000000000..7ad27a2ced9
--- /dev/null
+++ b/dev-cpp/pngpp/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>graphics</herd>
+<herd>cpp</herd>
+</pkgmetadata>
diff --git a/dev-cpp/pngpp/pngpp-0.2.5.ebuild b/dev-cpp/pngpp/pngpp-0.2.5.ebuild
new file mode 100644
index 00000000000..593bcc9009f
--- /dev/null
+++ b/dev-cpp/pngpp/pngpp-0.2.5.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+MY_P=${P/pp/++}
+
+DESCRIPTION="A simple but powerful C++ interface to libpng"
+HOMEPAGE="http://www.nongnu.org/pngpp/"
+SRC_URI="mirror://nongnu/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=media-libs/libpng-1.2:0"
+DEPEND=""
+
+S=${WORKDIR}/${MY_P}
+
+src_compile() { :; }
+src_test() { :; }
+
+src_install() {
+ emake PREFIX="${D}/usr" install-headers
+ dodoc AUTHORS BUGS ChangeLog NEWS README TODO
+ docinto examples
+ dodoc example/*.cpp
+}
diff --git a/dev-cpp/pstreams/Manifest b/dev-cpp/pstreams/Manifest
new file mode 100644
index 00000000000..05e694015c3
--- /dev/null
+++ b/dev-cpp/pstreams/Manifest
@@ -0,0 +1,4 @@
+DIST pstreams-0.7.0.tar.gz 55536 SHA256 dc3850460a2ba7ff17969969e202d2c4241d250a1383b8093c961118e0b631bb SHA512 287a7503f25ad70c477b51f7c4af4c54947c1abc6c213371cdc7fc4ccdc20bf79b51959c0b482ae2fa9354e529036b2b53ca8ae5cbf8cd82ad43054856e5e00d WHIRLPOOL 884e363a5f61b45f06e277675a6c4195d9cf85d4e30d7de70099b2969311fb689061f233efcc3248e3ea2b84090102c0825729c8ff843e47066da7a030664883
+DIST pstreams-0.8.1.tar.gz 58588 SHA256 b60d2e9b7466a27c43911de09311ab1936c09b9f48039347b2a430e91871dd7a SHA512 edb6fa30e0a77c4a83bbb7a15c427376d39d73db17112cc5888c404fa1e99407c42c09c9ca072027ac52c753071fb7d7333237bd49aa44488512ce64de22d8f3 WHIRLPOOL aebc0e6808ecc1255a6c5ca7bca38fe40ba192367ac0d7695bb8c2eb31f7cd3257b616d4b73c17f67a6b94623a02a5e16a073fc9129acc04b130c9af3fbba0e7
+DIST pstreams-docs-0.7.0.tar.gz 102315 SHA256 e6894752ee59a9a7b09b3fdab13ceec7f67b73418485f20cde62f4e845194e7b SHA512 d7bccd0e2c83c694ff0c9ddc3ae173b4bdbae19f95c42dcc398e6dab25ea4076fda154ed84bc9b9f2872e468ad60f61a3cb20795b0c17e4bc297e4f425139f75 WHIRLPOOL 063faa1fb78abe87ac828b15b278c01362ce8b1c5459c342a2e5556eeb9c38b8b2e010c5b59ecf03e300dcaa5be04b2e1e562bd7dd9fddd92a252944734e5e05
+DIST pstreams-docs-0.8.1.tar.gz 169559 SHA256 6325a97aacf079f15c535fe9cb8871af06be465f3a1324f341401c8ecea1ba35 SHA512 4b42950831bb9a092ca5eeadceded57888306f6ed24d2bd6c486b890d38b42e241f4430a7411a182d5d59b01a1fe0972d3816ec9510c9e2e50812cf390bc68be WHIRLPOOL 6709631b0aa99f99195b69e9ae8ded7bfec9e8809a16d146c6600e3884881b1a44bdf2158a2c6491ccd0fbe2d6f01ebda245778247656fb05e8cb57b0ad5a8e8
diff --git a/dev-cpp/pstreams/metadata.xml b/dev-cpp/pstreams/metadata.xml
new file mode 100644
index 00000000000..a7fa555aa49
--- /dev/null
+++ b/dev-cpp/pstreams/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">pstreams</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/pstreams/pstreams-0.7.0.ebuild b/dev-cpp/pstreams/pstreams-0.7.0.ebuild
new file mode 100644
index 00000000000..546771fcc44
--- /dev/null
+++ b/dev-cpp/pstreams/pstreams-0.7.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="C++ wrapper for the POSIX.2 functions popen(3) and pclose(3)"
+HOMEPAGE="http://pstreams.sourceforge.net/"
+SRC_URI="
+ mirror://sourceforge/${PN}/${P}.tar.gz
+ doc? ( mirror://sourceforge/${PN}/${PN}-docs-${PV}.tar.gz )"
+
+SLOT="0"
+LICENSE="LGPL-3"
+IUSE="doc"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=""
+DEPEND="doc? ( app-doc/doxygen )"
+
+src_compile() {
+ if use doc; then
+ doxygen -u || die
+ emake
+ fi
+}
+
+src_test() {
+ emake \
+ CXX="$(tc-getCXX)" \
+ CXXFLAGS="${CXXFLAGS}" \
+ check
+}
+
+src_install() {
+ doheader pstream.h
+
+ dodoc AUTHORS ChangeLog README
+
+ use doc && dohtml -r "${WORKDIR}"/${PN}-docs-${PV}/*
+}
diff --git a/dev-cpp/pstreams/pstreams-0.8.1.ebuild b/dev-cpp/pstreams/pstreams-0.8.1.ebuild
new file mode 100644
index 00000000000..73ae771ea66
--- /dev/null
+++ b/dev-cpp/pstreams/pstreams-0.8.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="C++ wrapper for the POSIX.2 functions popen(3) and pclose(3)"
+HOMEPAGE="http://pstreams.sourceforge.net/"
+SRC_URI="
+ mirror://sourceforge/${PN}/${P}.tar.gz
+ doc? ( mirror://sourceforge/${PN}/${PN}-docs-${PV}.tar.gz )"
+
+SLOT="0"
+LICENSE="LGPL-3"
+IUSE="doc"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=""
+DEPEND="doc? ( app-doc/doxygen )"
+
+src_compile() {
+ if use doc; then
+ doxygen -u || die
+ emake
+ fi
+}
+
+src_test() {
+ emake \
+ CXX="$(tc-getCXX)" \
+ CXXFLAGS="${CXXFLAGS}" \
+ check
+}
+
+src_install() {
+ doheader pstream.h
+
+ dodoc AUTHORS ChangeLog README
+
+ use doc && dohtml -r "${WORKDIR}"/${PN}-docs-${PV}/*
+}
diff --git a/dev-cpp/rudiments/Manifest b/dev-cpp/rudiments/Manifest
new file mode 100644
index 00000000000..62ef976d8d5
--- /dev/null
+++ b/dev-cpp/rudiments/Manifest
@@ -0,0 +1,2 @@
+DIST rudiments-0.46.tar.gz 1732565 SHA256 b59b830af52cdf5a361d73524efa0a7aa2f804011e07bf3855551ad07273d70a SHA512 2248db71c23ced4344dbdd26e9efe8c45f20da2e8e106101c762b334b8797dc62c47621c0477d42ac06fc665aa91b772e959802b10103c6256d1dbc68418f2f1 WHIRLPOOL 96cd3e778dbf2d52dc66b5c9ac02358ffd8409eb1ddc4dca5cb6327d5e962445763e1fea9d32bd01955a248f3391d3873bc48570e77bb2543d4cea9b4171fe15
+DIST rudiments-0.51.tar.gz 1923612 SHA256 635b984d0d2d83c4c598f004cb5ec729796af6c9444f28e49b02e4539e5e7aaa SHA512 e36a93b21f8beb86f58d2e1f4d955d865fc68c40af11462f716e849a476786f99c9264dd5097f7110ef6f44752f113db8b62092a9db2f08d0eb34e861ea85888 WHIRLPOOL 3d4e474ab42c6d4b76fa9d924e87c9d7cb9f91876716a4df9ad5ea3e737b4f8d10053b29466f3457e3ab0ad77ee2df029d851d2264c1e1b99e1a8187fe815f41
diff --git a/dev-cpp/rudiments/files/rudiments-0.46-buildsystem.patch b/dev-cpp/rudiments/files/rudiments-0.46-buildsystem.patch
new file mode 100644
index 00000000000..fa869c89144
--- /dev/null
+++ b/dev-cpp/rudiments/files/rudiments-0.46-buildsystem.patch
@@ -0,0 +1,88 @@
+diff --git a/config.mk.in b/config.mk.in
+index ae29f27..c0b7e3d 100644
+--- a/config.mk.in
++++ b/config.mk.in
+@@ -11,7 +11,7 @@ includedir = @includedir@
+ libdir = @libdir@
+ mandir = @mandir@
+ datadir = @datadir@
+-docdir = ${datadir}/doc/rudiments
++docdir = @docdir@
+
+ # compiler to use
+ CC = @CC@
+@@ -21,7 +21,7 @@
+ AR = @AR@
+
+ # includes and defines
+-BASECPPFLAGS = @WALL@ @WERROR@ @CPPFLAGS@ @PTHREADINCLUDES@ @SSLINCLUDES@ @PCREINCLUDES@
++BASECPPFLAGS = @WALL@ @CPPFLAGS@ @PTHREADINCLUDES@ @SSLINCLUDES@ @PCREINCLUDES@
+
+ # debug and optimization flags (-g, -O2, etc.)
+ # NOTE: -FPIC gets added if we're not using libtool
+diff --git a/configure.ac b/configure.ac
+index d82ea0e..290a80b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -28,7 +28,7 @@ AC_ARG_WITH(pthread-prefix,
+ PTHREADPATH="")
+ AC_ARG_ENABLE(ssl,
+ [ --disable-ssl Disable SSL support],
+- ENABLE_RUDIMENTS_SSL="no",
++ ENABLE_RUDIMENTS_SSL="$enableval",
+ ENABLE_RUDIMENTS_SSL="yes")
+ AC_ARG_WITH(ssl-includes,
+ [ --with-ssl-includes SSL includes],
+@@ -40,7 +40,7 @@ AC_ARG_WITH(ssl-libs,
+ SSLLIBS="")
+ AC_ARG_ENABLE(pcre,
+ [ --disable-pcre Don't use PCRE for regular expressions],
+- ENABLE_RUDIMENTS_PCRE="no",
++ ENABLE_RUDIMENTS_PCRE="$enableval",
+ ENABLE_RUDIMENTS_PCRE="yes")
+ AC_ARG_WITH(pcre-includes,
+ [ --with-pcre-includes PCRE includes],
+@@ -56,7 +56,7 @@ AC_ARG_ENABLE(built-in-regex,
+ USE_BUILT_IN_REGULAREXPRESSION="0")
+ AC_ARG_ENABLE(threads,
+ [ --disable-threads Disable thread support],
+- ENABLE_RUDIMENTS_THREADS="no"; INCLUDE_THREAD="0"; INCLUDE_THREADMUTEX="0",
++ ENABLE_RUDIMENTS_THREADS="$enableval"; INCLUDE_THREAD="0"; INCLUDE_THREADMUTEX="0",
+ ENABLE_RUDIMENTS_THREADS="yes")
+
+ dnl options to disable building various classes
+@@ -3716,6 +3716,10 @@ if ( test "`echo $datadir | cut -c1`" = "/" )
+ then
+ datadir='${DESTDIR}'"$datadir"
+ fi
++if ( test "`echo $docdir | cut -c1`" = "/" )
++then
++ docdir='${DESTDIR}'"$docdir"
++fi
+
+
+ dnl Output files.
+diff --git a/src/Makefile.in b/src/Makefile.in
+index a224d83..3b990fb 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -4,7 +4,7 @@ include ../config.mk
+
+ .PHONY: all clean install uninstall
+
+-CPPFLAGS = $(WERROR) $(BASECPPFLAGS) -I../ -I../include @EXTRACPPFLAGS@
++CPPFLAGS = $(BASECPPFLAGS) -I../ -I../include @EXTRACPPFLAGS@
+
+ SRCS = namevaluepairs.cpp winsock.cpp @SRCS@
+ LOBJS = namevaluepairs.lo winsock.lo @LOBJS@
+--- a/acsite.m4 2014-05-04 01:44:03.265919456 +0400
++++ b/acsite.m4 2014-05-04 01:44:34.008920936 +0400
+@@ -266,7 +237,7 @@
+ dnl Sometimes -Wall includes -Wunused-variables and -Wunused-parameters
+ dnl which we don't care about. Disable it if it does.
+ OLDCPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$WALL $WERROR $CPPFLAGS"
++ CPPFLAGS="$WALL $CPPFLAGS"
+ AC_MSG_CHECKING(whether -Wall includes -Wunused-*)
+ AC_TRY_COMPILE([void f(int a) { return; }],[f(1);],AC_MSG_RESULT(no),WALL=""; AC_MSG_RESULT(yes))
+ CPPFLAGS=$OLDCPPFLAGS
diff --git a/dev-cpp/rudiments/files/rudiments-0.51-buildsystem.patch b/dev-cpp/rudiments/files/rudiments-0.51-buildsystem.patch
new file mode 100644
index 00000000000..37cffc9e768
--- /dev/null
+++ b/dev-cpp/rudiments/files/rudiments-0.51-buildsystem.patch
@@ -0,0 +1,86 @@
+diff --git a/config.mk.in b/config.mk.in
+index ae29f27..c0b7e3d 100644
+--- a/config.mk.in
++++ b/config.mk.in
+@@ -9,7 +9,7 @@ includedir = @includedir@
+ libdir = @libdir@
+ mandir = @mandir@
+ datadir = @datadir@
+-docdir = ${datadir}/doc/rudiments
++docdir = @docdir@
+
+ # command separator
+ AND = ;
+@@ -25,7 +25,7 @@
+ CXX = @CXX@
+ COMPILE = -c
+ OUT = -o
+-BASECPPFLAGS = @WALL@ @WERROR@ @WNOLONGDOUBLE@ @WNOFORMAT@ @WNOOVERLOADEDVIRTUAL@ @CPPFLAGS@ @PTHREADINCLUDES@ @SSLINCLUDES@ @PCREINCLUDES@
++BASECPPFLAGS = @WALL@ @WNOLONGDOUBLE@ @WNOFORMAT@ @WNOOVERLOADEDVIRTUAL@ @CPPFLAGS@ @PTHREADINCLUDES@ @SSLINCLUDES@ @PCREINCLUDES@
+ EXPORTSCPPFLAGS =
+ EXTRACPPFLAGS = @EXTRACPPFLAGS@
+ CXXFLAGS = @CXXFLAGS@ @PIPE@
+diff --git a/configure.ac b/configure.ac
+index d82ea0e..290a80b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -32,7 +32,7 @@ AC_ARG_WITH(pthread-prefix,
+ PTHREADPATH="")
+ AC_ARG_ENABLE(ssl,
+ [ --disable-ssl Disable SSL support],
+- ENABLE_RUDIMENTS_SSL="no",
++ ENABLE_RUDIMENTS_SSL="$enableval",
+ ENABLE_RUDIMENTS_SSL="yes")
+ AC_ARG_WITH(ssl-includes,
+ [ --with-ssl-includes SSL includes],
+@@ -44,7 +44,7 @@ AC_ARG_WITH(ssl-libs,
+ SSLLIBS="")
+ AC_ARG_ENABLE(pcre,
+ [ --disable-pcre Don't use PCRE for regular expressions],
+- ENABLE_RUDIMENTS_PCRE="no",
++ ENABLE_RUDIMENTS_PCRE="$enableval",
+ ENABLE_RUDIMENTS_PCRE="yes")
+ AC_ARG_WITH(pcre-includes,
+ [ --with-pcre-includes PCRE includes],
+@@ -60,7 +60,7 @@ AC_ARG_ENABLE(built-in-regex,
+ USE_BUILT_IN_REGULAREXPRESSION="0")
+ AC_ARG_ENABLE(threads,
+ [ --disable-threads Disable thread support],
+- ENABLE_RUDIMENTS_THREADS="no"; INCLUDE_THREAD="0",
++ ENABLE_RUDIMENTS_THREADS="$enableval"; INCLUDE_THREAD="0",
+ ENABLE_RUDIMENTS_THREADS="yes")
+
+ dnl options to disable building various classes
+@@ -4034,6 +4034,10 @@ if ( test "`echo $datadir | cut -c1`" = "/" )
+ then
+ datadir='${DESTDIR}'"$datadir"
+ fi
++if ( test "`echo $docdir | cut -c1`" = "/" )
++then
++ docdir='${DESTDIR}'"$docdir"
++fi
+
+
+ dnl Output files.
+diff --git a/src/Makefile.in b/src/Makefile.in
+index a224d83..3b990fb 100644
+@@ -2,7 +2,7 @@
+
+ include ../config.mk
+
+-CPPFLAGS = $(WERROR) $(BASECPPFLAGS) $(EXPORTSCPPFLAGS) $(INC)../ $(INC)../include $(EXTRACPPFLAGS)
++CPPFLAGS = $(BASECPPFLAGS) $(EXPORTSCPPFLAGS) $(INC)../ $(INC)../include $(EXTRACPPFLAGS)
+ LIBS = $(SOCKETLIBS) $(PTHREADLIB) $(SSLLIBS) $(PCRELIBS) $(NANOSLEEPLIB) $(CLOCKNANOSLEEPLIB) $(SHMOPENLIB) $(CRYPTLIB) $(INETATONLIB) $(NETAPI32LIB) $(BELIB) $(GNULIB) $(CRTLIB) $(DLLIB) $(DEBUGLIB)
+
+ SRCS = @SRCS@
+--- a/acsite.m4 2014-05-04 01:44:03.265919456 +0400
++++ b/acsite.m4 2014-05-04 01:44:34.008920936 +0400
+@@ -279,7 +250,7 @@
+ dnl Sometimes -Wall includes -Wunused-variables and -Wunused-parameters
+ dnl which we don't care about. Disable it if it does.
+ OLDCPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$WALL $WERROR $CPPFLAGS"
++ CPPFLAGS="$WALL $CPPFLAGS"
+ AC_MSG_CHECKING(whether -Wall includes -Wunused-*)
+ AC_TRY_COMPILE([void f(int a) { return; }],[f(1);],AC_MSG_RESULT(no),WALL=""; AC_MSG_RESULT(yes))
+ CPPFLAGS=$OLDCPPFLAGS
diff --git a/dev-cpp/rudiments/metadata.xml b/dev-cpp/rudiments/metadata.xml
new file mode 100644
index 00000000000..3f0771ba6a9
--- /dev/null
+++ b/dev-cpp/rudiments/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+ <longdescription>
+ Rudiments is an Open Source C++ class library providing base classes
+ for things such as daemons, clients and servers, and wrapper classes
+ for the standard C functions for things like such as regular
+ expressions, semaphores and signal handling.
+ </longdescription>
+ <upstream>
+ <remote-id type='sourceforge'>rudiments</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/rudiments/rudiments-0.46.ebuild b/dev-cpp/rudiments/rudiments-0.46.ebuild
new file mode 100644
index 00000000000..44826181188
--- /dev/null
+++ b/dev-cpp/rudiments/rudiments-0.46.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_IN_SOURCE_BUILD=1
+inherit autotools-utils
+
+DESCRIPTION="C++ class library for daemons, clients and servers"
+HOMEPAGE="http://rudiments.sourceforge.net/"
+SRC_URI="mirror://sourceforge/rudiments/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug pcre ssl static-libs"
+
+DEPEND="pcre? ( dev-libs/libpcre )
+ ssl? ( dev-libs/openssl:0 )"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-buildsystem.patch" )
+
+src_prepare() {
+ mv configure.in configure.ac || die
+
+ # bug #535936
+ rm aclocal.m4 || die
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local myeconfargs=(
+ --docdir="/usr/share/doc/${PF}/html" \
+ $(use debug && "--enable-debug") \
+ $(use_enable pcre) \
+ $(use_enable ssl)
+ )
+ autotools-utils_src_configure
+}
diff --git a/dev-cpp/rudiments/rudiments-0.51.ebuild b/dev-cpp/rudiments/rudiments-0.51.ebuild
new file mode 100644
index 00000000000..44826181188
--- /dev/null
+++ b/dev-cpp/rudiments/rudiments-0.51.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_IN_SOURCE_BUILD=1
+inherit autotools-utils
+
+DESCRIPTION="C++ class library for daemons, clients and servers"
+HOMEPAGE="http://rudiments.sourceforge.net/"
+SRC_URI="mirror://sourceforge/rudiments/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug pcre ssl static-libs"
+
+DEPEND="pcre? ( dev-libs/libpcre )
+ ssl? ( dev-libs/openssl:0 )"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-buildsystem.patch" )
+
+src_prepare() {
+ mv configure.in configure.ac || die
+
+ # bug #535936
+ rm aclocal.m4 || die
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local myeconfargs=(
+ --docdir="/usr/share/doc/${PF}/html" \
+ $(use debug && "--enable-debug") \
+ $(use_enable pcre) \
+ $(use_enable ssl)
+ )
+ autotools-utils_src_configure
+}
diff --git a/dev-cpp/sparsehash/Manifest b/dev-cpp/sparsehash/Manifest
new file mode 100644
index 00000000000..a2c2234f384
--- /dev/null
+++ b/dev-cpp/sparsehash/Manifest
@@ -0,0 +1,2 @@
+DIST sparsehash-1.10.tar.gz 289819 SHA256 5a57b77633aab1e59827e51cf6247c4ac521713d45f1764ddba60353cbc9677a SHA512 ecc01e755885b8da5927f4f56c95c02ce9a43e5c0280cdc1cdfa812f787396646925c0f602a35decdf94144e8d2f3ac31b80f5ed98b70ccca607a29bb11f8a35 WHIRLPOOL 643e27499b1981faa7dc8864886c736a5265d78221edaed0fb6bd73eaf943433d5fbe5fe26ec2e52451651e19ce869a6ad08c22d7fb3d71b6cc7bf5866fd3653
+DIST sparsehash-2.0.2.tar.gz 340514 SHA256 2ed639a7155607c097c2029af5f4287296595080b2e5dd2e2ebd9bbb7450b87c SHA512 27d823551bc8364dd3c10f071e51bab55d2bbe9cf74ddb8337d118475aa7fdd38ae07dbb7dbd721c1350830325cadccdadf127f9996f26387e412e108edba3a1 WHIRLPOOL 87d31528bfd7a177c7be3be2bcddf1ba52bcc8791b8b2162cc1902e4cf02695c99b9a6b70fbcfd85d9e03456931bd72fc67b47cad79d0182bd1d4f5eb11e6f0b
diff --git a/dev-cpp/sparsehash/files/1.10-gcc46.patch b/dev-cpp/sparsehash/files/1.10-gcc46.patch
new file mode 100644
index 00000000000..4339b487eca
--- /dev/null
+++ b/dev-cpp/sparsehash/files/1.10-gcc46.patch
@@ -0,0 +1,16 @@
+ src/google/sparsetable | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/google/sparsetable b/src/google/sparsetable
+index 0eeb22e..e8580b9 100644
+--- a/src/google/sparsetable
++++ b/src/google/sparsetable
+@@ -83,6 +83,8 @@
+ #endif
+ #endif
+
++#include <cstddef>
++
+ _START_GOOGLE_NAMESPACE_
+
+ #ifndef HAVE_U_INT16_T
diff --git a/dev-cpp/sparsehash/metadata.xml b/dev-cpp/sparsehash/metadata.xml
new file mode 100644
index 00000000000..a4f85100595
--- /dev/null
+++ b/dev-cpp/sparsehash/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+ <upstream>
+ <remote-id type="google-code">google-sparsehash</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/sparsehash/sparsehash-1.10.ebuild b/dev-cpp/sparsehash/sparsehash-1.10.ebuild
new file mode 100644
index 00000000000..7672d800d08
--- /dev/null
+++ b/dev-cpp/sparsehash/sparsehash-1.10.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils
+
+DESCRIPTION="An extremely memory-efficient hash_map implementation"
+HOMEPAGE="http://code.google.com/p/google-sparsehash/"
+SRC_URI="http://google-sparsehash.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PV}-gcc46.patch
+}
+
+src_install() {
+ default
+
+ # Installs just every piece
+ rm -rf "${D}/usr/share/doc"
+ dohtml doc/*
+}
diff --git a/dev-cpp/sparsehash/sparsehash-2.0.2.ebuild b/dev-cpp/sparsehash/sparsehash-2.0.2.ebuild
new file mode 100644
index 00000000000..9e4c4868d84
--- /dev/null
+++ b/dev-cpp/sparsehash/sparsehash-2.0.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+DESCRIPTION="An extremely memory-efficient hash_map implementation"
+HOMEPAGE="http://code.google.com/p/sparsehash/"
+SRC_URI="http://sparsehash.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+src_install() {
+ default
+
+ # Installs just every piece
+ rm -rf "${ED}/usr/share/doc"
+ dohtml doc/*
+}
diff --git a/dev-cpp/tbb/Manifest b/dev-cpp/tbb/Manifest
new file mode 100644
index 00000000000..6bb73c5218c
--- /dev/null
+++ b/dev-cpp/tbb/Manifest
@@ -0,0 +1,3 @@
+DIST tbb41_20121003oss_src.tgz 2250789 SHA256 5383727b9582a54cf4c4adbf22186b70e8eba276fcd3be81d746a937c5b47afc SHA512 fada6e32a09be2a151746caf3a15729c9ec6043b17e2f0aeb1bd903542310cdc6fe9ad85017ff5b2cfb16ae955c81c8b39ad8cf97f871bfcbd19d4948ef1d821 WHIRLPOOL 6c2a094e1dc6efed7189903bf8a6bbb8688ab1b15134c9f3c09fd5ed6a72315140505f5df410c89b65cd160a896222d71e01b3bfcbcd933281fb18a69eaf33f1
+DIST tbb43_20141023oss_src.tgz 2777177 SHA256 247a8d22d6850caa37d376aaeaf8bfcb06525ec5561fb6f6ed09cdad2c1f6414 SHA512 0718e7bf5f0b9525da9eb45beedc1c3832ccd813d72b10a7ed7c6a281d342325d04c65f797c29e2551d4f2bd470e57c81f38db0d6bd983f7871a90f2b5fe5020 WHIRLPOOL 7a6bc75e9404cbfc9f1e1bc53ff195e63c605aae1cc2883147d69bdd394694d21f916fa6d1c2708ff397a01c620fdb38966d0da5085df6d23dcba235de18c6a8
+DIST tbb43_20150611oss_src.tgz 2757631 SHA256 221f85fe64e11c9638e43b3c57d5750c26683905fc90827c0bcfefdb286e79c9 SHA512 83d5d827706b774ef5cd6df8082e5d7f48683388684423bb40565dfc25892fc2e57c382f719b78087d83e51edb3f7f7215f33d8b5039b55c32788d80efa6e0b8 WHIRLPOOL 8e98162b2307c759fb26923d76ab784dea81e166c8bf5323869d234da59641c333e5ae30b4a224bccbf20d4f5f6b75c658589f519a165ea3ad7658322f148c72
diff --git a/dev-cpp/tbb/files/tbb-4.0.297-underlinking.patch b/dev-cpp/tbb/files/tbb-4.0.297-underlinking.patch
new file mode 100644
index 00000000000..099bb39d214
--- /dev/null
+++ b/dev-cpp/tbb/files/tbb-4.0.297-underlinking.patch
@@ -0,0 +1,20 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Thu May 31 21:37:47 UTC 2012
+Subject: build system
+
+fix underlinking in test phase
+wrt https://bugs.gentoo.org/show_bug.cgi?id=418447
+
+--- build/Makefile.test
++++ build/Makefile.test
+@@ -48,8 +48,8 @@
+ USE_PROXY_FLAG = $(DEFINE_KEY)HARNESS_USE_PROXY
+ CPLUS_FLAGS += $(USE_PROXY_FLAG)
+ LINK_TBB.LIB = $(PROXY.LIB)
+- LIBS += $(LIBDL)
+-endif
++endif
++LIBS += $(LIBDL)
+
+ include $(tbb_root)/build/common_rules.inc
+
diff --git a/dev-cpp/tbb/files/tbb-4.1.20121003-ppc.patch b/dev-cpp/tbb/files/tbb-4.1.20121003-ppc.patch
new file mode 100644
index 00000000000..c50e051c3d3
--- /dev/null
+++ b/dev-cpp/tbb/files/tbb-4.1.20121003-ppc.patch
@@ -0,0 +1,16 @@
+diff -up tbb40_20120408oss/include/tbb/tbb_machine.h\~ tbb40_20120408oss/include/tbb/tbb_machine.h
+--- tbb40_20120408oss/include/tbb/tbb_machine.h~ 2012-04-20 09:21:57.000000000 +0200
++++ tbb40_20120408oss/include/tbb/tbb_machine.h 2012-08-28 13:20:42.150456167 +0200
+@@ -373,8 +373,8 @@ void spin_wait_until_eq( const volatile
+ // - The operation assumes that the architecture consistently uses either little-endian or big-endian:
+ // it does not support mixed-endian or page-specific bi-endian architectures.
+ // This function is the only use of __TBB_BIG_ENDIAN.
+-#if (__TBB_BIG_ENDIAN!=-1)
+- #if ( __TBB_USE_GENERIC_PART_WORD_CAS)
++#if ( __TBB_USE_GENERIC_PART_WORD_CAS)
++ #if (__TBB_BIG_ENDIAN==-1)
+ #error generic implementation of part-word CAS was explicitly disabled for this configuration
+ #endif
+ template<typename T>
+
+Diff finished. Tue Aug 28 13:20:58 2012
diff --git a/dev-cpp/tbb/files/tbb-4.3-build.patch b/dev-cpp/tbb/files/tbb-4.3-build.patch
new file mode 100644
index 00000000000..a9119ef4921
--- /dev/null
+++ b/dev-cpp/tbb/files/tbb-4.3-build.patch
@@ -0,0 +1,185 @@
+--- a/build/linux.gcc.inc 2014-10-31 09:08:38.000000000 -0400
++++ b/build/linux.gcc.inc 2015-06-08 19:22:49.855807841 -0400
+@@ -32,12 +32,12 @@
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+
+-CPLUS = g++
+-CONLY = gcc
++CPLUS := $(CXX)
++CONLY := $(CC)
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+-C_FLAGS = $(CPLUS_FLAGS)
++C_FLAGS := $(CPLUS_FLAGS)
+ # gcc 4.4 and higher support -std=c++0x
+ ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[4-9]|[5-9])"))
+ CPP11_FLAGS = -std=c++0x -D_TBB_CPP0X
+@@ -54,7 +54,7 @@
+ endif
+
+ ifeq ($(cfg), release)
+- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
++ CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD
+ endif
+ ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+@@ -74,24 +74,12 @@
+
+ ifeq (intel64,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m64 $(RTM_KEY)
+- LIB_LINK_FLAGS += -m64
++ CPLUS_FLAGS += $(RTM_KEY)
+ endif
+
+ ifeq (ia32,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m32 -march=pentium4 $(RTM_KEY)
+- LIB_LINK_FLAGS += -m32
+-endif
+-
+-ifeq (ppc64,$(arch))
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+-endif
+-
+-ifeq (ppc32,$(arch))
+- CPLUS_FLAGS += -m32
+- LIB_LINK_FLAGS += -m32
++ CPLUS_FLAGS += $(RTM_KEY)
+ endif
+
+ ifeq (bg,$(arch))
+@@ -99,12 +87,6 @@
+ CONLY = mpicc
+ endif
+
+-# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify)
+-ifeq (sparc,$(arch))
+- CPLUS_FLAGS += -mcpu=v9 -m64
+- LIB_LINK_FLAGS += -mcpu=v9 -m64
+-endif
+-
+ # automatically generate "IT" instructions when compiling for Thumb ISA
+ ifeq (armv7,$(arch))
+ CPLUS_FLAGS += -Wa,-mimplicit-it=thumb
+@@ -113,13 +95,7 @@
+ #------------------------------------------------------------------------------
+ # Setting assembler data.
+ #------------------------------------------------------------------------------
+-ASM = as
+-ifeq (intel64,$(arch))
+- ASM_FLAGS += --64
+-endif
+-ifeq (ia32,$(arch))
+- ASM_FLAGS += --32
+-endif
++ASM := $(AS)
+ ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+ endif
+--- a/build/FreeBSD.gcc.inc 2014-10-31 09:08:37.000000000 -0400
++++ b/build/FreeBSD.gcc.inc 2015-06-08 19:24:51.385810060 -0400
+@@ -27,14 +27,14 @@
+ WARNING_KEY = -Wall
+ DYLIB_KEY = -shared
+
+-CPLUS = g++
+-CONLY = gcc
++CPLUS = $(CXX)
++CONLY = $(CC)
+ LIB_LINK_FLAGS = -shared
+ LIBS = -lpthread
+ C_FLAGS = $(CPLUS_FLAGS)
+
+ ifeq ($(cfg), release)
+- CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
++ CPLUS_FLAGS = -g -DUSE_PTHREAD
+ endif
+ ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+@@ -51,22 +51,12 @@
+ CPLUS_FLAGS += $(PIC_KEY)
+ endif
+
+-ifeq (intel64,$(arch))
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+-endif
+-
+-ifeq (ia32,$(arch))
+- CPLUS_FLAGS += -m32
+- LIB_LINK_FLAGS += -m32
+-endif
+-
+ #------------------------------------------------------------------------------
+ # Setting assembler data.
+ #------------------------------------------------------------------------------
+ ASSEMBLY_SOURCE=$(arch)-gas
+ ifeq (ia64,$(arch))
+- ASM=as
++ ASM=$(AS)
+ TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+ MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o
+ endif
+--- a/build/linux.clang.inc 2014-10-31 09:08:37.000000000 -0400
++++ b/build/linux.clang.inc 2015-06-08 20:24:29.785875376 -0400
+@@ -31,15 +31,15 @@
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+
+-CPLUS = clang++
+-CONLY = clang
++CPLUS := $(CXX)
++CONLY := $(CC)
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=.
+ C_FLAGS = $(CPLUS_FLAGS)
+
+ ifeq ($(cfg), release)
+- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
++ CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD
+ endif
+ ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+@@ -61,24 +61,10 @@
+
+ ifeq (intel64,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+ endif
+
+ ifeq (ia32,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m32 -march=pentium4
+- LIB_LINK_FLAGS += -m32
+-endif
+-
+-ifeq (ppc64,$(arch))
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+-endif
+-
+-ifeq (ppc32,$(arch))
+- CPLUS_FLAGS += -m32
+- LIB_LINK_FLAGS += -m32
+ endif
+
+ ifeq (bg,$(arch))
+@@ -90,12 +76,6 @@
+ # Setting assembler data.
+ #------------------------------------------------------------------------------
+ ASM = as
+-ifeq (intel64,$(arch))
+- ASM_FLAGS += --64
+-endif
+-ifeq (ia32,$(arch))
+- ASM_FLAGS += --32
+-endif
+ ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+ endif
diff --git a/dev-cpp/tbb/files/tbb-4.3.20150611-build.patch b/dev-cpp/tbb/files/tbb-4.3.20150611-build.patch
new file mode 100644
index 00000000000..42a8bae4640
--- /dev/null
+++ b/dev-cpp/tbb/files/tbb-4.3.20150611-build.patch
@@ -0,0 +1,196 @@
+ build/FreeBSD.gcc.inc | 18 ++++--------------
+ build/linux.clang.inc | 26 +++-----------------------
+ build/linux.gcc.inc | 38 +++++++-------------------------------
+ 3 files changed, 14 insertions(+), 68 deletions(-)
+
+diff --git a/build/FreeBSD.gcc.inc b/build/FreeBSD.gcc.inc
+index 20f0027..8bbdeba 100644
+--- a/build/FreeBSD.gcc.inc
++++ b/build/FreeBSD.gcc.inc
+@@ -28,14 +28,14 @@ WARNING_KEY = -Wall
+ DYLIB_KEY = -shared
+ WARNING_SUPPRESS = -Wno-parentheses
+
+-CPLUS = g++
+-CONLY = gcc
++CPLUS = $(CXX)
++CONLY = $(CC)
+ LIB_LINK_FLAGS = -shared
+ LIBS = -lpthread
+ C_FLAGS = $(CPLUS_FLAGS)
+
+ ifeq ($(cfg), release)
+- CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
++ CPLUS_FLAGS = -g -DUSE_PTHREAD
+ endif
+ ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+@@ -52,22 +52,12 @@ ifeq (ia64,$(arch))
+ CPLUS_FLAGS += $(PIC_KEY)
+ endif
+
+-ifeq (intel64,$(arch))
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+-endif
+-
+-ifeq (ia32,$(arch))
+- CPLUS_FLAGS += -m32
+- LIB_LINK_FLAGS += -m32
+-endif
+-
+ #------------------------------------------------------------------------------
+ # Setting assembler data.
+ #------------------------------------------------------------------------------
+ ASSEMBLY_SOURCE=$(arch)-gas
+ ifeq (ia64,$(arch))
+- ASM=as
++ ASM=$(AS)
+ TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+ MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o
+ endif
+diff --git a/build/linux.clang.inc b/build/linux.clang.inc
+index de9aee5..3a366f1 100644
+--- a/build/linux.clang.inc
++++ b/build/linux.clang.inc
+@@ -31,15 +31,15 @@ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+
+-CPLUS = clang++
+-CONLY = clang
++CPLUS := $(CXX)
++CONLY := $(CC)
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+ C_FLAGS = $(CPLUS_FLAGS)
+
+ ifeq ($(cfg), release)
+- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
++ CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD
+ endif
+ ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+@@ -61,24 +61,10 @@ MALLOC_ASM.OBJ=
+
+ ifeq (intel64,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+ endif
+
+ ifeq (ia32,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m32 -march=pentium4
+- LIB_LINK_FLAGS += -m32
+-endif
+-
+-ifeq (ppc64,$(arch))
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+-endif
+-
+-ifeq (ppc32,$(arch))
+- CPLUS_FLAGS += -m32
+- LIB_LINK_FLAGS += -m32
+ endif
+
+ ifeq (bg,$(arch))
+@@ -90,12 +76,6 @@ endif
+ # Setting assembler data.
+ #------------------------------------------------------------------------------
+ ASM = as
+-ifeq (intel64,$(arch))
+- ASM_FLAGS += --64
+-endif
+-ifeq (ia32,$(arch))
+- ASM_FLAGS += --32
+-endif
+ ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+ endif
+diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
+index 4b7122b..e8ba711 100644
+--- a/build/linux.gcc.inc
++++ b/build/linux.gcc.inc
+@@ -32,12 +32,12 @@ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+
+-CPLUS = g++
+-CONLY = gcc
++CPLUS := $(CXX)
++CONLY := $(CC)
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+-C_FLAGS = $(CPLUS_FLAGS)
++C_FLAGS := $(CPLUS_FLAGS)
+ # gcc 4.4 and higher support -std=c++0x
+ ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[4-9]|[5-9])"))
+ CPP11_FLAGS = -std=c++0x -D_TBB_CPP0X
+@@ -54,7 +54,7 @@ ifneq (,$(shell gcc -dumpversion | egrep "^4\.[8-9]"))
+ endif
+
+ ifeq ($(cfg), release)
+- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
++ CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD
+ endif
+ ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+@@ -74,24 +74,12 @@ endif
+
+ ifeq (intel64,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m64 $(RTM_KEY)
+- LIB_LINK_FLAGS += -m64
++ CPLUS_FLAGS += $(RTM_KEY)
+ endif
+
+ ifeq (ia32,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+- CPLUS_FLAGS += -m32 -march=pentium4 $(RTM_KEY)
+- LIB_LINK_FLAGS += -m32
+-endif
+-
+-ifeq (ppc64,$(arch))
+- CPLUS_FLAGS += -m64
+- LIB_LINK_FLAGS += -m64
+-endif
+-
+-ifeq (ppc32,$(arch))
+- CPLUS_FLAGS += -m32
+- LIB_LINK_FLAGS += -m32
++ CPLUS_FLAGS += $(RTM_KEY)
+ endif
+
+ ifeq (bg,$(arch))
+@@ -99,12 +87,6 @@ ifeq (bg,$(arch))
+ CONLY = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-gcc 2>/dev/null)))
+ endif
+
+-# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify)
+-ifeq (sparc,$(arch))
+- CPLUS_FLAGS += -mcpu=v9 -m64
+- LIB_LINK_FLAGS += -mcpu=v9 -m64
+-endif
+-
+ # automatically generate "IT" instructions when compiling for Thumb ISA
+ ifeq (armv7,$(arch))
+ CPLUS_FLAGS += -Wa,-mimplicit-it=thumb
+@@ -113,13 +95,7 @@ endif
+ #------------------------------------------------------------------------------
+ # Setting assembler data.
+ #------------------------------------------------------------------------------
+-ASM = as
+-ifeq (intel64,$(arch))
+- ASM_FLAGS += --64
+-endif
+-ifeq (ia32,$(arch))
+- ASM_FLAGS += --32
+-endif
++ASM := $(AS)
+ ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+ endif
diff --git a/dev-cpp/tbb/metadata.xml b/dev-cpp/tbb/metadata.xml
new file mode 100644
index 00000000000..d9d21c8a6eb
--- /dev/null
+++ b/dev-cpp/tbb/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ The Intel Threading Building Blocks is a library that helps you
+ leverage multi-core processor performance without having to be a
+ threading expert. It represents a higher-level, task-based
+ parallelism that abstracts platform details and threading mechanism
+ for performance and scalability.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-cpp/tbb/tbb-4.1.20121003-r1.ebuild b/dev-cpp/tbb/tbb-4.1.20121003-r1.ebuild
new file mode 100644
index 00000000000..ee584e66b5d
--- /dev/null
+++ b/dev-cpp/tbb/tbb-4.1.20121003-r1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit eutils flag-o-matic multilib versionator toolchain-funcs
+
+PV1="$(get_version_component_range 1)"
+PV2="$(get_version_component_range 2)"
+PV3="$(get_version_component_range 3)"
+MYP="${PN}${PV1}${PV2}_${PV3}oss"
+
+DESCRIPTION="High level abstract threading library"
+HOMEPAGE="http://www.threadingbuildingblocks.org/"
+SRC_URI="http://threadingbuildingblocks.org/sites/default/files/software_releases/source/${MYP}_src.tgz"
+LICENSE="GPL-2-with-exceptions"
+
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+S="${WORKDIR}/${MYP}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-4.0.297-underlinking.patch \
+ "${FILESDIR}"/${PN}-4.1.20121003-ppc.patch
+ # use fully qualified gcc compilers. do not force march/mcpu
+ # not tested with icc
+ # order in sed expressions is important
+ sed -i \
+ -e "s/g++/$(tc-getCXX)/g" \
+ -e "s/gcc/$(tc-getCC)/g" \
+ -e 's/-m\(arch\|cpu\)=*[[:space:]]//g' \
+ -e 's/-\(m\|-\)\(64\|32\)//g' \
+ -e 's/-O2/$(CXXFLAGS)/g' \
+ -e "/^ASM/s/as/$(tc-getAS)/g" \
+ build/*.gcc.inc || die
+
+ # force 64bit where applicable, 32bit where applicable...
+ # built-in detection is based on running kernel, which messes up
+ # e.g. in a x86 chroot on amd64 kernel. Bug 462130
+ # see build/linux.inc for values
+ use amd64 && export arch=x86_64
+ use amd64-linux && export arch=x86_64
+ use x86 && export arch=ia32
+ use x86-linux && export arch=ia32
+ # no idea what to do with ppc but so far it seems to work
+
+ find include -name \*.html -delete || die
+
+ # pc files are for debian and fedora compatibility
+ # some deps use them
+ cat <<-EOF > ${PN}.pc.template
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+ Name: ${PN}
+ Description: ${DESCRIPTION}
+ Version: ${PV}
+ URL: ${HOMEPAGE}
+ Cflags: -I\${includedir}
+ EOF
+ cp ${PN}.pc.template ${PN}.pc
+ cat <<-EOF >> ${PN}.pc
+ Libs: -L\${libdir} -ltbb
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc.pc
+ cat <<-EOF >> ${PN}malloc.pc
+ Libs: -L\${libdir} -ltbbmalloc
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc_proxy.pc
+ cat <<-EOF >> ${PN}malloc_proxy.pc
+ Libs: -L\${libdir} -ltbbmalloc_proxy
+ Libs.private: -lrt
+ Requires: tbbmalloc
+ EOF
+ use debug || sed -i -e '/_debug/d' Makefile
+}
+
+src_compile() {
+ if [[ $(tc-getCXX) == *g++* ]]; then
+ comp="gcc"
+ elif [[ $(tc-getCXX) == *ic*c ]]; then
+ comp="icc"
+ else
+ die "compiler $(tc-getCXX) not supported by build system"
+ fi
+ emake compiler=${comp} tbb tbbmalloc
+}
+
+src_test() {
+ append-cxxflags -fabi-version=4
+ # avoid oversubscribing with -j1
+ emake -j1 compiler=${comp} test
+}
+
+src_install(){
+ local l
+ for l in $(find build -name lib\*.so.\*); do
+ dolib.so ${l}
+ local bl=$(basename ${l})
+ dosym ${bl} /usr/$(get_libdir)/${bl%.*}
+ done
+ insinto /usr
+ doins -r include
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+
+ dodoc README CHANGES doc/Release_Notes.txt
+ use doc && dohtml -r doc/html/*
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples/build
+ doins build/*.inc
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples
+ fi
+}
diff --git a/dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild b/dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild
new file mode 100644
index 00000000000..7d569b51709
--- /dev/null
+++ b/dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic multilib-minimal toolchain-funcs versionator
+
+PV1="$(get_version_component_range 1)"
+PV2="$(get_version_component_range 2)"
+PV3="$(get_version_component_range 3)"
+MYP="${PN}${PV1}${PV2}_${PV3}oss"
+
+DESCRIPTION="High level abstract threading library"
+HOMEPAGE="http://www.threadingbuildingblocks.org/"
+SRC_URI="http://threadingbuildingblocks.org/sites/default/files/software_releases/source/${MYP}_src.tgz"
+LICENSE="GPL-2-with-exceptions"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
+IUSE="debug doc examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+S="${WORKDIR}/${MYP}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-4.0.297-underlinking.patch \
+ "${FILESDIR}"/${PN}-4.3-build.patch
+
+ find include -name \*.html -delete || die
+
+ # Give it a soname on FreeBSD
+ echo 'LIB_LINK_FLAGS += -Wl,-soname=$(BUILDING_LIBRARY)' >> build/FreeBSD.gcc.inc
+ # Set proper versionning on FreeBSD
+ sed -i -e '/.DLL =/s/$/.1/' build/FreeBSD.inc || die
+
+ use debug || sed -i -e '/_debug/d' Makefile
+}
+
+multilib_src_configure() {
+ # pc files are for debian and fedora compatibility
+ # some deps use them
+ cat <<-EOF > ${PN}.pc.template
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+ Name: ${PN}
+ Description: ${DESCRIPTION}
+ Version: ${PV}
+ URL: ${HOMEPAGE}
+ Cflags: -I\${includedir}
+ EOF
+ cp ${PN}.pc.template ${PN}.pc || die
+ cat <<-EOF >> ${PN}.pc
+ Libs: -L\${libdir} -ltbb
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc.pc || die
+ cat <<-EOF >> ${PN}malloc.pc
+ Libs: -L\${libdir} -ltbbmalloc
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc_proxy.pc || die
+ cat <<-EOF >> ${PN}malloc_proxy.pc
+ Libs: -L\${libdir} -ltbbmalloc_proxy
+ Libs.private: -lrt
+ Requires: tbbmalloc
+ EOF
+}
+
+local_src_compile() {
+ cd "${S}"
+
+ local comp arch
+
+ case ${MULTILIB_ABI_FLAG} in
+ abi_x86_64) arch=x86_64 ;;
+ abi_x86_32) arch=ia32 ;;
+ esac
+
+ case "$(tc-getCXX)" in
+ *g++*) comp="gcc" ;;
+ *ic*c) comp="icc" ;;
+ *clang*) comp="clang" ;;
+ *) die "compiler $(tc-getCXX) not supported by build system" ;;
+ esac
+
+ CXX="$(tc-getCXX)" \
+ CC="$(tc-getCC)" \
+ AS="$(tc-getAS)" \
+ arch=${arch} \
+ CPLUS_FLAGS="${CXXFLAGS}" \
+ emake compiler=${comp} work_dir="${BUILD_DIR}" tbb_root="${S}" $@
+}
+
+multilib_src_compile() {
+ local_src_compile tbb tbbmalloc
+}
+
+multilib_src_test() {
+ CXXFLAGS="${CXXFLAGS} -fabi-version=4" \
+ local_src_compile -j1 test
+}
+
+multilib_src_install() {
+ cd "${BUILD_DIR}_release" || die
+ local l
+ for l in $(find . -name lib\*.so.\*); do
+ dolib.so ${l}
+ local bl=$(basename ${l})
+ dosym ${bl} /usr/$(get_libdir)/${bl%.*}
+ done
+
+ cd "${BUILD_DIR}" || die
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+}
+
+multilib_src_install_all() {
+ doheader -r include/*
+
+ dodoc README CHANGES doc/Release_Notes.txt
+ use doc && dohtml -r doc/html/*
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples/build
+ doins build/*.inc
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples
+ fi
+}
diff --git a/dev-cpp/tbb/tbb-4.3.20141023.ebuild b/dev-cpp/tbb/tbb-4.3.20141023.ebuild
new file mode 100644
index 00000000000..ed80e14ddd1
--- /dev/null
+++ b/dev-cpp/tbb/tbb-4.3.20141023.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils flag-o-matic multilib versionator toolchain-funcs
+
+PV1="$(get_version_component_range 1)"
+PV2="$(get_version_component_range 2)"
+PV3="$(get_version_component_range 3)"
+MYP="${PN}${PV1}${PV2}_${PV3}oss"
+
+DESCRIPTION="High level abstract threading library"
+HOMEPAGE="http://www.threadingbuildingblocks.org/"
+SRC_URI="http://threadingbuildingblocks.org/sites/default/files/software_releases/source/${MYP}_src.tgz"
+LICENSE="GPL-2-with-exceptions"
+
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
+IUSE="debug doc examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+S="${WORKDIR}/${MYP}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-4.0.297-underlinking.patch
+ # use fully qualified gcc compilers. do not force march/mcpu
+ # not tested with icc
+ # order in sed expressions is important
+ sed -i \
+ -e "s/g++/$(tc-getCXX)/g" \
+ -e "s/gcc/$(tc-getCC)/g" \
+ -e 's/-m\(arch\|cpu\)=*[[:space:]]//g' \
+ -e 's/-\(m\|-\)\(64\|32\)//g' \
+ -e 's/-O2/$(CXXFLAGS)/g' \
+ -e "/^ASM/s/as/$(tc-getAS)/g" \
+ build/*.gcc.inc || die
+
+ # Give it a soname on FreeBSD
+ echo 'LIB_LINK_FLAGS += -Wl,-soname=$(BUILDING_LIBRARY)' >> build/FreeBSD.gcc.inc
+ # Set proper versionning on FreeBSD
+ sed -i -e '/.DLL =/s/$/.1/' build/FreeBSD.inc || die
+
+ # force 64bit where applicable, 32bit where applicable...
+ # built-in detection is based on running kernel, which messes up
+ # e.g. in a x86 chroot on amd64 kernel. Bug 462130
+ # see build/linux.inc for values
+ use amd64 && export arch=x86_64
+ use amd64-linux && export arch=x86_64
+ use x86 && export arch=ia32
+ use x86-linux && export arch=ia32
+ # no idea what to do with ppc but so far it seems to work
+
+ find include -name \*.html -delete || die
+
+ # pc files are for debian and fedora compatibility
+ # some deps use them
+ cat <<-EOF > ${PN}.pc.template
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+ Name: ${PN}
+ Description: ${DESCRIPTION}
+ Version: ${PV}
+ URL: ${HOMEPAGE}
+ Cflags: -I\${includedir}
+ EOF
+ cp ${PN}.pc.template ${PN}.pc
+ cat <<-EOF >> ${PN}.pc
+ Libs: -L\${libdir} -ltbb
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc.pc
+ cat <<-EOF >> ${PN}malloc.pc
+ Libs: -L\${libdir} -ltbbmalloc
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc_proxy.pc
+ cat <<-EOF >> ${PN}malloc_proxy.pc
+ Libs: -L\${libdir} -ltbbmalloc_proxy
+ Libs.private: -lrt
+ Requires: tbbmalloc
+ EOF
+ use debug || sed -i -e '/_debug/d' Makefile
+}
+
+src_compile() {
+ if [[ $(tc-getCXX) == *g++* ]]; then
+ comp="gcc"
+ elif [[ $(tc-getCXX) == *ic*c ]]; then
+ comp="icc"
+ else
+ die "compiler $(tc-getCXX) not supported by build system"
+ fi
+ emake compiler=${comp} tbb tbbmalloc
+}
+
+src_test() {
+ append-cxxflags -fabi-version=4
+ # avoid oversubscribing with -j1
+ emake -j1 compiler=${comp} test
+}
+
+src_install(){
+ local l
+ for l in $(find build -name lib\*.so.\*); do
+ dolib.so ${l}
+ local bl=$(basename ${l})
+ dosym ${bl} /usr/$(get_libdir)/${bl%.*}
+ done
+ doheader -r include/*
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+
+ dodoc README CHANGES doc/Release_Notes.txt
+ use doc && dohtml -r doc/html/*
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples/build
+ doins build/*.inc
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples
+ fi
+}
diff --git a/dev-cpp/tbb/tbb-4.3.20150611.ebuild b/dev-cpp/tbb/tbb-4.3.20150611.ebuild
new file mode 100644
index 00000000000..8bcd2478da9
--- /dev/null
+++ b/dev-cpp/tbb/tbb-4.3.20150611.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic multilib-minimal toolchain-funcs versionator
+
+PV1="$(get_version_component_range 1)"
+PV2="$(get_version_component_range 2)"
+PV3="$(get_version_component_range 3)"
+MYP="${PN}${PV1}${PV2}_${PV3}oss"
+
+DESCRIPTION="High level abstract threading library"
+HOMEPAGE="http://www.threadingbuildingblocks.org/"
+SRC_URI="http://threadingbuildingblocks.org/sites/default/files/software_releases/source/${MYP}_src.tgz"
+LICENSE="GPL-2-with-exceptions"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
+IUSE="debug doc examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+S="${WORKDIR}/${MYP}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-4.0.297-underlinking.patch \
+ "${FILESDIR}"/${P}-build.patch
+
+ find include -name \*.html -delete || die
+
+ # Give it a soname on FreeBSD
+ echo 'LIB_LINK_FLAGS += -Wl,-soname=$(BUILDING_LIBRARY)' >> build/FreeBSD.gcc.inc
+ # Set proper versionning on FreeBSD
+ sed -i -e '/.DLL =/s/$/.1/' build/FreeBSD.inc || die
+
+ use debug || sed -i -e '/_debug/d' Makefile
+}
+
+multilib_src_configure() {
+ # pc files are for debian and fedora compatibility
+ # some deps use them
+ cat <<-EOF > ${PN}.pc.template
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+ Name: ${PN}
+ Description: ${DESCRIPTION}
+ Version: ${PV}
+ URL: ${HOMEPAGE}
+ Cflags: -I\${includedir}
+ EOF
+ cp ${PN}.pc.template ${PN}.pc || die
+ cat <<-EOF >> ${PN}.pc
+ Libs: -L\${libdir} -ltbb
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc.pc || die
+ cat <<-EOF >> ${PN}malloc.pc
+ Libs: -L\${libdir} -ltbbmalloc
+ Libs.private: -lm -lrt
+ EOF
+ cp ${PN}.pc.template ${PN}malloc_proxy.pc || die
+ cat <<-EOF >> ${PN}malloc_proxy.pc
+ Libs: -L\${libdir} -ltbbmalloc_proxy
+ Libs.private: -lrt
+ Requires: tbbmalloc
+ EOF
+}
+
+local_src_compile() {
+ cd "${S}"
+
+ local comp arch
+
+ case ${MULTILIB_ABI_FLAG} in
+ abi_x86_64) arch=x86_64 ;;
+ abi_x86_32) arch=ia32 ;;
+ esac
+
+ case "$(tc-getCXX)" in
+ *g++*) comp="gcc" ;;
+ *ic*c) comp="icc" ;;
+ *clang*) comp="clang" ;;
+ *) die "compiler $(tc-getCXX) not supported by build system" ;;
+ esac
+
+ CXX="$(tc-getCXX)" \
+ CC="$(tc-getCC)" \
+ AS="$(tc-getAS)" \
+ arch=${arch} \
+ CPLUS_FLAGS="${CXXFLAGS}" \
+ emake compiler=${comp} work_dir="${BUILD_DIR}" tbb_root="${S}" $@
+}
+
+multilib_src_compile() {
+ local_src_compile tbb tbbmalloc
+}
+
+multilib_src_test() {
+ CXXFLAGS="${CXXFLAGS} -fabi-version=4" \
+ local_src_compile -j1 test
+}
+
+multilib_src_install() {
+ cd "${BUILD_DIR}_release" || die
+ local l
+ for l in $(find . -name lib\*.so.\*); do
+ dolib.so ${l}
+ local bl=$(basename ${l})
+ dosym ${bl} /usr/$(get_libdir)/${bl%.*}
+ done
+
+ cd "${BUILD_DIR}" || die
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+}
+
+multilib_src_install_all() {
+ doheader -r include/*
+
+ dodoc README CHANGES doc/Release_Notes.txt
+ use doc && dohtml -r doc/html/*
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples/build
+ doins build/*.inc
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples
+ fi
+}
diff --git a/dev-cpp/tclap/Manifest b/dev-cpp/tclap/Manifest
new file mode 100644
index 00000000000..ca77ff7e153
--- /dev/null
+++ b/dev-cpp/tclap/Manifest
@@ -0,0 +1 @@
+DIST tclap-1.2.1.tar.gz 442387 SHA256 9f9f0fe3719e8a89d79b6ca30cf2d16620fba3db5b9610f9b51dd2cd033deebb SHA512 8bd6ee724600880840048c7b36f02d31b1aa4910b17f80fb04aef89b1f1917856d9979ec488edbd457b66d9d689aea97540abb842a8b902bbd75c66a6e07b9b1 WHIRLPOOL b4fc88c46a96148673a6d5d7696626d788cc9ba75b66a0bf0cddc77ac7f4b3b7b2b2de00e52779d217309cf63fac8e0f23655c6e4cbfad2cda6ed5ac9303cc48
diff --git a/dev-cpp/tclap/metadata.xml b/dev-cpp/tclap/metadata.xml
new file mode 100644
index 00000000000..72f6184bb4b
--- /dev/null
+++ b/dev-cpp/tclap/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">tclap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/tclap/tclap-1.2.1.ebuild b/dev-cpp/tclap/tclap-1.2.1.ebuild
new file mode 100644
index 00000000000..73345c2a360
--- /dev/null
+++ b/dev-cpp/tclap/tclap-1.2.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+inherit eutils
+
+DESCRIPTION="Simple templatized C++ library for parsing command line arguments"
+HOMEPAGE="http://${PN}.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc x86 ~amd64-linux"
+IUSE="doc"
+
+DEPEND="doc? ( app-doc/doxygen )"
+
+src_configure() {
+ econf $(use_enable doc doxygen)
+}
+
+src_install() {
+ emake DESTDIR="${D}" docdir="${EPREFIX}/usr/share/doc/${PF}/html" install
+}
diff --git a/dev-cpp/threadpool/Manifest b/dev-cpp/threadpool/Manifest
new file mode 100644
index 00000000000..403c3a5c583
--- /dev/null
+++ b/dev-cpp/threadpool/Manifest
@@ -0,0 +1,2 @@
+DIST threadpool-0_2_5-doc.zip 154617 SHA256 b79d314d12735e00572b63c356613bbe45eb115f37ae657dbd0fb7d0cd3666e5 SHA512 cdee7d0cf02af55ef4e1237fff9f5214ffb91b00ad2880592efcf3f62d661f3e8a870d092797dd2866e24189e9d6f8e626ca840ab89ce29e5c944c79e8cb31ea WHIRLPOOL bb15bf6482fc6ca1388c10647df63aef21e8fd1d95adfce51d133119e7e47aac40b4a566c0a911e318ce1cf460110d1b4e451a446807205eb5a022679ae764ea
+DIST threadpool-0_2_5-src.zip 58599 SHA256 ab5a78d0f6ed7bd258a6095b3ba1854b40932e0e655fa492607bd2a940898889 SHA512 961576b619e5227098fa37a3c8d903128b3c2a9cf1e55c057c6f9126062bcccfa6fe2510b4e8ee5d1a0e3d0425f0077c50eccad2120a423f69e2705460780e7c WHIRLPOOL a54c9a67b6de6fc53b779a5c49922abc136b7fd257261d4563eead865a139d40e784ab4bbf557e941c94fef8f2f9bcc820c996cf71d2488f675ec9dbb750150c
diff --git a/dev-cpp/threadpool/files/threadpool-0.2.5-memleak.patch b/dev-cpp/threadpool/files/threadpool-0.2.5-memleak.patch
new file mode 100644
index 00000000000..886ce583601
--- /dev/null
+++ b/dev-cpp/threadpool/files/threadpool-0.2.5-memleak.patch
@@ -0,0 +1,22 @@
+Fix memleak due circular references blocking garbage collection.
+
+http://www.cplusplus.com/forum/general/56971/ provides a testcase for a memory
+leak with the threadpool due to shared_ptr usage.
+
+I really needed threadpool to work for me, so I traced & fixed it as best as
+possible. When the threadpool is being destroyed, your threads should have
+terminated already. Do so deliberately if not done yet, so that they free the
+memory.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+--- threadpool-0_2_5-src/threadpool/boost/threadpool/detail/pool_core.hpp 2012-09-27 22:33:21.098626892 -0700
++++ threadpool-0_2_5-src/threadpool/boost/threadpool/detail/pool_core.hpp 2012-09-27 22:51:12.291997839 -0700
+@@ -150,6 +150,7 @@
+ /// Destructor.
+ ~pool_core()
+ {
++ terminate_all_workers(true);
+ }
+
+ /*! Gets the size controller which manages the number of threads in the pool.
diff --git a/dev-cpp/threadpool/metadata.xml b/dev-cpp/threadpool/metadata.xml
new file mode 100644
index 00000000000..47b64ee3048
--- /dev/null
+++ b/dev-cpp/threadpool/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">threadpool</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/threadpool/threadpool-0.2.5.ebuild b/dev-cpp/threadpool/threadpool-0.2.5.ebuild
new file mode 100644
index 00000000000..6b82416dade
--- /dev/null
+++ b/dev-cpp/threadpool/threadpool-0.2.5.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit base
+
+DESCRIPTION="A cross-platform C++ thread pool library (built on top of Boost)"
+HOMEPAGE="http://threadpool.sourceforge.net/"
+MY_PV=${PV//./_}
+MY_P=${PN}-${MY_PV}
+SRC_URI_BASE="mirror://sourceforge/threadpool/threadpool/${PV}%20%28Stable%29"
+SRC_URI="${SRC_URI_BASE}/${MY_P}-src.zip
+ doc? ( ${SRC_URI_BASE}/${MY_P}-doc.zip )"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND="dev-libs/boost"
+
+S="${WORKDIR}/${MY_P}-src/${PN}"
+
+PATCHES=( "${FILESDIR}/${P}-memleak.patch" )
+
+src_prepare() {
+ base_src_prepare
+}
+
+src_compile() {
+ # Do nothing
+ # The makefile just builds the documentation again
+ # Not even any install targets
+ :
+}
+
+src_install() {
+ insinto /usr/include/
+ doins -r boost
+ dodoc README TODO CHANGE_LOG
+ if use doc; then
+ dohtml -r "${WORKDIR}"/"${MY_P}"-doc/
+ fi
+}
diff --git a/dev-cpp/tree/Manifest b/dev-cpp/tree/Manifest
new file mode 100644
index 00000000000..737725b3c0c
--- /dev/null
+++ b/dev-cpp/tree/Manifest
@@ -0,0 +1,2 @@
+DIST tree-2.65.tar.gz 197695 SHA256 0198a86a2f9a72cbf6a46f0d7f25957c4cc0a62d3861f7999600bac94a642ce9 SHA512 59e8a7052c36082d8dfe848c88fbbc68d2d88ad50426559b218de850bd8953fd7a5142d028785b5c080d4ac67e1c6ff517ad6342365d021b29d4bfa259b9a552 WHIRLPOOL 2b16116b14677df0f6b6206d2ad9ed2b86932c7427ed5d29147dd15ee4182af03258b56108099309396aa1433d44fc0131149f83d00edcabfd46968e48ba6ad6
+DIST tree-2.81.tar.gz 1167128 SHA256 f1098afa236683a7292cb634e35d5f3111a587a68a063c6c5cf9dffac4e42d2b SHA512 85e910fdb19ffd03ae79302a95ebffdb44725fd9f291a61d6912f743b54fe9b3d1c863e00c7e75d238f428946809e42c7ae6379b1051688fb06ee6c6d761d294 WHIRLPOOL 0779c196a8c4aaec02ea8cce570837d39042109f493c4a058929be860f6007d4f0aa94069ffcc8a8e5e100c8c63c97cd2f0e73551c904979b8876eff2b716b1e
diff --git a/dev-cpp/tree/files/tree-2.62-test.patch b/dev-cpp/tree/files/tree-2.62-test.patch
new file mode 100644
index 00000000000..f7022426698
--- /dev/null
+++ b/dev-cpp/tree/files/tree-2.62-test.patch
@@ -0,0 +1,17 @@
+--- test_tree.output 2008-08-28 11:16:11.000000000 +0100
++++ test_tree.output.new 2009-04-15 19:06:53.174832287 +0100
+@@ -1,3 +1,8 @@
++-----
++hi
++ 1
++ 0
++-----
+ empty tree to begin with:
+ 0
+ 'more text' is sibling 2 in its sibling range
+@@ -309,3 +314,5 @@
+ D
+ I
+ -----
++G
++H
diff --git a/dev-cpp/tree/files/tree-2.65-gcc46.patch b/dev-cpp/tree/files/tree-2.65-gcc46.patch
new file mode 100644
index 00000000000..d75b516112b
--- /dev/null
+++ b/dev-cpp/tree/files/tree-2.65-gcc46.patch
@@ -0,0 +1,15 @@
+ tree.hh | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/tree.hh b/tree.hh
+index 1429da3..d780be3 100644
+--- a/tree.hh
++++ b/tree.hh
+@@ -71,6 +71,7 @@
+ #include <set>
+ #include <queue>
+ #include <algorithm>
++#include <cstddef>
+
+ // HP-style construct/destroy have gone from the standard,
+ // so here is a copy.
diff --git a/dev-cpp/tree/metadata.xml b/dev-cpp/tree/metadata.xml
new file mode 100644
index 00000000000..457a56288ad
--- /dev/null
+++ b/dev-cpp/tree/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ The tree.hh library for C++ provides an STL-like container class for
+ n-ary trees, templated over the data stored at the nodes. Various
+ types of iterators are provided (post-order, pre-order, and
+ others). Where possible the access methods are compatible with the
+ STL or alternative algorithms are available.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-cpp/tree/tree-2.65-r1.ebuild b/dev-cpp/tree/tree-2.65-r1.ebuild
new file mode 100644
index 00000000000..f284c4d7cdd
--- /dev/null
+++ b/dev-cpp/tree/tree-2.65-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+inherit eutils toolchain-funcs
+
+DESCRIPTION="An STL-like tree class"
+HOMEPAGE="http://www.aei.mpg.de/~peekas/tree/"
+SRC_URI="http://www.aei.mpg.de/~peekas/tree/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="amd64 ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # test was buggy, reported upstream
+ epatch \
+ "${FILESDIR}"/${PN}-2.62-test.patch \
+ "${FILESDIR}"/${P}-gcc46.patch
+}
+
+src_test() {
+ $(tc-getCXX) ${CXXFLAGS} test_tree.cc -o test_tree \
+ || die "compile test failed"
+ ./test_tree > mytest.output || die "running test failed"
+ diff -Nu test_tree.output mytest.output || die "test dist failed"
+}
+
+src_install() {
+ insinto /usr/include
+ doins tree.hh tree_util.hh || die
+ insinto /usr/share/doc/${PF}
+ doins tree_example.cc || die
+ if use doc; then
+ doins tree.pdf || die
+ fi
+}
diff --git a/dev-cpp/tree/tree-2.81.ebuild b/dev-cpp/tree/tree-2.81.ebuild
new file mode 100644
index 00000000000..cbfe8e2fbbd
--- /dev/null
+++ b/dev-cpp/tree/tree-2.81.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="An STL-like tree class"
+HOMEPAGE="http://www.aei.mpg.de/~peekas/tree/"
+SRC_URI="http://www.aei.mpg.de/~peekas/tree/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc"
+
+S="${S}"/src
+
+src_prepare() {
+ rm Makefile || die
+ epatch "${FILESDIR}"/${PN}-2.62-test.patch
+}
+
+src_test() {
+ local test
+ test="$(tc-getCXX) ${CXXFLAGS} ${LDAFLAGS} test_tree.cc -o test_tree"
+
+ echo ${test}
+ eval ${test} || die "compile test failed"
+ ./test_tree > mytest.output || die "running test failed"
+ diff -Nu test_tree.output mytest.output || die "test dist failed"
+}
+
+src_install() {
+ insinto /usr/include
+ doins tree.hh tree_util.hh
+ dodoc tree_example.cc
+ if use doc; then
+ dohtml "${S}"/../doc/*
+ fi
+}
diff --git a/dev-cpp/websocketpp/Manifest b/dev-cpp/websocketpp/Manifest
new file mode 100644
index 00000000000..bc9886073a1
--- /dev/null
+++ b/dev-cpp/websocketpp/Manifest
@@ -0,0 +1,2 @@
+DIST websocketpp-0.4.0.tar.gz 628675 SHA256 8634b233c0c47afa6b76c4edcb9694de490b33950c549fd2531b312c18e8cfca SHA512 770560afca5f9c88454c1aec61e5c4dfd38b3835897a96c3815fe1232ba6ef7622d07530d644055e60089d5c6f8ab383691358abf2da5782515ad9f313f1d253 WHIRLPOOL 2fa0f3deabe6c7b5ae22ea5d4e2f90367a68b816cf4ffe81d61b7f9b85ef575c1cc1baadbf685e9c58ea3f442136c3d1128585e7244498b9def0484995015926
+DIST websocketpp-0.5.0.tar.gz 642592 SHA256 ab032d61f1d94fc4ebf3bb74297e520499d6fe56801084d3cc828455482e81d9 SHA512 8c254a3dc772fce31e4dff58e352d967d47d64cfb07dd93d1da7707f27c43760bf2c3d1e43b7669dad20b7986159185e5ba26d87e1716fb896be23173438c947 WHIRLPOOL 719921a8e804a382020d507ebe33bb5779191cc756b92cf9bd5a576370d4824100ddba556b96a3cbe88f9d701e28e6471727ad34f268805006f03ae3b99e39e0
diff --git a/dev-cpp/websocketpp/metadata.xml b/dev-cpp/websocketpp/metadata.xml
new file mode 100644
index 00000000000..3268b5e9450
--- /dev/null
+++ b/dev-cpp/websocketpp/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>johu@gentoo.org</email>
+ <name>Johannes Huber</name>
+ </maintainer>
+ <use>
+ <flag name="boost">Use <pkg>dev-libs/boost</pkg> instead of C++11</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">zaphoyd/websocketpp</remote-id>
+ </upstream>
+</pkgmetadata>
+
diff --git a/dev-cpp/websocketpp/websocketpp-0.4.0.ebuild b/dev-cpp/websocketpp/websocketpp-0.4.0.ebuild
new file mode 100644
index 00000000000..bca41a7d042
--- /dev/null
+++ b/dev-cpp/websocketpp/websocketpp-0.4.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="C++/Boost Asio based websocket client/server library"
+HOMEPAGE="http://www.zaphoyd.com/websocketpp"
+SRC_URI="https://github.com/zaphoyd/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+LICENSE="BSD"
+SLOT="0"
+IUSE="boost test"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ boost? ( dev-libs/boost )
+"
+
+# tests no-op
+RESTRICT="test"
+
+src_configure() {
+ # Disable EXAMPLES as compilation is broken upstream
+ local mycmakeargs=(
+ -DEXAMPLES=OFF
+ $(cmake-utils_use_enable !boost CPP11)
+ $(cmake-utils_use_enable test)
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/websocketpp/websocketpp-0.5.0.ebuild b/dev-cpp/websocketpp/websocketpp-0.5.0.ebuild
new file mode 100644
index 00000000000..6d334bd4909
--- /dev/null
+++ b/dev-cpp/websocketpp/websocketpp-0.5.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="C++/Boost Asio based websocket client/server library"
+HOMEPAGE="http://www.zaphoyd.com/websocketpp"
+SRC_URI="https://github.com/zaphoyd/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+LICENSE="BSD"
+SLOT="0"
+IUSE="boost test"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ boost? ( dev-libs/boost )
+"
+
+# tests no-op
+RESTRICT="test"
+
+src_configure() {
+ # Disable EXAMPLES as compilation is broken upstream
+ local mycmakeargs=(
+ -DEXAMPLES=OFF
+ $(cmake-utils_use_enable !boost CPP11)
+ $(cmake-utils_use_enable test TESTS)
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/xsd/Manifest b/dev-cpp/xsd/Manifest
new file mode 100644
index 00000000000..42c2bd834e2
--- /dev/null
+++ b/dev-cpp/xsd/Manifest
@@ -0,0 +1 @@
+DIST xsd-3.3.0.tar.bz2 999479 SHA256 6157e3b0f3108f69a8d9344956020c234841d4a1de28745b19e45f8ee34b0c66 SHA512 4e7d18d71b362c4b67ad70c59c68d9be4a5f7210c94306c1685c2991a5eb82496675ac0c53f2919237e658d2e1fcf7e1bf5abe295127c7cf175c8eed090a8570 WHIRLPOOL 70b4767c463d4c5be65f8757e519a98a3c9dbc00f9a8a86026bdba5115eae5c5c7008ea05709ba293a68ab8de718b070cc0b4f6390f5bac62dca5f8a63480341
diff --git a/dev-cpp/xsd/files/3.3.0-boost-filesystem-v2-deprecation.patch b/dev-cpp/xsd/files/3.3.0-boost-filesystem-v2-deprecation.patch
new file mode 100644
index 00000000000..0babafa0e68
--- /dev/null
+++ b/dev-cpp/xsd/files/3.3.0-boost-filesystem-v2-deprecation.patch
@@ -0,0 +1,925 @@
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/parser/expat/elements.txx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/expat/elements.txx
+--- xsd-3.3.0/libxsd/xsd/cxx/parser/expat/elements.txx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/expat/elements.txx 2012-06-03 11:02:09.000000000 +0200
+@@ -594,7 +594,7 @@
+ {
+ try
+ {
+- start_element (ns, name, 0);
++ this->start_element (ns, name, 0);
+ }
+ catch (const schema_exception<C>& e)
+ {
+@@ -621,7 +621,7 @@
+ {
+ try
+ {
+- start_element (ns, name, 0);
++ this->start_element (ns, name, 0);
+ }
+ catch (const schema_exception<C>& e)
+ {
+@@ -693,7 +693,7 @@
+ }
+
+ ro_string<C> ro_id (id);
+- start_element (ns, name, &ro_id);
++ this->start_element (ns, name, &ro_id);
+ }
+ catch (const schema_exception<C>& e)
+ {
+@@ -713,7 +713,7 @@
+
+ try
+ {
+- attribute (ns, name, value);
++ this->attribute (ns, name, value);
+ }
+ catch (const schema_exception<C>& e)
+ {
+@@ -748,7 +748,7 @@
+
+ try
+ {
+- end_element (ns, name);
++ this->end_element (ns, name);
+ }
+ catch (const schema_exception<C>& e)
+ {
+@@ -777,7 +777,7 @@
+
+ try
+ {
+- characters (str);
++ this->characters (str);
+ }
+ catch (const schema_exception<C>& e)
+ {
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/parser/non-validating/parser.txx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/non-validating/parser.txx
+--- xsd-3.3.0/libxsd/xsd/cxx/parser/non-validating/parser.txx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/non-validating/parser.txx 2012-06-03 11:02:09.000000000 +0200
+@@ -164,15 +164,15 @@
+ if (ns == xml::bits::xmlns_namespace<C> ())
+ return;
+
+- if (!_attribute_impl (ns, name, value))
+- _any_attribute (ns, name, value);
++ if (!this->_attribute_impl (ns, name, value))
++ this->_any_attribute (ns, name, value);
+ }
+
+ template <typename C>
+ void simple_content<C>::
+ _characters (const ro_string<C>& str)
+ {
+- _characters_impl (str);
++ this->_characters_impl (str);
+ }
+
+
+@@ -190,15 +190,15 @@
+ if (s.depth_++ > 0)
+ {
+ if (s.any_)
+- _start_any_element (ns, name, type);
++ this->_start_any_element (ns, name, type);
+ else if (s.parser_)
+ s.parser_->_start_element (ns, name, type);
+ }
+ else
+ {
+- if (!_start_element_impl (ns, name, type))
++ if (!this->_start_element_impl (ns, name, type))
+ {
+- _start_any_element (ns, name, type);
++ this->_start_any_element (ns, name, type);
+ s.any_ = true;
+ }
+ else if (s.parser_ != 0)
+@@ -235,7 +235,7 @@
+
+ this->_post_impl ();
+
+- if (!_end_element_impl (ns, name))
++ if (!this->_end_element_impl (ns, name))
+ assert (false);
+ }
+ }
+@@ -246,7 +246,7 @@
+ if (--s.depth_ > 0)
+ {
+ if (s.any_)
+- _end_any_element (ns, name);
++ this->_end_any_element (ns, name);
+ else if (s.parser_)
+ s.parser_->_end_element (ns, name);
+ }
+@@ -255,10 +255,10 @@
+ if (s.parser_ != 0 && !s.any_)
+ s.parser_->_post_impl ();
+
+- if (!_end_element_impl (ns, name))
++ if (!this->_end_element_impl (ns, name))
+ {
+ s.any_ = false;
+- _end_any_element (ns, name);
++ this->_end_any_element (ns, name);
+ }
+ }
+ }
+@@ -292,14 +292,14 @@
+ if (s.depth_ > 0)
+ {
+ if (s.any_)
+- _any_attribute (ns, name, value);
++ this->_any_attribute (ns, name, value);
+ else if (s.parser_)
+ s.parser_->_attribute (ns, name, value);
+ }
+ else
+ {
+- if (!_attribute_impl (ns, name, value))
+- _any_attribute (ns, name, value);
++ if (!this->_attribute_impl (ns, name, value))
++ this->_any_attribute (ns, name, value);
+ }
+ }
+
+@@ -312,14 +312,14 @@
+ if (s.depth_ > 0)
+ {
+ if (s.any_)
+- _any_characters (str);
++ this->_any_characters (str);
+ else if (s.parser_)
+ s.parser_->_characters (str);
+ }
+ else
+ {
+- if (!_characters_impl (str))
+- _any_characters (str);
++ if (!this->_characters_impl (str))
++ this->_any_characters (str);
+ }
+ }
+
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx
+--- xsd-3.3.0/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx 2012-06-03 11:02:09.000000000 +0200
+@@ -20,7 +20,7 @@
+ const ro_string<C>& name,
+ const ro_string<C>* type)
+ {
+- _start_any_element (ns, name, type);
++ this->_start_any_element (ns, name, type);
+ this->complex_content<C>::context_.top ().any_ = true;
+ return true;
+ }
+@@ -30,7 +30,7 @@
+ _end_element_impl (const ro_string<C>& ns, const ro_string<C>& name)
+ {
+ this->complex_content<C>::context_.top ().any_ = false;
+- _end_any_element (ns, name);
++ this->_end_any_element (ns, name);
+ return true;
+ }
+
+@@ -41,7 +41,7 @@
+ const ro_string<C>& name,
+ const ro_string<C>& value)
+ {
+- _any_attribute (ns, name, value);
++ this->_any_attribute (ns, name, value);
+ return true;
+ }
+
+@@ -49,7 +49,7 @@
+ bool any_type_pskel<C>::
+ _characters_impl (const ro_string<C>& s)
+ {
+- _any_characters (s);
++ this->_any_characters (s);
+ return true;
+ }
+
+@@ -60,7 +60,7 @@
+ bool any_simple_type_pskel<C>::
+ _characters_impl (const ro_string<C>& s)
+ {
+- _any_characters (s);
++ this->_any_characters (s);
+ return true;
+ }
+ }
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/parser/validating/parser.txx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/validating/parser.txx
+--- xsd-3.3.0/libxsd/xsd/cxx/parser/validating/parser.txx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/validating/parser.txx 2012-06-03 11:02:09.000000000 +0200
+@@ -93,8 +93,8 @@
+ const ro_string<C>& name,
+ const ro_string<C>* type)
+ {
+- if (!_start_element_impl (ns, name, type))
+- _unexpected_element (ns, name);
++ if (!this->_start_element_impl (ns, name, type))
++ this->_unexpected_element (ns, name);
+ }
+
+ template <typename C>
+@@ -102,8 +102,8 @@
+ _end_element (const ro_string<C>& ns,
+ const ro_string<C>& name)
+ {
+- if (!_end_element_impl (ns, name))
+- _unexpected_element (ns, name);
++ if (!this->_end_element_impl (ns, name))
++ this->_unexpected_element (ns, name);
+ }
+
+ template <typename C>
+@@ -129,16 +129,16 @@
+ if (ns == xml::bits::xmlns_namespace<C> ())
+ return;
+
+- if (!_attribute_impl (ns, name, value))
+- _unexpected_attribute (ns, name, value);
++ if (!this->_attribute_impl (ns, name, value))
++ this->_unexpected_attribute (ns, name, value);
+ }
+
+ template <typename C>
+ void empty_content<C>::
+ _characters (const ro_string<C>& s)
+ {
+- if (!_characters_impl (s))
+- _unexpected_characters (s);
++ if (!this->_characters_impl (s))
++ this->_unexpected_characters (s);
+ }
+
+ //
+@@ -218,15 +218,15 @@
+ if (ns == xml::bits::xmlns_namespace<C> ())
+ return;
+
+- if (!_attribute_impl (ns, name, value))
+- _unexpected_attribute (ns, name, value);
++ if (!this->_attribute_impl (ns, name, value))
++ this->_unexpected_attribute (ns, name, value);
+ }
+
+ template <typename C>
+ void simple_content<C>::
+ _characters (const ro_string<C>& str)
+ {
+- if (!_characters_impl (str))
++ if (!this->_characters_impl (str))
+ {
+ // Mixed content is implemented in the generated code
+ // by overriding _characters_impl and forwarding to
+@@ -245,7 +245,7 @@
+ c != C (0x0D) && // carriage return
+ c != C (0x09) && // tab
+ c != C (0x0A))
+- _unexpected_characters (str);
++ this->_unexpected_characters (str);
+ }
+ }
+ }
+@@ -322,14 +322,14 @@
+ if (s.depth_++ > 0)
+ {
+ if (s.any_)
+- _start_any_element (ns, name, type);
++ this->_start_any_element (ns, name, type);
+ else if (s.parser_)
+ s.parser_->_start_element (ns, name, type);
+ }
+ else
+ {
+- if (!_start_element_impl (ns, name, type))
+- _unexpected_element (ns, name);
++ if (!this->_start_element_impl (ns, name, type))
++ this->_unexpected_element (ns, name);
+ else if (s.parser_ != 0)
+ s.parser_->_pre_impl ();
+ }
+@@ -364,7 +364,7 @@
+
+ this->_post_impl ();
+
+- if (!_end_element_impl (ns, name))
++ if (!this->_end_element_impl (ns, name))
+ assert (false);
+ }
+ }
+@@ -375,7 +375,7 @@
+ if (--s.depth_ > 0)
+ {
+ if (s.any_)
+- _end_any_element (ns, name);
++ this->_end_any_element (ns, name);
+ else if (s.parser_)
+ s.parser_->_end_element (ns, name);
+ }
+@@ -384,8 +384,8 @@
+ if (s.parser_ != 0 && !s.any_)
+ s.parser_->_post_impl ();
+
+- if (!_end_element_impl (ns, name))
+- _unexpected_element (ns, name);
++ if (!this->_end_element_impl (ns, name))
++ this->_unexpected_element (ns, name);
+ }
+ }
+ }
+@@ -418,14 +418,14 @@
+ if (s.depth_ > 0)
+ {
+ if (s.any_)
+- _any_attribute (ns, name, value);
++ this->_any_attribute (ns, name, value);
+ else if (s.parser_)
+ s.parser_->_attribute (ns, name, value);
+ }
+ else
+ {
+- if (!_attribute_impl (ns, name, value))
+- _unexpected_attribute (ns, name, value);
++ if (!this->_attribute_impl (ns, name, value))
++ this->_unexpected_attribute (ns, name, value);
+ }
+ }
+
+@@ -438,13 +438,13 @@
+ if (s.depth_ > 0)
+ {
+ if (s.any_)
+- _any_characters (str);
++ this->_any_characters (str);
+ else if (s.parser_)
+ s.parser_->_characters (str);
+ }
+ else
+ {
+- if (!_characters_impl (str))
++ if (!this->_characters_impl (str))
+ {
+ // Mixed content is implemented in the generated code
+ // by overriding _characters_impl and forwarding to
+@@ -463,7 +463,7 @@
+ c != C (0x0D) && // carriage return
+ c != C (0x09) && // tab
+ c != C (0x0A))
+- _unexpected_characters (str);
++ this->_unexpected_characters (str);
+ }
+ }
+ }
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx
+--- xsd-3.3.0/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx 2012-06-03 11:02:09.000000000 +0200
+@@ -20,7 +20,7 @@
+ const ro_string<C>& name,
+ const ro_string<C>* type)
+ {
+- _start_any_element (ns, name, type);
++ this->_start_any_element (ns, name, type);
+ this->complex_content<C>::context_.top ().any_ = true;
+ return true;
+ }
+@@ -30,7 +30,7 @@
+ _end_element_impl (const ro_string<C>& ns, const ro_string<C>& name)
+ {
+ this->complex_content<C>::context_.top ().any_ = false;
+- _end_any_element (ns, name);
++ this->_end_any_element (ns, name);
+ return true;
+ }
+
+@@ -41,7 +41,7 @@
+ const ro_string<C>& name,
+ const ro_string<C>& value)
+ {
+- _any_attribute (ns, name, value);
++ this->_any_attribute (ns, name, value);
+ return true;
+ }
+
+@@ -49,7 +49,7 @@
+ bool any_type_pskel<C>::
+ _characters_impl (const ro_string<C>& s)
+ {
+- _any_characters (s);
++ this->_any_characters (s);
+ return true;
+ }
+
+@@ -60,7 +60,7 @@
+ bool any_simple_type_pskel<C>::
+ _characters_impl (const ro_string<C>& s)
+ {
+- _any_characters (s);
++ this->_any_characters (s);
+ return true;
+ }
+ }
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/tree/parsing.txx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/tree/parsing.txx
+--- xsd-3.3.0/libxsd/xsd/cxx/tree/parsing.txx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/tree/parsing.txx 2012-06-03 11:02:09.000000000 +0200
+@@ -299,7 +299,7 @@
+
+ if (j != basic_string<C>::npos)
+ {
+- push_back (
++ this->push_back (
+ traits<T, C, ST>::create (
+ basic_string<C> (data + i, j - i), parent, 0, 0));
+
+@@ -309,7 +309,7 @@
+ {
+ // Last element.
+ //
+- push_back (
++ this->push_back (
+ traits<T, C, ST>::create (
+ basic_string<C> (data + i, size - i), parent, 0, 0));
+
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/tree/stream-extraction.hxx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/tree/stream-extraction.hxx
+--- xsd-3.3.0/libxsd/xsd/cxx/tree/stream-extraction.hxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/tree/stream-extraction.hxx 2012-06-03 11:03:11.000000000 +0200
+@@ -68,7 +68,7 @@
+ while (size--)
+ {
+ std::auto_ptr<T> p (new T (s, f, c));
+- push_back (p);
++ this->push_back (p);
+ }
+ }
+ }
+@@ -91,7 +91,7 @@
+ {
+ T x;
+ s >> x;
+- push_back (x);
++ this->push_back (x);
+ }
+ }
+ }
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/libxsd/xsd/cxx/zc-istream.txx xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/zc-istream.txx
+--- xsd-3.3.0/libxsd/xsd/cxx/zc-istream.txx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/libxsd/xsd/cxx/zc-istream.txx 2012-06-03 11:02:09.000000000 +0200
+@@ -32,7 +32,7 @@
+ C* b (const_cast<C*> (str_.data ()));
+ C* e (b + str_.size ());
+
+- setg (b, b, e);
++ this->setg (b, b, e);
+ }
+
+ template <typename C>
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/xsd/cxx/elements.cxx xsd-3.3.0-2+dep/xsd/xsd/cxx/elements.cxx
+--- xsd-3.3.0/xsd/cxx/elements.cxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/xsd/cxx/elements.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -326,7 +326,11 @@
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ pair = path.native_file_string ();
++#else
++ pair = path.string ();
++#endif
+ }
+ }
+
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/xsd/cxx/parser/elements.cxx xsd-3.3.0-2+dep/xsd/xsd/cxx/parser/elements.cxx
+--- xsd-3.3.0/xsd/cxx/parser/elements.cxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/xsd/cxx/parser/elements.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -244,7 +244,11 @@
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ path_str = path.native_file_string ();
++#else
++ path_str = path.string ();
++#endif
+ }
+
+ String inc_path;
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/xsd/cxx/parser/generator.cxx xsd-3.3.0-2+dep/xsd/xsd/cxx/parser/generator.cxx
+--- xsd-3.3.0/xsd/cxx/parser/generator.cxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/xsd/cxx/parser/generator.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -552,7 +552,11 @@
+ {
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ Path fs_path (path, boost::filesystem::native);
++#else
++ Path fs_path (path.c_str());
++#endif
+ ifs.open (fs_path, std::ios_base::in | std::ios_base::binary);
+
+ if (!ifs.is_open ())
+@@ -638,7 +642,11 @@
+ {
+ if (NarrowString name = ops.value<CLI::extern_xml_schema> ())
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ if (file_path.native_file_string () != name)
++#else
++ if (file_path.string () != name)
++#endif
+ generate_xml_schema = false;
+ }
+ }
+@@ -815,7 +823,11 @@
+
+ // Generate code.
+ //
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ NarrowString name (file_path.leaf ());
++#else
++ NarrowString name (file_path.filename().string());
++#endif
+ NarrowString skel_suffix (ops.value <CLI::skel_file_suffix> ());
+ NarrowString impl_suffix (ops.value <CLI::impl_file_suffix> ());
+
+@@ -921,9 +933,15 @@
+ cxx_driver_name = cxx_driver_expr.merge (name);
+ }
+
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ Path hxx_path (hxx_name, boost::filesystem::native);
+ Path ixx_path (ixx_name, boost::filesystem::native);
+ Path cxx_path (cxx_name, boost::filesystem::native);
++#else
++ Path hxx_path (hxx_name.c_str());
++ Path ixx_path (ixx_name.c_str());
++ Path cxx_path (cxx_name.c_str());
++#endif
+
+ Path hxx_impl_path;
+ Path cxx_impl_path;
+@@ -931,9 +949,15 @@
+
+ if (impl || driver)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ hxx_impl_path = Path (hxx_impl_name, boost::filesystem::native);
+ cxx_impl_path = Path (cxx_impl_name, boost::filesystem::native);
+ cxx_driver_path = Path (cxx_driver_name, boost::filesystem::native);
++#else
++ hxx_impl_path = Path (hxx_impl_name.c_str());
++ cxx_impl_path = Path (cxx_impl_name.c_str());
++ cxx_driver_path = Path (cxx_driver_name.c_str());
++#endif
+ }
+
+ Path out_dir;
+@@ -942,7 +966,11 @@
+ {
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ out_dir = Path (dir, boost::filesystem::native);
++#else
++ out_dir = Path (dir.c_str());
++#endif
+ }
+ catch (InvalidPath const&)
+ {
+@@ -1010,7 +1038,11 @@
+ }
+
+ unlinks.add (hxx_impl_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (hxx_impl_path.native_file_string ());
++#else
++ file_list.push_back (hxx_impl_path.string ());
++#endif
+
+ if (!ops.value<CLI::force_overwrite> ())
+ {
+@@ -1036,7 +1068,11 @@
+ }
+
+ unlinks.add (cxx_impl_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (cxx_impl_path.native_file_string ());
++#else
++ file_list.push_back (cxx_impl_path.string ());
++#endif
+ }
+
+ if (driver)
+@@ -1065,7 +1101,11 @@
+ }
+
+ unlinks.add (cxx_driver_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (cxx_driver_path.native_file_string ());
++#else
++ file_list.push_back (cxx_driver_path.string ());
++#endif
+ }
+
+ // Open the skel files.
+@@ -1081,7 +1121,11 @@
+ }
+
+ unlinks.add (hxx_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (hxx_path.native_file_string ());
++#else
++ file_list.push_back (hxx_path.string ());
++#endif
+
+ if (inline_)
+ {
+@@ -1094,7 +1138,11 @@
+ }
+
+ unlinks.add (ixx_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (ixx_path.native_file_string ());
++#else
++ file_list.push_back (ixx_path.string ());
++#endif
+ }
+
+
+@@ -1109,7 +1157,11 @@
+ }
+
+ unlinks.add (cxx_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (cxx_path.native_file_string ());
++#else
++ file_list.push_back (cxx_path.string ());
++#endif
+ }
+
+ // Print copyright and license.
+@@ -1168,7 +1220,11 @@
+ NarrowString guard_prefix (ops.value<CLI::guard_prefix> ());
+
+ if (!guard_prefix)
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ guard_prefix = file_path.branch_path ().native_directory_string ();
++#else
++ guard_prefix = file_path.branch_path ().string ();
++#endif
+
+ if (guard_prefix)
+ guard_prefix += '_';
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/xsd/cxx/tree/elements.cxx xsd-3.3.0-2+dep/xsd/xsd/cxx/tree/elements.cxx
+--- xsd-3.3.0/xsd/cxx/tree/elements.cxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/xsd/cxx/tree/elements.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -1312,7 +1312,11 @@
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ path_str = path.native_file_string ();
++#else
++ path_str = path.string ();
++#endif
+ }
+
+ String inc_path;
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/xsd/cxx/tree/generator.cxx xsd-3.3.0-2+dep/xsd/xsd/cxx/tree/generator.cxx
+--- xsd-3.3.0/xsd/cxx/tree/generator.cxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/xsd/cxx/tree/generator.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -773,7 +773,11 @@
+ {
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ Path fs_path (path, boost::filesystem::native);
++#else
++ Path fs_path (path.c_str());
++#endif
+ ifs.open (fs_path, std::ios_base::in | std::ios_base::binary);
+
+ if (!ifs.is_open ())
+@@ -939,7 +943,11 @@
+ {
+ if (NarrowString name = ops.value<CLI::extern_xml_schema> ())
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ if (file_path.native_file_string () != name)
++#else
++ if (file_path.string () != name)
++#endif
+ generate_xml_schema = false;
+ }
+ }
+@@ -954,7 +962,11 @@
+
+ // Generate code.
+ //
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ NarrowString name (file_path.leaf ());
++#else
++ NarrowString name (file_path.filename ().string());
++#endif
+
+ NarrowString hxx_suffix (ops.value <CLI::hxx_suffix> ());
+ NarrowString ixx_suffix (ops.value <CLI::ixx_suffix> ());
+@@ -1013,9 +1025,15 @@
+ NarrowString ixx_name (inline_ ? ixx_expr.merge (name) : NarrowString ());
+ NarrowString fwd_name (forward ? fwd_expr.merge (name) : NarrowString ());
+
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ Path hxx_path (hxx_name, boost::filesystem::native);
+ Path ixx_path (ixx_name, boost::filesystem::native);
+ Path fwd_path (fwd_name, boost::filesystem::native);
++#else
++ Path hxx_path (hxx_name.c_str());
++ Path ixx_path (ixx_name.c_str());
++ Path fwd_path (fwd_name.c_str());
++#endif
+ Paths cxx_paths;
+
+ if (source)
+@@ -1041,12 +1059,20 @@
+ }
+
+ cxx_paths.push_back (
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ Path (cxx_expr.merge (part_name), boost::filesystem::native));
++#else
++ Path (cxx_expr.merge (part_name).c_str()));
++#endif
+ }
+ }
+ else
+ cxx_paths.push_back (
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ Path (cxx_expr.merge (name), boost::filesystem::native));
++#else
++ Path (cxx_expr.merge (name).c_str()));
++#endif
+ }
+
+ Path out_dir;
+@@ -1055,7 +1081,11 @@
+ {
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ out_dir = Path (dir, boost::filesystem::native);
++#else
++ out_dir = Path (dir.c_str());
++#endif
+ }
+ catch (InvalidPath const&)
+ {
+@@ -1108,7 +1138,11 @@
+ }
+
+ unlinks.add (fwd_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (fwd_path.native_file_string ());
++#else
++ file_list.push_back (fwd_path.string ());
++#endif
+ }
+
+
+@@ -1121,7 +1155,11 @@
+ }
+
+ unlinks.add (hxx_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (hxx_path.native_file_string ());
++#else
++ file_list.push_back (hxx_path.string ());
++#endif
+
+
+ // IXX
+@@ -1137,7 +1175,11 @@
+ }
+
+ unlinks.add (ixx_path);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (ixx_path.native_file_string ());
++#else
++ file_list.push_back (ixx_path.string ());
++#endif
+ }
+
+
+@@ -1158,7 +1200,11 @@
+ }
+
+ unlinks.add (*i);
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ file_list.push_back (i->native_file_string ());
++#else
++ file_list.push_back (i->string ());
++#endif
+ cxx.push_back (s);
+ }
+ }
+@@ -1230,7 +1276,11 @@
+ NarrowString guard_prefix (ops.value<CLI::guard_prefix> ());
+
+ if (!guard_prefix)
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ guard_prefix = file_path.branch_path ().native_directory_string ();
++#else
++ guard_prefix = file_path.branch_path ().string ();
++#endif
+
+ if (guard_prefix)
+ guard_prefix += '_';
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/xsd/xsd.cxx xsd-3.3.0-2+dep/xsd/xsd/xsd.cxx
+--- xsd-3.3.0/xsd/xsd.cxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/xsd/xsd.cxx 2012-06-03 11:02:29.000000000 +0200
+@@ -636,7 +636,11 @@
+
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ tu = SemanticGraph::Path (args[i], boost::filesystem::native);
++#else
++ tu = SemanticGraph::Path (args[i]);
++#endif
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
+@@ -675,7 +679,11 @@
+ if (NarrowString name =
+ tree_ops->value<CXX::Tree::CLI::extern_xml_schema> ())
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ if (tu.native_file_string () != name)
++#else
++ if (tu.string () != name)
++#endif
+ gen_xml_schema = false;
+ }
+ }
+@@ -690,7 +698,11 @@
+ if (NarrowString name =
+ parser_ops->value<CXX::Parser::CLI::extern_xml_schema> ())
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ if (tu.native_file_string () != name)
++#else
++ if (tu.string () != name)
++#endif
+ gen_xml_schema = false;
+ }
+ }
+@@ -827,8 +839,13 @@
+ {
+ try
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ paths.push_back (
+ SemanticGraph::Path (args[i], boost::filesystem::native));
++#else
++ paths.push_back (
++ SemanticGraph::Path (args[i]));
++#endif
+ }
+ catch (SemanticGraph::InvalidPath const&)
+ {
+@@ -991,9 +1008,17 @@
+ try
+ {
+ OutputFileStream ofs;
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ SemanticGraph::Path path (fl);
++#else
++ SemanticGraph::Path path (fl.c_str());
++#endif
+
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ ofs.open (fl, std::ios_base::out);
++#else
++ ofs.open (fl.c_str(), std::ios_base::out);
++#endif
+
+ if (!ofs.is_open ())
+ {
+diff -Naurb -I '^//' -I '^# copyright' -x vcproj -x build xsd-3.3.0/xsd/xsd.hxx xsd-3.3.0-2+dep/xsd/xsd/xsd.hxx
+--- xsd-3.3.0/xsd/xsd.hxx 2010-04-28 08:58:09.000000000 +0200
++++ xsd-3.3.0-2+dep/xsd/xsd/xsd.hxx 2012-06-03 11:02:29.000000000 +0200
+@@ -38,7 +38,11 @@
+ {
+ if (!canceled_)
+ {
++#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+ std::remove (file_.native_file_string ().c_str ());
++#else
++ std::remove (file_.string ().c_str ());
++#endif
+ }
+ }
+
diff --git a/dev-cpp/xsd/files/3.3.0-disable_examples_and_tests.patch b/dev-cpp/xsd/files/3.3.0-disable_examples_and_tests.patch
new file mode 100644
index 00000000000..605d1635470
--- /dev/null
+++ b/dev-cpp/xsd/files/3.3.0-disable_examples_and_tests.patch
@@ -0,0 +1,55 @@
+diff --git a/makefile b/makefile
+index 0c07b0d..32c2c93 100644
+--- a/makefile
++++ b/makefile
+@@ -14,8 +14,6 @@ clean := $(out_base)/.clean
+ cleandoc := $(out_base)/.cleandoc
+
+ $(default): $(out_base)/xsd/ \
+- $(out_base)/tests/ \
+- $(out_base)/examples/ \
+ $(out_base)/documentation/
+
+ # Test.
+@@ -27,7 +25,6 @@ $(test): $(out_base)/tests/.test
+ #
+ $(install): $(out_base)/xsd/.install \
+ $(out_base)/libxsd/.install \
+- $(out_base)/examples/.install \
+ $(out_base)/documentation/.install
+ $(call install-dir,$(src_base)/dist/examples/build,$(install_doc_dir)/xsd/examples/build)
+ $(call install-dir,$(src_base)/dist/examples/cxx,$(install_doc_dir)/xsd/examples/cxx,-name makefile)
+@@ -43,7 +40,6 @@ $(install): $(out_base)/xsd/.install \
+ #
+ $(dist): $(out_base)/xsd/.dist \
+ $(out_base)/libxsd/.dist \
+- $(out_base)/examples/.dist \
+ $(out_base)/documentation/.dist
+ $(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build)
+ $(call install-dir,$(src_base)/dist/examples/cxx,$(dist_prefix)/examples/cxx,-name makefile)
+@@ -57,7 +53,6 @@ $(dist): $(out_base)/xsd/.dist \
+
+ $(dist-win): $(out_base)/xsd/.dist-win \
+ $(out_base)/libxsd/.dist-win \
+- $(out_base)/examples/.dist-win \
+ $(out_base)/documentation/.dist-win
+ $(call install-dir,$(src_base)/dist/etc,$(dist_prefix)/etc)
+ $(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build)
+@@ -81,9 +76,7 @@ $(dist-win): $(out_base)/xsd/.dist-win \
+
+ # Clean.
+ #
+-$(clean): $(out_base)/xsd/.clean \
+- $(out_base)/tests/.clean \
+- $(out_base)/examples/.clean
++$(clean): $(out_base)/xsd/.clean
+
+ $(cleandoc): $(out_base)/documentation/.cleandoc
+
+@@ -91,6 +84,4 @@ $(call include,$(bld_root)/install.make)
+
+ $(call import,$(src_base)/xsd/makefile)
+ $(call import,$(src_base)/libxsd/makefile)
+-$(call import,$(src_base)/tests/makefile)
+-$(call import,$(src_base)/examples/makefile)
+ $(call import,$(src_base)/documentation/makefile)
diff --git a/dev-cpp/xsd/files/3.3.0-fix_include.patch b/dev-cpp/xsd/files/3.3.0-fix_include.patch
new file mode 100644
index 00000000000..5ba74201848
--- /dev/null
+++ b/dev-cpp/xsd/files/3.3.0-fix_include.patch
@@ -0,0 +1,13 @@
+diff --git a/xsd/xsd.cxx b/xsd/xsd.cxx
+index 1c66a8a..dbbfed9 100644
+--- a/xsd/xsd.cxx
++++ b/xsd/xsd.cxx
+@@ -18,7 +18,7 @@
+
+ #include <xsd-frontend/parser.hxx>
+ #include <xsd-frontend/transformations/anonymous.hxx>
+-#include <xsd-frontend/transformations/enum-synthesis.cxx>
++#include <xsd-frontend/transformations/enum-synthesis.hxx>
+ #include <xsd-frontend/transformations/restriction.hxx>
+ #include <xsd-frontend/transformations/schema-per-type.hxx>
+ #include <xsd-frontend/transformations/simplifier.hxx>
diff --git a/dev-cpp/xsd/files/3.3.0-fix_tests.patch b/dev-cpp/xsd/files/3.3.0-fix_tests.patch
new file mode 100644
index 00000000000..f8de00d371f
--- /dev/null
+++ b/dev-cpp/xsd/files/3.3.0-fix_tests.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/cxx/tree/prefix/makefile b/tests/cxx/tree/prefix/makefile
+index 3317161..77b4b0a 100644
+--- a/tests/cxx/tree/prefix/makefile
++++ b/tests/cxx/tree/prefix/makefile
+@@ -35,7 +35,7 @@ gen := $(addprefix $(out_base)/,$(genf))
+
+ $(gen): xsd := $(out_root)/xsd/xsd
+ $(gen): xsd_options := --generate-serialization --generate-polymorphic \
+---polymorphic-type foo\\\#base --root-element root
++--polymorphic-type foo\\\\\#base --root-element root
+ $(gen): $(out_root)/xsd/xsd
+
+ $(call include-dep,$(dep))
diff --git a/dev-cpp/xsd/files/3.3.0-xsdcxx-rename.patch b/dev-cpp/xsd/files/3.3.0-xsdcxx-rename.patch
new file mode 100644
index 00000000000..b99a44eab29
--- /dev/null
+++ b/dev-cpp/xsd/files/3.3.0-xsdcxx-rename.patch
@@ -0,0 +1,121 @@
+diff --git a/documentation/xsd.1 b/documentation/xsd.1
+index 8b97b14..213f6f6 100644
+--- a/documentation/xsd.1
++++ b/documentation/xsd.1
+@@ -1,16 +1,16 @@
+ .\" Process this file with
+-.\" groff -man -Tascii xsd.1
++.\" groff -man -Tascii xsdcxx.1
+ .\"
+ .TH XSD 1 "April 2010" "XSD 3.3.0"
+ .SH NAME
+-xsd \- W3C XML Schema to C++ Compiler
++xsdcxx \- W3C XML Schema to C++ Compiler
+ .\"
+ .\"
+ .\"
+ .\"--------------------------------------------------------------------
+ .SH SYNOPSIS
+ .\"--------------------------------------------------------------------
+-.B xsd
++.B xsdcxx
+ .I command
+ .B [
+ .I options
+@@ -20,19 +20,19 @@ xsd \- W3C XML Schema to C++ Compiler
+ .I file
+ .B ...]
+ .in
+-.B xsd help
++.B xsdcxx help
+ .B [
+ .I command
+ .B ]
+ .in
+-.B xsd version
++.B xsdcxx version
+ .\"
+ .\"
+ .\"
+ .\"--------------------------------------------------------------------
+ .SH DESCRIPTION
+ .\"--------------------------------------------------------------------
+-.B xsd
++.B xsdcxx
+ generates vocabulary-specific, statically-typed C++ mapping from W3C XML
+ Schema definitions. Particular mapping to produce is selected by a
+ .IR command .
+@@ -203,7 +203,7 @@ For example, if you have file
+ with namespace
+ .B http://example.com/hello
+ and you run
+-.B xsd
++.B xsdcxx
+ on this file, then the string in question will be:
+
+ .B hello.xsd. http://example.com/hello
+@@ -1877,7 +1877,7 @@ option. With this approach you don't need to worry about shell quoting.
+ .\"
+ .SH DIAGNOSTICS
+ If the input file is not a valid W3C XML Schema definition,
+-.B xsd
++.B xsdcxx
+ will issue diagnostic messages to
+ .B STDERR
+ and exit with non-zero exit code.
+diff --git a/documentation/xsd.xhtml b/documentation/xsd.xhtml
+index 4acf822..af630bf 100644
+--- a/documentation/xsd.xhtml
++++ b/documentation/xsd.xhtml
+@@ -50,19 +50,19 @@
+
+ <h1>NAME</h1>
+
+- <p>xsd - W3C XML Schema to C++ Compiler</p>
++ <p>xsdcxx - W3C XML Schema to C++ Compiler</p>
+
+ <h1>SYNOPSIS</h1>
+
+ <dl id="synopsis">
+- <dt><code><b>xsd</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt>
+- <dt><code><b>xsd help</b> [<i>command</i>]</code></dt>
+- <dt><code><b>xsd version</b></code></dt>
++ <dt><code><b>xsdcxx</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt>
++ <dt><code><b>xsdcxx help</b> [<i>command</i>]</code></dt>
++ <dt><code><b>xsdcxx version</b></code></dt>
+ </dl>
+
+ <h1>DESCRIPTION</h1>
+
+- <p><code><b>xsd</b></code> generates vocabulary-specific, statically-typed
++ <p><code><b>xsdcxx</b></code> generates vocabulary-specific, statically-typed
+ C++ mapping from W3C XML Schema definitions. Particular mapping to
+ produce is selected by a <code><i>command</i></code>. Each mapping has
+ a number of mapping-specific <code><i>options</i></code> that should
+@@ -104,7 +104,7 @@
+
+ <dt><code><b>help</b></code></dt>
+ <dd>Print usage information and exit. Use
+- <p><code><b>xsd help</b> <i>command</i></code></p>
++ <p><code><b>xsdcxx help</b> <i>command</i></code></p>
+ for command-specific help.
+ </dd>
+
+@@ -174,7 +174,7 @@
+
+ <p>For example, if you have file <code><b>hello.xsd</b></code>
+ with namespace <code><b>http://example.com/hello</b></code> and you run
+- <code><b>xsd</b></code> on this file, then the string in question
++ <code><b>xsdcxx</b></code> on this file, then the string in question
+ will be:</p>
+
+ <p><code><b>hello.xsd. http://example.com/hello</b></code></p>
+@@ -1575,7 +1575,7 @@ namespace .*
+ <h1>DIAGNOSTICS</h1>
+
+ <p>If the input file is not a valid W3C XML Schema definition,
+- <code><b>xsd</b></code> will issue diagnostic messages to STDERR
++ <code><b>xsdcxx</b></code> will issue diagnostic messages to STDERR
+ and exit with non-zero exit code.</p>
+
+ <h1>BUGS</h1>
diff --git a/dev-cpp/xsd/metadata.xml b/dev-cpp/xsd/metadata.xml
new file mode 100644
index 00000000000..e5a5bb3c962
--- /dev/null
+++ b/dev-cpp/xsd/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+</maintainer>
+<use>
+ <flag name="ace">Enable support for serializing to/from an ACE CDR stream</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-cpp/xsd/xsd-3.3.0-r3.ebuild b/dev-cpp/xsd/xsd-3.3.0-r3.ebuild
new file mode 100644
index 00000000000..f9e2c435e33
--- /dev/null
+++ b/dev-cpp/xsd/xsd-3.3.0-r3.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs eutils versionator
+
+DESCRIPTION="An open-source, cross-platform W3C XML Schema to C++ data binding compiler"
+HOMEPAGE="http://www.codesynthesis.com/products/xsd/"
+SRC_URI="http://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ppc64 x86"
+IUSE="ace doc examples test zlib"
+
+RDEPEND=">=dev-libs/xerces-c-3
+ >=dev-libs/boost-1.52.0-r1:=[threads]
+ >=dev-cpp/libcult-1.4.6-r1
+ >=dev-cpp/libxsd-frontend-1.18.0-r1
+ >=dev-cpp/libbackend-elements-1.7.2
+ ace? ( dev-libs/ace )
+ zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}
+ dev-util/build
+ doc? ( app-doc/doxygen )"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PV}-disable_examples_and_tests.patch" \
+ "${FILESDIR}/${PV}-xsdcxx-rename.patch" \
+ "${FILESDIR}/${PV}-fix_include.patch" \
+ "${FILESDIR}/${PV}-fix_tests.patch" \
+ "${FILESDIR}/${PV}-boost-filesystem-v2-deprecation.patch"
+}
+
+src_configure() {
+ # Maintainer notes:
+ # * xqilla is not required, this is only whether or not to include the xpath
+ # examples which require xqilla
+ mkdir -p \
+ build/cxx/gnu \
+ build/import/lib{ace,boost,cult,backend-elements,xerces-c,xqilla,xsd-frontend,z}
+
+ cat >> build/configuration-dynamic.make <<- EOF
+xsd_with_zlib := $(usex zlib y n)
+xsd_with_ace := $(usex ace y n)
+xsd_with_xdr := y
+xsd_with_dbxml := n
+xsd_with_xqilla := y
+xsd_with_boost_date_time := y
+xsd_with_boost_serialization := y
+ EOF
+
+ cat >> build/cxx/configuration-dynamic.make <<- EOF
+cxx_id := gnu
+cxx_optimize := n
+cxx_debug := n
+cxx_rpath := n
+cxx_pp_extra_options :=
+cxx_extra_options := ${CXXFLAGS}
+cxx_ld_extra_options := ${LDFLAGS}
+cxx_extra_libs :=
+cxx_extra_lib_paths :=
+ EOF
+
+ cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF
+cxx_gnu := $(tc-getCXX)
+cxx_gnu_libraries :=
+cxx_gnu_optimization_options :=
+ EOF
+
+ cat >> build/import/libace/configuration-dynamic.make <<- EOF
+libace_installed := y
+ EOF
+
+ cat >> build/import/libbackend-elements/configuration-dynamic.make <<- EOF
+libbackend_elements_installed := y
+ EOF
+
+ cat >> build/import/libboost/configuration-dynamic.make <<- EOF
+libboost_installed := y
+libboost_system := y
+ EOF
+
+ cat >> build/import/libcult/configuration-dynamic.make <<- EOF
+libcult_installed := y
+ EOF
+
+ cat >> build/import/libxerces-c/configuration-dynamic.make <<- EOF
+libxerces_c_installed := y
+ EOF
+
+ cat >> build/import/libxqilla/configuration-dynamic.make <<- EOF
+libxqilla_installed := y
+ EOF
+
+ cat >> build/import/libxsd-frontend/configuration-dynamic.make <<- EOF
+libxsd_frontend_installed := y
+ EOF
+
+ cat >> build/import/libz/configuration-dynamic.make <<- EOF
+libz_installed := y
+ EOF
+
+ MAKEOPTS+=" verbose=1"
+}
+
+src_compile() {
+ default
+ if use doc ; then
+ emake -C "${S}/documentation/cxx/tree/reference" || die "generating reference docs failed"
+ fi
+ if use test ; then
+ XERCESC_NLS_HOME="${ROOT}usr/share/xerces-c/msg" emake -C "${S}/tests" || die "building tests failed"
+ fi
+}
+
+src_install() {
+ emake install_prefix="${D}/usr" install || die "emake install failed"
+
+ # Renaming binary/manpage to avoid collision with mono-2.0's xsd/xsd2
+ mv "${D}"/usr/bin/xsd{,cxx}
+ mv "${D}"/usr/share/man/man1/xsd{,cxx}.1
+
+ rm -rf "${D}/usr/share/doc"
+
+ dohtml -r -A xhtml -A pdf documentation/*
+
+ dodoc NEWS README FLOSSE documentation/custom-literals.xsd
+ newdoc libxsd/README README.libxsd
+ newdoc libxsd/FLOSSE FLOSSE.libxsd
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
+
+src_test() {
+ XERCESC_NLS_HOME="${ROOT}usr/share/xerces-c/msg" emake -C "${S}/tests" test || die "tests failed"
+}
diff --git a/dev-cpp/yaml-cpp/Manifest b/dev-cpp/yaml-cpp/Manifest
new file mode 100644
index 00000000000..8b5a1bed587
--- /dev/null
+++ b/dev-cpp/yaml-cpp/Manifest
@@ -0,0 +1,2 @@
+DIST yaml-cpp-0.3.0.tar.gz 82674 SHA256 2cd038b5a1583b6745e949e196fba525f6d0d5fd340566585fde24fc7e117b82 SHA512 1db7ef9ab717cf3185494dd40872d53948822bf0bb7a8039f5ccade77f29a7c1f37671627404d33f3213654d8e0582e6eaad139fd51f455a0d4d779bf467f43d WHIRLPOOL 106c5a3eda627651c49e1bcf9f22345fcaaaeb85efac4de7b7d103b0d2924ccb3c093dcd6ac03ccad7325d1f3faffc3165288e62bfa913eca21bfcb4eb3b26b9
+DIST yaml-cpp-0.5.1.tar.gz 118244 SHA256 3e7c9052b43d987d41819a203d97fc45de4eed3ec67e0fdb14265c3d11046f06 SHA512 3c6928684d603815c016d663af36be94507f2cccf167d6d8d7cd7dea3ea5f73ec88d62952a2b5d11796e40132857afcbbacd9eafd688f2dc11d0c339caf2e013 WHIRLPOOL 43c1998584fb8cc8b0954a1eba39aaffff18be074c5f1c84ac60df89adc84717007d8f6e67978da2e4f235365d820d7b2809f19eb3c67263ff936f44a9438546
diff --git a/dev-cpp/yaml-cpp/metadata.xml b/dev-cpp/yaml-cpp/metadata.xml
new file mode 100644
index 00000000000..40068b39f78
--- /dev/null
+++ b/dev-cpp/yaml-cpp/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus Rivero</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">yaml-cpp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.3.0.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.3.0.ebuild
new file mode 100644
index 00000000000..becb268db4b
--- /dev/null
+++ b/dev-cpp/yaml-cpp/yaml-cpp-0.3.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit cmake-utils
+
+DESCRIPTION="A YAML parser and emitter in C++"
+HOMEPAGE="http://code.google.com/p/yaml-cpp/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}"
+
+src_prepare() {
+ sed -i \
+ -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \
+ yaml-cpp.pc.cmake || die
+
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.5.1.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.5.1.ebuild
new file mode 100644
index 00000000000..4c6a51814a4
--- /dev/null
+++ b/dev-cpp/yaml-cpp/yaml-cpp-0.5.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="A YAML parser and emitter in C++"
+HOMEPAGE="http://code.google.com/p/yaml-cpp/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~hppa ~ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=">=dev-libs/boost-1.49.0-r2"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ sed -i \
+ -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \
+ yaml-cpp.pc.cmake || die
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ )
+ cmake-utils_src_configure
+}