summaryrefslogtreecommitdiff
path: root/dev-cpp
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-cpp
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'dev-cpp')
-rw-r--r--dev-cpp/ETL/ETL-0.04.15-r1.ebuild23
-rw-r--r--dev-cpp/ETL/Manifest1
-rw-r--r--dev-cpp/ETL/metadata.xml12
-rw-r--r--dev-cpp/abseil-cpp/Manifest1
-rw-r--r--dev-cpp/abseil-cpp/abseil-cpp-20200225.2.ebuild46
-rw-r--r--dev-cpp/abseil-cpp/metadata.xml9
-rw-r--r--dev-cpp/aixlog/Manifest1
-rw-r--r--dev-cpp/aixlog/aixlog-1.2.1.ebuild29
-rw-r--r--dev-cpp/aixlog/aixlog-9999.ebuild29
-rw-r--r--dev-cpp/aixlog/metadata.xml21
-rw-r--r--dev-cpp/antlr-cpp/Manifest2
-rw-r--r--dev-cpp/antlr-cpp/antlr-cpp-2.7.7-r1.ebuild105
-rw-r--r--dev-cpp/antlr-cpp/antlr-cpp-4.7.2.ebuild27
-rw-r--r--dev-cpp/antlr-cpp/files/2.7.7-gcc.patch12
-rw-r--r--dev-cpp/antlr-cpp/files/2.7.7-libtool.patch21
-rw-r--r--dev-cpp/antlr-cpp/metadata.xml12
-rw-r--r--dev-cpp/asio/Manifest3
-rw-r--r--dev-cpp/asio/asio-1.10.8.ebuild46
-rw-r--r--dev-cpp/asio/asio-1.14.0.ebuild49
-rw-r--r--dev-cpp/asio/asio-1.16.1.ebuild49
-rw-r--r--dev-cpp/asio/metadata.xml16
-rw-r--r--dev-cpp/atkmm/Manifest1
-rw-r--r--dev-cpp/atkmm/atkmm-2.28.0.ebuild34
-rw-r--r--dev-cpp/atkmm/metadata.xml9
-rw-r--r--dev-cpp/cairomm/Manifest1
-rw-r--r--dev-cpp/cairomm/cairomm-1.12.0-r1.ebuild48
-rw-r--r--dev-cpp/cairomm/metadata.xml9
-rw-r--r--dev-cpp/catch/Manifest4
-rw-r--r--dev-cpp/catch/catch-1.12.2.ebuild40
-rw-r--r--dev-cpp/catch/catch-1.9999.ebuild40
-rw-r--r--dev-cpp/catch/catch-2.5.0.ebuild44
-rw-r--r--dev-cpp/catch/catch-2.7.0.ebuild44
-rw-r--r--dev-cpp/catch/catch-2.9.1.ebuild44
-rw-r--r--dev-cpp/catch/catch-9999.ebuild44
-rw-r--r--dev-cpp/catch/metadata.xml12
-rw-r--r--dev-cpp/clucene/Manifest1
-rw-r--r--dev-cpp/clucene/clucene-2.3.3.4-r6.ebuild64
-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-gcc6.patch28
-rw-r--r--dev-cpp/clucene/files/clucene-2.3.3.4-gmtime.patch12
-rw-r--r--dev-cpp/clucene/files/clucene-2.3.3.4-pkgconfig.patch12
-rw-r--r--dev-cpp/clucene/metadata.xml9
-rw-r--r--dev-cpp/commoncpp2/Manifest1
-rw-r--r--dev-cpp/commoncpp2/commoncpp2-1.8.1-r4.ebuild73
-rw-r--r--dev-cpp/commoncpp2/files/1.8.0-glibc212.patch12
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-autoconf-update.patch61
-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-fix-c++14.patch52
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-fix-gcc9.patch28
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-gnutls-3.4.patch36
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch48
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-libressl.patch15
-rw-r--r--dev-cpp/commoncpp2/files/1.8.1-parallel-build.patch11
-rw-r--r--dev-cpp/commoncpp2/metadata.xml6
-rw-r--r--dev-cpp/cpp-hocon/Manifest1
-rw-r--r--dev-cpp/cpp-hocon/cpp-hocon-0.2.1.ebuild23
-rw-r--r--dev-cpp/cpp-hocon/files/cpp-hocon-0.2.1-cmake.patch48
-rw-r--r--dev-cpp/cpp-hocon/metadata.xml15
-rw-r--r--dev-cpp/cpp-taskflow/Manifest1
-rw-r--r--dev-cpp/cpp-taskflow/cpp-taskflow-2.4.0-r1.ebuild33
-rw-r--r--dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-do_not_compile_examples.patch82
-rw-r--r--dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-fix_installation_path.patch22
-rw-r--r--dev-cpp/cpp-taskflow/metadata.xml21
-rw-r--r--dev-cpp/ctemplate/Manifest1
-rw-r--r--dev-cpp/ctemplate/ctemplate-2.3-r1.ebuild77
-rw-r--r--dev-cpp/ctemplate/files/70ctemplate-gentoo.el7
-rw-r--r--dev-cpp/ctemplate/files/ctemplate-2.3-fix-build-system.patch29
-rw-r--r--dev-cpp/ctemplate/metadata.xml10
-rw-r--r--dev-cpp/eigen/Manifest1
-rw-r--r--dev-cpp/eigen/eigen-3.3.7.ebuild107
-rw-r--r--dev-cpp/eigen/metadata.xml27
-rw-r--r--dev-cpp/gconfmm/Manifest1
-rw-r--r--dev-cpp/gconfmm/gconfmm-2.28.3-r1.ebuild40
-rw-r--r--dev-cpp/gconfmm/metadata.xml9
-rw-r--r--dev-cpp/gflags/Manifest2
-rw-r--r--dev-cpp/gflags/gflags-2.2.0.ebuild37
-rw-r--r--dev-cpp/gflags/gflags-2.2.1-r1.ebuild36
-rw-r--r--dev-cpp/gflags/gflags-2.2.1.ebuild37
-rw-r--r--dev-cpp/gflags/gflags-9999.ebuild36
-rw-r--r--dev-cpp/gflags/metadata.xml11
-rw-r--r--dev-cpp/glibmm/Manifest2
-rw-r--r--dev-cpp/glibmm/glibmm-2.62.0.ebuild66
-rw-r--r--dev-cpp/glibmm/glibmm-2.64.2.ebuild57
-rw-r--r--dev-cpp/glibmm/metadata.xml9
-rw-r--r--dev-cpp/glog/Manifest2
-rw-r--r--dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch56
-rw-r--r--dev-cpp/glog/files/glog-0.3.4-fix-build-system.patch142
-rw-r--r--dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch56
-rw-r--r--dev-cpp/glog/files/glog-0.4.0-errnos.patch99
-rw-r--r--dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch19
-rw-r--r--dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch35
-rw-r--r--dev-cpp/glog/glog-0.3.4-r1.ebuild48
-rw-r--r--dev-cpp/glog/glog-0.4.0.ebuild45
-rw-r--r--dev-cpp/glog/metadata.xml21
-rw-r--r--dev-cpp/gstreamermm/Manifest1
-rw-r--r--dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild64
-rw-r--r--dev-cpp/gstreamermm/metadata.xml9
-rw-r--r--dev-cpp/gtest/Manifest4
-rw-r--r--dev-cpp/gtest/files/gtest-1.8.0-fix-doublefree.patch98
-rw-r--r--dev-cpp/gtest/files/gtest-1.8.0-fix-gcc6-undefined-behavior.patch21
-rw-r--r--dev-cpp/gtest/files/gtest-1.8.0-increase-clone-stack-size.patch14
-rw-r--r--dev-cpp/gtest/files/gtest-1.8.0-multilib-strict.patch40
-rwxr-xr-xdev-cpp/gtest/files/gtest-1.9.0_pre20190607-increase-clone-stack-size.patch13
-rw-r--r--dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch17
-rw-r--r--dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch19
-rw-r--r--dev-cpp/gtest/gtest-1.10.0.ebuild80
-rw-r--r--dev-cpp/gtest/gtest-1.8.0-r1.ebuild69
-rw-r--r--dev-cpp/gtest/gtest-1.8.0.ebuild68
-rw-r--r--dev-cpp/gtest/gtest-1.8.1-r1.ebuild74
-rw-r--r--dev-cpp/gtest/gtest-1.8.1.ebuild75
-rw-r--r--dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild80
-rw-r--r--dev-cpp/gtest/gtest-9999.ebuild79
-rw-r--r--dev-cpp/gtest/metadata.xml17
-rw-r--r--dev-cpp/gtkmm/Manifest2
-rw-r--r--dev-cpp/gtkmm/gtkmm-2.24.5.ebuild64
-rw-r--r--dev-cpp/gtkmm/gtkmm-3.24.2.ebuild75
-rw-r--r--dev-cpp/gtkmm/metadata.xml9
-rw-r--r--dev-cpp/gtksourceviewmm/Manifest2
-rw-r--r--dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3-r1.ebuild48
-rw-r--r--dev-cpp/gtksourceviewmm/gtksourceviewmm-3.18.0.ebuild34
-rw-r--r--dev-cpp/gtksourceviewmm/metadata.xml12
-rw-r--r--dev-cpp/htmlcxx/Manifest1
-rw-r--r--dev-cpp/htmlcxx/htmlcxx-0.87.ebuild29
-rw-r--r--dev-cpp/htmlcxx/metadata.xml12
-rw-r--r--dev-cpp/icnc/Manifest1
-rw-r--r--dev-cpp/icnc/icnc-1.0.100.ebuild77
-rw-r--r--dev-cpp/icnc/metadata.xml12
-rw-r--r--dev-cpp/kokkos/Manifest3
-rw-r--r--dev-cpp/kokkos/kokkos-3.0.00.ebuild45
-rw-r--r--dev-cpp/kokkos/kokkos-3.1.00.ebuild45
-rw-r--r--dev-cpp/kokkos/kokkos-3.1.01.ebuild45
-rw-r--r--dev-cpp/kokkos/metadata.xml9
-rw-r--r--dev-cpp/libcmis/Manifest1
-rw-r--r--dev-cpp/libcmis/files/libcmis-0.5.2-icu-64.2.patch17
-rw-r--r--dev-cpp/libcmis/libcmis-0.5.2-r1.ebuild68
-rw-r--r--dev-cpp/libcmis/libcmis-9999.ebuild66
-rw-r--r--dev-cpp/libcmis/metadata.xml16
-rw-r--r--dev-cpp/libcutl/Manifest1
-rw-r--r--dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch162
-rw-r--r--dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch53
-rw-r--r--dev-cpp/libcutl/libcutl-1.10.0.ebuild52
-rw-r--r--dev-cpp/libcutl/metadata.xml6
-rw-r--r--dev-cpp/libglademm/Manifest1
-rw-r--r--dev-cpp/libglademm/libglademm-2.6.7-r2.ebuild74
-rw-r--r--dev-cpp/libglademm/metadata.xml9
-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.xml9
-rw-r--r--dev-cpp/libjson-rpc-cpp/Manifest1
-rw-r--r--dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-1.3.0.ebuild68
-rw-r--r--dev-cpp/libjson-rpc-cpp/metadata.xml19
-rw-r--r--dev-cpp/libmcpp/Manifest1
-rw-r--r--dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch30
-rw-r--r--dev-cpp/libmcpp/files/libmcpp-2.7.2-gniibe.patch33
-rw-r--r--dev-cpp/libmcpp/files/libmcpp-2.7.2-zeroc.patch75
-rw-r--r--dev-cpp/libmcpp/libmcpp-2.7.2-r2.ebuild43
-rw-r--r--dev-cpp/libmcpp/libmcpp-2.7.2-r3.ebuild44
-rw-r--r--dev-cpp/libmcpp/metadata.xml9
-rw-r--r--dev-cpp/libxmlpp/Manifest2
-rw-r--r--dev-cpp/libxmlpp/libxmlpp-2.40.1.ebuild37
-rw-r--r--dev-cpp/libxmlpp/libxmlpp-3.0.1.ebuild36
-rw-r--r--dev-cpp/libxmlpp/metadata.xml12
-rw-r--r--dev-cpp/libxsd-frontend/Manifest1
-rw-r--r--dev-cpp/libxsd-frontend/libxsd-frontend-2.0.0.ebuild87
-rw-r--r--dev-cpp/libxsd-frontend/metadata.xml6
-rw-r--r--dev-cpp/lucene++/Manifest1
-rw-r--r--dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch37
-rw-r--r--dev-cpp/lucene++/lucene++-3.0.7-r1.ebuild36
-rw-r--r--dev-cpp/lucene++/lucene++-3.0.7-r2.ebuild36
-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.xml9
-rw-r--r--dev-cpp/metslib/metslib-0.5.3.ebuild17
-rw-r--r--dev-cpp/mm-common/Manifest2
-rw-r--r--dev-cpp/mm-common/metadata.xml9
-rw-r--r--dev-cpp/mm-common/mm-common-0.9.12.ebuild18
-rw-r--r--dev-cpp/mm-common/mm-common-1.0.0.ebuild24
-rw-r--r--dev-cpp/ms-gsl/Manifest3
-rw-r--r--dev-cpp/ms-gsl/files/ms-gsl-1.0.0-disable_Werror-644042.patch35
-rw-r--r--dev-cpp/ms-gsl/files/ms-gsl-1.0.0-use_system_catch-636828.patch21
-rw-r--r--dev-cpp/ms-gsl/files/ms-gsl-3.0.0-use_system_gtest.patch82
-rw-r--r--dev-cpp/ms-gsl/metadata.xml17
-rw-r--r--dev-cpp/ms-gsl/ms-gsl-2.0.0.ebuild35
-rw-r--r--dev-cpp/ms-gsl/ms-gsl-2.1.0.ebuild35
-rw-r--r--dev-cpp/ms-gsl/ms-gsl-3.1.0.ebuild34
-rw-r--r--dev-cpp/ms-gsl/ms-gsl-9999.ebuild33
-rw-r--r--dev-cpp/muParser/Manifest2
-rw-r--r--dev-cpp/muParser/files/muParser-1.32-parallel-build.patch15
-rw-r--r--dev-cpp/muParser/metadata.xml18
-rw-r--r--dev-cpp/muParser/muParser-2.2.5.ebuild43
-rw-r--r--dev-cpp/muParser/muParser-2.2.6.1.ebuild43
-rw-r--r--dev-cpp/nlohmann_json/Manifest3
-rw-r--r--dev-cpp/nlohmann_json/files/nlohmann_json-3.7.3-gcc-10.patch131
-rw-r--r--dev-cpp/nlohmann_json/metadata.xml12
-rw-r--r--dev-cpp/nlohmann_json/nlohmann_json-3.6.1-r1.ebuild45
-rw-r--r--dev-cpp/nlohmann_json/nlohmann_json-3.7.0.ebuild45
-rw-r--r--dev-cpp/nlohmann_json/nlohmann_json-3.7.3.ebuild49
-rw-r--r--dev-cpp/pangomm/Manifest2
-rw-r--r--dev-cpp/pangomm/metadata.xml9
-rw-r--r--dev-cpp/pangomm/pangomm-2.42.0.ebuild39
-rw-r--r--dev-cpp/pangomm/pangomm-2.42.1.ebuild39
-rw-r--r--dev-cpp/picojson/Manifest1
-rw-r--r--dev-cpp/picojson/metadata.xml12
-rw-r--r--dev-cpp/picojson/picojson-1.3.0.ebuild32
-rw-r--r--dev-cpp/pngpp/Manifest1
-rw-r--r--dev-cpp/pngpp/files/pngpp-0.2.9-DESTDIR.patch15
-rw-r--r--dev-cpp/pngpp/metadata.xml6
-rw-r--r--dev-cpp/pngpp/pngpp-0.2.9.ebuild34
-rw-r--r--dev-cpp/popl/Manifest1
-rw-r--r--dev-cpp/popl/metadata.xml21
-rw-r--r--dev-cpp/popl/popl-1.2.0.ebuild29
-rw-r--r--dev-cpp/popl/popl-9999.ebuild29
-rw-r--r--dev-cpp/pstreams/Manifest8
-rw-r--r--dev-cpp/pstreams/metadata.xml12
-rw-r--r--dev-cpp/pstreams/pstreams-0.7.0.ebuild42
-rw-r--r--dev-cpp/pstreams/pstreams-0.8.1.ebuild42
-rw-r--r--dev-cpp/pstreams/pstreams-1.0.0.ebuild42
-rw-r--r--dev-cpp/pstreams/pstreams-1.0.1.ebuild42
-rw-r--r--dev-cpp/random123/Manifest1
-rw-r--r--dev-cpp/random123/metadata.xml13
-rw-r--r--dev-cpp/random123/random123-1.09-r1.ebuild24
-rw-r--r--dev-cpp/range-v3/Manifest1
-rw-r--r--dev-cpp/range-v3/metadata.xml9
-rw-r--r--dev-cpp/range-v3/range-v3-0.10.0-r1.ebuild34
-rw-r--r--dev-cpp/rttr/Manifest1
-rw-r--r--dev-cpp/rttr/files/rttr-0.9.6-cmake.patch25
-rw-r--r--dev-cpp/rttr/files/rttr-0.9.6-permission.patch13
-rw-r--r--dev-cpp/rttr/files/rttr-0.9.6-tests.patch30
-rw-r--r--dev-cpp/rttr/files/rttr-0.9.6-werror.patch18
-rw-r--r--dev-cpp/rttr/metadata.xml11
-rw-r--r--dev-cpp/rttr/rttr-0.9.6.ebuild36
-rw-r--r--dev-cpp/sourcetrail/Manifest4
-rw-r--r--dev-cpp/sourcetrail/metadata.xml16
-rw-r--r--dev-cpp/sourcetrail/sourcetrail-2018.3.55-r1.ebuild93
-rw-r--r--dev-cpp/sourcetrail/sourcetrail-2019.1.11.ebuild93
-rw-r--r--dev-cpp/sourcetrail/sourcetrail-2019.2.39.ebuild92
-rw-r--r--dev-cpp/sourcetrail/sourcetrail-2019.3.46-r2.ebuild93
-rw-r--r--dev-cpp/sourcetrail/sourcetrail-2019.3.46.ebuild92
-rw-r--r--dev-cpp/sparsehash/Manifest1
-rw-r--r--dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch71
-rw-r--r--dev-cpp/sparsehash/metadata.xml9
-rw-r--r--dev-cpp/sparsehash/sparsehash-2.0.3-r1.ebuild24
-rw-r--r--dev-cpp/tbb/Manifest2
-rw-r--r--dev-cpp/tbb/files/tbb-2020.1-makefile-debug.patch62
-rw-r--r--dev-cpp/tbb/metadata.xml19
-rw-r--r--dev-cpp/tbb/tbb-2019.8.ebuild141
-rw-r--r--dev-cpp/tbb/tbb-2020.2.ebuild151
-rw-r--r--dev-cpp/tclap/Manifest2
-rw-r--r--dev-cpp/tclap/metadata.xml16
-rw-r--r--dev-cpp/tclap/tclap-1.2.1.ebuild24
-rw-r--r--dev-cpp/tclap/tclap-1.2.2.ebuild23
-rw-r--r--dev-cpp/tree/Manifest1
-rw-r--r--dev-cpp/tree/files/tree-2.81-test.patch36
-rw-r--r--dev-cpp/tree/metadata.xml16
-rw-r--r--dev-cpp/tree/tree-2.81.ebuild38
-rw-r--r--dev-cpp/waylandpp/Manifest5
-rw-r--r--dev-cpp/waylandpp/metadata.xml13
-rw-r--r--dev-cpp/waylandpp/waylandpp-0.2.3.ebuild41
-rw-r--r--dev-cpp/waylandpp/waylandpp-0.2.4.ebuild41
-rw-r--r--dev-cpp/waylandpp/waylandpp-0.2.5.ebuild41
-rw-r--r--dev-cpp/waylandpp/waylandpp-0.2.6.ebuild41
-rw-r--r--dev-cpp/waylandpp/waylandpp-0.2.7.ebuild41
-rw-r--r--dev-cpp/waylandpp/waylandpp-9999.ebuild41
-rw-r--r--dev-cpp/websocketpp/Manifest1
-rw-r--r--dev-cpp/websocketpp/files/websocketpp-0.7.0-cmake-install.patch28
-rw-r--r--dev-cpp/websocketpp/files/websocketpp-0.8.1-boost-1.70.patch139
-rw-r--r--dev-cpp/websocketpp/files/websocketpp-0.8.1-disable-test_transport-test_transport_asio_timers.patch46
-rw-r--r--dev-cpp/websocketpp/metadata.xml12
-rw-r--r--dev-cpp/websocketpp/websocketpp-0.8.1-r1.ebuild45
-rw-r--r--dev-cpp/yaml-cpp/Manifest2
-rw-r--r--dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch45
-rw-r--r--dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch70
-rw-r--r--dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch44
-rw-r--r--dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch57
-rw-r--r--dev-cpp/yaml-cpp/metadata.xml12
-rw-r--r--dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild42
-rw-r--r--dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild45
-rw-r--r--dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild48
280 files changed, 8896 insertions, 0 deletions
diff --git a/dev-cpp/ETL/ETL-0.04.15-r1.ebuild b/dev-cpp/ETL/ETL-0.04.15-r1.ebuild
new file mode 100644
index 000000000000..98488ac2a7b2
--- /dev/null
+++ b/dev-cpp/ETL/ETL-0.04.15-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Multi-platform class and template library"
+HOMEPAGE="https://www.synfig.org"
+SRC_URI="mirror://sourceforge/synfig/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+src_prepare() {
+ default
+ 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 || die
+
+ eautoreconf
+}
diff --git a/dev-cpp/ETL/Manifest b/dev-cpp/ETL/Manifest
new file mode 100644
index 000000000000..77aa41c780aa
--- /dev/null
+++ b/dev-cpp/ETL/Manifest
@@ -0,0 +1 @@
+DIST ETL-0.04.15.tar.gz 362312 BLAKE2B c2afe67486a9154de559a00680b9409ee6b8b2d3312d8c8777906926c3335d4ead3e6d5da6b11771b359caa56917969fd5be7d12c2337872a41c16997421f923 SHA512 647d03f5660703a326357b0f1bb969c1e00f94c51ae72cf036f6618df1e44c6e379244a1a827b4d3c9545455efd81ff1d97254ee159e0f578f544ab856341e6f
diff --git a/dev-cpp/ETL/metadata.xml b/dev-cpp/ETL/metadata.xml
new file mode 100644
index 000000000000..c784c48349e1
--- /dev/null
+++ b/dev-cpp/ETL/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 type="person">
+ <email>lu_zero@gentoo.org</email>
+ <name>Luca Barbato</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">synfig</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/abseil-cpp/Manifest b/dev-cpp/abseil-cpp/Manifest
new file mode 100644
index 000000000000..7d38829c01df
--- /dev/null
+++ b/dev-cpp/abseil-cpp/Manifest
@@ -0,0 +1 @@
+DIST abseil-cpp-20200225.2.tar.gz 1679650 BLAKE2B bbadb2b86fd390f51322e687526c72a3b13caff6391974462a1146cc563616ce479330336a489a71e27b143e7cbea6695fc12c91fb721185a5116b3a6c5506b1 SHA512 75a607dee825e83c10dcd5e509515461f1b12c4aca861e4739ac4d41357b8e893dbfbe33873aa5c05463dde0891dedd7535af2ec59f173de29488e1b1321b335
diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20200225.2.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20200225.2.ebuild
new file mode 100644
index 000000000000..5db378ff5361
--- /dev/null
+++ b/dev-cpp/abseil-cpp/abseil-cpp-20200225.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit cmake python-any-r1
+
+DESCRIPTION="Abseil Common Libraries (C++), LTS Branch"
+HOMEPAGE="https://abseil.io"
+SRC_URI="https://github.com/abseil/abseil-cpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+BDEPEND="${PYTHON_DEPS}"
+
+# requires source of gtest and other libs
+RESTRICT=test
+
+src_prepare() {
+ cmake_src_prepare
+
+ # un-hardcode abseil compiler flags
+ sed -i \
+ -e '/"-maes",/d' \
+ -e '/"-msse4.1",/d' \
+ -e '/"-mfpu=neon"/d' \
+ -e '/"-march=armv8-a+crypto"/d' \
+ absl/copts/copts.py || die
+
+ # now generate cmake files
+ absl/copts/generate_copts.py || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DABSL_ENABLE_INSTALL=TRUE
+ )
+ cmake_src_configure
+}
diff --git a/dev-cpp/abseil-cpp/metadata.xml b/dev-cpp/abseil-cpp/metadata.xml
new file mode 100644
index 000000000000..b48a7a2b430b
--- /dev/null
+++ b/dev-cpp/abseil-cpp/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>gyakovlev@gentoo.org</email>
+ <name>Georgy Yakovlev</name>
+ </maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/aixlog/Manifest b/dev-cpp/aixlog/Manifest
new file mode 100644
index 000000000000..170473114dbf
--- /dev/null
+++ b/dev-cpp/aixlog/Manifest
@@ -0,0 +1 @@
+DIST aixlog-1.2.1.tar.gz 11396 BLAKE2B 88cdc775acfd91ee74306fedd6429865f10bcd7cbe9b45f861463489330d74b017611078ca362a00994983dde746ba086a056c3da53b06099f200810d65c0c04 SHA512 776558fdd911f0cc9e8d467bf8e00a1930d2e51bb8ccd5f36f95955fefecab65faf575a80fdaacfe83fd32808f8b9c2e0323b16823e0431300df7bc0c1dfde12
diff --git a/dev-cpp/aixlog/aixlog-1.2.1.ebuild b/dev-cpp/aixlog/aixlog-1.2.1.ebuild
new file mode 100644
index 000000000000..1246304bfa01
--- /dev/null
+++ b/dev-cpp/aixlog/aixlog-1.2.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Header-only C++ logging library"
+HOMEPAGE="https://github.com/badaix/aixlog"
+
+if [[ ${PV} == *9999 ]] ; then
+ inherit cmake-utils git-r3
+
+ EGIT_REPO_URI="https://github.com/badaix/aixlog.git"
+ EGIT_BRANCH="develop"
+else
+ inherit cmake-utils
+
+ SRC_URI="https://github.com/badaix/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ local mycmakeargs=( -DBUILD_EXAMPLE=OFF )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/aixlog/aixlog-9999.ebuild b/dev-cpp/aixlog/aixlog-9999.ebuild
new file mode 100644
index 000000000000..1246304bfa01
--- /dev/null
+++ b/dev-cpp/aixlog/aixlog-9999.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Header-only C++ logging library"
+HOMEPAGE="https://github.com/badaix/aixlog"
+
+if [[ ${PV} == *9999 ]] ; then
+ inherit cmake-utils git-r3
+
+ EGIT_REPO_URI="https://github.com/badaix/aixlog.git"
+ EGIT_BRANCH="develop"
+else
+ inherit cmake-utils
+
+ SRC_URI="https://github.com/badaix/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ local mycmakeargs=( -DBUILD_EXAMPLE=OFF )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/aixlog/metadata.xml b/dev-cpp/aixlog/metadata.xml
new file mode 100644
index 000000000000..b80698a05671
--- /dev/null
+++ b/dev-cpp/aixlog/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cb-gentoo@guya.de</email>
+ <name>Christian Buchinger</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <name>Johannes Pohl</name>
+ <email>github@badaix.de</email>
+ </maintainer>
+ <bugs-to>https://github.com/badaix/aixlog/issues</bugs-to>
+ <remote-id type="github">badaix/aixlog</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/antlr-cpp/Manifest b/dev-cpp/antlr-cpp/Manifest
new file mode 100644
index 000000000000..d2f49651c27d
--- /dev/null
+++ b/dev-cpp/antlr-cpp/Manifest
@@ -0,0 +1,2 @@
+DIST antlr-2.7.7.tar.gz 1816180 BLAKE2B 3a9a51070f8651befeb4d22be344b544e119db34a78522828c2ffc3c481c14b9c7784f0a9997a61f6faedde5b6d1fe12214cfd84fb274f7065f3ffe6a44abf1c SHA512 faa72d2ddcba434ef1233e70c1549e63eba67c00793966322e821cf7f015cccb804448cb92d8fbef0429f59928fad65ec954f8ffbda0acbb8e983de0806d349d
+DIST antlr-cpp-4.7.2.zip 1494927 BLAKE2B 007aac6655dc3c4e3a0c2073ca9c8c016b46bdf97dca4494d4ea2c44d27a458bfbb09811b3beb0aec1ce2873c3b62ad6789c6a9e3e7ddc62cde51c8357e9123b SHA512 3298b83a06ddd8d8852462401e46fe2eb83d20af4ba14c722cb31b33d929d1c5a4ffb694ee084495a4ae26ed3246b6781ca6045d11253c94efc09729fa001090
diff --git a/dev-cpp/antlr-cpp/antlr-cpp-2.7.7-r1.ebuild b/dev-cpp/antlr-cpp/antlr-cpp-2.7.7-r1.ebuild
new file mode 100644
index 000000000000..c6fa2c9550b5
--- /dev/null
+++ b/dev-cpp/antlr-cpp/antlr-cpp-2.7.7-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Upstream only installs a static library. The original antlr ebuild
+# built a shared library manually, which isn't so great either. This
+# ebuild applies libtool instead and therefore an autoreconf is
+# required. A couple of errors concerning tr have been seen but the
+# final result still looks good. This also sidesteps bug #554344 plus
+# the need to call einstall.
+
+inherit autotools multilib-minimal
+
+MY_P="${PN%-cpp}-${PV}"
+DESCRIPTION="The ANTLR 2 C++ Runtime"
+HOMEPAGE="https://www.antlr2.org/"
+SRC_URI="https://www.antlr2.org/download/${MY_P}.tar.gz"
+LICENSE="public-domain"
+SLOT="2"
+KEYWORDS="amd64 ~arm ppc x86"
+IUSE="doc examples static-libs"
+RESTRICT="test" # No tests but test target blows up!
+
+DEPEND="doc? ( app-doc/doxygen )"
+RDEPEND="!dev-java/antlr:0[cxx]"
+
+S="${WORKDIR}/${MY_P}"
+ECONF_SOURCE="${S}"
+PATCHES=( "${FILESDIR}"/${PV}-{gcc,libtool}.patch )
+DOCS=( lib/cpp/AUTHORS lib/cpp/ChangeLog lib/cpp/README lib/cpp/TODO )
+
+src_prepare() {
+ # Turn Makefile.in files into libtool-style Makefile.am
+ # files. Countable.hpp is actually missing.
+ local HPP=$(grep -E -o "\w+\.hpp" lib/cpp/antlr/Makefile.in | grep -v "Countable\.hpp" | tr "\n" " " || die)
+ local CPP=$(grep -E -o "\w+\.cpp" lib/cpp/src/Makefile.in | tr "\n" " " || die)
+
+ cat <<EOF > lib/cpp/antlr/Makefile.am || die
+antlr_includedir = \$(includedir)/antlr
+antlr_include_HEADERS = ${HPP}
+EOF
+
+ cat <<EOF > lib/cpp/src/Makefile.am || die
+AM_CPPFLAGS = -I\$(abs_top_srcdir)/lib/cpp
+lib_LTLIBRARIES = libantlr.la
+libantlr_la_LDFLAGS = -version-info 2
+libantlr_la_SOURCES = ${CPP}
+EOF
+
+ default
+
+ mv -v configure.in configure.ac || die
+ mv -v aclocal.m4 acinclude.m4 || die
+
+ # These silly test -z lines break badly under recent autoconfs.
+ sed -i '/AC_PATH_PROG/s/test -z "\$[^"]*" *&& *//' configure.ac || die
+
+ # Delete build files from examples.
+ find examples -name Makefile.in -delete || die
+
+ # Fix make invocations. See bug #256880.
+ find -name "*.in" -exec sed -i 's/@MAKE@/$(MAKE)/g' {} + || die
+
+ eautoreconf
+}
+
+multilib_src_configure() {
+ CONFIG_SHELL="${BASH}" econf \
+ --disable-csharp \
+ --enable-cxx \
+ --disable-examples \
+ --disable-java \
+ --disable-python \
+ --enable-shared \
+ --enable-verbose \
+ $(use_enable static-libs static)
+}
+
+src_compile() {
+ multilib-minimal_src_compile
+
+ if use doc; then
+ cd "${S}/lib/cpp" || die
+ doxygen -u doxygen.cfg || die
+ doxygen doxygen.cfg || die
+ fi
+}
+
+multilib_src_install() {
+ # We only care about the C++ stuff.
+ emake -C lib/cpp install DESTDIR="${D}"
+}
+
+src_install() {
+ multilib-minimal_src_install
+
+ cd "${S}" || die
+ use doc && dohtml -r lib/cpp/gen_doc/html/
+
+ if use examples; then
+ docinto examples
+ dodoc -r examples/cpp/*
+ fi
+}
diff --git a/dev-cpp/antlr-cpp/antlr-cpp-4.7.2.ebuild b/dev-cpp/antlr-cpp/antlr-cpp-4.7.2.ebuild
new file mode 100644
index 000000000000..37ace99caa9e
--- /dev/null
+++ b/dev-cpp/antlr-cpp/antlr-cpp-4.7.2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+DESCRIPTION="The ANTLR 4 C++ Runtime"
+HOMEPAGE="https://www.antlr.org/"
+SRC_URI="https://www.antlr.org/download/antlr4-cpp-runtime-${PV}-source.zip -> ${P}.zip"
+LICENSE="BSD"
+SLOT="4"
+KEYWORDS="amd64 ~arm ~ppc x86"
+
+DEPEND="app-arch/zip"
+
+S="${WORKDIR}"
+
+src_prepare() {
+ sed -i -e "s#DESTINATION lib#DESTINATION $(get_libdir)#" \
+ "${S}"/runtime/CMakeLists.txt || die "failed sed"
+
+ sed -i -e "s#share/doc/libantlr4#share/doc/${P}#g" \
+ "${S}"/CMakeLists.txt || die "failed sed"
+
+ cmake-utils_src_prepare
+}
diff --git a/dev-cpp/antlr-cpp/files/2.7.7-gcc.patch b/dev-cpp/antlr-cpp/files/2.7.7-gcc.patch
new file mode 100644
index 000000000000..c67d5b6dfcf9
--- /dev/null
+++ b/dev-cpp/antlr-cpp/files/2.7.7-gcc.patch
@@ -0,0 +1,12 @@
+diff -Naur antlr-2.7.7.orig/lib/cpp/antlr/CharScanner.hpp antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp
+--- antlr-2.7.7.orig/lib/cpp/antlr/CharScanner.hpp 2006-11-01 21:37:17.000000000 +0000
++++ antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp 2015-10-06 23:01:53.083655950 +0100
+@@ -10,6 +10,8 @@
+
+ #include <antlr/config.hpp>
+
++#include <cstdio>
++#include <cstring>
+ #include <map>
+
+ #ifdef HAS_NOT_CCTYPE_H
diff --git a/dev-cpp/antlr-cpp/files/2.7.7-libtool.patch b/dev-cpp/antlr-cpp/files/2.7.7-libtool.patch
new file mode 100644
index 000000000000..ea5e809f473f
--- /dev/null
+++ b/dev-cpp/antlr-cpp/files/2.7.7-libtool.patch
@@ -0,0 +1,21 @@
+diff -Naur antlr-2.7.7.orig/configure.in antlr-2.7.7/configure.in
+--- antlr-2.7.7.orig/configure.in 2006-11-01 21:37:18.000000000 +0000
++++ antlr-2.7.7/configure.in 2015-10-11 13:49:09.166308712 +0100
+@@ -13,6 +13,9 @@
+ AC_CONFIG_SRCDIR([LICENSE.txt])
+ AC_CONFIG_AUX_DIR(scripts)
+
++LT_INIT
++AM_INIT_AUTOMAKE
++
+ ## This shall be the very first config file. Do not change
+ ## this.
+ AC_CONFIG_FILES([scripts/config.vars])
+@@ -841,7 +844,6 @@
+ AC_PROG_RANLIB
+
+ test -z "$MKDIR" && AC_PATH_PROG(MKDIR, mkdir$EXEEXT, mkdir$EXEEXT )
+-test -z "$RM" && AC_PATH_PROG(RM, rm$EXEEXT, rm$EXEEXT )
+
+ AX_PATH_PROGS(
+ [TAR],
diff --git a/dev-cpp/antlr-cpp/metadata.xml b/dev-cpp/antlr-cpp/metadata.xml
new file mode 100644
index 000000000000..97cde93b4249
--- /dev/null
+++ b/dev-cpp/antlr-cpp/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 type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">antlr/antlr3</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/asio/Manifest b/dev-cpp/asio/Manifest
new file mode 100644
index 000000000000..d5540b97421d
--- /dev/null
+++ b/dev-cpp/asio/Manifest
@@ -0,0 +1,3 @@
+DIST asio-1.10.8.tar.bz2 1270332 BLAKE2B 97e4a6a7c8b4562f10af1d122e9b08c12d567fd0447d1951a907f47f77832dcd42df4cb9b5b392feaaa2ea7c79d8bedfcf12e3052957ec012d8bb6b4d1347eb5 SHA512 d870686d2b19bec9925c311f2f0fd370e9797bbad252176a80a998f9c322ecd502b5081826105712e7caf87c03c3e6b70a0e219019e5bff46077d6e8c3c6db09
+DIST asio-1.14.0.tar.bz2 1473195 BLAKE2B e28960d585a1a84c6be7d6205be310bd2baab36e93630b9f5f4fba593377e57d6baf1c60e2503c46cd00ae73b20b622215358cae2068e86b62dac7e782210ecb SHA512 84855a06a3facc41e3c1c61be443d8b73a01afcb9bc3f1f444f0f3fd901ea1d5c932266ed94a031a0abd83171d5a6b83b6ab850e44aa31d175081a7e07b4793a
+DIST asio-1.16.1.tar.bz2 1493978 BLAKE2B 810fd735a0cbea8e07bfe30cbf02d44469c3c7eebed3822766c0a658fe8972681232afe4a6124537886fafd0769eecc40b8eabbcaa2771b84b93cda56329394d SHA512 e8cab449887e3e362f9d3c2aa1b1bbb2f81954aeaf2cd12cefe7f848cdc30e1a576130b49f551efd49611b9d4941e724baea42739c043e158626f3c982b75311
diff --git a/dev-cpp/asio/asio-1.10.8.ebuild b/dev-cpp/asio/asio-1.10.8.ebuild
new file mode 100644
index 000000000000..dcdcee8f9c29
--- /dev/null
+++ b/dev-cpp/asio/asio-1.10.8.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Asynchronous Network Library"
+HOMEPAGE="http://asio.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/${P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86"
+IUSE="doc examples ssl test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-libs/boost
+ ssl? ( dev-libs/openssl:0= )"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+
+ 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 || die
+ all:
+
+ install:
+
+ clean:
+ EOF
+ fi
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( doc/. )
+ default
+
+ if use examples; then
+ # Get rid of the object files
+ emake clean
+ dodoc -r src/examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-cpp/asio/asio-1.14.0.ebuild b/dev-cpp/asio/asio-1.14.0.ebuild
new file mode 100644
index 000000000000..9af756e04a9c
--- /dev/null
+++ b/dev-cpp/asio/asio-1.14.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Asynchronous Network Library"
+HOMEPAGE="https://think-async.com"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/${P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86"
+IUSE="doc examples libressl ssl test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-libs/boost
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+
+ 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 || die
+ all:
+
+ install:
+
+ clean:
+ EOF
+ fi
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( doc/. )
+ default
+
+ if use examples; then
+ # Get rid of the object files
+ emake clean
+ dodoc -r src/examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-cpp/asio/asio-1.16.1.ebuild b/dev-cpp/asio/asio-1.16.1.ebuild
new file mode 100644
index 000000000000..d14123c94662
--- /dev/null
+++ b/dev-cpp/asio/asio-1.16.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Asynchronous Network Library"
+HOMEPAGE="https://think-async.com"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/${P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="doc examples libressl ssl test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-libs/boost
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+
+ 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 || die
+ all:
+
+ install:
+
+ clean:
+ EOF
+ fi
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( doc/. )
+ default
+
+ if use examples; then
+ # Get rid of the object files
+ emake clean
+ dodoc -r src/examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-cpp/asio/metadata.xml b/dev-cpp/asio/metadata.xml
new file mode 100644
index 000000000000..5db6799a48c1
--- /dev/null
+++ b/dev-cpp/asio/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 type="person">
+ <email>alexey+gentoo@asokolov.org</email>
+ <name>Alexey Sokolov</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">chriskohlhoff/asio</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/atkmm/Manifest b/dev-cpp/atkmm/Manifest
new file mode 100644
index 000000000000..9cd32326a8eb
--- /dev/null
+++ b/dev-cpp/atkmm/Manifest
@@ -0,0 +1 @@
+DIST atkmm-2.28.0.tar.xz 891904 BLAKE2B 8172effa5f4dc542020b58d7e3d3bea66b0affa98db977e94249dfd8fa6c4fdea88cabb385dcfdb2d79874017c4e648a737413bae021121d1423d62e335d2737 SHA512 8457cff58648c3d3944d6a9fb400062985c70a714856a5d84d4553cb6b1202bdc47aa48c612851fea1cc1b7ab59381116c65d2a22212907e3c4b7090601946bc
diff --git a/dev-cpp/atkmm/atkmm-2.28.0.ebuild b/dev-cpp/atkmm/atkmm-2.28.0.ebuild
new file mode 100644
index 000000000000..ab767bba974a
--- /dev/null
+++ b/dev-cpp/atkmm/atkmm-2.28.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for the ATK library"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+COMMON_DEPEND="
+ >=dev-cpp/glibmm-2.46.2:2[doc?,${MULTILIB_USEDEP}]
+ >=dev-libs/atk-2.18.0[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ !<dev-cpp/gtkmm-2.22.0
+"
+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/metadata.xml b/dev-cpp/atkmm/metadata.xml
new file mode 100644
index 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/atkmm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/cairomm/Manifest b/dev-cpp/cairomm/Manifest
new file mode 100644
index 000000000000..392f5da7b25a
--- /dev/null
+++ b/dev-cpp/cairomm/Manifest
@@ -0,0 +1 @@
+DIST cairomm-1.12.0.tar.xz 789588 BLAKE2B 4c864705ce4b232a3dcaf7251cf22f7f9ac2f964253552cdac5a115bc7e085f38a58375e33f99ea03105b59d056a53e91ea9234c4c6b49d8701c01c8a1e12dc2 SHA512 750e05f079c2ee9786d1a1ddb66ff90405549a82aeb542d585f904f7147994a451950a77ecb563f290cf2358f7010360ab03d9aa3a319651615c48bd25aeb7e8
diff --git a/dev-cpp/cairomm/cairomm-1.12.0-r1.ebuild b/dev-cpp/cairomm/cairomm-1.12.0-r1.ebuild
new file mode 100644
index 000000000000..98407388284e
--- /dev/null
+++ b/dev-cpp/cairomm/cairomm-1.12.0-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+GCONF_DEBUG="no"
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ bindings for the Cairo vector graphics library"
+HOMEPAGE="https://cairographics.org/cairomm/"
+
+LICENSE="LGPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="aqua doc +svg X"
+
+RDEPEND="
+ >=x11-libs/cairo-1.12.10[aqua=,svg=,X=,${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.5.1:2[${MULTILIB_USEDEP}]
+"
+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
+
+ 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/metadata.xml b/dev-cpp/cairomm/metadata.xml
new file mode 100644
index 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/cairomm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/catch/Manifest b/dev-cpp/catch/Manifest
new file mode 100644
index 000000000000..078ea1be0db8
--- /dev/null
+++ b/dev-cpp/catch/Manifest
@@ -0,0 +1,4 @@
+DIST Catch-1.12.2.tar.gz 377265 BLAKE2B bc27b4daee950f8fb93d65f3aed032e72bc856ee27a8dc28c35b89e33f414d68ba4cf00951e476688eddf9e4c0514036bd6916fa6cfa9e3359e6c625984f114f SHA512 ed963cdca9fe307ee02928677f81cafcb41cd607faaa315182fdf898d0f2aa28f0be2141bd642f46fdfac400c38f6d065e00a595a1e5879fe2335c4a3851e844
+DIST Catch2-2.5.0.tar.gz 549328 BLAKE2B a32941a043a654228cc541dc675ad789f5b938ebc2d3177d1657f66f68fb175bec8c88a60ecba00e84eca74a7506dc83aed74ac89f7dde83213284eb4a497225 SHA512 420f1d1a5ea7b69be9fb316a8abe1fb7c7e78d44a982e883748f1e0c8d2a435c1518b6022742716019558a740f8b31977ed6a786b0293e0504206b016801cfe8
+DIST Catch2-2.7.0.tar.gz 569753 BLAKE2B cec11d79c85ac8a5577467ceb4722a2441a1dbd2fbe42fb06324113d2a6f9fadc12de351735900817274520bf8533ec245ba0a3686c8c1b4813cf3136d6d552f SHA512 ab6c816642a92418c76c8ddabf17eb0c19bef1dc6ac2405c820280d670ef1d78c9ae89909f5a36bf063f0939d253b7c6b5e845c1ac4e63b338927e125dee950d
+DIST Catch2-2.9.1.tar.gz 626539 BLAKE2B b68f17dba65cc8d1a842b105e5aa6a32e713df8d34c32b918e0588e6b87b8e3ae56f9130d1590795489afe2e29035c262a05795d0ee44c9e9ace2e814801821d SHA512 ea18eef1fece72518c8a46b89727f5d0545a15038957087324abe6421c682693379476ff46106132f080677ebcc1c9ead51a9cf25dced3bb576a33e4f6fae4f6
diff --git a/dev-cpp/catch/catch-1.12.2.ebuild b/dev-cpp/catch/catch-1.12.2.ebuild
new file mode 100644
index 000000000000..f0d846f42bdc
--- /dev/null
+++ b/dev-cpp/catch/catch-1.12.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/catchorg/Catch2.git"
+ EGIT_BRANCH="Catch1.x"
+else
+ MY_P=${PN^}-${PV}
+ SRC_URI="https://github.com/catchorg/Catch2/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+ KEYWORDS="amd64 ~ppc64 x86"
+
+ S="${WORKDIR}/${PN^}2-${PV}"
+fi
+
+DESCRIPTION="Modern C++ header-only framework for unit-tests"
+HOMEPAGE="https://github.com/catchorg/Catch2"
+
+LICENSE="Boost-1.0"
+SLOT="1"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="!<dev-cpp/catch-1.12.2:0"
+
+src_configure() {
+ local mycmakeargs=(
+ -DNO_SELFTEST=$(usex !test)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+ dodoc -r docs/.
+}
diff --git a/dev-cpp/catch/catch-1.9999.ebuild b/dev-cpp/catch/catch-1.9999.ebuild
new file mode 100644
index 000000000000..3514580992a3
--- /dev/null
+++ b/dev-cpp/catch/catch-1.9999.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/catchorg/Catch2.git"
+ EGIT_BRANCH="Catch1.x"
+else
+ MY_P=${PN^}-${PV}
+ SRC_URI="https://github.com/catchorg/Catch2/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~ppc64 ~x86"
+
+ S="${WORKDIR}/${PN^}2-${PV}"
+fi
+
+DESCRIPTION="Modern C++ header-only framework for unit-tests"
+HOMEPAGE="https://github.com/catchorg/Catch2"
+
+LICENSE="Boost-1.0"
+SLOT="1"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="!<dev-cpp/catch-1.12.2:0"
+
+src_configure() {
+ local mycmakeargs=(
+ -DNO_SELFTEST=$(usex !test)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+ dodoc -r docs/.
+}
diff --git a/dev-cpp/catch/catch-2.5.0.ebuild b/dev-cpp/catch/catch-2.5.0.ebuild
new file mode 100644
index 000000000000..e551fe4b0d20
--- /dev/null
+++ b/dev-cpp/catch/catch-2.5.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+
+inherit cmake-utils python-any-r1
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/catchorg/Catch2.git"
+else
+ MY_P=${PN^}2-${PV}
+ SRC_URI="https://github.com/catchorg/Catch2/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+ KEYWORDS="amd64 x86"
+
+ S=${WORKDIR}/${MY_P}
+fi
+
+DESCRIPTION="Modern C++ header-only framework for unit-tests"
+HOMEPAGE="https://github.com/catchorg/Catch2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( ${PYTHON_DEPS} )"
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCATCH_ENABLE_WERROR=OFF
+ -DBUILD_TESTING=$(usex test)
+ )
+ use test &&
+ mycmakeargs+=(-DPYTHON_EXECUTABLE="${PYTHON}")
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/catch/catch-2.7.0.ebuild b/dev-cpp/catch/catch-2.7.0.ebuild
new file mode 100644
index 000000000000..2467542c7d9b
--- /dev/null
+++ b/dev-cpp/catch/catch-2.7.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+
+inherit cmake-utils python-any-r1
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/catchorg/Catch2.git"
+else
+ MY_P=${PN^}2-${PV}
+ SRC_URI="https://github.com/catchorg/Catch2/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+
+ S=${WORKDIR}/${MY_P}
+fi
+
+DESCRIPTION="Modern C++ header-only framework for unit-tests"
+HOMEPAGE="https://github.com/catchorg/Catch2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( ${PYTHON_DEPS} )"
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCATCH_ENABLE_WERROR=OFF
+ -DBUILD_TESTING=$(usex test)
+ )
+ use test &&
+ mycmakeargs+=(-DPYTHON_EXECUTABLE="${PYTHON}")
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/catch/catch-2.9.1.ebuild b/dev-cpp/catch/catch-2.9.1.ebuild
new file mode 100644
index 000000000000..07de51f32521
--- /dev/null
+++ b/dev-cpp/catch/catch-2.9.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+
+inherit cmake-utils python-any-r1
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/catchorg/Catch2.git"
+else
+ MY_P=${PN^}2-${PV}
+ SRC_URI="https://github.com/catchorg/Catch2/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~ppc64 ~x86"
+
+ S=${WORKDIR}/${MY_P}
+fi
+
+DESCRIPTION="Modern C++ header-only framework for unit-tests"
+HOMEPAGE="https://github.com/catchorg/Catch2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( ${PYTHON_DEPS} )"
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCATCH_ENABLE_WERROR=OFF
+ -DBUILD_TESTING=$(usex test)
+ )
+ use test &&
+ mycmakeargs+=(-DPYTHON_EXECUTABLE="${PYTHON}")
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/catch/catch-9999.ebuild b/dev-cpp/catch/catch-9999.ebuild
new file mode 100644
index 000000000000..07de51f32521
--- /dev/null
+++ b/dev-cpp/catch/catch-9999.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+
+inherit cmake-utils python-any-r1
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/catchorg/Catch2.git"
+else
+ MY_P=${PN^}2-${PV}
+ SRC_URI="https://github.com/catchorg/Catch2/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~ppc64 ~x86"
+
+ S=${WORKDIR}/${MY_P}
+fi
+
+DESCRIPTION="Modern C++ header-only framework for unit-tests"
+HOMEPAGE="https://github.com/catchorg/Catch2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( ${PYTHON_DEPS} )"
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCATCH_ENABLE_WERROR=OFF
+ -DBUILD_TESTING=$(usex test)
+ )
+ use test &&
+ mycmakeargs+=(-DPYTHON_EXECUTABLE="${PYTHON}")
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/catch/metadata.xml b/dev-cpp/catch/metadata.xml
new file mode 100644
index 000000000000..4a279f662d71
--- /dev/null
+++ b/dev-cpp/catch/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 type="person">
+ <email>soap@gentoo.org</email>
+ <name>David Seifert</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">catchorg/Catch2</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/clucene/Manifest b/dev-cpp/clucene/Manifest
new file mode 100644
index 000000000000..be7c071bcf20
--- /dev/null
+++ b/dev-cpp/clucene/Manifest
@@ -0,0 +1 @@
+DIST clucene-core-2.3.3.4.tar.gz 2241498 BLAKE2B e7c02d3976fd8d722a81ad4c6d43363b9af0073aa68edb8303cada495f8b8514cb8c86a85f398f8c9ffc1f78a49c0718cde5af4145c32869572d21e8af633846 SHA512 1c9da9077edcebd46563bd9e47d330518e0b30061016650a759cfe051e9748fdad8932a472b1cca53a6adafed5f41656527271fc5f55ddfcefb558f0d83286b4
diff --git a/dev-cpp/clucene/clucene-2.3.3.4-r6.ebuild b/dev-cpp/clucene/clucene-2.3.3.4-r6.ebuild
new file mode 100644
index 000000000000..e0954ce94fb4
--- /dev/null
+++ b/dev-cpp/clucene/clucene-2.3.3.4-r6.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_PN="${PN}"-core
+MY_P="${MY_PN}"-"${PV}"
+
+inherit 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 arm64 hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+
+IUSE="debug doc static-libs"
+
+DEPEND="
+ doc? ( >=app-doc/doxygen-1.4.2 )
+"
+RDEPEND=""
+
+RESTRICT="test"
+
+DOCS=(AUTHORS ChangeLog README README.PACKAGE REQUESTS)
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-contrib.patch"
+ "${FILESDIR}/${P}-pkgconfig.patch"
+ "${FILESDIR}/${P}-gcc6.patch"
+ "${FILESDIR}/${P}-gmtime.patch"
+)
+
+src_prepare() {
+ cmake-utils_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/p/clucene/bugs/197/
+ local mycmakeargs=(
+ -DENABLE_ASCII_MODE=OFF
+ -DENABLE_PACKAGING=OFF
+ -DDISABLE_MULTITHREADING=OFF
+ -DBUILD_CONTRIBS_LIB=ON
+ "-DLIB_DESTINATION=${EPREFIX}/usr/$(get_libdir)"
+ -DENABLE_DEBUG=$(usex debug)
+ -DENABLE_CLDOCS=$(usex doc)
+ -DBUILD_STATIC_LIBRARIES=$(usex static-libs)
+ )
+
+ 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 000000000000..8fbb3c7164ab
--- /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-gcc6.patch b/dev-cpp/clucene/files/clucene-2.3.3.4-gcc6.patch
new file mode 100644
index 000000000000..b0b9ac1a327b
--- /dev/null
+++ b/dev-cpp/clucene/files/clucene-2.3.3.4-gcc6.patch
@@ -0,0 +1,28 @@
+From b5a1b3488a72abd250cbd5d4dfbeac3e3739c237 Mon Sep 17 00:00:00 2001
+From: Hodorgasm <nsane457@gmail.com>
+Date: Thu, 12 May 2016 20:38:12 -0400
+Subject: [PATCH] Support GCC-6
+
+Updated 2017-06-18 by mgorny to allow *any* gcc version so that
+we do not have to update the patch every second month.
+
+---
+ src/shared/cmake/MacroCheckGccVisibility.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/shared/cmake/MacroCheckGccVisibility.cmake b/src/shared/cmake/MacroCheckGccVisibility.cmake
+index 2022aa3..020f913 100644
+--- a/src/shared/cmake/MacroCheckGccVisibility.cmake
++++ b/src/shared/cmake/MacroCheckGccVisibility.cmake
+@@ -15,7 +15,7 @@ macro(MACRO_CHECK_GCC_VISIBILITY GccVisibility)
+ # get the gcc version
+ exec_program(${CMAKE_C_COMPILER} ARGS --version OUTPUT_VARIABLE _gcc_version_info)
+
+- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
++ string (REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" _gcc_version "${_gcc_version_info}")
+ if (NOT _gcc_version)
+
+ # clang reports: clang version 1.1 (trunk 95754)
+--
+2.8.2
+
diff --git a/dev-cpp/clucene/files/clucene-2.3.3.4-gmtime.patch b/dev-cpp/clucene/files/clucene-2.3.3.4-gmtime.patch
new file mode 100644
index 000000000000..d4c702bf217b
--- /dev/null
+++ b/dev-cpp/clucene/files/clucene-2.3.3.4-gmtime.patch
@@ -0,0 +1,12 @@
+diff -Naur clucene-core-2.3.3.4/src/core/CLucene/document/DateTools.cpp clucene-core-2.3.3.4.new/src/core/CLucene/document/DateTools.cpp
+--- clucene-core-2.3.3.4/src/core/CLucene/document/DateTools.cpp 2011-03-17 03:21:07.000000000 +0300
++++ clucene-core-2.3.3.4.new/src/core/CLucene/document/DateTools.cpp 2020-02-21 15:20:17.382575302 +0300
+@@ -9,6 +9,8 @@
+ #include "DateTools.h"
+ #include "CLucene/util/Misc.h"
+
++#include <ctime>
++
+ CL_NS_USE(util)
+ CL_NS_DEF(document)
+
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 000000000000..14563628ea41
--- /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 000000000000..8402cb62625e
--- /dev/null
+++ b/dev-cpp/clucene/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!--maintainer-needed-->
+ <upstream>
+ <remote-id type="sourceforge">clucene</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/commoncpp2/Manifest b/dev-cpp/commoncpp2/Manifest
new file mode 100644
index 000000000000..102921c445f7
--- /dev/null
+++ b/dev-cpp/commoncpp2/Manifest
@@ -0,0 +1 @@
+DIST commoncpp2-1.8.1.tar.gz 908678 BLAKE2B 93868286230b4b0507127627f0a1c24b4f340e4af50d7592774b57bfc7a8f1e31bacc0cee5d17b4237aac85be0265cf3aabd65708e988159daaac85b4145c398 SHA512 949823461d20429c2b0acfa22554a5a9dacc977e3ee097f34416f65d322df84fbdb27c644435c6c6caaed800347dfbe789cee7f19b39b306165c97b4f4012bfe
diff --git a/dev-cpp/commoncpp2/commoncpp2-1.8.1-r4.ebuild b/dev-cpp/commoncpp2/commoncpp2-1.8.1-r4.ebuild
new file mode 100644
index 000000000000..d8c63727a4e3
--- /dev/null
+++ b/dev-cpp/commoncpp2/commoncpp2-1.8.1-r4.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="C++ library offering portable support for system-related services"
+HOMEPAGE="https://www.gnu.org/software/commoncpp/"
+SRC_URI="mirror://gnu/commoncpp/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE="debug doc examples gnutls ipv6 libressl ssl static-libs"
+
+RDEPEND="
+ sys-libs/zlib:=
+ ssl? (
+ gnutls? (
+ dev-libs/libgcrypt:0=
+ net-libs/gnutls:=
+ )
+ !gnutls? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ )"
+DEPEND="${RDEPEND}
+ doc? ( >=app-doc/doxygen-1.3.6 )"
+
+PATCHES=(
+ "${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"
+ "${FILESDIR}/1.8.1-libgcrypt.patch"
+ "${FILESDIR}/1.8.1-fix-c++14.patch"
+ "${FILESDIR}/1.8.1-gnutls-3.4.patch"
+ "${FILESDIR}/1.8.1-libressl.patch" # bug 674416
+ "${FILESDIR}/1.8.1-fix-gcc9.patch" # bug 686012
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_with ipv6) \
+ $(use_with ssl $(usex gnutls gnutls openssl)) \
+ $(use_enable static-libs static) \
+ $(use_with doc doxygen)
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ default
+
+ # package provides .pc files
+ find "${D}" -name '*.la' -delete || die
+
+ dodoc COPYING.addendum
+
+ if use examples; then
+ docinto examples
+ dodoc demo/{*.cpp,*.h,*.xml,README}
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
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 000000000000..5132554aea1c
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.0-glibc212.patch
@@ -0,0 +1,12 @@
+http://bugs.gentoo.org/334135
+
+--- a/src/applog.cpp
++++ b/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 000000000000..c64ba2f65fa9
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-autoconf-update.patch
@@ -0,0 +1,61 @@
+--- 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 @@
+ 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
+@@ -395,10 +396,11 @@
+ #endif
+
+ ])
+-
++AC_ARG_WITH([doxygen],
++ AS_HELP_STRING([--without-doxygen], [Do not build documentation]))
+ AC_PATH_PROG(DOXYGEN, doxygen, no)
+ AC_SUBST(DOXYGEN)
+-AM_CONDITIONAL(DOXY, test "$DOXYGEN" != "no")
++AM_CONDITIONAL([DOXY], [test "x$with_doxygen" != "xno"])
+
+ AM_CONDITIONAL(GETOPT_LONG, [test ! -z "$LIBGETOPTOBJS"])
+
+@@ -408,10 +410,11 @@
+ 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 000000000000..b6ebf0e0f4a4
--- /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 000000000000..e68b00576cdb
--- /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-fix-c++14.patch b/dev-cpp/commoncpp2/files/1.8.1-fix-c++14.patch
new file mode 100644
index 000000000000..cc921060b303
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-fix-c++14.patch
@@ -0,0 +1,52 @@
+Fix building with C++14, which errors out due changed noexcept()
+semantics for dtors caught by -Werror=terminate.
+
+See also: https://bugs.gentoo.org/show_bug.cgi?id=595422
+
+--- a/src/nat.cpp
++++ b/src/nat.cpp
+@@ -145,11 +145,11 @@
+ "nat lookup successful",
+ "nat address not in table",
+ "nat not supported/implemented",
+- "unable to open device "NAT_DEVICE,
++ "unable to open device " NAT_DEVICE,
+ "unable to get socket name",
+ "unable to get peer name",
+ "unable to get socket type",
+- "unable to lookup, nat "NAT_SYSCALL" failed",
++ "unable to lookup, nat " NAT_SYSCALL " failed",
+ "unkown nat error code"
+ };
+
+--- a/src/socket.cpp
++++ b/src/socket.cpp
+@@ -2971,12 +2971,7 @@
+
+ TCPStream::~TCPStream()
+ {
+-#ifdef CCXX_EXCEPTIONS
+- try { endStream(); }
+- catch( ... ) { if ( ! std::uncaught_exception()) throw;};
+-#else
+- endStream();
+-#endif
++ endStream();
+ }
+
+ #ifdef HAVE_GETADDRINFO
+--- a/src/ssl.cpp
++++ b/src/ssl.cpp
+@@ -441,12 +441,7 @@
+
+ SSLStream::~SSLStream()
+ {
+-#ifdef CCXX_EXCEPTIONS
+- try { endStream(); }
+- catch( ...) { if ( ! std::uncaught_exception()) throw;};
+-#else
+ endStream();
+-#endif
+ }
+
+ #ifdef CCXX_NAMESPACES
diff --git a/dev-cpp/commoncpp2/files/1.8.1-fix-gcc9.patch b/dev-cpp/commoncpp2/files/1.8.1-fix-gcc9.patch
new file mode 100644
index 000000000000..795e44178c64
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-fix-gcc9.patch
@@ -0,0 +1,28 @@
+https://bugs.gentoo.org/686012
+In file included from ../inc/cc++/thread.h:50,
+ from thread.cpp:41:
+../inc/cc++/string.h:734:35: error: friend declaration of ‘std::istream& getline(std::istream&, ost::String&, char, size_t)’ specifies default arguments and isn’t a definition [-fpermissive]
+ 734 | friend __EXPORT std::istream &getline(std::istream &is, String &str, char delim = '\n', size_t size = 0);
+ | ^~~~~~~
+
+--- a/inc/cc++/string.h
++++ b/inc/cc++/string.h
+@@ -58,6 +58,9 @@
+
+ class MemPager;
+
++class String;
++__EXPORT std::istream &getline(std::istream &is, String &str, char delim = '\n', size_t size = 0);
++
+ /**
+ * This is a generic and portable string class. It uses optimized
+ * memory allocation strategies to efficiently handle smaller string
+@@ -731,7 +734,7 @@
+ * @param delim deliminator to use.
+ * @param size optional size limitor.
+ */
+- friend __EXPORT std::istream &getline(std::istream &is, String &str, char delim = '\n', size_t size = 0);
++ friend std::istream &getline(std::istream &is, String &str, char delim, size_t size);
+
+ /**
+ * Stream the content of our string variable directly to a C++
diff --git a/dev-cpp/commoncpp2/files/1.8.1-gnutls-3.4.patch b/dev-cpp/commoncpp2/files/1.8.1-gnutls-3.4.patch
new file mode 100644
index 000000000000..b7365b822065
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-gnutls-3.4.patch
@@ -0,0 +1,36 @@
+From ba702b6034444c2e30b0990d06e28bb2dea8ecb7 Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 4 Mar 2017 01:36:23 +0200
+Subject: [PATCH] ssl: support gnutls-3.4
+
+Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
+---
+ src/ssl.cpp | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/src/ssl.cpp b/src/ssl.cpp
+index 5bf526d..38ef0a7 100644
+--- a/src/ssl.cpp
++++ b/src/ssl.cpp
+@@ -344,9 +344,6 @@ ssize_t SSLStream::readData(void *target, size_t size, char separator, timeout_t
+ #ifdef CCXX_GNUTLS
+ bool SSLStream::getSession(void)
+ {
+- const int cert_priority[3] =
+- {GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0};
+-
+ if(ssl)
+ return true;
+
+@@ -362,7 +359,7 @@ bool SSLStream::getSession(void)
+
+ gnutls_set_default_priority(ssl->session);
+ gnutls_certificate_allocate_credentials(&ssl->xcred);
+- gnutls_certificate_type_set_priority(ssl->session, cert_priority);
++ gnutls_priority_set_direct(ssl->session, "NORMAL:+CTYPE-OPENPGP", NULL);
+ gnutls_credentials_set(ssl->session, GNUTLS_CRD_CERTIFICATE, ssl->xcred);
+ gnutls_transport_set_ptr(ssl->session, (gnutls_transport_ptr)so);
+ if(gnutls_handshake(ssl->session)) {
+--
+2.10.2
+
diff --git a/dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch b/dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch
new file mode 100644
index 000000000000..08e24e1a06a9
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch
@@ -0,0 +1,48 @@
+--- a/src/ssl.cpp
++++ b/src/ssl.cpp
+@@ -99,35 +99,7 @@
+ return 0;
+ }
+
+-extern "C" {
+- static int _wrap_mutex_init(void **priv)
+- {
+- return _gcry_mutex_init((Mutex **)(priv));
+- }
+-
+- static int _wrap_mutex_destroy(void **priv)
+- {
+- return _gcry_mutex_destroy((Mutex **)(priv));
+- }
+-
+- static int _wrap_mutex_lock(void **priv)
+- {
+- return _gcry_mutex_lock((Mutex **)(priv));
+- }
+-
+- static int _wrap_mutex_unlock(void **priv)
+- {
+- return _gcry_mutex_unlock((Mutex **)(priv));
+- }
+-
+- static struct gcry_thread_cbs _gcry_threads =
+- {
+- GCRY_THREAD_OPTION_PTHREAD, NULL,
+- _wrap_mutex_init, _wrap_mutex_destroy,
+- _wrap_mutex_lock, _wrap_mutex_unlock
+- };
+-
+-};
++GCRY_THREAD_OPTION_PTHREAD_IMPL;
+
+ #endif
+
+@@ -135,7 +107,7 @@
+ public:
+ _ssl_global() {
+ #ifndef WIN32
+- gcry_control(GCRYCTL_SET_THREAD_CBS, &_gcry_threads);
++ gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
+ #endif
+ gnutls_global_init();
+ }
diff --git a/dev-cpp/commoncpp2/files/1.8.1-libressl.patch b/dev-cpp/commoncpp2/files/1.8.1-libressl.patch
new file mode 100644
index 000000000000..9779a53d8fa0
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-libressl.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Submitted [bug-commoncpp@gnu.org]
+
+diff --git a/src/ssl.cpp b/src/ssl.cpp
+index 5bf526d..3cd7040 100644
+--- a/src/ssl.cpp
++++ b/src/ssl.cpp
+@@ -386,7 +386,7 @@ bool SSLStream::getSession(void)
+ if(so == INVALID_SOCKET)
+ return false;
+
+- ctx = SSL_CTX_new(SSLv3_client_method());
++ ctx = SSL_CTX_new(SSLv23_client_method());
+ if(!ctx) {
+ SSL_CTX_free(ctx);
+ return false;
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 000000000000..149677ca89b4
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-parallel-build.patch
@@ -0,0 +1,11 @@
+--- a/src/Makefile.am
++++ b/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 000000000000..d85b4252fc33
--- /dev/null
+++ b/dev-cpp/commoncpp2/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<!-- maintainer-needed -->
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/cpp-hocon/Manifest b/dev-cpp/cpp-hocon/Manifest
new file mode 100644
index 000000000000..09b5ddcfadea
--- /dev/null
+++ b/dev-cpp/cpp-hocon/Manifest
@@ -0,0 +1 @@
+DIST cpp-hocon-0.2.1.tar.gz 158108 BLAKE2B 4b7097768d4fcbc72df5c63fb036b12bb08108a0e1ef57ec182c64c2aa337b56197c8c10dea8f26f64a273b578d4c1b53a898024558d95e99d2ba1b3778c2414 SHA512 fcc377da7923b77436a6f2787d5b8b1b573f239de4f059c4a5949cbb1a755fd12024b9155f5e44cf60141181942f3e9a2a8fad07ee0b1d516fe2cd4a88d4ac8b
diff --git a/dev-cpp/cpp-hocon/cpp-hocon-0.2.1.ebuild b/dev-cpp/cpp-hocon/cpp-hocon-0.2.1.ebuild
new file mode 100644
index 000000000000..dcede0fa5722
--- /dev/null
+++ b/dev-cpp/cpp-hocon/cpp-hocon-0.2.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+DESCRIPTION="Provides C++ support for the HOCON configuration file format"
+HOMEPAGE="https://github.com/puppetlabs/cpp-hocon"
+SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}"
+KEYWORDS="amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc x86"
+IUSE="debug"
+
+DEPEND="
+ >=dev-libs/boost-1.54:=[nls]
+ >=dev-libs/leatherman-0.9.3:=
+ "
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.2.1-cmake.patch )
diff --git a/dev-cpp/cpp-hocon/files/cpp-hocon-0.2.1-cmake.patch b/dev-cpp/cpp-hocon/files/cpp-hocon-0.2.1-cmake.patch
new file mode 100644
index 000000000000..8e0ddb924a46
--- /dev/null
+++ b/dev-cpp/cpp-hocon/files/cpp-hocon-0.2.1-cmake.patch
@@ -0,0 +1,48 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,6 +10,8 @@
+ string(TOUPPER ${PROJECT_C_NAME} PROJECT_NAME_UPPER)
+ string(TOLOWER ${PROJECT_C_NAME} PROJECT_NAME_LOWER)
+
++include(GNUInstallDirs)
++
+ # Common cmake setup
+ if (NOT CMAKE_BUILD_TYPE)
+ message(STATUS "Defaulting to a release build.")
+@@ -42,7 +44,7 @@
+ set(BOOST_COMPONENTS regex)
+ endif()
+
+-list(APPEND BOOST_COMPONENTS thread date_time chrono system program_options)
++list(APPEND BOOST_COMPONENTS thread date_time chrono filesystem system program_options)
+
+ # Add other dependencies
+ find_package(Boost 1.54 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -77,7 +77,10 @@
+ set_target_properties(libprojectsrc PROPERTIES POSITION_INDEPENDENT_CODE true)
+
+ add_library(lib${PROJECT_NAME} $<TARGET_OBJECTS:libprojectsrc>)
+-set_target_properties(lib${PROJECT_NAME} PROPERTIES VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
++set_target_properties(
++ lib${PROJECT_NAME}
++ PROPERTIES VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
++ OUTPUT_NAME ${PROJECT_NAME})
+ target_link_libraries(lib${PROJECT_NAME}
+ ${LEATHERMAN_LIBRARIES}
+ ${Boost_LIBRARIES}
+@@ -88,7 +91,11 @@
+ symbol_exports(lib${PROJECT_NAME} "${CMAKE_CURRENT_LIST_DIR}/inc/hocon/export.h")
+
+ # This correctly handles DLL installation on Windows.
+-leatherman_install(lib${PROJECT_NAME})
+-install(DIRECTORY inc/hocon DESTINATION include)
++install(
++ TARGETS lib${PROJECT_NAME}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
++install(DIRECTORY inc/hocon DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+ add_subdirectory(tests)
diff --git a/dev-cpp/cpp-hocon/metadata.xml b/dev-cpp/cpp-hocon/metadata.xml
new file mode 100644
index 000000000000..a03bf94a22ed
--- /dev/null
+++ b/dev-cpp/cpp-hocon/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 type="person">
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">puppetlabs/cpp-hocon</remote-id>
+ </upstream>
+ <longdescription lang="en">
+ A C++ port of the Typesafe Config library.
+ </longdescription>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/cpp-taskflow/Manifest b/dev-cpp/cpp-taskflow/Manifest
new file mode 100644
index 000000000000..4c62f183ab25
--- /dev/null
+++ b/dev-cpp/cpp-taskflow/Manifest
@@ -0,0 +1 @@
+DIST cpp-taskflow-2.4.0.tar.gz 76993334 BLAKE2B 8f257165ab72dbe6c1cf6a86886669008e9f16f1dfd4871defc452bdb9dfa3e45ab9bfbbdc874b4ba566a2a7d8984a666ce2933b2c6d2215467f7fbfa03ac520 SHA512 dd6c7500e39d7058871280d12e120bd28d9609e5289f1d7851b3b59e2c1bfe74d3040d902bd5b26895e558b563c8abad878e7bc343e199e7356940c02a64217f
diff --git a/dev-cpp/cpp-taskflow/cpp-taskflow-2.4.0-r1.ebuild b/dev-cpp/cpp-taskflow/cpp-taskflow-2.4.0-r1.ebuild
new file mode 100644
index 000000000000..b3df053c1da1
--- /dev/null
+++ b/dev-cpp/cpp-taskflow/cpp-taskflow-2.4.0-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+DESCRIPTION="Modern C++ Parallel Task Programming"
+HOMEPAGE="https://cpp-taskflow.github.io"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=""
+DEPEND=""
+
+PATCHES=(
+ "${FILESDIR}"/${P}-do_not_compile_examples.patch
+ "${FILESDIR}"/${P}-fix_installation_path.patch
+)
+
+HTML_DOCS=( docs/. )
+
+src_install() {
+ cmake-utils_src_install
+
+ if $(use doc); then
+ einstalldocs
+ fi
+}
diff --git a/dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-do_not_compile_examples.patch b/dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-do_not_compile_examples.patch
new file mode 100644
index 000000000000..99f4658adfe4
--- /dev/null
+++ b/dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-do_not_compile_examples.patch
@@ -0,0 +1,82 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1bf8ed3..190dabe 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -223,76 +223,10 @@ target_include_directories(${PROJECT_NAME} INTERFACE
+ $<INSTALL_INTERFACE:include/>
+ )
+
+-# -----------------------------------------------------------------------------
+-# Example program
+-# -----------------------------------------------------------------------------
+-
+-message(STATUS "Building examples ...")
+-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TF_EXAMPLE_DIR})
+-
+-add_executable(simple ${TF_EXAMPLE_DIR}/simple.cpp)
+-target_link_libraries(
+- simple ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(observer ${TF_EXAMPLE_DIR}/observer.cpp)
+-target_link_libraries(
+- observer ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(subflow ${TF_EXAMPLE_DIR}/subflow.cpp)
+-target_link_libraries(
+- subflow ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(condition ${TF_EXAMPLE_DIR}/condition.cpp)
+-target_link_libraries(
+- condition ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(visualization ${TF_EXAMPLE_DIR}/visualization.cpp)
+-target_link_libraries(
+- visualization ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(reduce ${TF_EXAMPLE_DIR}/reduce.cpp)
+-target_link_libraries(
+- reduce ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(parallel_for ${TF_EXAMPLE_DIR}/parallel_for.cpp)
+-target_link_libraries(
+- parallel_for ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(run ${TF_EXAMPLE_DIR}/run.cpp)
+-target_link_libraries(
+- run ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(composition ${TF_EXAMPLE_DIR}/composition.cpp)
+-target_link_libraries(
+- composition ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-#### CUDA examples
+-if(${TF_ENABLE_CUDA})
+-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TF_EXAMPLE_DIR}/cuda)
+-
+-add_executable(saxpy ${TF_EXAMPLE_DIR}/cuda/saxpy.cu)
+-target_link_libraries(
+- saxpy ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-
+-add_executable(device_property ${TF_EXAMPLE_DIR}/cuda/device_property.cu)
+-target_link_libraries(
+- device_property ${PROJECT_NAME} Threads::Threads tf::default_settings
+-)
+-endif(${TF_ENABLE_CUDA})
+-
+ # -----------------------------------------------------------------------------
+ # Unittest
+ # -----------------------------------------------------------------------------
++
+ enable_testing()
+ message(STATUS "Building unit tests ...")
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TF_UTEST_DIR})
diff --git a/dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-fix_installation_path.patch b/dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-fix_installation_path.patch
new file mode 100644
index 000000000000..f68e572f5ab2
--- /dev/null
+++ b/dev-cpp/cpp-taskflow/files/cpp-taskflow-2.4.0-fix_installation_path.patch
@@ -0,0 +1,22 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 190dabe..6d613d6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,7 +6,7 @@ MESSAGE(STATUS "CMAKE_ROOT: " ${CMAKE_ROOT})
+ #_cmake_modify_IGNORE set(CMAKE_VERBOSE_MAKEFILE ON)
+
+ # Project name
+-project(Cpp-Taskflow VERSION 2.3.1 LANGUAGES CXX)
++project(Cpp-Taskflow VERSION 2.4.0 LANGUAGES CXX)
+
+ # build options
+ option(TF_ENABLE_CUDA "Enables build of cuda code" OFF)
+@@ -748,7 +748,7 @@ write_basic_package_version_file(
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+- DESTINATION ${TF_LIB_INSTALL_DIR}/cmake
++ DESTINATION ${TF_LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}
+ )
+
+
diff --git a/dev-cpp/cpp-taskflow/metadata.xml b/dev-cpp/cpp-taskflow/metadata.xml
new file mode 100644
index 000000000000..01beb3a31f8e
--- /dev/null
+++ b/dev-cpp/cpp-taskflow/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <longdescription>
+ Cpp-Taskflow is faster, more expressive, and easier for drop-in
+ integration than many of existing task programming frameworks in
+ handling complex parallel workloads.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">cpp-taskflow/cpp-taskflow</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/ctemplate/Manifest b/dev-cpp/ctemplate/Manifest
new file mode 100644
index 000000000000..74737dea1ace
--- /dev/null
+++ b/dev-cpp/ctemplate/Manifest
@@ -0,0 +1 @@
+DIST ctemplate-2.3.tar.bz2 564389 BLAKE2B e0c95ac534eb0b7fdff3e87e08f3b1b8aa735bec8eef05bebcf87a51375cbc93e768a18ba005248edda023869b21679dbadaf3d6462e71666fa5d85b96172851 SHA512 546645389a8bfed59686b62b43cb7d53714ac98e1b75311c217bb0f3b6201d5d486766b1ce7e35bf15032372e45c36b27008f54085bd0c9ef0dd0b7e04b8e3f5
diff --git a/dev-cpp/ctemplate/ctemplate-2.3-r1.ebuild b/dev-cpp/ctemplate/ctemplate-2.3-r1.ebuild
new file mode 100644
index 000000000000..36ba44df7ed2
--- /dev/null
+++ b/dev-cpp/ctemplate/ctemplate-2.3-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools elisp-common python-any-r1
+
+DESCRIPTION="A simple but powerful template language for C++"
+HOMEPAGE="https://github.com/olafvdspek/ctemplate"
+SRC_URI="https://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="
+ emacs? ( >=app-editors/emacs-23.1:* )
+ vim-syntax? ( >=app-editors/vim-core-7 )"
+
+SITEFILE="70ctemplate-gentoo.el"
+
+# Some tests are broken in 2.3
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${PN}-2.3-fix-build-system.patch )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_compile() {
+ default
+
+ if use emacs; then
+ elisp-compile contrib/tpl-mode.el
+ fi
+}
+
+src_install() {
+ default
+ if ! use doc; then
+ rm -r "${ED%/}"/usr/share/doc/${PF}/html || die
+ fi
+
+ if use vim-syntax; then
+ cd "${S}/contrib" || die
+ sh highlighting.vim || die "unpacking vim scripts failed"
+ insinto /usr/share/vim/vimfiles
+ doins -r .vim/.
+ fi
+
+ if use emacs; then
+ cd "${S}/contrib" || die
+ elisp-install ${PN} tpl-mode.el tpl-mode.elc
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ # package provides .pc files
+ find "${D}" -name '*.la' -delete || die
+}
+
+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 000000000000..a7fce964c3e4
--- /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/files/ctemplate-2.3-fix-build-system.patch b/dev-cpp/ctemplate/files/ctemplate-2.3-fix-build-system.patch
new file mode 100644
index 000000000000..4178f5ed3655
--- /dev/null
+++ b/dev-cpp/ctemplate/files/ctemplate-2.3-fix-build-system.patch
@@ -0,0 +1,29 @@
+* Do not override $(docdir) as userflag in the GNU conventions
+* Only build tests programs when running 'make check'
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -54,12 +54,11 @@
+ src/ctemplate/per_expand_data.h.in \
+ src/ctemplate/str_ref.h.in
+
+-docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
+ ## This is for HTML and other documentation you want to install.
+ ## Add your documentation files (in doc/) in addition to these
+ ## top-level boilerplate files. Also add a TODO file if you have one.
+-dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README README_windows.txt \
+- doc/designstyle.css doc/index.html \
++dist_doc_DATA = AUTHORS ChangeLog NEWS README README_windows.txt
++dist_html_DATA = doc/designstyle.css doc/index.html \
+ doc/howto.html doc/guide.html doc/reference.html \
+ doc/tips.html doc/example.html doc/auto_escape.html \
+ doc/xss_resources.html
+@@ -452,7 +451,7 @@
+
+ ## This should always include $(TESTS), but may also include other
+ ## binaries that you compile but don't want automatically installed.
+-noinst_PROGRAMS = $(TESTS)
++check_PROGRAMS = $(TESTS)
+
+ rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec
+ @cd packages && ./rpm.sh ${PACKAGE} ${VERSION}
diff --git a/dev-cpp/ctemplate/metadata.xml b/dev-cpp/ctemplate/metadata.xml
new file mode 100644
index 000000000000..f04602c23d7b
--- /dev/null
+++ b/dev-cpp/ctemplate/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-needed -->
+ <upstream>
+ <remote-id type="google-code">google-ctemplate</remote-id>
+ <remote-id type="github">olafvdspek/ctemplate</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/eigen/Manifest b/dev-cpp/eigen/Manifest
new file mode 100644
index 000000000000..81084cf0e54e
--- /dev/null
+++ b/dev-cpp/eigen/Manifest
@@ -0,0 +1 @@
+DIST eigen-3.3.7.tar.bz2 1665168 BLAKE2B 544d35d1c7a4125affa094c6aa372c2aeca4e99bc60c496ff393d538c1c467b454491a772121450e3a1a43a582d073b4b7584918354d0b9175121fde88947c4b SHA512 c12bfd034d0a1112bf2df3f773ad98f36b2b53fbbfceac5f143ee1793322746fb8a6546d7db7da2a1000da6a535bd8cea0c4125b549afc90a6570743b02dcf3d
diff --git a/dev-cpp/eigen/eigen-3.3.7.ebuild b/dev-cpp/eigen/eigen-3.3.7.ebuild
new file mode 100644
index 000000000000..8d2a3fc5fac9
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.3.7.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+FORTRAN_NEEDED="test"
+inherit cmake-utils cuda fortran-2
+
+DESCRIPTION="C++ template library for linear algebra"
+HOMEPAGE="http://eigen.tuxfamily.org/"
+SRC_URI="https://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="MPL-2.0"
+SLOT="3"
+KEYWORDS="amd64 ~arm arm64 ~ia64 ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="c++11 cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_ppc_vsx cuda debug doc openmp test" #zvector
+RESTRICT="!test? ( test )"
+
+RDEPEND="!dev-cpp/eigen:0"
+DEPEND="
+ cuda? ( dev-util/nvidia-cuda-toolkit )
+ doc? (
+ app-doc/doxygen[dot]
+ dev-texlive/texlive-bibtexextra
+ dev-texlive/texlive-fontsextra
+ dev-texlive/texlive-fontutils
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexextra
+ )
+ test? (
+ dev-libs/gmp:0
+ dev-libs/mpfr:0
+ media-libs/freeglut
+ media-libs/glew
+ sci-libs/adolc[sparse]
+ sci-libs/cholmod
+ sci-libs/fftw:3.0
+ sci-libs/pastix
+ sci-libs/umfpack
+ sci-libs/scotch
+ sci-libs/spqr
+ sci-libs/superlu
+ virtual/opengl
+ virtual/pkgconfig
+ )
+"
+# Missing:
+# METIS-5
+# GOOGLEHASH
+
+src_unpack() {
+ default
+ mv ${PN}* ${P} || die
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+
+ sed -e 's:-g2::g' \
+ -i cmake/EigenConfigureTesting.cmake || die
+
+ sed -e "/add_subdirectory(demos/d" \
+ -i CMakeLists.txt || die
+
+ if ! use test; then
+ sed -e "/add_subdirectory(test/d" \
+ -i CMakeLists.txt || die
+
+ sed -e "/add_subdirectory(blas/d" \
+ -e "/add_subdirectory(lapack/d" \
+ -i CMakeLists.txt || die
+ fi
+ sed -e "/Unknown build type/d" \
+ -i CMakeLists.txt || die
+
+ use cuda && cuda_src_prepare
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ use doc && cmake-utils_src_compile doc
+}
+
+src_test() {
+ local mycmakeargs=(
+ -DEIGEN_TEST_NOQT=ON
+ -DEIGEN_TEST_ALTIVEC="$(usex cpu_flags_ppc_altivec)"
+ -DEIGEN_TEST_CXX11="$(usex c++11)"
+ -DEIGEN_TEST_CUDA="$(usex cuda)"
+ -DEIGEN_TEST_OPENMP="$(usex openmp)"
+ -DEIGEN_TEST_NEON64="$(usex cpu_flags_arm_neon)"
+ -DEIGEN_TEST_VSX="$(usex cpu_flags_ppc_vsx)"
+ )
+ cmake-utils_src_configure
+ cmake-utils_src_compile blas
+ cmake-utils_src_compile buildtests
+ cmake-utils_src_test
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+ cmake-utils_src_install
+
+ # 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/metadata.xml b/dev-cpp/eigen/metadata.xml
new file mode 100644
index 000000000000..f1254b8bd25d
--- /dev/null
+++ b/dev-cpp/eigen/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <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>
+ <use>
+ <flag name="c++11">Build using the C++11 standard</flag>
+ <flag name="cuda">Build with cuda support</flag>
+ </use>
+ <upstream>
+ <remote-id type="bitbucket">eigen/eigen</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/gconfmm/Manifest b/dev-cpp/gconfmm/Manifest
new file mode 100644
index 000000000000..a78d8f8f629d
--- /dev/null
+++ b/dev-cpp/gconfmm/Manifest
@@ -0,0 +1 @@
+DIST gconfmm-2.28.3.tar.bz2 471125 BLAKE2B 834d63ee91ee6849970ce612c387957607bb3e723afb06b0ee8dad0336ae81c3a4c40a81846d6abbb425b5f3f0cbad026189d563a814d8acd1010f3b1dbdfa93 SHA512 0fd3a43373dfdf514eca61537c19dafd4ad582d2ec6bb325652766fba90ed723feff6daf93effcdf20f917c573131d58c16f1a826194f653864a701bb8a57097
diff --git a/dev-cpp/gconfmm/gconfmm-2.28.3-r1.ebuild b/dev-cpp/gconfmm/gconfmm-2.28.3-r1.ebuild
new file mode 100644
index 000000000000..5fc75bb2c584
--- /dev/null
+++ b/dev-cpp/gconfmm/gconfmm-2.28.3-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit flag-o-matic gnome2
+
+DESCRIPTION="C++ bindings for GConf"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~ia64 ppc ppc64 sparc x86"
+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
+"
+
+src_configure() {
+ append-cxxflags -std=c++11 #568580
+ gnome2_src_configure \
+ $(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 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/gconfmm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/gflags/Manifest b/dev-cpp/gflags/Manifest
new file mode 100644
index 000000000000..8613f55b43d1
--- /dev/null
+++ b/dev-cpp/gflags/Manifest
@@ -0,0 +1,2 @@
+DIST gflags-2.2.0.tar.gz 96408 BLAKE2B 571f07dd0972cec201eae8ce66d5e0592abb6ddb81bcf3c539f38861f0cd379de2db20ba99eab885ba030235938816d7a61e589b74a61743de7cdb2710646854 SHA512 e2106ca70ff539024f888bca12487b3bf7f4f51928acf5ae3e1022f6bbd5e3b7882196ec50b609fd52f739e1f7b13eec7d4b3535d8216ec019a3577de6b4228d
+DIST gflags-2.2.1.tar.gz 96985 BLAKE2B 065dac9cf5d878e4179cb6d56ddf240052a552b72036fd06cb83197d9772a9b97fa544f809c6e1efd6f9ad8cd0222872fc6292c44bc013c5f70e235bcc5b290c SHA512 e919cbdcff1f993ddbfa9c06d8e595566a4717c27ff62f388a64c0e6b4683a93211c24ce78485eae84c2c76053341574064e6c56af185fc2782e2816b26e1fc9
diff --git a/dev-cpp/gflags/gflags-2.2.0.ebuild b/dev-cpp/gflags/gflags-2.2.0.ebuild
new file mode 100644
index 000000000000..6bf713cbeaea
--- /dev/null
+++ b/dev-cpp/gflags/gflags-2.2.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-multilib
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/gflags/gflags.git"
+else
+ SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="Google's C++ argument parsing library"
+HOMEPAGE="http://gflags.github.io/gflags/"
+
+LICENSE="BSD"
+SLOT="0/2.2"
+IUSE="static-libs test"
+RESTRICT="!test? ( test )"
+
+# AUTHORS.txt only links the google group
+DOCS=( ChangeLog.txt README.md )
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DBUILD_STATIC_LIBS=$(usex static-libs)
+ -DBUILD_TESTING=$(usex test)
+ # avoid installing .cmake/packages, e.g.:
+ # >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
+ -DREGISTER_INSTALL_PREFIX=OFF
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/gflags/gflags-2.2.1-r1.ebuild b/dev-cpp/gflags/gflags-2.2.1-r1.ebuild
new file mode 100644
index 000000000000..3a7f4b44bc0e
--- /dev/null
+++ b/dev-cpp/gflags/gflags-2.2.1-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-multilib
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/gflags/gflags"
+else
+ SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="Google's C++ argument parsing library"
+HOMEPAGE="http://gflags.github.io/gflags/"
+
+LICENSE="BSD"
+SLOT="0/2.2"
+IUSE="static-libs test"
+RESTRICT="!test? ( test )"
+
+# AUTHORS.txt only links the google group
+DOCS=( ChangeLog.txt README.md )
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_STATIC_LIBS=$(usex static-libs)
+ -DBUILD_TESTING=$(usex test)
+ # avoid installing .cmake/packages, e.g.:
+ # >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
+ -DREGISTER_INSTALL_PREFIX=OFF
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/gflags/gflags-2.2.1.ebuild b/dev-cpp/gflags/gflags-2.2.1.ebuild
new file mode 100644
index 000000000000..5425bbe89abf
--- /dev/null
+++ b/dev-cpp/gflags/gflags-2.2.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit cmake-multilib
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/gflags/gflags"
+else
+ SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="Google's C++ argument parsing library"
+HOMEPAGE="http://gflags.github.io/gflags/"
+
+LICENSE="BSD"
+SLOT="0/2.2"
+IUSE="static-libs test"
+RESTRICT="!test? ( test )"
+
+# AUTHORS.txt only links the google group
+DOCS=( ChangeLog.txt README.md )
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DBUILD_STATIC_LIBS=$(usex static-libs)
+ -DBUILD_TESTING=$(usex test)
+ # avoid installing .cmake/packages, e.g.:
+ # >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
+ -DREGISTER_INSTALL_PREFIX=OFF
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/gflags/gflags-9999.ebuild b/dev-cpp/gflags/gflags-9999.ebuild
new file mode 100644
index 000000000000..e8121a0281aa
--- /dev/null
+++ b/dev-cpp/gflags/gflags-9999.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-multilib
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/gflags/gflags"
+else
+ SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="Google's C++ argument parsing library"
+HOMEPAGE="http://gflags.github.io/gflags/"
+
+LICENSE="BSD"
+SLOT="0/2.2"
+IUSE="static-libs test"
+RESTRICT="!test? ( test )"
+
+# AUTHORS.txt only links the google group
+DOCS=( ChangeLog.txt README.md )
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_STATIC_LIBS=$(usex static-libs)
+ -DBUILD_TESTING=$(usex test)
+ # avoid installing .cmake/packages, e.g.:
+ # >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
+ -DREGISTER_INSTALL_PREFIX=OFF
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/gflags/metadata.xml b/dev-cpp/gflags/metadata.xml
new file mode 100644
index 000000000000..24a6178a0856
--- /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 type="person">
+ <email>amynka@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gflags/gflags</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/glibmm/Manifest b/dev-cpp/glibmm/Manifest
new file mode 100644
index 000000000000..d6543530af8f
--- /dev/null
+++ b/dev-cpp/glibmm/Manifest
@@ -0,0 +1,2 @@
+DIST glibmm-2.62.0.tar.xz 7398144 BLAKE2B a289c2e6a5737d9fa3d507e4741c1d19e949244db5a6eaec2329bda92e7e0a78e33acf9668ced19a52507fa88531da63fa35cf59dfb44ad2a7a8fa0839c7dae4 SHA512 f26fca5724c17d915480556b6918ae6e4999c14a25e7623cda3d37a59d6965310fc2b2d8a8500a849f1d0f00fd2d326eeddc690207846d38a13ae695ad0805de
+DIST glibmm-2.64.2.tar.xz 7438116 BLAKE2B 6ff458e90a5dbc606a2e04ecd3589262a1b96e827dba245985467818a7a4ba80a9c4cb15686fe479636cb8ce7e1db3334195d6334d7ec56327076cad87e22170 SHA512 0130af9a16981a54630150db6f4b1a95458d72d650c5e4781ee97ce624ec98c600b79ebf234d212e025781453fd11d78b9e8273235ffa143397423418fe970cc
diff --git a/dev-cpp/glibmm/glibmm-2.62.0.ebuild b/dev-cpp/glibmm/glibmm-2.62.0.ebuild
new file mode 100644
index 000000000000..a8caf7069a88
--- /dev/null
+++ b/dev-cpp/glibmm/glibmm-2.62.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for glib2"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+ GPL-2+" # GPL-2+ applies only to the build system
+SLOT="2"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/libsigc++-2.9.1:2[${MULTILIB_USEDEP}]
+ >=dev-libs/glib-2.61.2:2[${MULTILIB_USEDEP}]
+"
+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
+
+ # 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"
+
+ 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
+
+ find examples -type d -name '.deps' -exec rm -rf {} \; 2>/dev/null
+ find examples -type f -name 'Makefile*' -exec rm -f {} \; 2>/dev/null
+ dodoc -r examples
+}
diff --git a/dev-cpp/glibmm/glibmm-2.64.2.ebuild b/dev-cpp/glibmm/glibmm-2.64.2.ebuild
new file mode 100644
index 000000000000..6889d9dd390b
--- /dev/null
+++ b/dev-cpp/glibmm/glibmm-2.64.2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit gnome.org meson multilib-minimal
+
+DESCRIPTION="C++ interface for glib2"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/libsigc++-2.9.1:2[${MULTILIB_USEDEP}]
+ >=dev-libs/glib-2.61.2:2[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+ >=dev-cpp/mm-common-1.0.0
+"
+
+src_prepare() {
+ default
+
+ if ! use test; then
+ sed -i -e "/^subdir('tests')/d" meson.build || die
+ fi
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Dmaintainer-mode=true
+ -Dwarnings=min
+ -Dbuild-deprecated-api=true
+ -Dbuild-documentation=$(usex doc true false)
+ -Ddebug-refcounting=$(usex debug true false)
+ -Dbuild-examples=false
+ )
+ meson_src_configure
+}
+
+multilib_src_compile() {
+ meson_src_compile
+}
+
+multilib_src_test() {
+ meson_src_test
+}
+
+multilib_src_install() {
+ meson_src_install
+}
diff --git a/dev-cpp/glibmm/metadata.xml b/dev-cpp/glibmm/metadata.xml
new file mode 100644
index 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/glibmm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/glog/Manifest b/dev-cpp/glog/Manifest
new file mode 100644
index 000000000000..70b9824bb8dc
--- /dev/null
+++ b/dev-cpp/glog/Manifest
@@ -0,0 +1,2 @@
+DIST glog-0.3.4.tar.gz 522508 BLAKE2B 4a188d5998005b29afc52f2ea548f33e06a68da993bb74960e5aedb214ec52ef9e9fc39efb1a34f38f217b92df7db064ff01d58df36c3e4ad789becc97335ec2 SHA512 139525b546a9eccacc9bebf7cc3053ba52229e9488485ad45344c3d3134ca819d3b571250c0e3a6d84097009c8be89b0f4fa16ef5ec838ffcc237ae11c3a034c
+DIST glog-0.4.0.tar.gz 200955 BLAKE2B 083da6117af3e85697724942bfcb5a7831d447666945b06b149d8d324231b10923887bd8c507e8027136d12bffd30a657cb225df8c449f234381e3876f132953 SHA512 b585f1819ade2075f6b61dc5aaca5c3f9d25601dba2bd08b6c49b96ac5f79db23c6b7f2042df003f7130497dd7241fcaa8b107d1f97385cb66ce52d3c554b176
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 000000000000..b6fa9cdb7374
--- /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/files/glog-0.3.4-fix-build-system.patch b/dev-cpp/glog/files/glog-0.3.4-fix-build-system.patch
new file mode 100644
index 000000000000..cd38111bc81f
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.3.4-fix-build-system.patch
@@ -0,0 +1,142 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -11,7 +11,7 @@
+ AC_CONFIG_SRCDIR(README)
+ AC_CONFIG_MACRO_DIR([m4])
+ AM_INIT_AUTOMAKE
+-AM_CONFIG_HEADER(src/config.h)
++AC_CONFIG_HEADERS([src/config.h])
+
+ AC_LANG(C++)
+
+@@ -21,7 +21,7 @@
+ AC_PROG_CXX
+ AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc
+
+-AC_PROG_LIBTOOL
++LT_INIT
+ AC_SUBST(LIBTOOL_DEPS)
+
+ # Check whether some low-level functions/files are available
+@@ -128,32 +128,48 @@
+ fi
+
+ # Check if there is google-gflags library installed.
+-SAVE_CFLAGS="$CFLAGS"
+-SAVE_LIBS="$LIBS"
+-AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR],
+- GFLAGS_CFLAGS="-I${with_gflags}/include"
+- GFLAGS_LIBS="-L${with_gflags}/lib -lgflags"
+- CFLAGS="$CFLAGS $GFLAGS_CFLAGS"
+- LIBS="$LIBS $GFLAGS_LIBS"
+-)
+-AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
+-if test x"$ac_cv_have_libgflags" = x"1"; then
+- AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library])
+- if test x"$GFLAGS_LIBS" = x""; then
+- GFLAGS_LIBS="-lgflags"
+- fi
+-else
+- GFLAGS_CFLAGS=
+- GFLAGS_LIBS=
+-fi
+-CFLAGS="$SAVE_CFLAGS"
+-LIBS="$SAVE_LIBS"
++AC_ARG_ENABLE([gflags],
++ AS_HELP_STRING([--enable-gflags], [Enable google-gflags]))
++
++ac_cv_have_libgflags=0
++AS_IF([test "x$enable_gflags" != "xno"], [
++ SAVE_CFLAGS="$CFLAGS"
++ SAVE_LIBS="$LIBS"
++ AC_ARG_WITH([gflags], AS_HELP_STRING([--with-gflags=GFLAGS_DIR]),[
++ GFLAGS_CFLAGS="-I${with_gflags}/include"
++ GFLAGS_LIBS="-L${with_gflags}/lib -lgflags"
++ CFLAGS="$CFLAGS $GFLAGS_CFLAGS"
++ LIBS="$LIBS $GFLAGS_LIBS"
++ ])
++
++ AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
++ CFLAGS="$SAVE_CFLAGS"
++ LIBS="$SAVE_LIBS"
++])
++
++AS_IF([test "x$ac_cv_have_libgflags" = "x1"], [
++ AC_DEFINE([HAVE_LIB_GFLAGS], [1], [define if you have google gflags library])
++ AS_IF([test "x$GFLAGS_LIBS" = "x"], [
++ GFLAGS_LIBS="-lgflags"
++ ])
++], [
++ GFLAGS_CFLAGS=
++ GFLAGS_LIBS=
++])
+
+ # TODO(hamaji): Use official m4 macros provided by testing libraries
+ # once the m4 macro of Google Mocking becomes ready.
+ # Check if there is Google Test library installed.
+-AC_CHECK_PROG(GTEST_CONFIG, gtest-config, "yes")
+-AC_CHECK_LIB(gtest, main, have_gtest_lib="yes")
++AC_ARG_ENABLE([gtest-config],
++ AS_HELP_STRING([--enable-gtest-config], [Enable looking for gtest-config]))
++
++AS_IF([test "x$enable_gtest_config" != "xno"], [
++ AC_CHECK_PROG(GTEST_CONFIG, gtest-config, "yes")
++ AC_CHECK_LIB(gtest, main, have_gtest_lib="yes")
++], [
++ have_gtest_lib="no"
++])
++
+ if test x"$GTEST_CONFIG" = "xyes" -a x"$have_gtest_lib" = "xyes"; then
+ GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
+ GTEST_LIBS=`gtest-config --ldflags --libs`
+@@ -178,17 +194,13 @@
+ AM_CONDITIONAL(HAVE_GMOCK, test x"$GMOCK_CONFIG" = "xyes")
+
+ # We want to link in libunwind if it exists
+-UNWIND_LIBS=
+-# Unfortunately, we need to check the header file in addition to the
+-# lib file to check if libunwind is available since libunwind-0.98
+-# doesn't install all necessary header files.
+-if test x"$ac_cv_have_libunwind_h" = x"1"; then
+- AC_CHECK_LIB(unwind, backtrace, UNWIND_LIBS=-lunwind)
+-fi
+-AC_SUBST(UNWIND_LIBS)
+-if test x"$UNWIND_LIBS" != x""; then
+- AC_DEFINE(HAVE_LIB_UNWIND, 1, [define if you have libunwind])
+-fi
++AC_ARG_ENABLE([unwind],
++ AS_HELP_STRING([--enable-unwind], [Enable libunwind]))
++
++AS_IF([test "x$enable_unwind" != "xno"], [
++ PKG_CHECK_MODULES([UNWIND], [libunwind > 0.98])
++ AC_DEFINE([HAVE_LIB_UNWIND], [1], [define if you have libunwind])
++])
+
+ # We'd like to use read/write locks in several places in the code.
+ # See if our pthreads support extends to that. Note: for linux, it
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -40,12 +40,11 @@
+ nodist_gloginclude_HEADERS = src/glog/logging.h src/glog/raw_logging.h src/glog/vlog_is_on.h src/glog/stl_logging.h
+ noinst_HEADERS = src/glog/logging.h.in src/glog/raw_logging.h.in src/glog/vlog_is_on.h.in src/glog/stl_logging.h.in
+
+-docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
+ ## This is for HTML and other documentation you want to install.
+ ## Add your documentation files (in doc/) in addition to these
+ ## top-level boilerplate files. Also add a TODO file if you have one.
+-dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README README.windows \
+- doc/designstyle.css doc/glog.html
++dist_doc_DATA = AUTHORS ChangeLog INSTALL NEWS README
++dist_html_DATA = doc/designstyle.css doc/glog.html
+
+ ## The libraries (.so's) you want to install
+ lib_LTLIBRARIES =
+@@ -215,7 +214,7 @@
+
+ ## This should always include $(TESTS), but may also include other
+ ## binaries that you compile but don't want automatically installed.
+-noinst_PROGRAMS = $(TESTS) $(TEST_BINARIES)
++check_PROGRAMS = $(TESTS) $(TEST_BINARIES)
+
+ rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec
+ @cd packages && ./rpm.sh ${PACKAGE} ${VERSION}
diff --git a/dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch b/dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch
new file mode 100644
index 000000000000..fd1518c68583
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch
@@ -0,0 +1,56 @@
+From b1639e3014996fbc7635870e013559c54e7e3b2f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?David=20Mart=C3=ADnez=20Moreno?= <ender@debian.org>
+Date: Thu, 13 Aug 2015 09:31:26 -0700
+Subject: [PATCH] Fix ABI demangling for the GCC 5.x case.
+
+When glog is compiled with gcc-5.2 in cxx11 ABI mode, it barfs about unmangled symbols. This patches it getting inspiration from binutils and demangle.cc itself, although it may be totally wrong or maybe have to use ParseAbiTag in more places. I haven't read the spec for the symbols, though.
+
+This patch makes the demangle unit test pass correctly.
+---
+ src/demangle.cc | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/src/demangle.cc b/src/demangle.cc
+index e858181..0f0c831 100644
+--- a/src/demangle.cc
++++ b/src/demangle.cc
+@@ -439,6 +439,7 @@ static bool ParseExprPrimary(State *state);
+ static bool ParseLocalName(State *state);
+ static bool ParseDiscriminator(State *state);
+ static bool ParseSubstitution(State *state);
++static bool ParseAbiTag(State *state);
+
+ // Implementation note: the following code is a straightforward
+ // translation of the Itanium C++ ABI defined in BNF with a couple of
+@@ -567,6 +568,8 @@ static bool ParseNestedName(State *state) {
+ static bool ParsePrefix(State *state) {
+ bool has_something = false;
+ while (true) {
++ if (ParseAbiTag(state))
++ continue;
+ MaybeAppendSeparator(state);
+ if (ParseTemplateParam(state) ||
+ ParseSubstitution(state) ||
+@@ -585,6 +588,22 @@ static bool ParsePrefix(State *state) {
+ return true;
+ }
+
++// <abi-tag> ::= B <source-name>
++static bool ParseAbiTag(State *state) {
++ State copy = *state;
++
++ Append(state, "[", 1);
++ if (ParseOneCharToken(state, 'B') &&
++ ParseSourceName(state))
++ {
++ Append(state, "]", 1);
++ return true;
++ }
++
++ *state = copy;
++ return false;
++}
++
+ // <unqualified-name> ::= <operator-name>
+ // ::= <ctor-dtor-name>
+ // ::= <source-name>
diff --git a/dev-cpp/glog/files/glog-0.4.0-errnos.patch b/dev-cpp/glog/files/glog-0.4.0-errnos.patch
new file mode 100644
index 000000000000..c55716db1ba2
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.4.0-errnos.patch
@@ -0,0 +1,99 @@
+Index: b/src/googletest.h
+===================================================================
+--- a/src/googletest.h
++++ b/src/googletest.h
+@@ -437,6 +437,18 @@ static inline void StringReplace(string*
+ }
+ }
+
++static inline void IntReplace(string* str,
++ const string& oldsub,
++ int newsub) {
++ size_t pos = str->find(oldsub);
++ if (pos != string::npos) {
++ std::ostringstream ss;
++ ss << newsub;
++ const std::string x = ss.str();
++ str->replace(pos, oldsub.size(), x.c_str());
++ }
++}
++
+ static inline string Munge(const string& filename) {
+ FILE* fp = fopen(filename.c_str(), "rb");
+ CHECK(fp != NULL) << filename << ": couldn't open";
+@@ -452,9 +464,13 @@ static inline string Munge(const string&
+
+ StringReplace(&line, "__SUCCESS__", StrError(0));
+ StringReplace(&line, "__ENOENT__", StrError(ENOENT));
++ IntReplace(&line, "__ENOENT_NUM__", ENOENT);
+ StringReplace(&line, "__EINTR__", StrError(EINTR));
++ IntReplace(&line, "__EINTR_NUM__", EINTR);
+ StringReplace(&line, "__ENXIO__", StrError(ENXIO));
++ IntReplace(&line, "__ENXIO_NUM__", ENXIO);
+ StringReplace(&line, "__ENOEXEC__", StrError(ENOEXEC));
++ IntReplace(&line, "__ENOEXEC_NUM__", ENOEXEC);
+ result += line + "\n";
+ }
+ fclose(fp);
+Index: b/src/logging_unittest.cc
+===================================================================
+--- a/src/logging_unittest.cc
++++ b/src/logging_unittest.cc
+@@ -238,6 +238,17 @@ int main(int argc, char **argv) {
+ return 0;
+ }
+
++static int errnoForIteration(int i) {
++ switch (i) {
++ case 0: return 0;
++ case 2: return ENOENT;
++ case 4: return EINTR;
++ case 6: return ENXIO;
++ case 8: return ENOEXEC;
++ }
++ return -1;
++}
++
+ void TestLogging(bool check_counts) {
+ int64 base_num_infos = LogMessage::num_messages(GLOG_INFO);
+ int64 base_num_warning = LogMessage::num_messages(GLOG_WARNING);
+@@ -246,7 +257,7 @@ void TestLogging(bool check_counts) {
+ LOG(INFO) << string("foo ") << "bar " << 10 << ' ' << 3.4;
+ for ( int i = 0; i < 10; ++i ) {
+ int old_errno = errno;
+- errno = i;
++ errno = errnoForIteration(i);
+ PLOG_EVERY_N(ERROR, 2) << "Plog every 2, iteration " << COUNTER;
+ errno = old_errno;
+
+Index: b/src/logging_unittest.err
+===================================================================
+--- a/src/logging_unittest.err
++++ b/src/logging_unittest.err
+@@ -51,21 +51,21 @@ WDATE TIME__ THREADID logging_unittest.c
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 1
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 1
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 2
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [2]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [__ENOENT_NUM__]
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 3
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 3
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 4
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 4
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [4]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [__EINTR_NUM__]
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 5
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 5
+ WDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 5, iteration 6
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 6
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [6]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [__ENXIO_NUM__]
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 7
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 7
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 8
+-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [8]
++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [__ENOEXEC_NUM__]
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 9
+ IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 9
+ EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 10
+
diff --git a/dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch b/dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch
new file mode 100644
index 000000000000..392ae8ca7819
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch
@@ -0,0 +1,19 @@
+Index: google-glog-0.3.2/src/signalhandler_unittest.sh
+===================================================================
+--- google-glog-0.3.2.orig/src/signalhandler_unittest.sh 2013-03-13 13:49:37.820188111 -0400
++++ google-glog-0.3.2/src/signalhandler_unittest.sh 2013-03-13 14:07:11.980204520 -0400
+@@ -65,10 +65,10 @@
+ exit 0
+ fi
+
+-# The PC cannot be obtained in signal handlers on PowerPC correctly.
+-# We just skip the test for PowerPC.
+-if [ x`uname -p` = x"powerpc" ]; then
+- echo "PASS (We don't test the signal handler on PowerPC.)"
++# This test only works correctly on i386 and amd64.
++# We just skip the test when not on those platforms.
++if [ x`uname -m` != x"x86_64" -a x`uname -m` != x"i686" ]; then
++ echo "PASS (We only test the signal handler on i386 or amd64.)"
+ exit 0
+ fi
+
diff --git a/dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch b/dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch
new file mode 100644
index 000000000000..e53318ac66ff
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch
@@ -0,0 +1,35 @@
+Description: fix FTBFS on x32
+Author: Guillaume Morin <guillaume@morinfr.org>
+Forwarded: no
+Last-Update: 2019-08-05
+
+---
+
+--- google-glog-0.3.4.orig/src/symbolize_unittest.cc
++++ google-glog-0.3.4/src/symbolize_unittest.cc
+@@ -313,8 +313,12 @@ extern "C" {
+ inline void* always_inline inline_func() {
+ void *pc = NULL;
+ #ifdef TEST_X86_32_AND_64
++#if __x86_64__ || (__x86_64__ && __ILP32__)
++ __asm__ __volatile__("call 1f; 1: popq %q0" : "=r"(pc));
++#else
+ __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
+ #endif
++#endif
+ return pc;
+ }
+
+@@ -322,8 +326,12 @@ void* ATTRIBUTE_NOINLINE non_inline_func
+ void* ATTRIBUTE_NOINLINE non_inline_func() {
+ void *pc = NULL;
+ #ifdef TEST_X86_32_AND_64
++#if __x86_64__ || (__x86_64__ && __ILP32__)
++ __asm__ __volatile__("call 1f; 1: popq %q0" : "=r"(pc));
++#else
+ __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
+ #endif
++#endif
+ return pc;
+ }
+
diff --git a/dev-cpp/glog/glog-0.3.4-r1.ebuild b/dev-cpp/glog/glog-0.3.4-r1.ebuild
new file mode 100644
index 000000000000..956b6b8554d3
--- /dev/null
+++ b/dev-cpp/glog/glog-0.3.4-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools multilib-minimal
+
+DESCRIPTION="Google's C++ logging library"
+HOMEPAGE="https://github.com/google/glog"
+SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="gflags static-libs test unwind"
+RESTRICT="test"
+
+RDEPEND="
+ gflags? ( >=dev-cpp/gflags-2.0-r1[${MULTILIB_USEDEP}] )
+ unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.3.2-avoid-inline-asm.patch
+ "${FILESDIR}"/${PN}-0.3.4-fix-build-system.patch
+ "${FILESDIR}"/${PN}-0.3.4-fix-gcc5-demangling.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" econf \
+ $(use_enable gflags) \
+ $(use_enable static-libs static) \
+ $(use_enable test gtest-config) \
+ $(use_enable unwind)
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ # package provides .pc files
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-cpp/glog/glog-0.4.0.ebuild b/dev-cpp/glog/glog-0.4.0.ebuild
new file mode 100644
index 000000000000..ee01c40ca927
--- /dev/null
+++ b/dev-cpp/glog/glog-0.4.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 2011-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit autotools multilib-minimal
+
+DESCRIPTION="Google's C++ logging library"
+HOMEPAGE="https://github.com/google/glog"
+SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 x86 ~amd64-linux ~x86-linux"
+IUSE="gflags static-libs test"
+RESTRICT="test"
+
+RDEPEND="sys-libs/libunwind[${MULTILIB_USEDEP}]
+ gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.4.0-fix-x32-build.patch
+ "${FILESDIR}"/${PN}-0.4.0-errnos.patch
+ "${FILESDIR}"/${PN}-0.4.0-fix-test-on-ports.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" econf \
+ $(use_enable static-libs static) \
+ ac_cv_lib_gflags_main="$(usex gflags)"
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ # package provides .pc files
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-cpp/glog/metadata.xml b/dev-cpp/glog/metadata.xml
new file mode 100644
index 000000000000..f17849aa9712
--- /dev/null
+++ b/dev-cpp/glog/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>arfrever.fta@gmail.com</email>
+ <name>Arfrever Frehtes Taifersar Arahesis</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ <description>Proxy</description>
+ </maintainer>
+ <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="github">google/glog</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/gstreamermm/Manifest b/dev-cpp/gstreamermm/Manifest
new file mode 100644
index 000000000000..57cc6fc1059c
--- /dev/null
+++ b/dev-cpp/gstreamermm/Manifest
@@ -0,0 +1 @@
+DIST gstreamermm-1.10.0.tar.xz 3529640 BLAKE2B 29b99928cd1b21fd295683b4a1ad0a1b0f8ae959237fcbfef7d5a9296a70a140a04fa390fbbcb8d3151d28239f281e72feb30a0466478e38dfb4e172beaf21f1 SHA512 34eeb9eec5958c96acf7c7791eef80138e5d55fea6ddf1bf9ace6b1ec7f052da2abf04d87089e4c9ead51c631ef7afceaf9fceb946ec3d105da522187c69e429
diff --git a/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild b/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild
new file mode 100644
index 000000000000..6fdef7109be2
--- /dev/null
+++ b/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit gnome2 virtualx
+
+DESCRIPTION="C++ interface for GStreamer"
+HOMEPAGE="https://gstreamer.freedesktop.org/bindings/cplusplus.html"
+
+LICENSE="LGPL-2.1"
+SLOT="1.0/1"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=media-libs/gstreamer-${PV}:1.0
+ >=media-libs/gst-plugins-base-${PV}:1.0
+ >=dev-cpp/glibmm-2.47.6:2
+ >=dev-cpp/libxmlpp-2.14:2.6
+ >=dev-libs/libsigc++-2:2
+"
+DEPEND="${RDEPEND}
+ dev-cpp/mm-common
+ 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 )
+"
+# eautoreconf:
+# dev-cpp/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
+
+ sed -e 's/ -Werror/ /' -i tests/Makefile.am tests/Makefile.in || die
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_enable doc documentation) \
+ $(use_enable test unittests)
+}
+
+src_test() {
+ # running tests in parallel fails
+ virtx emake -j1 check
+}
diff --git a/dev-cpp/gstreamermm/metadata.xml b/dev-cpp/gstreamermm/metadata.xml
new file mode 100644
index 000000000000..c8192e15bea8
--- /dev/null
+++ b/dev-cpp/gstreamermm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/gtest/Manifest b/dev-cpp/gtest/Manifest
new file mode 100644
index 000000000000..dbb3e6432db2
--- /dev/null
+++ b/dev-cpp/gtest/Manifest
@@ -0,0 +1,4 @@
+DIST gtest-1.10.0.tar.gz 904227 BLAKE2B 96b97b06730a9f55505a4d40bd4861560503a1437d29dadc6e8d3c743ccde020e61b3f96082fb9bda0666d739e69d3990bad06161e9c531c40021dc0826f5547 SHA512 7ebf5b4a80f364564066ccc7ce2e2092b12942a754c4854afd97380f19811e0fd45c300d423234cda0e05966ddbdaebcb1625e856ce55b0c81b0bae0dd971532
+DIST gtest-1.8.0.tar.gz 1281617 BLAKE2B ac052b4d0eb0d8ded03a8c7dff05177818627b8a51f2dbc2c162b2ee2a5d1323539e7d0d02236d9ebb799995e018f0171c2fdaeb4de3bb339548265e50de79e6 SHA512 1dbece324473e53a83a60601b02c92c089f5d314761351974e097b2cf4d24af4296f9eb8653b6b03b1e363d9c5f793897acae1f0c7ac40149216035c4d395d9d
+DIST gtest-1.8.1.tar.gz 992298 BLAKE2B 40ef3417fe424205c0617f07207347ce671ac87605f8ac9b8a333b0b06e3fbef9f556041ee324c18f957f3258ab9fe06704f31cdd038355fb7890180eb77ced1 SHA512 e6283c667558e1fd6e49fa96e52af0e415a3c8037afe1d28b7ff1ec4c2ef8f49beb70a9327b7fc77eb4052a58c4ccad8b5260ec90e4bceeac7a46ff59c4369d7
+DIST gtest-1.9.0_pre20190607.tar.gz 958396 BLAKE2B 64ae2c86a320a6ed56d6f99383591f7a0176e3f1291144bddf6dc82733c78177963f95516bbaed494318d3d7451d164aeb0d4a192b415414bcc25b9875cf6e82 SHA512 6c17ba303ec1dc8a989075a6dc0eda9b023345d00f6b43e588676cc2cd291f8c508744e4aba86a6c6b651329ce47419ad04d5765ca5978eda507a1643e8a92c3
diff --git a/dev-cpp/gtest/files/gtest-1.8.0-fix-doublefree.patch b/dev-cpp/gtest/files/gtest-1.8.0-fix-doublefree.patch
new file mode 100644
index 000000000000..40fa1f6668bc
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-1.8.0-fix-doublefree.patch
@@ -0,0 +1,98 @@
+Bug: https://bugs.gentoo.org/631698
+Upstream PR: https://github.com/google/googletest/pull/1339
+
+From 0663ce9024c9b78ddf6eb3fc1ceb45361ed91767 Mon Sep 17 00:00:00 2001
+From: Romain Geissler <romain.geissler@gmail.com>
+Date: Sat, 2 Dec 2017 22:47:20 +0100
+Subject: [PATCH] Fix double free when building Gtest/GMock in shared libraries
+ and linking a test executable with both.
+
+---
+ googlemock/CMakeLists.txt | 63 ++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 40 insertions(+), 23 deletions(-)
+
+diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt
+index 724fdd5f0..f7bad8afc 100644
+--- a/googlemock/CMakeLists.txt
++++ b/googlemock/CMakeLists.txt
+@@ -86,16 +86,23 @@ endif()
+ # Google Mock libraries. We build them using more strict warnings than what
+ # are used for other targets, to ensure that Google Mock can be compiled by
+ # a user aggressive about warnings.
+-cxx_library(gmock
+- "${cxx_strict}"
+- "${gtest_dir}/src/gtest-all.cc"
+- src/gmock-all.cc)
+-
+-cxx_library(gmock_main
+- "${cxx_strict}"
+- "${gtest_dir}/src/gtest-all.cc"
+- src/gmock-all.cc
+- src/gmock_main.cc)
++if (MSVC)
++ cxx_library(gmock
++ "${cxx_strict}"
++ "${gtest_dir}/src/gtest-all.cc"
++ src/gmock-all.cc)
++
++ cxx_library(gmock_main
++ "${cxx_strict}"
++ "${gtest_dir}/src/gtest-all.cc"
++ src/gmock-all.cc
++ src/gmock_main.cc)
++else()
++ cxx_library(gmock "${cxx_strict}" src/gmock-all.cc)
++ target_link_libraries(gmock gtest)
++ cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc)
++ target_link_libraries(gmock_main gmock)
++endif()
+
+ # If the CMake version supports it, attach header directory information
+ # to the targets for when we are part of a parent build (ie being pulled
+@@ -175,23 +182,33 @@ if (gmock_build_tests)
+ ############################################################
+ # C++ tests built with non-standard compiler flags.
+
+- cxx_library(gmock_main_no_exception "${cxx_no_exception}"
+- "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc)
+-
+- cxx_library(gmock_main_no_rtti "${cxx_no_rtti}"
+- "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc)
++ if (MSVC)
++ cxx_library(gmock_main_no_exception "${cxx_no_exception}"
++ "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc)
+
+- if (NOT MSVC OR MSVC_VERSION LESS 1600) # 1600 is Visual Studio 2010.
+- # Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that
+- # conflict with our own definitions. Therefore using our own tuple does not
+- # work on those compilers.
+- cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}"
++ cxx_library(gmock_main_no_rtti "${cxx_no_rtti}"
+ "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc)
+
+- cxx_test_with_flags(gmock_use_own_tuple_test "${cxx_use_own_tuple}"
+- gmock_main_use_own_tuple test/gmock-spec-builders_test.cc)
++ if (MSVC_VERSION LESS 1600) # 1600 is Visual Studio 2010.
++ # Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that
++ # conflict with our own definitions. Therefore using our own tuple does not
++ # work on those compilers.
++ cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}"
++ "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc)
++
++ cxx_test_with_flags(gmock_use_own_tuple_test "${cxx_use_own_tuple}"
++ gmock_main_use_own_tuple test/gmock-spec-builders_test.cc)
++ endif()
++ else()
++ cxx_library(gmock_main_no_exception "${cxx_no_exception}" src/gmock_main.cc)
++ target_link_libraries(gmock_main_no_exception gmock)
++
++ cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" src/gmock_main.cc)
++ target_link_libraries(gmock_main_no_rtti gmock)
++
++ cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}" src/gmock_main.cc)
++ target_link_libraries(gmock_main_use_own_tuple gmock)
+ endif()
+-
+ cxx_test_with_flags(gmock-more-actions_no_exception_test "${cxx_no_exception}"
+ gmock_main_no_exception test/gmock-more-actions_test.cc)
+
diff --git a/dev-cpp/gtest/files/gtest-1.8.0-fix-gcc6-undefined-behavior.patch b/dev-cpp/gtest/files/gtest-1.8.0-fix-gcc6-undefined-behavior.patch
new file mode 100644
index 000000000000..eadfe6197389
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-1.8.0-fix-gcc6-undefined-behavior.patch
@@ -0,0 +1,21 @@
+Fix build with GCC 6 due to lifetime issues.
+
+--- a/googletest/src/gtest.cc
++++ b/googletest/src/gtest.cc
+@@ -2654,10 +2654,12 @@
+ test->Run();
+ }
+
+- // Deletes the test object.
+- impl->os_stack_trace_getter()->UponLeavingGTest();
+- internal::HandleExceptionsInMethodIfSupported(
+- test, &Test::DeleteSelf_, "the test fixture's destructor");
++ if (test != NULL) {
++ // Deletes the test object.
++ impl->os_stack_trace_getter()->UponLeavingGTest();
++ internal::HandleExceptionsInMethodIfSupported(
++ test, &Test::DeleteSelf_, "the test fixture's destructor");
++ }
+
+ result_.set_elapsed_time(internal::GetTimeInMillis() - start);
+
diff --git a/dev-cpp/gtest/files/gtest-1.8.0-increase-clone-stack-size.patch b/dev-cpp/gtest/files/gtest-1.8.0-increase-clone-stack-size.patch
new file mode 100644
index 000000000000..22ac0b6d4a12
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-1.8.0-increase-clone-stack-size.patch
@@ -0,0 +1,14 @@
+Bug: https://bugs.gentoo.org/629620
+Upstream PR: https://github.com/google/googletest/pull/1274
+
+--- a/googletest/src/gtest-death-test.cc
++++ b/googletest/src/gtest-death-test.cc
+@@ -1070,7 +1070,7 @@
+
+ if (!use_fork) {
+ static const bool stack_grows_down = StackGrowsDown();
+- const size_t stack_size = getpagesize();
++ const size_t stack_size = getpagesize() * 10;
+ // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
+ void* const stack = mmap(NULL, stack_size, PROT_READ | PROT_WRITE,
+ MAP_ANON | MAP_PRIVATE, -1, 0);
diff --git a/dev-cpp/gtest/files/gtest-1.8.0-multilib-strict.patch b/dev-cpp/gtest/files/gtest-1.8.0-multilib-strict.patch
new file mode 100644
index 000000000000..c18b58e16fb6
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-1.8.0-multilib-strict.patch
@@ -0,0 +1,40 @@
+--- a/googlemock/CMakeLists.txt
++++ b/googlemock/CMakeLists.txt
+@@ -11,6 +11,8 @@
+
+ option(gmock_build_tests "Build all of Google Mock's own tests." OFF)
+
++set(LIB_INSTALL_DIR lib CACHE STRING "Library install directory")
++
+ # A directory to find Google Test sources.
+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gtest/CMakeLists.txt")
+ set(gtest_dir gtest)
+@@ -104,7 +106,7 @@
+ #
+ # Install rules
+ install(TARGETS gmock gmock_main
+- DESTINATION lib)
++ DESTINATION ${LIB_INSTALL_DIR})
+ install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock
+ DESTINATION include)
+
+--- a/googletest/CMakeLists.txt
++++ b/googletest/CMakeLists.txt
+@@ -27,6 +27,8 @@
+ "Build gtest with internal symbols hidden in shared libraries."
+ OFF)
+
++set(LIB_INSTALL_DIR lib CACHE STRING "Library install directory")
++
+ # Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build().
+ include(cmake/hermetic_build.cmake OPTIONAL)
+
+@@ -103,7 +105,7 @@
+ #
+ # Install rules
+ install(TARGETS gtest gtest_main
+- DESTINATION lib)
++ DESTINATION ${LIB_INSTALL_DIR})
+ install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest
+ DESTINATION include)
+
diff --git a/dev-cpp/gtest/files/gtest-1.9.0_pre20190607-increase-clone-stack-size.patch b/dev-cpp/gtest/files/gtest-1.9.0_pre20190607-increase-clone-stack-size.patch
new file mode 100755
index 000000000000..38d515a48ddb
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-1.9.0_pre20190607-increase-clone-stack-size.patch
@@ -0,0 +1,13 @@
+Bug: https://bugs.gentoo.org/692464
+
+--- a/googletest/src/gtest-death-test.cc
++++ b/googletest/src/gtest-death-test.cc
+@@ -1070,7 +1070,7 @@
+
+ if (!use_fork) {
+ static const bool stack_grows_down = StackGrowsDown();
+- const auto stack_size = static_cast<size_t>(getpagesize());
++ const auto stack_size = static_cast<size_t>(getpagesize()* 10);
+ // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
+ void* const stack = mmap(NULL, stack_size, PROT_READ | PROT_WRITE,
+ MAP_ANON | MAP_PRIVATE, -1, 0);
diff --git a/dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch b/dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch
new file mode 100644
index 000000000000..8dfed46d4585
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch
@@ -0,0 +1,17 @@
+Fix build with GCC 6 due to lifetime issues.
+
+--- a/googletest/src/gtest.cc
++++ b/googletest/src/gtest.cc
+@@ -2693,10 +2693,12 @@
+ test->Run();
+ }
+
++ if (test != NULL) {
+ // Deletes the test object.
+ impl->os_stack_trace_getter()->UponLeavingGTest();
+ internal::HandleExceptionsInMethodIfSupported(
+ test, &Test::DeleteSelf_, "the test fixture's destructor");
++ }
+
+ result_.set_elapsed_time(internal::GetTimeInMillis() - start);
+
diff --git a/dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch b/dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch
new file mode 100644
index 000000000000..ba63c7b3eeb3
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch
@@ -0,0 +1,19 @@
+Fix python tests that use broken generator expressions
+
+--- a/googletest/cmake/internal_utils.cmake
++++ b/googletest/cmake/internal_utils.cmake
+@@ -247,12 +247,12 @@
+ add_test(
+ NAME ${name}
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
+- --build_dir=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>)
++ --build_dir=${CMAKE_CURRENT_BINARY_DIR})
+ else (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
+ add_test(
+ ${name}
+ ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
+- --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE})
++ --build_dir=${CMAKE_CURRENT_BINARY_DIR})
+ endif (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
+ endif()
+ endfunction()
diff --git a/dev-cpp/gtest/gtest-1.10.0.ebuild b/dev-cpp/gtest/gtest-1.10.0.ebuild
new file mode 100644
index 000000000000..12d496c44be4
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.10.0.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python2_7 )
+CMAKE_ECLASS=cmake
+inherit cmake-multilib python-any-r1
+
+MY_PV=1.10.x
+
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/google/googletest"
+else
+ if [[ -z ${GOOGLETEST_COMMIT} ]]; then
+ URI_PV=v${MY_PV:-${PV}}
+ else
+ URI_PV=${MY_PV:=${GOOGLETEST_COMMIT}}
+ fi
+ SRC_URI="https://github.com/google/googletest/archive/${URI_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+ S="${WORKDIR}"/googletest-${MY_PV}
+fi
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="https://github.com/google/googletest"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="!dev-cpp/gmock"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.0_pre20190607-increase-clone-stack-size.patch
+)
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -i -e '/set(cxx_base_flags /s:-Werror::' \
+ googletest/cmake/internal_utils.cmake || die "sed failed!"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_GMOCK=ON
+ -DINSTALL_GTEST=ON
+
+ # tests
+ -Dgmock_build_tests=$(usex test)
+ -Dgtest_build_tests=$(usex test)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc; then
+ docinto googletest
+ dodoc -r googletest/docs/.
+ docinto googlemock
+ dodoc -r googlemock/docs/.
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc googletest/samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-1.8.0-r1.ebuild b/dev-cpp/gtest/gtest-1.8.0-r1.ebuild
new file mode 100644
index 000000000000..bf4d578fa31f
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.8.0-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python3_6 )
+
+inherit python-any-r1 cmake-multilib
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="https://github.com/google/googletest"
+SRC_URI="https://github.com/google/googletest/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="!dev-cpp/gmock"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9999-fix-py-tests.patch
+ "${FILESDIR}"/${PN}-1.8.0-fix-gcc6-undefined-behavior.patch
+ "${FILESDIR}"/${PN}-1.8.0-multilib-strict.patch
+ "${FILESDIR}"/${PN}-1.8.0-increase-clone-stack-size.patch
+ "${FILESDIR}"/${PN}-1.8.0-fix-doublefree.patch
+)
+
+S="${WORKDIR}"/googletest-release-${PV}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_GMOCK=ON
+ -DBUILD_GTEST=ON
+ -DLIB_INSTALL_DIR=$(get_libdir)
+ -Dgtest_build_samples=OFF
+ -Dgtest_disable_pthreads=OFF
+ -DBUILD_SHARED_LIBS=ON
+
+ # tests
+ -Dgmock_build_tests=$(usex test)
+ -Dgtest_build_tests=$(usex test)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake-utils_src_configure mycmakeargs
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc; then
+ docinto googletest
+ dodoc -r googletest/docs/*
+ docinto googlemock
+ dodoc -r googlemock/docs/*
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc googletest/samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-1.8.0.ebuild b/dev-cpp/gtest/gtest-1.8.0.ebuild
new file mode 100644
index 000000000000..2d1d2af328f7
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.8.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python3_6 )
+
+inherit python-any-r1 cmake-multilib
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="https://github.com/google/googletest"
+SRC_URI="https://github.com/google/googletest/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="!dev-cpp/gmock"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9999-fix-py-tests.patch
+ "${FILESDIR}"/${PN}-1.8.0-fix-gcc6-undefined-behavior.patch
+ "${FILESDIR}"/${PN}-1.8.0-multilib-strict.patch
+ "${FILESDIR}"/${PN}-1.8.0-increase-clone-stack-size.patch
+)
+
+S="${WORKDIR}"/googletest-release-${PV}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_GMOCK=ON
+ -DBUILD_GTEST=ON
+ -DLIB_INSTALL_DIR=$(get_libdir)
+ -Dgtest_build_samples=OFF
+ -Dgtest_disable_pthreads=OFF
+ -DBUILD_SHARED_LIBS=ON
+
+ # tests
+ -Dgmock_build_tests=$(usex test)
+ -Dgtest_build_tests=$(usex test)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake-utils_src_configure mycmakeargs
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc; then
+ docinto googletest
+ dodoc -r googletest/docs/*
+ docinto googlemock
+ dodoc -r googlemock/docs/*
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc googletest/samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-1.8.1-r1.ebuild b/dev-cpp/gtest/gtest-1.8.1-r1.ebuild
new file mode 100644
index 000000000000..030ed3477e90
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.8.1-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python2_7 )
+CMAKE_ECLASS=cmake
+inherit cmake-multilib python-any-r1
+
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/google/googletest"
+else
+ SRC_URI="https://github.com/google/googletest/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+ S="${WORKDIR}"/googletest-release-${PV}
+fi
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="https://github.com/google/googletest"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="!dev-cpp/gmock"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9999-fix-gcc6-undefined-behavior.patch
+ "${FILESDIR}"/${PN}-1.8.0-increase-clone-stack-size.patch
+)
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -i -e '/set(cxx_base_flags /s:-Werror::' \
+ googletest/cmake/internal_utils.cmake || die "sed failed!"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_GMOCK=ON
+ -DINSTALL_GTEST=ON
+
+ # tests
+ -Dgmock_build_tests=$(usex test)
+ -Dgtest_build_tests=$(usex test)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc; then
+ docinto googletest
+ dodoc -r googletest/docs/.
+ docinto googlemock
+ dodoc -r googlemock/docs/.
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc googletest/samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-1.8.1.ebuild b/dev-cpp/gtest/gtest-1.8.1.ebuild
new file mode 100644
index 000000000000..4c66697b04aa
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.8.1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib python-any-r1
+
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/google/googletest"
+else
+ SRC_URI="https://github.com/google/googletest/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+ S="${WORKDIR}"/googletest-release-${PV}
+fi
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="https://github.com/google/googletest"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="!dev-cpp/gmock"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9999-fix-gcc6-undefined-behavior.patch
+ "${FILESDIR}"/${PN}-1.8.0-increase-clone-stack-size.patch
+)
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+
+ sed -i -e '/set(cxx_base_flags /s:-Werror::' \
+ googletest/cmake/internal_utils.cmake || die "sed failed!"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_GMOCK=ON
+ -DINSTALL_GTEST=ON
+ -DBUILD_SHARED_LIBS=ON
+
+ # tests
+ -Dgmock_build_tests=$(usex test)
+ -Dgtest_build_tests=$(usex test)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake-utils_src_configure
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc; then
+ docinto googletest
+ dodoc -r googletest/docs/.
+ docinto googlemock
+ dodoc -r googlemock/docs/.
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc googletest/samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild b/dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild
new file mode 100644
index 000000000000..9aa2139201bd
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python2_7 )
+
+CMAKE_ECLASS=cmake
+GOOGLETEST_COMMIT=da10da05c262af0a9e8fa91789a272a3dec67655
+inherit cmake-multilib python-any-r1
+
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/google/googletest"
+else
+ if [[ -z ${GOOGLETEST_COMMIT} ]]; then
+ MY_PV=release-${PV}
+ else
+ MY_PV=${GOOGLETEST_COMMIT}
+ fi
+ SRC_URI="https://github.com/google/googletest/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+ S="${WORKDIR}"/googletest-${MY_PV}
+fi
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="https://github.com/google/googletest"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="!dev-cpp/gmock"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.0_pre20190607-increase-clone-stack-size.patch
+)
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -i -e '/set(cxx_base_flags /s:-Werror::' \
+ googletest/cmake/internal_utils.cmake || die "sed failed!"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_GMOCK=ON
+ -DINSTALL_GTEST=ON
+
+ # tests
+ -Dgmock_build_tests=$(usex test)
+ -Dgtest_build_tests=$(usex test)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc; then
+ docinto googletest
+ dodoc -r googletest/docs/.
+ docinto googlemock
+ dodoc -r googlemock/docs/.
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc googletest/samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/gtest-9999.ebuild b/dev-cpp/gtest/gtest-9999.ebuild
new file mode 100644
index 000000000000..753803041fce
--- /dev/null
+++ b/dev-cpp/gtest/gtest-9999.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Python is required for tests and some build tasks.
+PYTHON_COMPAT=( python2_7 )
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib python-any-r1
+
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/google/googletest"
+else
+ if [[ -z ${GOOGLETEST_COMMIT} ]]; then
+ URI_PV=v${MY_PV:-${PV}}
+ else
+ URI_PV=${MY_PV:=${GOOGLETEST_COMMIT}}
+ fi
+ SRC_URI="https://github.com/google/googletest/archive/${URI_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+ S="${WORKDIR}"/googletest-${MY_PV}
+fi
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="https://github.com/google/googletest"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( ${PYTHON_DEPS} )"
+RDEPEND="!dev-cpp/gmock"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.0_pre20190607-increase-clone-stack-size.patch
+)
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -i -e '/set(cxx_base_flags /s:-Werror::' \
+ googletest/cmake/internal_utils.cmake || die "sed failed!"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_GMOCK=ON
+ -DINSTALL_GTEST=ON
+
+ # tests
+ -Dgmock_build_tests=$(usex test)
+ -Dgtest_build_tests=$(usex test)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use doc; then
+ docinto googletest
+ dodoc -r googletest/docs/.
+ docinto googlemock
+ dodoc -r googlemock/docs/.
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc googletest/samples/*.{cc,h}
+ fi
+}
diff --git a/dev-cpp/gtest/metadata.xml b/dev-cpp/gtest/metadata.xml
new file mode 100644
index 000000000000..a1ad0272994b
--- /dev/null
+++ b/dev-cpp/gtest/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>plevine457@gmail.com</email>
+ <name>Peter Levine</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <doc lang="en">https://github.com/google/googletest/tree/master/googletest/docs</doc>
+ <remote-id type="github">google/googletest</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/gtkmm/Manifest b/dev-cpp/gtkmm/Manifest
new file mode 100644
index 000000000000..42cb60b844e7
--- /dev/null
+++ b/dev-cpp/gtkmm/Manifest
@@ -0,0 +1,2 @@
+DIST gtkmm-2.24.5.tar.xz 12022024 BLAKE2B 6b2bca9fe6ad81cd956e1f3cc3140bc503b78386cf3931c8eeac08c8b2a08c73450bdbb703d1febaee67cdf834093ff5e89790f866357190822613a68a596ad3 SHA512 c50e52830977c37181439f4b82a30ac8bead0cf9022d2bec8225f8dc33e08414f863bf67056e1938fae8f888c09a5a6d757acc011fa9331a78caa6bb626dd51e
+DIST gtkmm-3.24.2.tar.xz 13336236 BLAKE2B 93f3a04b8a2f02323bf6a1161c10eaae2ad9c26d0e235b1658fc7abbb8d48f67abc42739726c4b6657fa59b033b3708ad1428e629538ab5a6fd27590f5311f30 SHA512 c8f9f03d54006a729fdad7563d3be37aa180f9153c222314c1b8cfddc5ab417d184422a1d44f780574248ea52e679f1e360eac67e03f67d29ecf847c0ab19689
diff --git a/dev-cpp/gtkmm/gtkmm-2.24.5.ebuild b/dev-cpp/gtkmm/gtkmm-2.24.5.ebuild
new file mode 100644
index 000000000000..e4cf763c5baa
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-2.24.5.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2.4"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=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}]
+"
+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
+}
+
+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-3.24.2.ebuild b/dev-cpp/gtkmm/gtkmm-3.24.2.ebuild
new file mode 100644
index 000000000000..c3fddd7e3b3e
--- /dev/null
+++ b/dev-cpp/gtkmm/gtkmm-3.24.2.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 multilib-minimal virtualx
+
+DESCRIPTION="C++ interface for GTK+"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="3.0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x86-solaris"
+
+IUSE="aqua doc test wayland X"
+REQUIRED_USE="|| ( aqua wayland X )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-cpp/glibmm-2.54.0:2[${MULTILIB_USEDEP}]
+ >=x11-libs/gtk+-3.24.0:3[aqua?,wayland?,X?,${MULTILIB_USEDEP}]
+ >=x11-libs/gdk-pixbuf-2.35.5:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/atkmm-2.24.2[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.12.0[${MULTILIB_USEDEP}]
+ >=dev-cpp/pangomm-2.38.2:1.4[${MULTILIB_USEDEP}]
+ >=dev-libs/libsigc++-2.3.2:2[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ media-gfx/graphviz
+ dev-libs/libxslt
+ app-doc/doxygen )
+"
+# eautoreconf needs mm-common
+
+RESTRICT="!test? ( test )"
+
+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 waste time building examples
+ sed 's/^\(SUBDIRS =.*\)demos\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "sed 2 failed"
+
+ 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_test() {
+ virtx emake check
+}
+
+multilib_src_install() {
+ gnome2_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ find demos -type d -name '.deps' -exec rm -rf {} \; 2>/dev/null
+ find demos -type f -name 'Makefile*' -exec rm -f {} \; 2>/dev/null
+ dodoc -r demos
+}
diff --git a/dev-cpp/gtkmm/metadata.xml b/dev-cpp/gtkmm/metadata.xml
new file mode 100644
index 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/gtkmm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/gtksourceviewmm/Manifest b/dev-cpp/gtksourceviewmm/Manifest
new file mode 100644
index 000000000000..03c7cb13684b
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/Manifest
@@ -0,0 +1,2 @@
+DIST gtksourceviewmm-2.10.3.tar.xz 742184 BLAKE2B bfd61f3ca29afa4b01fef651849189983fbc64c95c0258c19812b6fddfb2f9e793a1a684e44e88384dcb24632a2c247f4b6ec400f2ef3d19f878064e017d986b SHA512 e6ddc4f585251f68e48cf0ea2c33bce02a90031efcd885105a82837715d659a317ee0845b476fc54c1c4c71b518df41ce494505af1524db6acb733e51f44e6ca
+DIST gtksourceviewmm-3.18.0.tar.xz 1079780 BLAKE2B 973f06a3baed8d5ab541b2f179f773391fe562cab2fceffd0366748acafc4bfc1d4717d969bdd5a5716f892ff497b89338f8b3cd085aebb9c033a40b29d3c0b4 SHA512 143de4a650f2a6090efeba359e78d1f4982519a9e7a2be838f9888732c57dcc42db8b6ab45bd23ccd261d8f17bc743846a3bb572566f233cee9b4238c017c64c
diff --git a/dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3-r1.ebuild b/dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3-r1.ebuild
new file mode 100644
index 000000000000..0d30e55b5a85
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/gtksourceviewmm-2.10.3-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit flag-o-matic gnome2
+
+DESCRIPTION="C++ bindings for gtksourceview"
+HOMEPAGE="https://wiki.gnome.org/Projects/GtkSourceView"
+
+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 )
+"
+
+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_configure() {
+ append-cxxflags -std=c++11
+ gnome2_src_configure \
+ $(use_enable doc documentation) \
+ --disable-static
+}
+
+src_install() {
+ gnome2_src_install
+ use doc && dohtml -r docs/reference/html/*
+}
diff --git a/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.18.0.ebuild b/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.18.0.ebuild
new file mode 100644
index 000000000000..78ea3e11d330
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/gtksourceviewmm-3.18.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2
+
+DESCRIPTION="C++ bindings for gtksourceview"
+HOMEPAGE="https://wiki.gnome.org/Projects/GtkSourceView"
+
+KEYWORDS="amd64 ppc x86"
+IUSE="doc"
+SLOT="3.0"
+LICENSE="LGPL-2.1"
+
+RDEPEND="
+ >=dev-cpp/glibmm-2.46.1:2
+ >=dev-cpp/gtkmm-3.18.0:3.0
+ >=x11-libs/gtksourceview-3.18.0: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/metadata.xml b/dev-cpp/gtksourceviewmm/metadata.xml
new file mode 100644
index 000000000000..1e58c42abcbc
--- /dev/null
+++ b/dev-cpp/gtksourceviewmm/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 type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <longdescription>
+ Gtkmm (C++) wrapper for gtksourceview
+ </longdescription>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/htmlcxx/Manifest b/dev-cpp/htmlcxx/Manifest
new file mode 100644
index 000000000000..6a7558d8de92
--- /dev/null
+++ b/dev-cpp/htmlcxx/Manifest
@@ -0,0 +1 @@
+DIST htmlcxx-0.87.tar.gz 477083 BLAKE2B 94977e758b4f2643f39a464094e315c11b78bc957a3eb054e6a7608828345704a82c3ca36c5ac2855054e7570daebb80d8a63639f3a7197344d25f2d16830702 SHA512 391b94c7ea2d17a04d46ac80f8146e6c2b14b289379c40f3d432ed9c0f36222ced6384d725cdecfc352e28c30f11976249b6a3f7133bbee3161a7883d197fca7
diff --git a/dev-cpp/htmlcxx/htmlcxx-0.87.ebuild b/dev-cpp/htmlcxx/htmlcxx-0.87.ebuild
new file mode 100644
index 000000000000..fdcb01bc5cf2
--- /dev/null
+++ b/dev-cpp/htmlcxx/htmlcxx-0.87.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib-minimal
+
+DESCRIPTION="A simple non-validating CSS 1 and HTML parser for C++"
+HOMEPAGE="http://htmlcxx.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="static-libs"
+
+ECONF_SOURCE="${S}"
+
+multilib_src_configure() {
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install_all() {
+ # libtool archives covered by pkg-config.
+ find "${D}" -name "*.la" -delete || die
+
+ einstalldocs
+}
diff --git a/dev-cpp/htmlcxx/metadata.xml b/dev-cpp/htmlcxx/metadata.xml
new file mode 100644
index 000000000000..9ae9619a02cc
--- /dev/null
+++ b/dev-cpp/htmlcxx/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 type="person">
+ <email>chewi@gentoo.org</email>
+ <name>James Le Cuirot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">htmlcxx</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/icnc/Manifest b/dev-cpp/icnc/Manifest
new file mode 100644
index 000000000000..7edb8f85b34b
--- /dev/null
+++ b/dev-cpp/icnc/Manifest
@@ -0,0 +1 @@
+DIST icnc-1.0.100.tar.gz 27164070 BLAKE2B 74c9e79b3d8fa0f75ee924910bde79bf0ac1535ce0e7e5e74dcac33a8219f574aadf7382a8d73ae281858ee3ae8f186ca55d33c22dfce223d1bb84c28ca42ddf SHA512 b6c231504ed36676d5c4a9c651c7ce6bee078a415c8d365dbe66208a5226a71c62924ee7bc0b36f8c35bff20ed5f0baf2710f581595d08fe10a1d799b3982a8b
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 000000000000..85a28e528c1d
--- /dev/null
+++ b/dev-cpp/icnc/icnc-1.0.100.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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 000000000000..1427f46c0c35
--- /dev/null
+++ b/dev-cpp/icnc/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 type="person">
+ <email>junghans@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">icnc/icnc</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/kokkos/Manifest b/dev-cpp/kokkos/Manifest
new file mode 100644
index 000000000000..d3bb82f1710a
--- /dev/null
+++ b/dev-cpp/kokkos/Manifest
@@ -0,0 +1,3 @@
+DIST kokkos-3.0.00.tar.gz 1923287 BLAKE2B 4a2935e9388b3d577d6ce8678cad37830970222e6ce8a9c3db67633cb521440f14fdb380f03d3c77cd5ade85abe94aef97e9cc4949cc3a140fae958e0c15fff8 SHA512 c9daf62a2c92462c815aa241934aca5720bac8f88195635ae5a3ff4111d289a48898d32358b91e120756d3412820050297a76f44828f4cbc0b2b837a736e84aa
+DIST kokkos-3.1.00.tar.gz 1972408 BLAKE2B 47c3eb83526dd13430a3b7049a98169d15ef73c6d2b3943c5600a153d28a9c6a0d6ee0b8eda1aac5f1b53556c5cee1680ce92a90f97b1b2741e1e7f0c9222486 SHA512 7933542c24e137052d630a503d707912295022863f2d47c89c4a35a9c8a70514763d89e321c66a3878575e661461ede45ac44d74cf45eca2470e7f57840d5c0c
+DIST kokkos-3.1.01.tar.gz 1972707 BLAKE2B fe31556ecba6b01ed6e480f0cb4ca4d7dc487d6b2a7e52df94d0e93b864ed5269a752f4fcdbacb55383e9dee3b72236f121b67d2f5eed10f3351219b063e7099 SHA512 4fa428ec33ec207147b3fcc5e0d297bcff4ed772ba6baa24ccaf56b691b72b70c69bd48fdf134f4e78234bf755377fe01a31611a41539c2d211ba9caed24b1f2
diff --git a/dev-cpp/kokkos/kokkos-3.0.00.ebuild b/dev-cpp/kokkos/kokkos-3.0.00.ebuild
new file mode 100644
index 000000000000..1707ae8abba0
--- /dev/null
+++ b/dev-cpp/kokkos/kokkos-3.0.00.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils toolchain-funcs
+
+DESCRIPTION="Kokkos C++ Performance Portability Programming EcoSystem"
+HOMEPAGE="https://github.com/kokkos"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+openmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ sys-apps/hwloc
+ "
+RDEPEND="${DEPEND}"
+BDEPEND=""
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] && \
+ use openmp && ! tc-has-openmp ; then
+ die "Need an OpenMP capable compiler"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_INCLUDEDIR=include/kokkos
+ -DKokkos_ENABLE_TESTS=$(usex test)
+ -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON
+ -DKokkos_ENABLE_DEPRECATED_CODE=ON
+ -DKokkos_ENABLE_SERIAL=ON
+ -DKokkos_ENABLE_HWLOC=ON
+ -DKokkos_HWLOC_DIR="${EPREFIX}/usr"
+ -DKokkos_ENABLE_OPENMP=$(usex openmp)
+ -DBUILD_SHARED_LIBS=ON
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/kokkos/kokkos-3.1.00.ebuild b/dev-cpp/kokkos/kokkos-3.1.00.ebuild
new file mode 100644
index 000000000000..1707ae8abba0
--- /dev/null
+++ b/dev-cpp/kokkos/kokkos-3.1.00.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils toolchain-funcs
+
+DESCRIPTION="Kokkos C++ Performance Portability Programming EcoSystem"
+HOMEPAGE="https://github.com/kokkos"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+openmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ sys-apps/hwloc
+ "
+RDEPEND="${DEPEND}"
+BDEPEND=""
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] && \
+ use openmp && ! tc-has-openmp ; then
+ die "Need an OpenMP capable compiler"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_INCLUDEDIR=include/kokkos
+ -DKokkos_ENABLE_TESTS=$(usex test)
+ -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON
+ -DKokkos_ENABLE_DEPRECATED_CODE=ON
+ -DKokkos_ENABLE_SERIAL=ON
+ -DKokkos_ENABLE_HWLOC=ON
+ -DKokkos_HWLOC_DIR="${EPREFIX}/usr"
+ -DKokkos_ENABLE_OPENMP=$(usex openmp)
+ -DBUILD_SHARED_LIBS=ON
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/kokkos/kokkos-3.1.01.ebuild b/dev-cpp/kokkos/kokkos-3.1.01.ebuild
new file mode 100644
index 000000000000..1707ae8abba0
--- /dev/null
+++ b/dev-cpp/kokkos/kokkos-3.1.01.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils toolchain-funcs
+
+DESCRIPTION="Kokkos C++ Performance Portability Programming EcoSystem"
+HOMEPAGE="https://github.com/kokkos"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+openmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ sys-apps/hwloc
+ "
+RDEPEND="${DEPEND}"
+BDEPEND=""
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] && \
+ use openmp && ! tc-has-openmp ; then
+ die "Need an OpenMP capable compiler"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_INCLUDEDIR=include/kokkos
+ -DKokkos_ENABLE_TESTS=$(usex test)
+ -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON
+ -DKokkos_ENABLE_DEPRECATED_CODE=ON
+ -DKokkos_ENABLE_SERIAL=ON
+ -DKokkos_ENABLE_HWLOC=ON
+ -DKokkos_HWLOC_DIR="${EPREFIX}/usr"
+ -DKokkos_ENABLE_OPENMP=$(usex openmp)
+ -DBUILD_SHARED_LIBS=ON
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/kokkos/metadata.xml b/dev-cpp/kokkos/metadata.xml
new file mode 100644
index 000000000000..a19fe5d95697
--- /dev/null
+++ b/dev-cpp/kokkos/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>junghans@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libcmis/Manifest b/dev-cpp/libcmis/Manifest
new file mode 100644
index 000000000000..c1568ef2f82e
--- /dev/null
+++ b/dev-cpp/libcmis/Manifest
@@ -0,0 +1 @@
+DIST libcmis-0.5.2.tar.gz 295020 BLAKE2B 325eacedd87eb1888a439c727a648c5aeb8d58c9b80add9761ffc55381193b71b589865d13ecd55177faafa935642685001f60456c1354e037989b29e9451c05 SHA512 45d8cd6d420a9593b46e1f2d6fbf384ea248cb218b0db6326ee2f082ff29100b65a2cc999ccb849e61df4f4ed7c3721b09addc6c322ef03c6c93f8c0acc02bde
diff --git a/dev-cpp/libcmis/files/libcmis-0.5.2-icu-64.2.patch b/dev-cpp/libcmis/files/libcmis-0.5.2-icu-64.2.patch
new file mode 100644
index 000000000000..6ba63ee7fe76
--- /dev/null
+++ b/dev-cpp/libcmis/files/libcmis-0.5.2-icu-64.2.patch
@@ -0,0 +1,17 @@
+--- a/inc/libcmis-c/repository.h 2018-12-27 14:07:55.000000000 +0100
++++ b/inc/libcmis-c/repository.h 2019-04-21 01:29:46.504373226 +0200
+@@ -28,12 +28,12 @@
+ #ifndef _REPOSITORY_H_
+ #define _REPOSITORY_H_
+
++#include <libxml/tree.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+-#include <libxml/tree.h>
+-
+ #include "libcmis-c/libcmis-c-api.h"
+ #include "libcmis-c/types.h"
+
diff --git a/dev-cpp/libcmis/libcmis-0.5.2-r1.ebuild b/dev-cpp/libcmis/libcmis-0.5.2-r1.ebuild
new file mode 100644
index 000000000000..6fcf5cd2b07a
--- /dev/null
+++ b/dev-cpp/libcmis/libcmis-0.5.2-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} = 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/tdf/libcmis.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/tdf/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm arm64 ~ppc64 x86 ~amd64-linux ~x86-linux"
+fi
+inherit autotools flag-o-matic
+
+DESCRIPTION="C++ client library for the CMIS interface"
+HOMEPAGE="https://github.com/tdf/libcmis"
+
+LICENSE="|| ( GPL-2 LGPL-2 MPL-1.1 )"
+SLOT="0.5"
+
+IUSE="man static-libs test tools"
+
+BDEPEND="
+ virtual/pkgconfig
+ man? (
+ app-text/docbook2X
+ dev-libs/libxslt
+ )
+ test? (
+ dev-util/cppcheck
+ dev-util/cppunit
+ )
+"
+DEPEND="
+ dev-libs/boost:=
+ dev-libs/libxml2
+ net-misc/curl
+"
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}/${P}-icu-64.2.patch" )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # bug 618778
+ append-cxxflags -std=c++14
+
+ local myeconfargs=(
+ --program-suffix=-$(ver_cut 1-2)
+ --disable-werror
+ $(use_with man)
+ $(use_enable static-libs static)
+ $(use_enable test tests)
+ $(use_enable tools client)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-cpp/libcmis/libcmis-9999.ebuild b/dev-cpp/libcmis/libcmis-9999.ebuild
new file mode 100644
index 000000000000..a060dbb78ee9
--- /dev/null
+++ b/dev-cpp/libcmis/libcmis-9999.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} = 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/tdf/libcmis.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/tdf/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+fi
+inherit autotools flag-o-matic
+
+DESCRIPTION="C++ client library for the CMIS interface"
+HOMEPAGE="https://github.com/tdf/libcmis"
+
+LICENSE="|| ( GPL-2 LGPL-2 MPL-1.1 )"
+SLOT="0.5"
+
+IUSE="man static-libs test tools"
+
+BDEPEND="
+ virtual/pkgconfig
+ man? (
+ app-text/docbook2X
+ dev-libs/libxslt
+ )
+ test? (
+ dev-util/cppcheck
+ dev-util/cppunit
+ )
+"
+DEPEND="
+ dev-libs/boost:=
+ dev-libs/libxml2
+ net-misc/curl
+"
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # bug 618778
+ append-cxxflags -std=c++14
+
+ local myeconfargs=(
+ --program-suffix=-$(ver_cut 1-2)
+ --disable-werror
+ $(use_with man)
+ $(use_enable static-libs static)
+ $(use_enable test tests)
+ $(use_enable tools client)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-cpp/libcmis/metadata.xml b/dev-cpp/libcmis/metadata.xml
new file mode 100644
index 000000000000..cce26412d84a
--- /dev/null
+++ b/dev-cpp/libcmis/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 type="project">
+ <email>office@gentoo.org</email>
+ <name>Gentoo Office project</name>
+ </maintainer>
+ <use>
+ <flag name="man">Build and install man pages</flag>
+ <flag name="tools">Build client tool for testing and viewing features</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">tdf/libcmis</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libcutl/Manifest b/dev-cpp/libcutl/Manifest
new file mode 100644
index 000000000000..c5ef9585af56
--- /dev/null
+++ b/dev-cpp/libcutl/Manifest
@@ -0,0 +1 @@
+DIST libcutl-1.10.0.tar.bz2 763920 BLAKE2B 8d6741b19cc7c1d320225b6f412c08d6dd1d975a9f1e2f55914a23b8813e42228616ea525905bcf456f4b6e60a72fbf4128a03275833975ce3b8c87d6e4cb631 SHA512 c03f39e87e660fdd07aa9cccb2d82d411ca8226b56475c74b7b2147b90cdb83d13246bc0c09513e407271bcf568d6a08f92c9006e48d1e7f06e4b18dde34dc5f
diff --git a/dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch b/dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch
new file mode 100644
index 000000000000..ebb15ee9b404
--- /dev/null
+++ b/dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch
@@ -0,0 +1,162 @@
+Use regex from C++11 instead of boost/tr1's version (the latter is gone as of boost 1.65).
+Patch: https://svnweb.freebsd.org/ports/head/devel/libcutl/files/patch-cutl_re_re.cxx?view=markup&pathrev=445764
+Bug: https://bugs.gentoo.org/show_bug.cgi?id=630016
+
+--- a/cutl/re/re.cxx
++++ b/cutl/re/re.cxx
+@@ -9,7 +9,7 @@
+ #ifndef LIBCUTL_EXTERNAL_BOOST
+ # include <cutl/details/boost/tr1/regex.hpp>
+ #else
+-# include <boost/tr1/regex.hpp>
++# include <regex>
+ #endif
+
+ using namespace std;
+@@ -40,17 +40,17 @@
+ struct basic_regex<C>::impl
+ {
+ typedef basic_string<C> string_type;
+- typedef tr1::basic_regex<C> regex_type;
++ typedef std::basic_regex<C> regex_type;
+ typedef typename regex_type::flag_type flag_type;
+
+ impl () {}
+ impl (regex_type const& r): r (r) {}
+ impl (string_type const& s, bool icase)
+ {
+- flag_type f (tr1::regex_constants::ECMAScript);
++ flag_type f (std::regex_constants::ECMAScript);
+
+ if (icase)
+- f |= tr1::regex_constants::icase;
++ f |= std::regex_constants::icase;
+
+ r.assign (s, f);
+ }
+@@ -118,15 +118,15 @@
+ impl_ = s == 0 ? new impl : new impl (*s, icase);
+ else
+ {
+- impl::flag_type f (tr1::regex_constants::ECMAScript);
++ impl::flag_type f (std::regex_constants::ECMAScript);
+
+ if (icase)
+- f |= tr1::regex_constants::icase;
++ f |= std::regex_constants::icase;
+
+ impl_->r.assign (*s, f);
+ }
+ }
+- catch (tr1::regex_error const& e)
++ catch (std::regex_error const& e)
+ {
+ throw basic_format<char> (s == 0 ? "" : *s, e.what ());
+ }
+@@ -146,15 +146,15 @@
+ impl_ = s == 0 ? new impl : new impl (*s, icase);
+ else
+ {
+- impl::flag_type f (tr1::regex_constants::ECMAScript);
++ impl::flag_type f (std::regex_constants::ECMAScript);
+
+ if (icase)
+- f |= tr1::regex_constants::icase;
++ f |= std::regex_constants::icase;
+
+ impl_->r.assign (*s, f);
+ }
+ }
+- catch (tr1::regex_error const& e)
++ catch (std::regex_error const& e)
+ {
+ throw basic_format<wchar_t> (s == 0 ? L"" : *s, e.what ());
+ }
+@@ -166,28 +166,28 @@
+ bool basic_regex<char>::
+ match (string_type const& s) const
+ {
+- return tr1::regex_match (s, impl_->r);
++ return std::regex_match (s, impl_->r);
+ }
+
+ template <>
+ bool basic_regex<wchar_t>::
+ match (string_type const& s) const
+ {
+- return tr1::regex_match (s, impl_->r);
++ return std::regex_match (s, impl_->r);
+ }
+
+ template <>
+ bool basic_regex<char>::
+ search (string_type const& s) const
+ {
+- return tr1::regex_search (s, impl_->r);
++ return std::regex_search (s, impl_->r);
+ }
+
+ template <>
+ bool basic_regex<wchar_t>::
+ search (string_type const& s) const
+ {
+- return tr1::regex_search (s, impl_->r);
++ return std::regex_search (s, impl_->r);
+ }
+
+ template <>
+@@ -196,13 +196,13 @@
+ string_type const& sub,
+ bool first_only) const
+ {
+- tr1::regex_constants::match_flag_type f (
+- tr1::regex_constants::format_default);
++ std::regex_constants::match_flag_type f (
++ std::regex_constants::format_default);
+
+ if (first_only)
+- f |= tr1::regex_constants::format_first_only;
++ f |= std::regex_constants::format_first_only;
+
+- return tr1::regex_replace (s, impl_->r, sub, f);
++ return std::regex_replace (s, impl_->r, sub, f);
+ }
+
+ template <>
+@@ -211,13 +211,13 @@
+ string_type const& sub,
+ bool first_only) const
+ {
+- tr1::regex_constants::match_flag_type f (
+- tr1::regex_constants::format_default);
++ std::regex_constants::match_flag_type f (
++ std::regex_constants::format_default);
+
+ if (first_only)
+- f |= tr1::regex_constants::format_first_only;
++ f |= std::regex_constants::format_first_only;
+
+- return tr1::regex_replace (s, impl_->r, sub, f);
++ return std::regex_replace (s, impl_->r, sub, f);
+ }
+ }
+ }
+--- a/m4/libboost.m4
++++ b/m4/libboost.m4
+@@ -129,13 +129,13 @@
+ AC_DEFUN([LIBBOOST_REGEX], [
+ LIBBOOST_LIB([regex],[
+ AC_LANG_SOURCE([
+-#include <boost/tr1/regex.hpp>
++#include <regex>
+
+ int
+ main ()
+ {
+- std::tr1::regex r ("te.t", std::tr1::regex_constants::ECMAScript);
+- return std::tr1::regex_match ("test", r) ? 0 : 1;
++ std::regex r ("te.t", std::regex_constants::ECMAScript);
++ return std::regex_match ("test", r) ? 0 : 1;
+ }
+ ])],
+ [$1],
diff --git a/dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch b/dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch
new file mode 100644
index 000000000000..a6f1a505485b
--- /dev/null
+++ b/dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch
@@ -0,0 +1,53 @@
+Make dtors noexcept(false) when compiling in C++11 and above. This avoids silent
+breakage due to the semantic exception changes between C++98 and C++11.
+
+--- a/cutl/fs/auto-remove.cxx
++++ b/cutl/fs/auto-remove.cxx
+@@ -13,6 +13,9 @@
+ {
+ auto_remove::
+ ~auto_remove ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ if (!canceled_)
+ {
+@@ -23,6 +26,9 @@
+
+ auto_removes::
+ ~auto_removes ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ if (!canceled_)
+ {
+--- a/cutl/fs/auto-remove.hxx
++++ b/cutl/fs/auto-remove.hxx
+@@ -26,7 +26,11 @@
+ {
+ }
+
+- ~auto_remove ();
++ ~auto_remove ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ void
+ cancel ()
+@@ -51,7 +55,11 @@
+ struct LIBCUTL_EXPORT auto_removes
+ {
+ auto_removes (): canceled_ (false) {}
+- ~auto_removes ();
++ ~auto_removes ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ void
+ add (path const& p)
diff --git a/dev-cpp/libcutl/libcutl-1.10.0.ebuild b/dev-cpp/libcutl/libcutl-1.10.0.ebuild
new file mode 100644
index 000000000000..b88f5363b9ee
--- /dev/null
+++ b/dev-cpp/libcutl/libcutl-1.10.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic versionator
+
+DESCRIPTION="A collection of C++ libraries (successor of libcult)"
+HOMEPAGE="https://www.codesynthesis.com/projects/libcutl/"
+SRC_URI="https://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-libs/expat
+ dev-libs/boost:="
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.0-fix-c++14.patch
+ "${FILESDIR}"/${PN}-1.10.0-boost-1.65-tr1.patch
+)
+
+src_prepare() {
+ default
+
+ # remove bundled libs
+ rm -r cutl/details/{boost,expat} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # ensure <regex> works on GCC 5 and below
+ # bug 630016
+ append-cxxflags -std=c++14
+
+ econf \
+ --disable-static \
+ --with-external-boost \
+ --with-external-expat
+}
+
+src_install() {
+ default
+
+ # package provides .pc files
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-cpp/libcutl/metadata.xml b/dev-cpp/libcutl/metadata.xml
new file mode 100644
index 000000000000..3d4429370ed8
--- /dev/null
+++ b/dev-cpp/libcutl/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libglademm/Manifest b/dev-cpp/libglademm/Manifest
new file mode 100644
index 000000000000..252367f0fc89
--- /dev/null
+++ b/dev-cpp/libglademm/Manifest
@@ -0,0 +1 @@
+DIST libglademm-2.6.7.tar.bz2 326385 BLAKE2B b79bd099f7eba02585921cd88331cd3c2f0a362396efded2996b149689f1869146a81ef174e9f983f348fe231866e4dcc719eeef62f5f3a2b0ba5dbaf1375504 SHA512 d7042d0549df9322d3202d5c0733d65b153a8ff451bb9e401b9d93a915ec4c2c086428e4febcbae2ecec5936955b7afbc59beff93d492f23b7b8e2b19fe806b0
diff --git a/dev-cpp/libglademm/libglademm-2.6.7-r2.ebuild b/dev-cpp/libglademm/libglademm-2.6.7-r2.ebuild
new file mode 100644
index 000000000000..4b75e756ca7e
--- /dev/null
+++ b/dev-cpp/libglademm/libglademm-2.6.7-r2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit eutils flag-o-matic gnome2 multilib-minimal
+
+DESCRIPTION="C++ bindings for libglade"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="2.4"
+KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ppc ppc64 sparc x86"
+IUSE="doc examples"
+
+RDEPEND="
+ >=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}]
+"
+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)"
+
+ append-cxxflags -std=c++11 #566584
+
+ 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
+ fi
+}
+
+multilib_src_install() {
+ gnome2_src_install
+
+ if use examples; then
+ emake -C "examples" distclean
+ 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
+ fi
+}
diff --git a/dev-cpp/libglademm/metadata.xml b/dev-cpp/libglademm/metadata.xml
new file mode 100644
index 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/libglademm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libgnomecanvasmm/Manifest b/dev-cpp/libgnomecanvasmm/Manifest
new file mode 100644
index 000000000000..fc13b2438e4c
--- /dev/null
+++ b/dev-cpp/libgnomecanvasmm/Manifest
@@ -0,0 +1 @@
+DIST libgnomecanvasmm-2.26.0.tar.bz2 327215 BLAKE2B 87cfc59d0825ad2b345bbeff7ba6ce74744228a359d61c8c6b86cef308827c78410b4633737ab9040f6dbdf7f37ed0ea376d28ab4194266f9c784b8b07d1f76d SHA512 23795c856674b79f82d2e5cffdfdbf67a387fe6a21081fef1d96d0f614a121710c7f1e175612a286f5946a60cea4e8506aef7833a7bdf73084d6266c09aad66b
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 000000000000..d18b3c0b1342
--- /dev/null
+++ b/dev-cpp/libgnomecanvasmm/libgnomecanvasmm-2.26.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit flag-o-matic gnome2
+
+DESCRIPTION="C++ bindings for libgnomecanvas"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1"
+SLOT="2.6"
+KEYWORDS="~alpha amd64 arm ~ia64 ppc ppc64 sparc x86"
+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
+ append-cxxflags -std=c++11 #568300
+}
+
+src_compile() {
+ gnome2_src_compile
+
+ if use doc; then
+ cd "${S}/docs/reference"
+ emake all
+ 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 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/libgnomecanvasmm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libjson-rpc-cpp/Manifest b/dev-cpp/libjson-rpc-cpp/Manifest
new file mode 100644
index 000000000000..6c0de9f1f33f
--- /dev/null
+++ b/dev-cpp/libjson-rpc-cpp/Manifest
@@ -0,0 +1 @@
+DIST libjson-rpc-cpp-1.3.0.tar.gz 182354 BLAKE2B 512392c37e61833a98c1f682bdbb3ed0e3c72ff56f17407d49e5a0f134795daf5ff4c2702dd5222bfc8962b2c9a56c0c7856cc8fe1b923ea68c369a24d334b5c SHA512 4eb53c7b77845a0e845e42413c491dcfa1d6f72411276e8614dae6612edde8905013588465437ea39c5cc5700c2d48df07d15c83222924fc24e015fb9f7a02ea
diff --git a/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-1.3.0.ebuild b/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-1.3.0.ebuild
new file mode 100644
index 000000000000..81b0d2bc5010
--- /dev/null
+++ b/dev-cpp/libjson-rpc-cpp/libjson-rpc-cpp-1.3.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+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/1"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc +http-client +http-server redis-client redis-server +stubgen test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-libs/jsoncpp:=
+ http-client? ( net-misc/curl:= )
+ http-server? ( net-libs/libmicrohttpd:= )
+ redis-client? ( dev-libs/hiredis:= )
+ redis-server? ( dev-libs/hiredis:= )
+ stubgen? ( dev-libs/argtable:= )"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )
+ test? ( dev-cpp/catch:0 )"
+
+src_configure() {
+ local mycmakeargs=(
+ -DHTTP_CLIENT=$(usex http-client)
+ -DHTTP_SERVER=$(usex http-server)
+ -DREDIS_CLIENT=$(usex redis-client)
+ -DREDIS_SERVER=$(usex redis-server)
+ # they have no deps
+ -DTCP_SOCKET_CLIENT=ON
+ -DTCP_SOCKET_SERVER=ON
+ -DSERIAL_PORT_CLIENT=ON
+ -DSERIAL_PORT_SERVER=ON
+ -DUNIX_DOMAIN_SOCKET_CLIENT=ON
+ -DUNIX_DOMAIN_SOCKET_SERVER=ON
+ # they are not installed
+ -DCOMPILE_EXAMPLES=OFF
+ -DCOMPILE_STUBGEN=$(usex stubgen)
+ -DCOMPILE_TESTS=$(usex test)
+ -DCATCH_INCLUDE_DIR="${EPREFIX}/usr/include/catch2"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ use doc && emake -C "${BUILD_DIR}" doc
+}
+
+src_test() {
+ # Tests fail randomly when run in parallel
+ local MAKEOPTS=-j1
+ cmake_src_test
+}
+
+src_install() {
+ cmake_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 000000000000..3abf59418811
--- /dev/null
+++ b/dev-cpp/libjson-rpc-cpp/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <use>
+ <flag name="http-client">Build support for HTTP client using <pkg>net-misc/curl</pkg></flag>
+ <flag name="http-server">Build support for HTTP server using <pkg>net-libs/libmicrohttpd</pkg></flag>
+ <flag name="redis-client">Build support for Redis client using <pkg>dev-libs/hiredis</pkg></flag>
+ <flag name="redis-server">Build support for Redis server using <pkg>dev-libs/hiredis</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>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libmcpp/Manifest b/dev-cpp/libmcpp/Manifest
new file mode 100644
index 000000000000..c70198b721eb
--- /dev/null
+++ b/dev-cpp/libmcpp/Manifest
@@ -0,0 +1 @@
+DIST mcpp-2.7.2.tar.gz 1533457 BLAKE2B 4368fd1c667923ab3b60ce79f8421c549a9d9105957ca87b9ba49be513cb1be7f220a3ddbaf306e860014d5211af480d07170d912d3d4a80345d8eab45fd6c00 SHA512 1ca885cb13fdb684de9d0595a9215b52f48a93a69077d82cdcacafe40d9a61fb77b00a3ff2b8890e7bc0a0fcc0c8d70d4093c00c280351cd4459aba67c573235
diff --git a/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch b/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch
new file mode 100644
index 000000000000..95cefadd3fe8
--- /dev/null
+++ b/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch
@@ -0,0 +1,30 @@
+Specify and install files using idiomatic Automake
+conventions instead of manually installing with cp.
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -23,16 +23,12 @@
+ $(top_srcdir)/test-c $(top_srcdir)/test-l $(top_srcdir)/tool \
+ $(top_srcdir)/doc $(top_srcdir)/doc-jp
+
+-if ! REPLACE_CPP
+-install-exec-hook:
+- $(top_srcdir)/config/install-sh -d "$(DESTDIR)$(prefix)/share/doc/mcpp"
+- cp -pf $(top_srcdir)/LICENSE $(top_srcdir)/README $(top_srcdir)/NEWS \
+- $(DESTDIR)$(prefix)/share/doc/mcpp
+- cp -pf $(top_srcdir)/doc/mcpp-manual.html \
+- $(DESTDIR)$(prefix)/share/doc/mcpp
+- cp -pf $(top_srcdir)/doc-jp/mcpp-manual.html \
+- $(DESTDIR)$(prefix)/share/doc/mcpp/mcpp-manual-jp.html
+-uninstall-hook:
+- rm -rf $(DESTDIR)$(prefix)/share/doc/mcpp
+-endif
++dist_doc_DATA = README NEWS doc/mcpp-summary.pdf
+
++dist_html_DATA = \
++ doc/cpp-test.html \
++ doc/mcpp-manual.html \
++ doc/mcpp-porting.html
++
++htmljadir = $(htmldir)/doc-jp
++dist_htmlja_DATA = doc-jp/mcpp-manual.html
diff --git a/dev-cpp/libmcpp/files/libmcpp-2.7.2-gniibe.patch b/dev-cpp/libmcpp/files/libmcpp-2.7.2-gniibe.patch
new file mode 100644
index 000000000000..cb5aa6c345ce
--- /dev/null
+++ b/dev-cpp/libmcpp/files/libmcpp-2.7.2-gniibe.patch
@@ -0,0 +1,33 @@
+Description: Simple fixes
+ * Fix freeing unmalloced memory
+ The memory of 'in_file' is not malloced, but points to argv[].
+ It is wrong to free it.
+ * When there is no input file specified by argv, it causes error
+ and fp_in == NULL. Check is needed to call fclose for fp_in.
+Author: NIIBE Yutaka
+
+## Fixes the issue reported at:
+## http://www.forallsecure.com/bug-reports/6b11b6fccda17cc467e055ccf7fec3fa2d89ec00/
+
+Index: mcpp-2.7.2/src/main.c
+===================================================================
+--- mcpp-2.7.2.orig/src/main.c 2013-07-09 03:03:05.610947658 +0000
++++ mcpp-2.7.2/src/main.c 2013-07-09 03:03:05.534947624 +0000
+@@ -428,16 +428,11 @@
+
+ fatal_error_exit:
+ #if MCPP_LIB
+- /* Free malloced memory */
+- if (mcpp_debug & MACRO_CALL) {
+- if (in_file != stdin_name)
+- free( in_file);
+- }
+ clear_filelist();
+ clear_symtable();
+ #endif
+
+- if (fp_in != stdin)
++ if (fp_in && fp_in != stdin)
+ fclose( fp_in);
+ if (fp_out != stdout)
+ fclose( fp_out);
diff --git a/dev-cpp/libmcpp/files/libmcpp-2.7.2-zeroc.patch b/dev-cpp/libmcpp/files/libmcpp-2.7.2-zeroc.patch
new file mode 100644
index 000000000000..fff5d321fe98
--- /dev/null
+++ b/dev-cpp/libmcpp/files/libmcpp-2.7.2-zeroc.patch
@@ -0,0 +1,75 @@
+Description: Fixes by ZeroC, Inc.
+Author: ZeroC, Inc.
+Bug-Debian: http://bugs.debian.org/611749
+
+--- mcpp-2.7.2.orig/src/main.c
++++ mcpp-2.7.2/src/main.c
+@@ -326,6 +326,8 @@ static void init_main( void)
+ = FALSE;
+ option_flags.trig = TRIGRAPHS_INIT;
+ option_flags.dig = DIGRAPHS_INIT;
++ sh_file = NULL;
++ sh_line = 0;
+ }
+
+ int mcpp_lib_main
+--- mcpp-2.7.2.orig/src/support.c
++++ mcpp-2.7.2/src/support.c
+@@ -188,7 +188,7 @@ static char * append_to_buffer(
+ size_t length
+ )
+ {
+- if (mem_buf_p->bytes_avail < length) { /* Need to allocate more memory */
++ if (mem_buf_p->bytes_avail < length + 1) { /* Need to allocate more memory */
+ size_t size = MAX( BUF_INCR_SIZE, length);
+
+ if (mem_buf_p->buffer == NULL) { /* 1st append */
+@@ -1722,6 +1722,8 @@ com_start:
+ sp -= 2;
+ while (*sp != '\n') /* Until end of line */
+ mcpp_fputc( *sp++, OUT);
++ mcpp_fputc( '\n', OUT);
++ wrong_line = TRUE;
+ }
+ goto end_line;
+ default: /* Not a comment */
+--- mcpp-2.7.2.orig/src/internal.H
++++ mcpp-2.7.2/src/internal.H
+@@ -390,6 +390,8 @@ extern char * const work_end; /* E
+ extern char identifier[]; /* Lastly scanned name */
+ extern IFINFO ifstack[]; /* Information of #if nesting */
+ extern char work_buf[];
++extern FILEINFO * sh_file;
++extern int sh_line;
+ /* Temporary buffer for directive line and macro expansion */
+
+ /* main.c */
+@@ -557,6 +559,6 @@ extern void init_system( void);
+ #endif
+ #endif
+
+-#if HOST_HAVE_STPCPY
++#if HOST_HAVE_STPCPY && !defined(stpcpy)
+ extern char * stpcpy( char * dest, const char * src);
+ #endif
+--- mcpp-2.7.2.orig/src/system.c
++++ mcpp-2.7.2/src/system.c
+@@ -3858,6 +3858,9 @@ static int chk_dirp(
+ }
+ #endif
+
++FILEINFO* sh_file;
++int sh_line;
++
+ void sharp(
+ FILEINFO * sharp_file,
+ int flag /* Flag to append to the line for GCC */
+@@ -3868,8 +3871,6 @@ void sharp(
+ * else (i.e. 'sharp_file' is NULL) 'infile'.
+ */
+ {
+- static FILEINFO * sh_file;
+- static int sh_line;
+ FILEINFO * file;
+ int line;
+
diff --git a/dev-cpp/libmcpp/libmcpp-2.7.2-r2.ebuild b/dev-cpp/libmcpp/libmcpp-2.7.2-r2.ebuild
new file mode 100644
index 000000000000..0f8a8f23a825
--- /dev/null
+++ b/dev-cpp/libmcpp/libmcpp-2.7.2-r2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+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 ~x86-linux ~x64-macos"
+IUSE="static-libs"
+
+DEPEND=""
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${PN}-2.7.2-fix-build-system.patch )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --enable-mcpplib \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+
+ if ! use static-libs; then
+ find "${D}" -name '*.la' -delete || die
+ fi
+}
diff --git a/dev-cpp/libmcpp/libmcpp-2.7.2-r3.ebuild b/dev-cpp/libmcpp/libmcpp-2.7.2-r3.ebuild
new file mode 100644
index 000000000000..69aa40621369
--- /dev/null
+++ b/dev-cpp/libmcpp/libmcpp-2.7.2-r3.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+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 ~x86-linux ~x64-macos"
+IUSE="static-libs"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.7.2-fix-build-system.patch
+ "${FILESDIR}"/${PN}-2.7.2-zeroc.patch
+ "${FILESDIR}"/${PN}-2.7.2-gniibe.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --enable-mcpplib \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+
+ if ! use static-libs; then
+ find "${D}" -name '*.la' -delete || die
+ fi
+}
diff --git a/dev-cpp/libmcpp/metadata.xml b/dev-cpp/libmcpp/metadata.xml
new file mode 100644
index 000000000000..dcf9d04cecb0
--- /dev/null
+++ b/dev-cpp/libmcpp/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="sourceforge">mcpp</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libxmlpp/Manifest b/dev-cpp/libxmlpp/Manifest
new file mode 100644
index 000000000000..1737afb5645e
--- /dev/null
+++ b/dev-cpp/libxmlpp/Manifest
@@ -0,0 +1,2 @@
+DIST libxml++-2.40.1.tar.xz 955220 BLAKE2B 44c55ab0e9018af859097e1a753c1457f5694b282f8f5187b32ce908d34f7953b8e73f1e41750ddf5f5c912712539e32f608a33ab79f22644e15010f75be6c51 SHA512 a4ec2e8182d981c57bdcb8f0a203a3161f8c735ceb59fd212408b7a539d1dc826adf6717bed8f4d544ab08afd9c2fc861efe518e24bbd3a1c4b158e2ca48183a
+DIST libxml++-3.0.1.tar.xz 948796 BLAKE2B cdfa37f3aebdd8109653c50d6e977a443173fe4ff18b3644a030bba065c7ced01bedc98a273ab3a8def73f78efd2458afd16ec68df9f9109b816527383904025 SHA512 9b8ccea9df11d70bb23d7d9983b18d28c648aa0107f9654a79d1cfe97db4633b69dd4b97b76d155aca8553d014a314247851f18d0371717e44a056ee804ccd95
diff --git a/dev-cpp/libxmlpp/libxmlpp-2.40.1.ebuild b/dev-cpp/libxmlpp/libxmlpp-2.40.1.ebuild
new file mode 100644
index 000000000000..a11b6556c75c
--- /dev/null
+++ b/dev-cpp/libxmlpp/libxmlpp-2.40.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+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 ~arm64 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/libxmlpp-3.0.1.ebuild b/dev-cpp/libxmlpp/libxmlpp-3.0.1.ebuild
new file mode 100644
index 000000000000..2747db92aafa
--- /dev/null
+++ b/dev-cpp/libxmlpp/libxmlpp-3.0.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+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="3.0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 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 000000000000..cad7bb264edf
--- /dev/null
+++ b/dev-cpp/libxmlpp/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 type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">libxmlplusplus</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/libxsd-frontend/Manifest b/dev-cpp/libxsd-frontend/Manifest
new file mode 100644
index 000000000000..70c1f0486db1
--- /dev/null
+++ b/dev-cpp/libxsd-frontend/Manifest
@@ -0,0 +1 @@
+DIST libxsd-frontend-2.0.0.tar.bz2 66784 BLAKE2B 3d41a97dc01f7d9231f981043ab00523f27decba428395940dd008b9a35e434e9f1a002f4214c11fe4fb9d228149eb3e05ba7da3d7682ae9d334d3d0db66dc1d SHA512 8a296fdfe2e562237d46774b33ee82e8f67835b0869c03ffdf04570db1e6f398cf97734685d44c2207abbb73cea20b57e53c8fd80a121f98196c1c7d4bacbc68
diff --git a/dev-cpp/libxsd-frontend/libxsd-frontend-2.0.0.ebuild b/dev-cpp/libxsd-frontend/libxsd-frontend-2.0.0.ebuild
new file mode 100644
index 000000000000..1152c229155b
--- /dev/null
+++ b/dev-cpp/libxsd-frontend/libxsd-frontend-2.0.0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs versionator
+
+DESCRIPTION="A compiler frontend for the W3C XML Schema definition language"
+HOMEPAGE="https://www.codesynthesis.com/projects/libxsd-frontend/"
+SRC_URI="https://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=""
+
+RDEPEND="
+ >=dev-libs/xerces-c-3.0.0
+ dev-libs/boost:=[threads]
+ dev-cpp/libcutl"
+DEPEND="${RDEPEND}
+ >=dev-util/build-0.3.10"
+
+src_configure() {
+ mkdir -p \
+ build/{ld,cxx/gnu} \
+ build/import/lib{boost,cult,frontend-elements,xerces-c} || die
+
+ cat >> build/cxx/configuration-dynamic.make <<- EOF || die
+ 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 || die
+ cxx_gnu := $(tc-getCXX)
+ cxx_gnu_libraries :=
+ cxx_gnu_optimization_options :=
+ EOF
+
+ cat >> build/ld/configuration-lib-dynamic.make <<- EOF || die
+ ld_lib_type := shared
+ EOF
+
+ # boost
+ cat >> build/import/libboost/configuration-dynamic.make <<- EOF || die
+ libboost_installed := y
+ libboost_system := y
+ EOF
+
+ # libcutl
+ cat >> build/import/libcutl/configuration-dynamic.make <<- EOF || die
+ libcutl_installed := y
+ EOF
+
+ # xerces-c
+ cat >> build/import/libxerces-c/configuration-dynamic.make <<- EOF || die
+ libxerces_c_installed := y
+ EOF
+}
+
+src_compile() {
+ emake verbose=1
+}
+
+src_install() {
+ einstalldocs
+
+ dolib.so xsd-frontend/libxsd-frontend.so
+
+ # clean header dir of build files
+ 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' \) -exec rm -rf '{}' + || die
+ rm -rf xsd-frontend/arch || die
+ doheader -r xsd-frontend
+}
+
+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 000000000000..3d4429370ed8
--- /dev/null
+++ b/dev-cpp/libxsd-frontend/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/lucene++/Manifest b/dev-cpp/lucene++/Manifest
new file mode 100644
index 000000000000..f9d34ca7c2e3
--- /dev/null
+++ b/dev-cpp/lucene++/Manifest
@@ -0,0 +1 @@
+DIST lucene++-3.0.7.tar.gz 2013570 BLAKE2B 26abb1a2fa2a24d7240505f11639c078744313541b4993ed84e4d0129fda74346e841f0c4c7552e58a15dd492af9ffd33ea66866c8e6810cd41e5d675833ce79 SHA512 92f3bba320980673cc64c983616aa38d25b44ea811237ed226741b892757fb8151e4f833aa58a18dbe7a0c9a899d94e828aa15e6d7b48a69ab730d1d772db220
diff --git a/dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch b/dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch
new file mode 100644
index 000000000000..9ff33fd03005
--- /dev/null
+++ b/dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch
@@ -0,0 +1,37 @@
+commit 1987082cf9278a639d772b4f35a8ae2d34944177
+Author: Václav Slavík <vaclav@slavik.io>
+Date: Mon May 4 18:04:46 2015 +0200
+
+ Fix compilation with Boost 1.58
+
+ 1.58 introduces strict type checking in boost::get() and while that's
+ good in theory, the VariantUtils code makes it impractical to use.
+ Instead, use relaxed_get() to get the old behavior. relaxed_get() didn't
+ exist in older versions of Boost, so the code must check BOOST_VERSION.
+
+ Fixes #93.
+
+diff --git a/include/VariantUtils.h b/include/VariantUtils.h
+index 1e6c243..5a72e59 100644
+--- a/include/VariantUtils.h
++++ b/include/VariantUtils.h
+@@ -8,6 +8,7 @@
+ #define VARIANTUTILS_H
+
+ #include <boost/any.hpp>
++#include <boost/version.hpp>
+ #include "Lucene.h"
+ #include "MiscUtils.h"
+
+@@ -22,7 +23,11 @@ public:
+
+ template <typename TYPE, typename VAR>
+ static TYPE get(VAR var) {
++#if BOOST_VERSION < 105800
+ return var.type() == typeid(TYPE) ? boost::get<TYPE>(var) : TYPE();
++#else
++ return var.type() == typeid(TYPE) ? boost::relaxed_get<TYPE>(var) : TYPE();
++#endif
+ }
+
+ template <typename TYPE, typename VAR>
diff --git a/dev-cpp/lucene++/lucene++-3.0.7-r1.ebuild b/dev-cpp/lucene++/lucene++-3.0.7-r1.ebuild
new file mode 100644
index 000000000000..731f88718271
--- /dev/null
+++ b/dev-cpp/lucene++/lucene++-3.0.7-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_P="LucenePlusPlus-rel_${PV}"
+inherit cmake-utils
+
+DESCRIPTION="C++ port of 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 ppc ppc64 sparc x86"
+IUSE="debug"
+
+DEPEND="dev-libs/boost:="
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( AUTHORS README.rst )
+
+PATCHES=( "${FILESDIR}/${P}-boost-1.58.patch" )
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_DEMO=OFF
+ -DENABLE_TEST=OFF
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/lucene++/lucene++-3.0.7-r2.ebuild b/dev-cpp/lucene++/lucene++-3.0.7-r2.ebuild
new file mode 100644
index 000000000000..d81bc12c9a8a
--- /dev/null
+++ b/dev-cpp/lucene++/lucene++-3.0.7-r2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_P="LucenePlusPlus-rel_${PV}"
+inherit cmake
+
+DESCRIPTION="C++ port of 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 ppc ppc64 sparc x86"
+IUSE="debug"
+
+DEPEND="dev-libs/boost:="
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( AUTHORS README.rst )
+
+PATCHES=( "${FILESDIR}/${P}-boost-1.58.patch" )
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_DEMO=OFF
+ -DENABLE_TEST=OFF
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/lucene++/metadata.xml b/dev-cpp/lucene++/metadata.xml
new file mode 100644
index 000000000000..0d5034a1d53b
--- /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 type="person">
+ <email>johu@gentoo.org</email>
+ <name>Johannes Huber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">luceneplusplus/luceneplusplus</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/metadata.xml b/dev-cpp/metadata.xml
new file mode 100644
index 000000000000..643f7614d21e
--- /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 000000000000..b1423bb022d1
--- /dev/null
+++ b/dev-cpp/metslib/Manifest
@@ -0,0 +1 @@
+DIST metslib-0.5.3.tgz 218295 BLAKE2B 259cb3e51a7faac9b36bd43477114e0e91a11ae7874cc6d520d73f400a4cd2252800f66098a611b53a2b6408ed3f7fbe02639fc5ea3c46db95e16f6ede073376 SHA512 27acc3728213f92963e046fa5ffd268686764e02d35765415a544194d70c873cfe38d5bba5a259b63847ab815c5984313fe81a66da1d39c89615a413943f7b04
diff --git a/dev-cpp/metslib/metadata.xml b/dev-cpp/metslib/metadata.xml
new file mode 100644
index 000000000000..8fcda97e7e6f
--- /dev/null
+++ b/dev-cpp/metslib/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+<email>aballier@gentoo.org</email>
+<name>Alexis Ballier</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</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 000000000000..6cecf6502b7d
--- /dev/null
+++ b/dev-cpp/metslib/metslib-0.5.3.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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 000000000000..898ab40de92b
--- /dev/null
+++ b/dev-cpp/mm-common/Manifest
@@ -0,0 +1,2 @@
+DIST mm-common-0.9.12.tar.xz 304588 BLAKE2B 8fd443b4077d803bb1513c897aa44965e50591cf36518469f1f2f74c40ff2b4f687152f9fc31e2d543ac97ae7a5a0a58efdc8c362959e015eee54b8bd518809e SHA512 99701d91994ca2783fe5b8bfd44cdea9f14e16dbbc116f894d9f3df746912cdbcdbdb0d5fdf6e235c9d22621a314de7aaac9b87a18f3ab742a0ad2ebbaad8ec7
+DIST mm-common-1.0.0.tar.xz 269312 BLAKE2B 549708486f3c7df699b966e818dde4888048f30db94a78b721b8ba0e6cffa949f0c6b32e3f03861a3646f4547724997441a2f4eee1a597fb78c28e89882344e6 SHA512 5f90964ae7f47ef16919c5ae20fa38436d04e0cf6eb4b868c3a498631e1995dc5363728ebfed2678266de08adbd1c326d1a77755b232d98d02acc034f08412db
diff --git a/dev-cpp/mm-common/metadata.xml b/dev-cpp/mm-common/metadata.xml
new file mode 100644
index 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/mm-common/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/mm-common/mm-common-0.9.12.ebuild b/dev-cpp/mm-common/mm-common-0.9.12.ebuild
new file mode 100644
index 000000000000..74506878137c
--- /dev/null
+++ b/dev-cpp/mm-common/mm-common-0.9.12.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+GCONF_DEBUG="no"
+
+inherit gnome2
+
+DESCRIPTION="Build infrastructure and utilities for GNOME C++ bindings"
+HOMEPAGE="https://www.gtkmm.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
diff --git a/dev-cpp/mm-common/mm-common-1.0.0.ebuild b/dev-cpp/mm-common/mm-common-1.0.0.ebuild
new file mode 100644
index 000000000000..ba4c89f0371d
--- /dev/null
+++ b/dev-cpp/mm-common/mm-common-1.0.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit gnome.org meson
+
+DESCRIPTION="Build infrastructure and utilities for GNOME C++ bindings"
+HOMEPAGE="https://www.gtkmm.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
+
+src_prepare() {
+ default
+
+ # Include project version in docdir name
+ sed -i -e "s:^install_docdir.*:& + '-' + meson.project_version():" meson.build || die
+}
diff --git a/dev-cpp/ms-gsl/Manifest b/dev-cpp/ms-gsl/Manifest
new file mode 100644
index 000000000000..3a53ce074972
--- /dev/null
+++ b/dev-cpp/ms-gsl/Manifest
@@ -0,0 +1,3 @@
+DIST ms-gsl-2.0.0.tar.gz 64726 BLAKE2B ab40725aa38af7c5651e22ebf32d4bd9c27a10be2e206fd4c3c0173ad21da262beddef022b7b158653b185cfc3269f2b6e80d99fe65f601ffc3e770b143b03f8 SHA512 7339527222c8a97a94c0bb4038b3d142045ec5d80995e628574ac96f4d9d13c41ad70fbe0d8390586dc0db8d9ea55107dbc95de80f7335eb78ef9d2e7047d726
+DIST ms-gsl-2.1.0.tar.gz 67289 BLAKE2B 5a247028b71521d7851a6aa5f24936dfb1c7f283854724d8d4bf2d9d9ac3a928c0e5b42a280d8a0a0254d9f6fa958bf1283dab674c649bdaaa7b38ef38f3b1ba SHA512 4382b8feadf4608b06b66a78ca51b0f60a6e8b41b183aec6ac8f8e2e9f0b39705dea513fd708012ed8390c1a4f88d7df454f05166b76bee24ae843835cd4a2ca
+DIST ms-gsl-3.1.0.tar.gz 78196 BLAKE2B 32334891a11004a6919645814154fdb108a4582a00ac0002c0af9a524978cc8316bebb07192e260b800f462d5424c476fc22be59cca59c0f3d9d7606ab8c4181 SHA512 2916df9ee165fc803ffae0a56518f2ba92870e279984913ff591559e1459943c3ffbc1f5a0d819ad8233f0c9034012de3616aa4e10557d87c7285d8425d10696
diff --git a/dev-cpp/ms-gsl/files/ms-gsl-1.0.0-disable_Werror-644042.patch b/dev-cpp/ms-gsl/files/ms-gsl-1.0.0-disable_Werror-644042.patch
new file mode 100644
index 000000000000..35c8177cad8a
--- /dev/null
+++ b/dev-cpp/ms-gsl/files/ms-gsl-1.0.0-disable_Werror-644042.patch
@@ -0,0 +1,35 @@
+From 683aacce5b642a3c735f8040601e0de345d028da Mon Sep 17 00:00:00 2001
+From: Jan Henke <Jan.Henke@taujhe.de>
+Date: Sat, 17 Mar 2018 19:47:52 +0100
+Subject: [PATCH] Disable -WError when compiling tests
+
+GCC 7 generates new warnings on some of the test files, which lead to
+build failures. -WError generally is helpful while developing to enforce
+a zero error policy, but not so much when packaging. Gentoo bug 644042
+---
+ tests/CMakeLists.txt | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 0e08d77..86e9af7 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -41,7 +41,6 @@ target_compile_options(gsl_tests_config INTERFACE
+ -Wcast-align
+ -Wconversion
+ -Wctor-dtor-privacy
+- -Werror
+ -Wextra
+ -Wno-missing-braces
+ -Wnon-virtual-dtor
+@@ -129,7 +128,6 @@ target_compile_options(gsl_tests_config_noexcept INTERFACE
+ -Wcast-align
+ -Wconversion
+ -Wctor-dtor-privacy
+- -Werror
+ -Wextra
+ -Wno-missing-braces
+ -Wnon-virtual-dtor
+--
+2.16.1
+
diff --git a/dev-cpp/ms-gsl/files/ms-gsl-1.0.0-use_system_catch-636828.patch b/dev-cpp/ms-gsl/files/ms-gsl-1.0.0-use_system_catch-636828.patch
new file mode 100644
index 000000000000..12d92605dda8
--- /dev/null
+++ b/dev-cpp/ms-gsl/files/ms-gsl-1.0.0-use_system_catch-636828.patch
@@ -0,0 +1,21 @@
+Add CMake option to disable upstream's catch download, we always want to use the
+system wide installed version. Gentoo bug 636828.
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 86ce5a4..b36df56 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -10,7 +10,9 @@ list(APPEND CATCH_CMAKE_ARGS
+ "-DNO_SELFTEST=true"
+ )
+
+-if(GIT_FOUND)
++option(FORCE_SYSTEM_CATCH "Force usage of system-wide catch install" OFF)
++
++if(NOT ${FORCE_SYSTEM_CATCH} AND GIT_FOUND)
+ # add catch
+ ExternalProject_Add(
+ catch
+--
+2.13.6
+
diff --git a/dev-cpp/ms-gsl/files/ms-gsl-3.0.0-use_system_gtest.patch b/dev-cpp/ms-gsl/files/ms-gsl-3.0.0-use_system_gtest.patch
new file mode 100644
index 000000000000..fa8d09aafe74
--- /dev/null
+++ b/dev-cpp/ms-gsl/files/ms-gsl-3.0.0-use_system_gtest.patch
@@ -0,0 +1,82 @@
+From 727e9b8312c7ae011b667152606afc0e04ea197a Mon Sep 17 00:00:00 2001
+From: Jan Henke <Jan.Henke@taujhe.de>
+Date: Sun, 14 Jun 2020 14:12:02 +0200
+Subject: [PATCH] Use system gtest instead of downloading and building it
+
+---
+ CMakeLists.txt | 1 -
+ tests/CMakeLists.txt | 30 ++++--------------------------
+ 2 files changed, 4 insertions(+), 27 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 740cd31..f1bf7a2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.1.3...3.16)
+ project(GSL VERSION 3.1.0 LANGUAGES CXX)
+
+ include(ExternalProject)
+-find_package(Git)
+
+ # Use GNUInstallDirs to provide the right locations on all platforms
+ include(GNUInstallDirs)
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 2bd1bbe..c42afb7 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -5,32 +5,9 @@ project(GSLTests CXX)
+ # will make visual studio generated project group files
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+-configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
+-execute_process(
+- COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
+- RESULT_VARIABLE result
+- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
+-)
+-if(result)
+- message(FATAL_ERROR "CMake step for googletest failed: ${result}")
+-endif()
+-
+-execute_process(
+- COMMAND ${CMAKE_COMMAND} --build .
+- RESULT_VARIABLE result
+- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
+-)
+-if(result)
+- message(FATAL_ERROR "CMake step for googletest failed: ${result}")
+-endif()
+-
+ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+
+-add_subdirectory(
+- ${CMAKE_CURRENT_BINARY_DIR}/googletest-src
+- ${CMAKE_CURRENT_BINARY_DIR}/googletest-build
+- EXCLUDE_FROM_ALL
+-)
++find_package(GTest REQUIRED)
+
+ if (MSVC AND (GSL_CXX_STANDARD EQUAL 17))
+ set(GSL_CPLUSPLUS_OPT -Zc:__cplusplus -permissive-)
+@@ -139,7 +116,7 @@ endif(MSVC)
+
+ # for tests to find the gtest header
+ target_include_directories(gsl_tests_config SYSTEM INTERFACE
+- googletest/googletest/include
++ ${GTest_INCLUDE_DIRS}
+ )
+
+ set_property(TARGET PROPERTY FOLDER "GSL_tests")
+@@ -149,7 +126,8 @@ function(add_gsl_test name)
+ target_link_libraries(${name}
+ GSL
+ gsl_tests_config
+- gtest_main
++ GTest::GTest
++ GTest::Main
+ )
+ add_test(
+ ${name}
+--
+2.26.2
+
diff --git a/dev-cpp/ms-gsl/metadata.xml b/dev-cpp/ms-gsl/metadata.xml
new file mode 100644
index 000000000000..df885b841bb1
--- /dev/null
+++ b/dev-cpp/ms-gsl/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>gentoo@taujhe.de</email>
+ <name>Jan Henke</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>Microsoft's implmentation of the Guidelines Support Library.</longdescription>
+ <upstream>
+ <remote-id type="github">Microsoft/GSL</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/ms-gsl/ms-gsl-2.0.0.ebuild b/dev-cpp/ms-gsl/ms-gsl-2.0.0.ebuild
new file mode 100644
index 000000000000..c25d5f9efe51
--- /dev/null
+++ b/dev-cpp/ms-gsl/ms-gsl-2.0.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+DESCRIPTION="Guideline Support Library implementation by Microsoft"
+HOMEPAGE="https://github.com/Microsoft/GSL"
+SRC_URI="https://github.com/Microsoft/GSL/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/GSL-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc64 x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# header only library
+RDEPEND=""
+DEPEND="test? ( dev-cpp/catch:1 )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.0-use_system_catch-636828.patch"
+ "${FILESDIR}/${PN}-1.0.0-disable_Werror-644042.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DGSL_TEST=$(usex test)
+ )
+ use test && mycmakeargs+=( -DFORCE_SYSTEM_CATCH=ON )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/ms-gsl/ms-gsl-2.1.0.ebuild b/dev-cpp/ms-gsl/ms-gsl-2.1.0.ebuild
new file mode 100644
index 000000000000..a3c0c91b847f
--- /dev/null
+++ b/dev-cpp/ms-gsl/ms-gsl-2.1.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+DESCRIPTION="Guideline Support Library implementation by Microsoft"
+HOMEPAGE="https://github.com/Microsoft/GSL"
+SRC_URI="https://github.com/Microsoft/GSL/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/GSL-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# header only library
+RDEPEND=""
+DEPEND="test? ( dev-cpp/catch:1 )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.0-use_system_catch-636828.patch"
+ "${FILESDIR}/${PN}-1.0.0-disable_Werror-644042.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DGSL_TEST=$(usex test)
+ )
+ use test && mycmakeargs+=( -DFORCE_SYSTEM_CATCH=ON )
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/ms-gsl/ms-gsl-3.1.0.ebuild b/dev-cpp/ms-gsl/ms-gsl-3.1.0.ebuild
new file mode 100644
index 000000000000..525d59e6e4c9
--- /dev/null
+++ b/dev-cpp/ms-gsl/ms-gsl-3.1.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Guideline Support Library implementation by Microsoft"
+HOMEPAGE="https://github.com/Microsoft/GSL"
+SRC_URI="https://github.com/Microsoft/GSL/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/GSL-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# header only library
+RDEPEND=""
+DEPEND="test? ( >=dev-cpp/gtest-1.9.0_pre20190607 )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.0-disable_Werror-644042.patch"
+ "${FILESDIR}/${PN}-3.0.0-use_system_gtest.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DGSL_TEST=$(usex test)
+ )
+ cmake_src_configure
+}
diff --git a/dev-cpp/ms-gsl/ms-gsl-9999.ebuild b/dev-cpp/ms-gsl/ms-gsl-9999.ebuild
new file mode 100644
index 000000000000..d7f19d2bb295
--- /dev/null
+++ b/dev-cpp/ms-gsl/ms-gsl-9999.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake git-r3
+
+DESCRIPTION="Guideline Support Library implementation by Microsoft"
+HOMEPAGE="https://github.com/Microsoft/GSL"
+SRC_URI=""
+EGIT_REPO_URI="https://github.com/Microsoft/GSL.git"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# header only library
+RDEPEND=""
+DEPEND="test? ( >=dev-cpp/gtest-1.9.0_pre20190607 )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.0-disable_Werror-644042.patch"
+ "${FILESDIR}/${PN}-3.0.0-use_system_gtest.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DGSL_TEST=$(usex test)
+ )
+ cmake_src_configure
+}
diff --git a/dev-cpp/muParser/Manifest b/dev-cpp/muParser/Manifest
new file mode 100644
index 000000000000..36dde2ca7f60
--- /dev/null
+++ b/dev-cpp/muParser/Manifest
@@ -0,0 +1,2 @@
+DIST muParser-2.2.5.tar.gz 761315 BLAKE2B ddb7a226cecd164929a2f45ca0c2a5d20f37cd6bba2fca919c9e534017fa087523311bade8a7be4a5a011ecd5dec0a2496ff08354d2010341bccf2e2a8276c1d SHA512 d89380ebdc0ce91d0ea38fe43419ab6ed06c47d352b9ee20e1edcce48337b464366153493e0241c373ba2880a8b419fb9541e56cda0d14915daf9b98136ee682
+DIST muParser-2.2.6.1.tar.gz 755653 BLAKE2B b3b6b8da57c0e8a0bda74038689d444ba8da00d6cce80030d8b35693209f0293874e4822c4941974be21fd4b7c09ba7df2c9cef861bc10b890aae4f641040faf SHA512 01bfc8cc48158c8413ae5e1da2ddbac1c9f0b9075470b1ab75853587d641dd195ebea268e1060a340098fd8015bc5f77d8e9cde5f81cffeade2f157c5f295496
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 000000000000..1681c6e68034
--- /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 000000000000..1b387baed515
--- /dev/null
+++ b/dev-cpp/muParser/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci-mathematics@gentoo.org</email>
+ <name>Gentoo Mathematics Project</name>
+ </maintainer>
+ <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>
+ <remote-id type="github">beltoforion/muparser</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/muParser/muParser-2.2.5.ebuild b/dev-cpp/muParser/muParser-2.2.5.ebuild
new file mode 100644
index 000000000000..6e70ecf5770c
--- /dev/null
+++ b/dev-cpp/muParser/muParser-2.2.5.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Library for parsing mathematical expressions"
+HOMEPAGE="http://muparser.beltoforion.de/"
+SRC_URI="https://github.com/beltoforion/muparser/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+S=${WORKDIR}/muparser-${PV}
+
+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
+}
diff --git a/dev-cpp/muParser/muParser-2.2.6.1.ebuild b/dev-cpp/muParser/muParser-2.2.6.1.ebuild
new file mode 100644
index 000000000000..6e70ecf5770c
--- /dev/null
+++ b/dev-cpp/muParser/muParser-2.2.6.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Library for parsing mathematical expressions"
+HOMEPAGE="http://muparser.beltoforion.de/"
+SRC_URI="https://github.com/beltoforion/muparser/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+S=${WORKDIR}/muparser-${PV}
+
+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
+}
diff --git a/dev-cpp/nlohmann_json/Manifest b/dev-cpp/nlohmann_json/Manifest
new file mode 100644
index 000000000000..e64f5eccd1a1
--- /dev/null
+++ b/dev-cpp/nlohmann_json/Manifest
@@ -0,0 +1,3 @@
+DIST nlohmann_json-3.6.1.tar.gz 118862808 BLAKE2B 257508b33480741bd4438fe928869c0744a5e84806fa4e068b048bfc0e665802a45f31bc740c14f74e7a0384df18b9bba58a0e001750b1a800ea00cd1712b280 SHA512 e0565ccdee34e89a6836a97f039c04a0bac445b44f6f323918ea424b34e4577688a4f4f72d5ef1ec0b53d159bfe87e8e9c97b70ef98231ea463f59f05e16eb2a
+DIST nlohmann_json-3.7.0.tar.gz 118868542 BLAKE2B 25191628b737ea5614de85d0fcb4425fcb2d37e6890626e6ba22949430a1c5f827ff17d1cd8245c8e98d0deda617d8268c55caff3017a6b4a2f730e524599311 SHA512 35510a0ee59d847ff9fcd4f4026ef936abb89675884fdd2db808f8349a55073206f764cd4f797deb1b6493ea0e04889505f49483e5b88798011dd5db87e7c87d
+DIST nlohmann_json-3.7.3.tar.gz 119013476 BLAKE2B c10648cacdaf6f82aa2b1db49a412165eb9f3d00fd2b2232531077209c2add27dfebfb9dcd62e6923769411a471778a18a347b524e2ed3cf6f008883333ab8cd SHA512 c416b1e14f1fd695fc30a56127ca6440de4b334858ced54a6424d9d093e4665e74b7048f9ab7253ac02ac870e64a2868c78e6c2d6de80d1bd49e50a850cec865
diff --git a/dev-cpp/nlohmann_json/files/nlohmann_json-3.7.3-gcc-10.patch b/dev-cpp/nlohmann_json/files/nlohmann_json-3.7.3-gcc-10.patch
new file mode 100644
index 000000000000..1cdb6d594eca
--- /dev/null
+++ b/dev-cpp/nlohmann_json/files/nlohmann_json-3.7.3-gcc-10.patch
@@ -0,0 +1,131 @@
+From ec955f08b47ab7cb81f6e4a4c3e7b331ddf50f71 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Art=C3=B6m=20Bakri=20Al-Sarmini?= <3sz3tt+git@gmail.com>
+Date: Sun, 12 Apr 2020 22:32:39 +0300
+Subject: [PATCH 1/2] Templatize basic_json ctor from json_ref
+
+---
+ include/nlohmann/detail/meta/type_traits.hpp | 13 ++++++++++++
+ include/nlohmann/json.hpp | 8 ++++----
+ single_include/nlohmann/json.hpp | 21 ++++++++++++++++----
+ 3 files changed, 34 insertions(+), 8 deletions(-)
+
+diff --git a/include/nlohmann/detail/meta/type_traits.hpp b/include/nlohmann/detail/meta/type_traits.hpp
+index 280f69534..dd0b3084f 100644
+--- a/include/nlohmann/detail/meta/type_traits.hpp
++++ b/include/nlohmann/detail/meta/type_traits.hpp
+@@ -41,6 +41,19 @@ template<typename> struct is_basic_json : std::false_type {};
+ NLOHMANN_BASIC_JSON_TPL_DECLARATION
+ struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
+
++//////////////////////
++// jspn_ref helpers //
++//////////////////////
++
++template <typename>
++class json_ref;
++
++template<typename>
++struct is_json_ref : std::false_type {};
++
++template <typename T>
++struct is_json_ref<json_ref<T>> : std::true_type {};
++
+ //////////////////////////
+ // aliases for detected //
+ //////////////////////////
+diff --git a/include/nlohmann/json.hpp b/include/nlohmann/json.hpp
+index 336d69fe7..0598efc8c 100644
+--- a/include/nlohmann/json.hpp
++++ b/include/nlohmann/json.hpp
+@@ -1773,10 +1773,10 @@ class basic_json
+ // other constructors and destructor //
+ ///////////////////////////////////////
+
+- /// @private
+- basic_json(const detail::json_ref<basic_json>& ref)
+- : basic_json(ref.moved_or_copied())
+- {}
++ template <typename JsonRef,
++ detail::enable_if_t<detail::conjunction<detail::is_json_ref<JsonRef>,
++ std::is_same<typename JsonRef::value_type, basic_json>>::value, int> = 0 >
++ basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {}
+
+ /*!
+ @brief copy constructor
+diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp
+index 09464f3b2..8927180e6 100644
+--- a/single_include/nlohmann/json.hpp
++++ b/single_include/nlohmann/json.hpp
+@@ -2794,6 +2794,19 @@ template<typename> struct is_basic_json : std::false_type {};
+ NLOHMANN_BASIC_JSON_TPL_DECLARATION
+ struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
+
++//////////////////////
++// jspn_ref helpers //
++//////////////////////
++
++template <typename>
++class json_ref;
++
++template<typename>
++struct is_json_ref : std::false_type {};
++
++template <typename T>
++struct is_json_ref<json_ref<T>> : std::true_type {};
++
+ //////////////////////////
+ // aliases for detected //
+ //////////////////////////
+@@ -16632,10 +16645,10 @@ class basic_json
+ // other constructors and destructor //
+ ///////////////////////////////////////
+
+- /// @private
+- basic_json(const detail::json_ref<basic_json>& ref)
+- : basic_json(ref.moved_or_copied())
+- {}
++ template <typename JsonRef,
++ detail::enable_if_t<detail::conjunction<detail::is_json_ref<JsonRef>,
++ std::is_same<typename JsonRef::value_type, basic_json>>::value, int> = 0 >
++ basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {}
+
+ /*!
+ @brief copy constructor
+
+From 70be9751cd60e622ce6463f41d47c02fc2d83cbc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Art=C3=B6m=20Bakri=20Al-Sarmini?= <3sz3tt+git@gmail.com>
+Date: Sun, 12 Apr 2020 23:42:26 +0300
+Subject: [PATCH 2/2] typo fix
+
+---
+ include/nlohmann/detail/meta/type_traits.hpp | 2 +-
+ single_include/nlohmann/json.hpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/nlohmann/detail/meta/type_traits.hpp b/include/nlohmann/detail/meta/type_traits.hpp
+index dd0b3084f..13e92cb48 100644
+--- a/include/nlohmann/detail/meta/type_traits.hpp
++++ b/include/nlohmann/detail/meta/type_traits.hpp
+@@ -42,7 +42,7 @@ NLOHMANN_BASIC_JSON_TPL_DECLARATION
+ struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
+
+ //////////////////////
+-// jspn_ref helpers //
++// json_ref helpers //
+ //////////////////////
+
+ template <typename>
+diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp
+index 8927180e6..294e7509b 100644
+--- a/single_include/nlohmann/json.hpp
++++ b/single_include/nlohmann/json.hpp
+@@ -2795,7 +2795,7 @@ NLOHMANN_BASIC_JSON_TPL_DECLARATION
+ struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
+
+ //////////////////////
+-// jspn_ref helpers //
++// json_ref helpers //
+ //////////////////////
+
+ template <typename>
+
diff --git a/dev-cpp/nlohmann_json/metadata.xml b/dev-cpp/nlohmann_json/metadata.xml
new file mode 100644
index 000000000000..99a2fc432801
--- /dev/null
+++ b/dev-cpp/nlohmann_json/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 type="project">
+ <email>media-video@gentoo.org</email>
+ <name>Gentoo Video project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">nlohmann/json</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/nlohmann_json/nlohmann_json-3.6.1-r1.ebuild b/dev-cpp/nlohmann_json/nlohmann_json-3.6.1-r1.ebuild
new file mode 100644
index 000000000000..3f251a81fd24
--- /dev/null
+++ b/dev-cpp/nlohmann_json/nlohmann_json-3.6.1-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="JSON for Modern C++"
+HOMEPAGE="https://github.com/nlohmann/json https://nlohmann.github.io/json/"
+SRC_URI="https://github.com/nlohmann/json/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+DEPEND="doc? ( app-doc/doxygen )"
+
+DOCS=( ChangeLog.md README.md )
+
+S=${WORKDIR}/json-${PV}
+
+src_configure() {
+ local mycmakeargs=(
+ -DJSON_BuildTests=$(usex test)
+ -DJSON_MultipleHeaders=ON
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && emake -C doc
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ cmake_src_install
+ use doc && dodoc -r doc/html
+}
diff --git a/dev-cpp/nlohmann_json/nlohmann_json-3.7.0.ebuild b/dev-cpp/nlohmann_json/nlohmann_json-3.7.0.ebuild
new file mode 100644
index 000000000000..6c95f15b7348
--- /dev/null
+++ b/dev-cpp/nlohmann_json/nlohmann_json-3.7.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="JSON for Modern C++"
+HOMEPAGE="https://github.com/nlohmann/json https://nlohmann.github.io/json/"
+SRC_URI="https://github.com/nlohmann/json/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+DEPEND="doc? ( app-doc/doxygen )"
+
+DOCS=( ChangeLog.md README.md )
+
+S=${WORKDIR}/json-${PV}
+
+src_configure() {
+ local mycmakeargs=(
+ -DJSON_BuildTests=$(usex test)
+ -DJSON_MultipleHeaders=ON
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && emake -C doc
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ cmake_src_install
+ use doc && dodoc -r doc/html
+}
diff --git a/dev-cpp/nlohmann_json/nlohmann_json-3.7.3.ebuild b/dev-cpp/nlohmann_json/nlohmann_json-3.7.3.ebuild
new file mode 100644
index 000000000000..c99fd51237eb
--- /dev/null
+++ b/dev-cpp/nlohmann_json/nlohmann_json-3.7.3.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="JSON for Modern C++"
+HOMEPAGE="https://github.com/nlohmann/json https://nlohmann.github.io/json/"
+SRC_URI="https://github.com/nlohmann/json/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+DEPEND="doc? ( app-doc/doxygen )"
+
+DOCS=( ChangeLog.md README.md )
+
+S=${WORKDIR}/json-${PV}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.7.3-gcc-10.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DJSON_BuildTests=$(usex test)
+ -DJSON_MultipleHeaders=ON
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && emake -C doc
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ cmake_src_install
+ use doc && dodoc -r doc/html
+}
diff --git a/dev-cpp/pangomm/Manifest b/dev-cpp/pangomm/Manifest
new file mode 100644
index 000000000000..57ed05721ef2
--- /dev/null
+++ b/dev-cpp/pangomm/Manifest
@@ -0,0 +1,2 @@
+DIST pangomm-2.42.0.tar.xz 853064 BLAKE2B e0aac439565c4fc80c71cfdd430133373cca4c88c88484ab5b77a2a395154e3d381bc0158a9d312280f409ba325b547504016d8bc50830794dee13c199ee1e62 SHA512 2cebf76150414cde96b911eae947a6e1a073352927f01a44ddc276711151dffe0b9d8c54c3df16289d9002f982fa3e3386ddfe002be902f3086b44fff95fdb59
+DIST pangomm-2.42.1.tar.xz 882508 BLAKE2B 34b6a93d931e1a27c7859e3cc407c714588890122639a61d30d9886bc3d861f11e1fcb97a08b6be8bddcde776d86f8b6c4cdc4a53da245ea1dc81f50d402303c SHA512 46ba375e61dd32e268397ecb8e69364b642ea3d9a6c4d9e3e52500e1e1c9fa0c6aa822c6d5046f49a2fe4d9a872c6c2b354134d39c17370abcfc6a1d752223b0
diff --git a/dev-cpp/pangomm/metadata.xml b/dev-cpp/pangomm/metadata.xml
new file mode 100644
index 000000000000..d074988aeedd
--- /dev/null
+++ b/dev-cpp/pangomm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+</maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/pangomm/pangomm-2.42.0.ebuild b/dev-cpp/pangomm/pangomm-2.42.0.ebuild
new file mode 100644
index 000000000000..f19e34ec2a2e
--- /dev/null
+++ b/dev-cpp/pangomm/pangomm-2.42.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for pango"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="1.4"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+COMMON_DEPEND="
+ >=x11-libs/pango-1.41.0[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.48.0:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.12.0[${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
+"
+
+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.42.1.ebuild b/dev-cpp/pangomm/pangomm-2.42.1.ebuild
new file mode 100644
index 000000000000..fefc39269edf
--- /dev/null
+++ b/dev-cpp/pangomm/pangomm-2.42.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 multilib-minimal
+
+DESCRIPTION="C++ interface for pango"
+HOMEPAGE="https://www.gtkmm.org"
+
+LICENSE="LGPL-2.1+"
+SLOT="1.4"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+COMMON_DEPEND="
+ >=x11-libs/pango-1.41.0[${MULTILIB_USEDEP}]
+ >=dev-cpp/glibmm-2.48.0:2[${MULTILIB_USEDEP}]
+ >=dev-cpp/cairomm-1.12.0[${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
+"
+
+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/picojson/Manifest b/dev-cpp/picojson/Manifest
new file mode 100644
index 000000000000..76bf72ec8110
--- /dev/null
+++ b/dev-cpp/picojson/Manifest
@@ -0,0 +1 @@
+DIST picojson-1.3.0.tar.gz 14695 BLAKE2B 9643a17abd8b53e7191fbab924c36428c71f265cf785f6759d66735a0501cb2b77ef385b4b4c35d8d1512bd9f3b31ee6b38b84e15b7eb6b0dc737f4253f384ef SHA512 76d5a6b3b9e1151198eee707faffcbbba28a2842daccf03d99a5d02ae017f9517ef3ac9da4acc74a4fc1357feaf19e14a15c34698a1d4cb65acb6d23b566b284
diff --git a/dev-cpp/picojson/metadata.xml b/dev-cpp/picojson/metadata.xml
new file mode 100644
index 000000000000..540fdf978966
--- /dev/null
+++ b/dev-cpp/picojson/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 type="person">
+ <email>aballier@gentoo.org</email>
+ <name>Alexis Ballier</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">kazuho/picojson</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/picojson/picojson-1.3.0.ebuild b/dev-cpp/picojson/picojson-1.3.0.ebuild
new file mode 100644
index 000000000000..c37f0c8e81e2
--- /dev/null
+++ b/dev-cpp/picojson/picojson-1.3.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="Header-file-only, JSON parser serializer in C++"
+HOMEPAGE="https://github.com/kazuho/picojson"
+SRC_URI="https://github.com/kazuho/picojson/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ :
+}
+
+src_test() {
+ tc-export CXX
+ emake test
+}
+
+src_install() {
+ emake DESTDIR="${D}" prefix="${EPREFIX}/usr" install
+ dodoc README.mkdn Changes
+}
diff --git a/dev-cpp/pngpp/Manifest b/dev-cpp/pngpp/Manifest
new file mode 100644
index 000000000000..eee6115c39f4
--- /dev/null
+++ b/dev-cpp/pngpp/Manifest
@@ -0,0 +1 @@
+DIST png++-0.2.9.tar.gz 592770 BLAKE2B 12419e3c964f92022f992e25d2efcfb01c7f6275aba1db159372f84cbf0e0bf0e92e95dac419ff0f6248dd1ecf63918b11096e7e6baa8da5704909e69cb7aeca SHA512 905e037faf26eef9ca1d9508471dde9f480f41a87d72133057865078b2fd040b1cf84727ece48d79117d615fdfbc0a749fec7dbe362366763e2017865a7fe132
diff --git a/dev-cpp/pngpp/files/pngpp-0.2.9-DESTDIR.patch b/dev-cpp/pngpp/files/pngpp-0.2.9-DESTDIR.patch
new file mode 100644
index 000000000000..ee9b29ef7558
--- /dev/null
+++ b/dev-cpp/pngpp/files/pngpp-0.2.9-DESTDIR.patch
@@ -0,0 +1,15 @@
+Build system does not honour $(DESTDIR)
+
+--- a/Makefile
++++ b/Makefile
+@@ -54,8 +54,8 @@
+ uninstall: uninstall-headers uninstall-docs
+
+ install-headers:
+- mkdir -p $(PREFIX)/include/png++
+- cp $(headers) $(PREFIX)/include/png++
++ mkdir -p $(DESTDIR)$(PREFIX)/include/png++
++ cp $(headers) $(DESTDIR)$(PREFIX)/include/png++
+
+ uninstall-headers:
+ rm -rf $(PREFIX)/include/png++
diff --git a/dev-cpp/pngpp/metadata.xml b/dev-cpp/pngpp/metadata.xml
new file mode 100644
index 000000000000..d85b4252fc33
--- /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>
+<!-- maintainer-needed -->
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/pngpp/pngpp-0.2.9.ebuild b/dev-cpp/pngpp/pngpp-0.2.9.ebuild
new file mode 100644
index 000000000000..4e013690de88
--- /dev/null
+++ b/dev-cpp/pngpp/pngpp-0.2.9.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+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:0"
+DEPEND=""
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${PN}-0.2.9-DESTDIR.patch )
+
+src_compile() { :; }
+src_test() { :; }
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install-headers
+ einstalldocs
+
+ docinto examples
+ dodoc example/*.cpp
+ docompress -x /usr/share/doc/${PF}/examples
+}
diff --git a/dev-cpp/popl/Manifest b/dev-cpp/popl/Manifest
new file mode 100644
index 000000000000..a19372ed67b4
--- /dev/null
+++ b/dev-cpp/popl/Manifest
@@ -0,0 +1 @@
+DIST popl-1.2.0.tar.gz 12302 BLAKE2B cfe775ef5cd823ce7b6cb651f7f8de6c67d24e5e3b657d13e7b2087f3b9673c11a870adbe2195665f4e2c3c7799c2427020d4e86126090ef845aa6a906c7a825 SHA512 a5d372346dd282f634b1ca92f468588f7069b34a5911a6ea46e5ef33e8e6c360ca13f67bf221555d76c7620c4222694077a74589a1c32bdbc094e64366299609
diff --git a/dev-cpp/popl/metadata.xml b/dev-cpp/popl/metadata.xml
new file mode 100644
index 000000000000..90dd553d0eb3
--- /dev/null
+++ b/dev-cpp/popl/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cb-gentoo@guya.de</email>
+ <name>Christian Buchinger</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <name>Johannes Pohl</name>
+ <email>github@badaix.de</email>
+ </maintainer>
+ <bugs-to>https://github.com/badaix/popl/issues</bugs-to>
+ <remote-id type="github">badaix/popl</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/popl/popl-1.2.0.ebuild b/dev-cpp/popl/popl-1.2.0.ebuild
new file mode 100644
index 000000000000..39652fbae851
--- /dev/null
+++ b/dev-cpp/popl/popl-1.2.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Header-only C++ program options parser library"
+HOMEPAGE="https://github.com/badaix/popl"
+
+if [[ ${PV} == *9999 ]] ; then
+ inherit cmake-utils git-r3
+
+ EGIT_REPO_URI="https://github.com/badaix/popl.git"
+ EGIT_BRANCH="develop"
+else
+ inherit cmake-utils
+
+ SRC_URI="https://github.com/badaix/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ local mycmakeargs=( -DBUILD_EXAMPLE=OFF )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/popl/popl-9999.ebuild b/dev-cpp/popl/popl-9999.ebuild
new file mode 100644
index 000000000000..39652fbae851
--- /dev/null
+++ b/dev-cpp/popl/popl-9999.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Header-only C++ program options parser library"
+HOMEPAGE="https://github.com/badaix/popl"
+
+if [[ ${PV} == *9999 ]] ; then
+ inherit cmake-utils git-r3
+
+ EGIT_REPO_URI="https://github.com/badaix/popl.git"
+ EGIT_BRANCH="develop"
+else
+ inherit cmake-utils
+
+ SRC_URI="https://github.com/badaix/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ local mycmakeargs=( -DBUILD_EXAMPLE=OFF )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/pstreams/Manifest b/dev-cpp/pstreams/Manifest
new file mode 100644
index 000000000000..2dc4c244feac
--- /dev/null
+++ b/dev-cpp/pstreams/Manifest
@@ -0,0 +1,8 @@
+DIST pstreams-0.7.0.tar.gz 55536 BLAKE2B 1201d3121ad3153330da0defbfde64012d97e385349898441fd790a1e4927f362e7f95b5d58cf2ccb53e7955a0ba7b0b5ae8305739f50d4e2a82022191ec9d04 SHA512 287a7503f25ad70c477b51f7c4af4c54947c1abc6c213371cdc7fc4ccdc20bf79b51959c0b482ae2fa9354e529036b2b53ca8ae5cbf8cd82ad43054856e5e00d
+DIST pstreams-0.8.1.tar.gz 58588 BLAKE2B c1f6544b1a9cd5f97c1f2f62fb9376afc248a1c833cd087b379f82d0f08054b7b093898ab86eaebf447491f389a0a7fca817f06a40c4cad94fa41024f3d48ea4 SHA512 edb6fa30e0a77c4a83bbb7a15c427376d39d73db17112cc5888c404fa1e99407c42c09c9ca072027ac52c753071fb7d7333237bd49aa44488512ce64de22d8f3
+DIST pstreams-1.0.0.tar.gz 68207 BLAKE2B 9993d17a9be14a79be549d97cb4c86d3bfe2a5f1b857a70d7bc3a976ccb8944f4ed721cbd2040dfde72a5cc1c64a20d4dfef96c091a3bc1c12dcab8ff46bb3e3 SHA512 172ce79431d00d9fd17af610dfb41580a522480265d58531413da1cd950caa00d5cdb8ee12e2888cfa8b93e475cdf8946be9dcc3d02cbda7eba0034e66566b56
+DIST pstreams-1.0.1.tar.gz 66188 BLAKE2B 937b9ae833dcace9f0f44dbac6907d5c73c5757f604ea96835c0ddf0ec9abd5fa4f40a1c01872a47fd0bcdc094f90215da6b7f80f261172f93f7b5233b60a5cb SHA512 279f758a4aeba124227e3de07e202f6cd838bfca4f34829a446f2f20cf426bd404f28960b881f810b5f2038e3946d38174ca09e6a07d5dacc0501f41746245e6
+DIST pstreams-docs-0.7.0.tar.gz 102315 BLAKE2B 837bd25092bd0192bc273f67e1eba6b50702033ee91817cf291c4b57618bb6222f383078fa6384fb7178bdabe015b48762b0a650bad9cc01c9a8f10de84325f8 SHA512 d7bccd0e2c83c694ff0c9ddc3ae173b4bdbae19f95c42dcc398e6dab25ea4076fda154ed84bc9b9f2872e468ad60f61a3cb20795b0c17e4bc297e4f425139f75
+DIST pstreams-docs-0.8.1.tar.gz 169559 BLAKE2B 0a625ce1fc4cd372ec4a063bf4209a3c223cbaf4cad42505e93f2534075d36c76b11fefce7abd4e2f6ddbfce7a3c4810ca47409c77fcd8c3a5f1dc829cd91608 SHA512 4b42950831bb9a092ca5eeadceded57888306f6ed24d2bd6c486b890d38b42e241f4430a7411a182d5d59b01a1fe0972d3816ec9510c9e2e50812cf390bc68be
+DIST pstreams-docs-1.0.0.tar.gz 174207 BLAKE2B d5aa5f03254ed292dbe7052eb1caa411c41ec1d75fa13e4c6c343bd4762ef84975013b768449e457282d121478cb36d9b3856a12cecee806954ddcdc10bee644 SHA512 44ad649bec3e9b02a52eb9c942842f19700cd3ebb4d7de47dd7887106ab07ab456b477815c90377dd0d92724f6144b88c4a9be89328921a675a4f263d40d4872
+DIST pstreams-docs-1.0.1.tar.gz 178382 BLAKE2B dd44e4c6acd83dfc6896145e77408d7c23150c1156e477ccb4052341e041d82163d0ee3e8069ea5fda9033617c3a1162fc2068835d089f6ce7614477c2e3e58b SHA512 e645cb3d1c20cc0c717d03aa24e500489452d0880af0feddcf234e713878159b22a891ec04a66f0aad6988e71418a224a4ba66064e6a83578ecf957d9af167e2
diff --git a/dev-cpp/pstreams/metadata.xml b/dev-cpp/pstreams/metadata.xml
new file mode 100644
index 000000000000..55f59fafec04
--- /dev/null
+++ b/dev-cpp/pstreams/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 type="project">
+ <email>printing@gentoo.org</email>
+ <name>Gentoo Printing Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">pstreams</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</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 000000000000..af6b1a5645d6
--- /dev/null
+++ b/dev-cpp/pstreams/pstreams-0.7.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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 000000000000..ce0945609167
--- /dev/null
+++ b/dev-cpp/pstreams/pstreams-0.8.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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-1.0.0.ebuild b/dev-cpp/pstreams/pstreams-1.0.0.ebuild
new file mode 100644
index 000000000000..c6e500fabd86
--- /dev/null
+++ b/dev-cpp/pstreams/pstreams-1.0.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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-1.0.1.ebuild b/dev-cpp/pstreams/pstreams-1.0.1.ebuild
new file mode 100644
index 000000000000..4d10c3e1bf66
--- /dev/null
+++ b/dev-cpp/pstreams/pstreams-1.0.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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/random123/Manifest b/dev-cpp/random123/Manifest
new file mode 100644
index 000000000000..75593d1470ed
--- /dev/null
+++ b/dev-cpp/random123/Manifest
@@ -0,0 +1 @@
+DIST Random123-1.09.tar.gz 696854 BLAKE2B 6bea58c25a10031f47eecfa66a4d793db9430de1e25ddfecf4845d67419c0c04b286a85a063cb379390f8f65ea5b073962cd7a856652efcf1d099d4ef7bf0170 SHA512 7bd72dffa53ca8d835b4a4cf49171618cd46f4b329d7a09486efaf2e1565c98b80ff05e3bccc244fabd7013f139058511fb2e39399bfe51fd6b68cd9e63da1ac
diff --git a/dev-cpp/random123/metadata.xml b/dev-cpp/random123/metadata.xml
new file mode 100644
index 000000000000..5aca843094b4
--- /dev/null
+++ b/dev-cpp/random123/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>junghans@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/random123/random123-1.09-r1.ebuild b/dev-cpp/random123/random123-1.09-r1.ebuild
new file mode 100644
index 000000000000..7829ee03cfb7
--- /dev/null
+++ b/dev-cpp/random123/random123-1.09-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="library of counter-based random number generators (CBRNGs)"
+HOMEPAGE="https://www.deshawresearch.com/resources_random123.html"
+MY_P="${P^r}"
+SRC_URI="https://www.deshawresearch.com/downloads/download_${PN}.cgi/${MY_P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_install() {
+ insinto /usr/include/Random123
+ doins -r include/Random123/. examples/uniform.hpp
+}
diff --git a/dev-cpp/range-v3/Manifest b/dev-cpp/range-v3/Manifest
new file mode 100644
index 000000000000..f090fc7442ea
--- /dev/null
+++ b/dev-cpp/range-v3/Manifest
@@ -0,0 +1 @@
+DIST range-v3-0.10.0.tar.gz 525765 BLAKE2B 7dd3aed9b35920e058fe43bccd364831a52ad8d50179d1057ab7a37cdef82df021bb09a9913018ae78982fe136c855ba4101e31d35cfc21747af994d0103b95e SHA512 4db089dcbf638eb30fa20dcf6785dd460c5a074a8912984a484592753cfee9f5b9a0e2c56b5bc5921d1b6120877aa2c83ac0a6fe428088ef2854033a635e9723
diff --git a/dev-cpp/range-v3/metadata.xml b/dev-cpp/range-v3/metadata.xml
new file mode 100644
index 000000000000..b48a7a2b430b
--- /dev/null
+++ b/dev-cpp/range-v3/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>gyakovlev@gentoo.org</email>
+ <name>Georgy Yakovlev</name>
+ </maintainer>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/range-v3/range-v3-0.10.0-r1.ebuild b/dev-cpp/range-v3/range-v3-0.10.0-r1.ebuild
new file mode 100644
index 000000000000..0c4a5694d936
--- /dev/null
+++ b/dev-cpp/range-v3/range-v3-0.10.0-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Range library for C++14/17/20, basis for C++20's std::ranges"
+HOMEPAGE="https://github.com/ericniebler/range-v3"
+SRC_URI="https://github.com/ericniebler/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="amd64 ~ppc64"
+IUSE=""
+
+src_prepare() {
+ sed -i -e '/Werror/d' -e '/Wextra/d' -e '/Wall/d' cmake/ranges_flags.cmake || die
+ sed -i -e "s@lib/cmake@"$(get_libdir)"/cmake@g" CMakeLists.txt || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ mycmakeargs=(
+ -DRANGE_V3_EXAMPLES=OFF
+ -DRANGE_V3_HEADER_CHECKS=OFF
+ -DRANGE_V3_PERF=OFF
+ -DRANGE_V3_TESTS=OFF
+ -DRANGES_BUILD_CALENDAR_EXAMPLE=OFF
+ -DRANGES_NATIVE=OFF
+ #TODO: clang support + -DRANGES_MODULES=yes
+ )
+ cmake_src_configure
+}
diff --git a/dev-cpp/rttr/Manifest b/dev-cpp/rttr/Manifest
new file mode 100644
index 000000000000..88fa670091c1
--- /dev/null
+++ b/dev-cpp/rttr/Manifest
@@ -0,0 +1 @@
+DIST rttr-0.9.6-src.tar.gz 1137269 BLAKE2B 53bb4ed75e20a82d2bd2e6c5667efe1ba6b6f2d8a83a3bd486870daeae57a36cdcb9f2acb6d47a6d1b2f36f00a262170efa4e321f6e7faf8d2c35c431bf47133 SHA512 7e0d4fa87f83feda0b926d4d0e52aaf0f369f25fe7e23e5ffe86c0bba159e8353cef44eed37611a81e8ccc8d6facb36942f940d0d0b965f873177d7078f91cf4
diff --git a/dev-cpp/rttr/files/rttr-0.9.6-cmake.patch b/dev-cpp/rttr/files/rttr-0.9.6-cmake.patch
new file mode 100644
index 000000000000..e313014d70a5
--- /dev/null
+++ b/dev-cpp/rttr/files/rttr-0.9.6-cmake.patch
@@ -0,0 +1,25 @@
+Install cmake files to the correct directory.
+
+Avoid installing docs to the wrong directory (will be installed by the ebuild instead).
+
+--- a/CMake/config.cmake
++++ b/CMake/config.cmake
+@@ -69,7 +69,7 @@
+
+ set(RTTR_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}")
+
+- set(RTTR_CMAKE_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/rttr/cmake")
++ set(RTTR_CMAKE_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/rttr")
+ set(RTTR_ADDITIONAL_FILES_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/rttr")
+
+ elseif(WIN32)
+@@ -169,8 +169,4 @@
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/CMake/rttr-config-version.cmake"
+ DESTINATION ${RTTR_CMAKE_CONFIG_INSTALL_DIR}
+ COMPONENT Devel)
+-
+- install(FILES "${LICENSE_FILE}" "${README_FILE}"
+- DESTINATION ${RTTR_ADDITIONAL_FILES_INSTALL_DIR}
+- PERMISSIONS OWNER_READ)
+ endif()
+
diff --git a/dev-cpp/rttr/files/rttr-0.9.6-permission.patch b/dev-cpp/rttr/files/rttr-0.9.6-permission.patch
new file mode 100644
index 000000000000..bec7ac36bfc9
--- /dev/null
+++ b/dev-cpp/rttr/files/rttr-0.9.6-permission.patch
@@ -0,0 +1,13 @@
+Avoid installing headers with mode 700.
+
+--- a/CMake/utility.cmake
++++ b/CMake/utility.cmake
+@@ -165,7 +165,7 @@
+ getNameOfDir(CMAKE_CURRENT_SOURCE_DIR DIRNAME)
+ if (${shouldInstall})
+ if (NOT ${FULL_HEADER_PATH} MATCHES ".*_p.h$") # we don't want to install header files which are marked as private
+- install(FILES ${FULL_HEADER_PATH} DESTINATION "include/${DIRNAME}/${REL_PATH}" PERMISSIONS OWNER_READ)
++ install(FILES ${FULL_HEADER_PATH} DESTINATION "include/${DIRNAME}/${REL_PATH}")
+ endif()
+ endif()
+ endforeach()
diff --git a/dev-cpp/rttr/files/rttr-0.9.6-tests.patch b/dev-cpp/rttr/files/rttr-0.9.6-tests.patch
new file mode 100644
index 000000000000..bd966c3d327d
--- /dev/null
+++ b/dev-cpp/rttr/files/rttr-0.9.6-tests.patch
@@ -0,0 +1,30 @@
+Avoid running a custom testsuite unconditionally.
+
+--- a/src/unit_tests/CMakeLists.txt
++++ b/src/unit_tests/CMakeLists.txt
+@@ -54,17 +54,17 @@
+ endif()
+
+ # run tests
+-add_custom_target(run_tests ALL
+- COMMAND "$<TARGET_FILE:unit_tests>"
+- DEPENDS unit_tests
+- COMMENT "Running unit_tests")
++#add_custom_target(run_tests ALL
++# COMMAND "$<TARGET_FILE:unit_tests>"
++# DEPENDS unit_tests
++# COMMENT "Running unit_tests")
+
+-set_target_properties(run_tests PROPERTIES
+- FOLDER "Testing")
++#set_target_properties(run_tests PROPERTIES
++# FOLDER "Testing")
+
+ add_subdirectory(plugin)
+
+ add_dependencies(unit_tests unit_test_plugin)
+
+ message(STATUS "Scanning " ${PROJECT_NAME} " module finished!")
+-message(STATUS "")
+\ No newline at end of file
++message(STATUS "")
diff --git a/dev-cpp/rttr/files/rttr-0.9.6-werror.patch b/dev-cpp/rttr/files/rttr-0.9.6-werror.patch
new file mode 100644
index 000000000000..04c65203ac91
--- /dev/null
+++ b/dev-cpp/rttr/files/rttr-0.9.6-werror.patch
@@ -0,0 +1,18 @@
+This causes build failures with modern GCC, and is against Gentoo policy in any case.
+
+--- a/CMake/utility.cmake
++++ b/CMake/utility.cmake
+@@ -392,11 +392,9 @@
+ ####################################################################################
+ function( set_compiler_warnings target)
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+- set(WARNINGS "-Werror"
+- "-Wall")
++ set(WARNINGS "-Wall")
+ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+- set(WARNINGS "-Werror"
+- "-Wall")
++ set(WARNINGS "-Wall")
+ elseif(MSVC)
+ set(WARNINGS "/WX"
+ "/W4")
diff --git a/dev-cpp/rttr/metadata.xml b/dev-cpp/rttr/metadata.xml
new file mode 100644
index 000000000000..1d5b25ff7e7e
--- /dev/null
+++ b/dev-cpp/rttr/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 type="project">
+ <email>kde@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">rttrorg/rttr</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/rttr/rttr-0.9.6.ebuild b/dev-cpp/rttr/rttr-0.9.6.ebuild
new file mode 100644
index 000000000000..e682b7bc1d2c
--- /dev/null
+++ b/dev-cpp/rttr/rttr-0.9.6.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Run Time Type Reflection - library adding reflection to C++"
+HOMEPAGE="https://www.rttr.org/"
+SRC_URI="https://github.com/rttrorg/${PN}/releases/download/v${PV}/${P}-src.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm64 ~ppc64 x86"
+IUSE=""
+
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${P}-cmake.patch"
+ "${FILESDIR}/${P}-permission.patch"
+ "${FILESDIR}/${P}-tests.patch"
+ "${FILESDIR}/${P}-werror.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=off #broken
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ "${BUILD_DIR}"/bin/unit_tests || die
+}
diff --git a/dev-cpp/sourcetrail/Manifest b/dev-cpp/sourcetrail/Manifest
new file mode 100644
index 000000000000..73d2c16a558b
--- /dev/null
+++ b/dev-cpp/sourcetrail/Manifest
@@ -0,0 +1,4 @@
+DIST sourcetrail-2018.3.55.tar.gz 74278615 BLAKE2B e046acfb90cdb495ff28c3dcf4530129cc569a0e9c481f127f656059f80575e4be22e9b63a8b6f00ffdac977ca930ad7a3c4d0e1aa7912af711150afbef03707 SHA512 b8fccc4bae55abf5c5a05418b37c665817c860cc27e314f8ccb69665a63b90ef68485c2395fc899f1112a05def8e95068d7a5c92db399f1d3f7a203a09107767
+DIST sourcetrail-2019.1.11.tar.gz 76120891 BLAKE2B 865c8a510a544705e130e3ec7bc82f1e7ca16d4dee2fa27849dd3530a92a20ef47ed909765ac08c8106ee0e992e3b4a03e79ef7094fb1593c4088b7d8e356423 SHA512 9022873572aef796fcbacf079c37b916d645aacd1479cc79fcddbfd8c561d0004c97202c46812b60d8c539dae3d68bd805da101678ebd1518ce13c3e58009ac9
+DIST sourcetrail-2019.2.39.tar.gz 84960185 BLAKE2B a515da1a0c6a061d7db843b9bef3b1d419fdbea361c4f5465d32a4a9bfc018575a334de739354de2e249facb7ea6d342329c445990173303fce4fb818da8131d SHA512 5603d7c2fe84c58a13dc682bad6bdbd807b15a9fd7c73c6633f8a7d9e051a660916b3a03b9a5244e2cb4243492586d555a98f0cc464f7405c02f36ef655c8959
+DIST sourcetrail-2019.3.46.tar.gz 108528120 BLAKE2B f36e4e2eb98c28a4d4aa245df3cbd2febd524a3370111d77cc79c2220e6a6227509c9fb9ba9c8d8e0d286719ab55a858adcaee4c983233ee72daebddb62c9467 SHA512 032e9299430c4333115ececedfeb85f39a374d14366c06130becb395a71fc43af9ad9ee09258c4a3ba2d0c2daa0997d5054ad48f0701654fe48eea055ebec666
diff --git a/dev-cpp/sourcetrail/metadata.xml b/dev-cpp/sourcetrail/metadata.xml
new file mode 100644
index 000000000000..37e8d74f6c62
--- /dev/null
+++ b/dev-cpp/sourcetrail/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 type="person">
+ <email>david@davidhallas.dk</email>
+ <name>David Hallas</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers Project</name>
+ </maintainer>
+ <use>
+ <flag name="examples">Install example projects.</flag>
+ </use>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/sourcetrail/sourcetrail-2018.3.55-r1.ebuild b/dev-cpp/sourcetrail/sourcetrail-2018.3.55-r1.ebuild
new file mode 100644
index 000000000000..55f38a5d224e
--- /dev/null
+++ b/dev-cpp/sourcetrail/sourcetrail-2018.3.55-r1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit desktop gnome2-utils xdg-utils
+
+DESCRIPTION="A cross-platform source explorer for C/C++ and Java"
+HOMEPAGE="https://www.sourcetrail.com/"
+SRC_URI="https://www.sourcetrail.com/downloads/${PV}/linux/64bit -> ${P}.tar.gz"
+
+LICENSE="Sourcetrail || ( GPL-2 GPL-3 LGPL-3 ) BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples selinux"
+RESTRICT="mirror bindist"
+
+DEPEND="dev-util/patchelf"
+
+RDEPEND="
+ || (
+ dev-libs/openssl-compat:1.0.0
+ =dev-libs/openssl-1.0*:*
+ )
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/libpng-compat:1.2
+ sys-libs/libudev-compat
+ virtual/opengl
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXxf86vm
+ selinux? ( sys-libs/libselinux )
+"
+
+S="${WORKDIR}/Sourcetrail"
+QA_PREBUILT="*"
+
+src_install() {
+ # This removes the rpath entries with $$ORIGIN
+ # since they trigger warnings when merging
+ for f in "Sourcetrail" "sourcetrail_indexer"; do
+ rpath=$(patchelf --print-rpath "${f}" 2>/dev/null)
+ new_rpath=${rpath//\$\$ORIGIN\/lib\/:/}
+ patchelf --set-rpath "${new_rpath}" "${f}" || die
+ done
+
+ # Remove bundled libraries
+ rm -f lib/libXi.so.6 lib/libXxf86vm.so.1 lib/libXrender.so.1 lib/libXfixes.so.3 lib/libXext.so.6 \
+ lib/libXdamage.so.1 lib/libxcb* lib/libXau.so.6 lib/libX11-xcb.so.1 lib/libX11.so.6 \
+ lib/libudev.so.0 lib/libEGL.so.1 lib/libgbm.so.1 lib/libglapi.so.0 lib/libGL.so.1 \
+ lib/libdrm.so.2 lib/libfontconfig.so.1 lib/libfreetype.so.6 lib/libcrypto.so lib/libssl.so \
+ lib/libpng12.so.0 lib/libselinux.so.1
+ insinto /opt/sourcetrail
+ doins -r EULA.txt README data lib plugin
+ if use examples; then
+ doins -r user
+ fi
+ exeinto /opt/sourcetrail
+ doexe Sourcetrail sourcetrail_indexer Sourcetrail.sh resetPreferences.sh
+ into /opt
+ newbin - sourcetrail <<-EOF
+ #! /bin/sh
+ exec /opt/sourcetrail/Sourcetrail.sh "\$@"
+ EOF
+ local size
+ for size in 48 64 128 256 512; do
+ newicon -s ${size} "setup/share/icons/hicolor/${size}x${size}/apps/sourcetrail.png" \
+ "sourcetrail.png"
+ done
+ sed -i -e 's|Exec=/usr/bin/sourcetrail|Exec=/opt/bin/sourcetrail|' "setup/share/applications/sourcetrail.desktop" || die
+ sed -i -e 's/Utilities;//' "setup/share/applications/sourcetrail.desktop" || die
+ domenu "setup/share/applications/sourcetrail.desktop"
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
diff --git a/dev-cpp/sourcetrail/sourcetrail-2019.1.11.ebuild b/dev-cpp/sourcetrail/sourcetrail-2019.1.11.ebuild
new file mode 100644
index 000000000000..55f38a5d224e
--- /dev/null
+++ b/dev-cpp/sourcetrail/sourcetrail-2019.1.11.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit desktop gnome2-utils xdg-utils
+
+DESCRIPTION="A cross-platform source explorer for C/C++ and Java"
+HOMEPAGE="https://www.sourcetrail.com/"
+SRC_URI="https://www.sourcetrail.com/downloads/${PV}/linux/64bit -> ${P}.tar.gz"
+
+LICENSE="Sourcetrail || ( GPL-2 GPL-3 LGPL-3 ) BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples selinux"
+RESTRICT="mirror bindist"
+
+DEPEND="dev-util/patchelf"
+
+RDEPEND="
+ || (
+ dev-libs/openssl-compat:1.0.0
+ =dev-libs/openssl-1.0*:*
+ )
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/libpng-compat:1.2
+ sys-libs/libudev-compat
+ virtual/opengl
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXxf86vm
+ selinux? ( sys-libs/libselinux )
+"
+
+S="${WORKDIR}/Sourcetrail"
+QA_PREBUILT="*"
+
+src_install() {
+ # This removes the rpath entries with $$ORIGIN
+ # since they trigger warnings when merging
+ for f in "Sourcetrail" "sourcetrail_indexer"; do
+ rpath=$(patchelf --print-rpath "${f}" 2>/dev/null)
+ new_rpath=${rpath//\$\$ORIGIN\/lib\/:/}
+ patchelf --set-rpath "${new_rpath}" "${f}" || die
+ done
+
+ # Remove bundled libraries
+ rm -f lib/libXi.so.6 lib/libXxf86vm.so.1 lib/libXrender.so.1 lib/libXfixes.so.3 lib/libXext.so.6 \
+ lib/libXdamage.so.1 lib/libxcb* lib/libXau.so.6 lib/libX11-xcb.so.1 lib/libX11.so.6 \
+ lib/libudev.so.0 lib/libEGL.so.1 lib/libgbm.so.1 lib/libglapi.so.0 lib/libGL.so.1 \
+ lib/libdrm.so.2 lib/libfontconfig.so.1 lib/libfreetype.so.6 lib/libcrypto.so lib/libssl.so \
+ lib/libpng12.so.0 lib/libselinux.so.1
+ insinto /opt/sourcetrail
+ doins -r EULA.txt README data lib plugin
+ if use examples; then
+ doins -r user
+ fi
+ exeinto /opt/sourcetrail
+ doexe Sourcetrail sourcetrail_indexer Sourcetrail.sh resetPreferences.sh
+ into /opt
+ newbin - sourcetrail <<-EOF
+ #! /bin/sh
+ exec /opt/sourcetrail/Sourcetrail.sh "\$@"
+ EOF
+ local size
+ for size in 48 64 128 256 512; do
+ newicon -s ${size} "setup/share/icons/hicolor/${size}x${size}/apps/sourcetrail.png" \
+ "sourcetrail.png"
+ done
+ sed -i -e 's|Exec=/usr/bin/sourcetrail|Exec=/opt/bin/sourcetrail|' "setup/share/applications/sourcetrail.desktop" || die
+ sed -i -e 's/Utilities;//' "setup/share/applications/sourcetrail.desktop" || die
+ domenu "setup/share/applications/sourcetrail.desktop"
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
diff --git a/dev-cpp/sourcetrail/sourcetrail-2019.2.39.ebuild b/dev-cpp/sourcetrail/sourcetrail-2019.2.39.ebuild
new file mode 100644
index 000000000000..d84567ac9a33
--- /dev/null
+++ b/dev-cpp/sourcetrail/sourcetrail-2019.2.39.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop xdg-utils
+
+DESCRIPTION="A cross-platform source explorer for C/C++ and Java"
+HOMEPAGE="https://www.sourcetrail.com/"
+SRC_URI="https://www.sourcetrail.com/downloads/${PV}/linux/64bit -> ${P}.tar.gz"
+
+LICENSE="Sourcetrail || ( GPL-2 GPL-3 LGPL-3 ) BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples selinux"
+RESTRICT="mirror bindist"
+
+DEPEND="dev-util/patchelf"
+
+RDEPEND="
+ || (
+ dev-libs/openssl-compat:1.0.0
+ =dev-libs/openssl-1.0*:*
+ )
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/libpng-compat:1.2
+ sys-libs/libudev-compat
+ virtual/opengl
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXxf86vm
+ selinux? ( sys-libs/libselinux )
+"
+
+S="${WORKDIR}/Sourcetrail"
+QA_PREBUILT="*"
+
+src_install() {
+ # This removes the rpath entries with $$ORIGIN
+ # since they trigger warnings when merging
+ for f in "Sourcetrail" "sourcetrail_indexer"; do
+ rpath=$(patchelf --print-rpath "${f}" 2>/dev/null)
+ new_rpath=${rpath//\$\$ORIGIN\/lib\/:/}
+ patchelf --set-rpath "${new_rpath}" "${f}" || die
+ done
+
+ # Remove bundled libraries
+ rm -f lib/libXi.so.6 lib/libXxf86vm.so.1 lib/libXrender.so.1 lib/libXfixes.so.3 lib/libXext.so.6 \
+ lib/libXdamage.so.1 lib/libxcb* lib/libXau.so.6 lib/libX11-xcb.so.1 lib/libX11.so.6 \
+ lib/libudev.so.0 lib/libEGL.so.1 lib/libgbm.so.1 lib/libglapi.so.0 lib/libGL.so.1 \
+ lib/libdrm.so.2 lib/libfontconfig.so.1 lib/libfreetype.so.6 lib/libcrypto.so lib/libssl.so \
+ lib/libpng12.so.0 lib/libselinux.so.1 || die
+ insinto /opt/sourcetrail
+ doins -r EULA.txt README data lib plugin
+ use examples && doins -r user
+ exeinto /opt/sourcetrail
+ doexe Sourcetrail sourcetrail_indexer Sourcetrail.sh resetPreferences.sh
+ into /opt
+ newbin - sourcetrail <<-EOF
+ #! /bin/sh
+ exec /opt/sourcetrail/Sourcetrail.sh "\$@"
+ EOF
+ local size
+ for size in 48 64 128 256 512; do
+ newicon -s "${size}" "setup/share/icons/hicolor/${size}x${size}/apps/sourcetrail.png" \
+ "sourcetrail.png"
+ done
+ sed -i -e 's|Exec=/usr/bin/sourcetrail|Exec=/opt/bin/sourcetrail|' \
+ -e 's/Utilities;//' "setup/share/applications/sourcetrail.desktop" \
+ "setup/share/applications/sourcetrail.desktop" || die
+ domenu "setup/share/applications/sourcetrail.desktop"
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
diff --git a/dev-cpp/sourcetrail/sourcetrail-2019.3.46-r2.ebuild b/dev-cpp/sourcetrail/sourcetrail-2019.3.46-r2.ebuild
new file mode 100644
index 000000000000..ed6b052e69b5
--- /dev/null
+++ b/dev-cpp/sourcetrail/sourcetrail-2019.3.46-r2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop xdg-utils
+
+DESCRIPTION="A cross-platform source explorer for C/C++ and Java"
+HOMEPAGE="https://www.sourcetrail.com/"
+SRC_URI="https://www.sourcetrail.com/downloads/${PV}/linux/64bit -> ${P}.tar.gz"
+
+LICENSE="Sourcetrail || ( GPL-2 GPL-3 LGPL-3 ) BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples selinux"
+RESTRICT="mirror bindist"
+
+DEPEND="dev-util/patchelf"
+
+RDEPEND="
+ || (
+ dev-libs/openssl-compat:1.0.0
+ =dev-libs/openssl-1.0*:*
+ )
+ dev-libs/libffi-compat:6
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/libpng-compat:1.2
+ sys-libs/libudev-compat
+ virtual/opengl
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXxf86vm
+ selinux? ( sys-libs/libselinux )
+"
+
+S="${WORKDIR}/Sourcetrail"
+QA_PREBUILT="*"
+
+src_install() {
+ # This removes the rpath entries with $$ORIGIN
+ # since they trigger warnings when merging
+ for f in "Sourcetrail" "sourcetrail_indexer"; do
+ rpath=$(patchelf --print-rpath "${f}" 2>/dev/null)
+ new_rpath=${rpath//\$\$ORIGIN\/lib\/:/}
+ patchelf --set-rpath "${new_rpath}" "${f}" || die
+ done
+
+ # Remove bundled libraries
+ rm -f lib/libXi.so.6 lib/libXxf86vm.so.1 lib/libXrender.so.1 lib/libXfixes.so.3 lib/libXext.so.6 \
+ lib/libXdamage.so.1 lib/libxcb* lib/libXau.so.6 lib/libX11-xcb.so.1 lib/libX11.so.6 \
+ lib/libudev.so.0 lib/libEGL.so.1 lib/libgbm.so.1 lib/libglapi.so.0 lib/libGL.so.1 \
+ lib/libdrm.so.2 lib/libfontconfig.so.1 lib/libfreetype.so.6 lib/libcrypto.so lib/libssl.so \
+ lib/libpng12.so.0 lib/libselinux.so.1 || die
+ insinto /opt/sourcetrail
+ doins -r EULA.txt README data lib plugin
+ use examples && doins -r user
+ exeinto /opt/sourcetrail
+ doexe Sourcetrail sourcetrail_indexer Sourcetrail.sh resetPreferences.sh
+ into /opt
+ newbin - sourcetrail <<-EOF
+ #! /bin/sh
+ exec /opt/sourcetrail/Sourcetrail.sh "\$@"
+ EOF
+ local size
+ for size in 48 64 128 256 512; do
+ newicon -s "${size}" "setup/share/icons/hicolor/${size}x${size}/apps/sourcetrail.png" \
+ "sourcetrail.png"
+ done
+ sed -i -e 's|Exec=/usr/bin/sourcetrail|Exec=/opt/bin/sourcetrail|' \
+ -e 's/Utilities;//' "setup/share/applications/sourcetrail.desktop" \
+ "setup/share/applications/sourcetrail.desktop" || die
+ domenu "setup/share/applications/sourcetrail.desktop"
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
diff --git a/dev-cpp/sourcetrail/sourcetrail-2019.3.46.ebuild b/dev-cpp/sourcetrail/sourcetrail-2019.3.46.ebuild
new file mode 100644
index 000000000000..d84567ac9a33
--- /dev/null
+++ b/dev-cpp/sourcetrail/sourcetrail-2019.3.46.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop xdg-utils
+
+DESCRIPTION="A cross-platform source explorer for C/C++ and Java"
+HOMEPAGE="https://www.sourcetrail.com/"
+SRC_URI="https://www.sourcetrail.com/downloads/${PV}/linux/64bit -> ${P}.tar.gz"
+
+LICENSE="Sourcetrail || ( GPL-2 GPL-3 LGPL-3 ) BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples selinux"
+RESTRICT="mirror bindist"
+
+DEPEND="dev-util/patchelf"
+
+RDEPEND="
+ || (
+ dev-libs/openssl-compat:1.0.0
+ =dev-libs/openssl-1.0*:*
+ )
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/libpng-compat:1.2
+ sys-libs/libudev-compat
+ virtual/opengl
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXxf86vm
+ selinux? ( sys-libs/libselinux )
+"
+
+S="${WORKDIR}/Sourcetrail"
+QA_PREBUILT="*"
+
+src_install() {
+ # This removes the rpath entries with $$ORIGIN
+ # since they trigger warnings when merging
+ for f in "Sourcetrail" "sourcetrail_indexer"; do
+ rpath=$(patchelf --print-rpath "${f}" 2>/dev/null)
+ new_rpath=${rpath//\$\$ORIGIN\/lib\/:/}
+ patchelf --set-rpath "${new_rpath}" "${f}" || die
+ done
+
+ # Remove bundled libraries
+ rm -f lib/libXi.so.6 lib/libXxf86vm.so.1 lib/libXrender.so.1 lib/libXfixes.so.3 lib/libXext.so.6 \
+ lib/libXdamage.so.1 lib/libxcb* lib/libXau.so.6 lib/libX11-xcb.so.1 lib/libX11.so.6 \
+ lib/libudev.so.0 lib/libEGL.so.1 lib/libgbm.so.1 lib/libglapi.so.0 lib/libGL.so.1 \
+ lib/libdrm.so.2 lib/libfontconfig.so.1 lib/libfreetype.so.6 lib/libcrypto.so lib/libssl.so \
+ lib/libpng12.so.0 lib/libselinux.so.1 || die
+ insinto /opt/sourcetrail
+ doins -r EULA.txt README data lib plugin
+ use examples && doins -r user
+ exeinto /opt/sourcetrail
+ doexe Sourcetrail sourcetrail_indexer Sourcetrail.sh resetPreferences.sh
+ into /opt
+ newbin - sourcetrail <<-EOF
+ #! /bin/sh
+ exec /opt/sourcetrail/Sourcetrail.sh "\$@"
+ EOF
+ local size
+ for size in 48 64 128 256 512; do
+ newicon -s "${size}" "setup/share/icons/hicolor/${size}x${size}/apps/sourcetrail.png" \
+ "sourcetrail.png"
+ done
+ sed -i -e 's|Exec=/usr/bin/sourcetrail|Exec=/opt/bin/sourcetrail|' \
+ -e 's/Utilities;//' "setup/share/applications/sourcetrail.desktop" \
+ "setup/share/applications/sourcetrail.desktop" || die
+ domenu "setup/share/applications/sourcetrail.desktop"
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
diff --git a/dev-cpp/sparsehash/Manifest b/dev-cpp/sparsehash/Manifest
new file mode 100644
index 000000000000..01962c61fa6f
--- /dev/null
+++ b/dev-cpp/sparsehash/Manifest
@@ -0,0 +1 @@
+DIST sparsehash-2.0.3.tar.gz 322046 BLAKE2B 3749875bfbfa0ec9b92cfe68496a318208539745ca1b76910193879cb9ac790952b390cfbd941ff6e9714bd61546844e8f2d958d9b24845efeb54743facac136 SHA512 bb00d0acb8eba65f7da8015ea4f6bebf8bba36ed6777881960ee215f22b7be17b069c59838d210551ce67a34baccfc7b2fed603677ec53c0c32714d8e76f5d6c
diff --git a/dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch b/dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch
new file mode 100644
index 000000000000..237719c3b9f3
--- /dev/null
+++ b/dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch
@@ -0,0 +1,71 @@
+* Do not override $(docdir) as part of the GNU conventions
+* Do not install 'COPYING' and 'INSTALL'
+* Install html files using html_ prefix and not doc_ prefix
+* Do not try to link against tcmalloc, the complexity of juggling
+ the options around isn't worth it
+Bug: https://bugs.gentoo.org/show_bug.cgi?id=585968
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,7 +9,7 @@
+ # (for sanity checking)
+ AC_CONFIG_SRCDIR(README)
+ AM_INIT_AUTOMAKE([dist-zip])
+-AM_CONFIG_HEADER(src/config.h)
++AC_CONFIG_HEADERS([src/config.h])
+
+ # Checks for programs.
+ AC_PROG_CXX
+@@ -28,23 +28,7 @@
+ # These are 'only' needed for unittests
+ AC_CHECK_HEADERS(sys/resource.h unistd.h sys/time.h sys/utsname.h)
+
+-# If you have google-perftools installed, we can do a bit more testing.
+-# We not only want to set HAVE_MALLOC_EXTENSION_H, we also want to set
+-# a variable to let the Makefile to know to link in tcmalloc.
+ AC_LANG([C++])
+-AC_CHECK_HEADERS(google/malloc_extension.h,
+- tcmalloc_libs=-ltcmalloc,
+- tcmalloc_libs=)
+-# On some systems, when linking in tcmalloc you also need to link in
+-# pthread. That's a bug somewhere, but we'll work around it for now.
+-tcmalloc_flags=""
+-if test -n "$tcmalloc_libs"; then
+- ACX_PTHREAD
+- tcmalloc_flags="\$(PTHREAD_CFLAGS)"
+- tcmalloc_libs="$tcmalloc_libs \$(PTHREAD_LIBS)"
+-fi
+-AC_SUBST(tcmalloc_flags)
+-AC_SUBST(tcmalloc_libs)
+
+ # Figure out where hash_map lives and also hash_fun.h (or stl_hash_fun.h).
+ # This also tells us what namespace hash code lives in.
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -11,12 +11,11 @@
+ AM_CXXFLAGS = -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow
+ endif
+
+-docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
+ ## This is for HTML and other documentation you want to install.
+ ## Add your documentation files (in doc/) in addition to these boilerplate
+ ## Also add a TODO file if you have one
+-dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README README_windows.txt \
+- TODO \
++dist_doc_DATA = AUTHORS ChangeLog NEWS README README_windows.txt TODO
++dist_html_DATA = \
+ doc/dense_hash_map.html \
+ doc/dense_hash_set.html \
+ doc/sparse_hash_map.html \
+@@ -182,11 +181,6 @@
+ $(sparsehashinclude_HEADERS)
+ nodist_time_hash_map_SOURCES = $(nodist_internalinclude_HEADERS)
+
+-# If tcmalloc is installed, use it with time_hash_map; it gives us
+-# heap-usage statistics for the hash_map routines, which is very nice
+-time_hash_map_CXXFLAGS = @tcmalloc_flags@ $(AM_CXXFLAGS)
+-time_hash_map_LDFLAGS = @tcmalloc_flags@
+-time_hash_map_LDADD = @tcmalloc_libs@
+
+ ## ^^^^ END OF RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
+
diff --git a/dev-cpp/sparsehash/metadata.xml b/dev-cpp/sparsehash/metadata.xml
new file mode 100644
index 000000000000..5f1a29460caa
--- /dev/null
+++ b/dev-cpp/sparsehash/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">sparsehash/sparsehash</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/sparsehash/sparsehash-2.0.3-r1.ebuild b/dev-cpp/sparsehash/sparsehash-2.0.3-r1.ebuild
new file mode 100644
index 000000000000..b043e1800ff6
--- /dev/null
+++ b/dev-cpp/sparsehash/sparsehash-2.0.3-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="An extremely memory-efficient hash_map implementation"
+HOMEPAGE="https://github.com/sparsehash/sparsehash"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+S=${WORKDIR}/${PN}-${P}
+
+PATCHES=( "${FILESDIR}"/${PN}-2.0.3-fix-buildsystem.patch )
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/dev-cpp/tbb/Manifest b/dev-cpp/tbb/Manifest
new file mode 100644
index 000000000000..55a4e5475b0b
--- /dev/null
+++ b/dev-cpp/tbb/Manifest
@@ -0,0 +1,2 @@
+DIST tbb-2019.8.tar.gz 2580540 BLAKE2B 1cddb0c8ade6f6363811b7f9b323a2bb7739a18114acd56e1b4a13f33904ddff8cb6aec9b4b0add995cd307ff7815f0b55ce33fa64b7dd92c0062fbaa13d0833 SHA512 924a8dde011452a2c46c5152942a9835e76fe5610e08b69eb0e985de3fb46bdb49f0f628d10fa7704428f6e61ec63f7002da5399d47da6ee6004fa236d346dc8
+DIST tbb-2020.2.tar.gz 2637172 BLAKE2B 6b6e65732d3971f7374058513004ca3cfc3855b83c0a2dde59d50e08c26ff220470e31db86f4ab9f009c7e02e454a00a348730e63c829aa8d217320f7879cfc9 SHA512 6d7412fa6ce12d27736af3c8942c5ab5ea6945dd3ca93f309535c0dba3ff757d6507a5ffc3bcd73e6fdcda043cdedfa657631b25ae86fbf221d0f1d66a85b48f
diff --git a/dev-cpp/tbb/files/tbb-2020.1-makefile-debug.patch b/dev-cpp/tbb/files/tbb-2020.1-makefile-debug.patch
new file mode 100644
index 000000000000..b4313b375f59
--- /dev/null
+++ b/dev-cpp/tbb/files/tbb-2020.1-makefile-debug.patch
@@ -0,0 +1,62 @@
+--- a/Makefile 2020-01-21 12:26:46.000000000 +0100
++++ b/Makefile 2020-03-18 16:21:37.589262099 +0100
+@@ -26,29 +26,29 @@
+ all: tbb tbbmalloc tbbproxy test examples
+
+ tbb: mkdir
+- $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
++ $(MAKE) -C "$(work_dir)_$(cfg)" -r -f $(tbb_root)/build/Makefile.tbb cfg=$(cfg)
+
+ tbbmalloc: mkdir
+- $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc
++ $(MAKE) -C "$(work_dir)_$(cfg)" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=$(cfg) malloc
+
+ tbbproxy: mkdir
+- $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=release tbbproxy
++ $(MAKE) -C "$(work_dir)_$(cfg)" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=$(cfg) tbbproxy
+
+ tbbbind: mkdir
+- $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbbind cfg=release tbbbind
++ $(MAKE) -C "$(work_dir)_$(cfg)" -r -f $(tbb_root)/build/Makefile.tbbbind cfg=$(cfg) tbbbind
+
+ test: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
+- -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test
+- -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release
++ -$(MAKE) -C "$(work_dir)_$(cfg)" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=$(cfg) malloc_test
++ -$(MAKE) -C "$(work_dir)_$(cfg)" -r -f $(tbb_root)/build/Makefile.test cfg=$(cfg)
+
+ rml: mkdir
+- $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release
++ $(MAKE) -C "$(work_dir)_$(cfg)" -r -f $(tbb_root)/build/Makefile.rml cfg=$(cfg)
+
+ examples: tbb tbbmalloc
+- $(MAKE) -C examples -r -f Makefile tbb_root=.. release test
++ $(MAKE) -C examples -r -f Makefile tbb_root=.. $(cfg) test
+
+ python: tbb
+- $(MAKE) -C "$(work_dir)_release" -rf $(tbb_root)/python/Makefile install
++ $(MAKE) -C "$(work_dir)_$(cfg)" -rf $(tbb_root)/python/Makefile install
+
+ doxygen:
+ doxygen Doxyfile
+@@ -56,16 +56,16 @@
+ .PHONY: clean clean_examples mkdir info
+
+ clean: clean_examples
+- $(shell $(RM) $(work_dir)_release$(SLASH)*.* >$(NUL) 2>$(NUL))
+- $(shell $(RD) $(work_dir)_release >$(NUL) 2>$(NUL))
++ $(shell $(RM) $(work_dir)_$(cfg)$(SLASH)*.* >$(NUL) 2>$(NUL))
++ $(shell $(RD) $(work_dir)_$(cfg) >$(NUL) 2>$(NUL))
+ @echo clean done
+
+ clean_examples:
+ $(shell $(MAKE) -s -i -r -C examples -f Makefile tbb_root=.. clean >$(NUL) 2>$(NUL))
+
+ mkdir:
+- $(shell $(MD) "$(work_dir)_release" >$(NUL) 2>$(NUL))
+- @echo Created the $(work_dir)_release directory
++ $(shell $(MD) "$(work_dir)_$(cfg)" >$(NUL) 2>$(NUL))
++ @echo Created the $(work_dir)_$(cfg) directory
+
+ info:
+ @echo OS: $(tbb_os)
diff --git a/dev-cpp/tbb/metadata.xml b/dev-cpp/tbb/metadata.xml
new file mode 100644
index 000000000000..acab630a4c6a
--- /dev/null
+++ b/dev-cpp/tbb/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <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>
+ <upstream>
+ <remote-id type="github">intel/tbb</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/tbb/tbb-2019.8.ebuild b/dev-cpp/tbb/tbb-2019.8.ebuild
new file mode 100644
index 000000000000..f8b27cedd94b
--- /dev/null
+++ b/dev-cpp/tbb/tbb-2019.8.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils flag-o-matic multilib-minimal multilib toolchain-funcs
+
+PV1="$(ver_cut 1)"
+PV2="$(ver_cut 2)"
+MY_PV="${PV1}_U${PV2}"
+
+DESCRIPTION="High level abstract threading library"
+HOMEPAGE="https://www.threadingbuildingblocks.org"
+SRC_URI="https://github.com/intel/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="debug examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+DOCS=( CHANGES README README.md doc/Release_Notes.txt )
+
+src_prepare() {
+ default
+
+ 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 ;;
+# abi_ppc_64) arch=ppc64 ;;
+# abi_ppc_32) arch=ppc32 ;;
+ esac
+
+ case "$(tc-getCXX)" in
+ *clang*) comp="clang" ;;
+ *g++*) comp="gcc" ;;
+ *ic*c) comp="icc" ;;
+ *) 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() {
+ local bt
+ local buildtypes
+ if use debug ; then
+ buildtypes="release debug"
+ else
+ buildtypes="release"
+ fi
+ for bt in ${buildtypes}; do
+ cd "${BUILD_DIR}_${bt}" || die
+ local l
+ for l in $(find . -name lib\*$(get_libname \*)); do
+ dolib.so ${l}
+ local bl=$(basename ${l})
+ dosym ${bl} /usr/$(get_libdir)/${bl%%.*}$(get_libname)
+ done
+ done
+
+ cd "${BUILD_DIR}" || die
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+}
+
+multilib_src_install_all() {
+ doheader -r include/*
+
+ einstalldocs
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples/build
+ doins build/*.inc
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples
+ docompress -x "/usr/share/doc/${PF}/examples"
+ fi
+}
diff --git a/dev-cpp/tbb/tbb-2020.2.ebuild b/dev-cpp/tbb/tbb-2020.2.ebuild
new file mode 100644
index 000000000000..25976f821bad
--- /dev/null
+++ b/dev-cpp/tbb/tbb-2020.2.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils flag-o-matic multilib-minimal multilib toolchain-funcs
+
+PV1="$(ver_cut 1)"
+PV2="$(ver_cut 2)"
+MY_PV="${PV1}_U${PV2}"
+
+DESCRIPTION="High level abstract threading library"
+HOMEPAGE="https://www.threadingbuildingblocks.org"
+SRC_URI="https://github.com/intel/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+S="${WORKDIR}/oneTBB-${MY_PV}"
+
+DOCS=( CHANGES README README.md doc/Release_Notes.txt )
+
+PATCHES=( "${FILESDIR}"/${PN}-2020.1-makefile-debug.patch )
+
+src_prepare() {
+ default
+
+ 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
+ local bt buildtypes
+
+ case ${MULTILIB_ABI_FLAG} in
+ abi_x86_64) arch=x86_64 ;;
+ abi_x86_32) arch=ia32 ;;
+# abi_ppc_64) arch=ppc64 ;;
+# abi_ppc_32) arch=ppc32 ;;
+ esac
+
+ case "$(tc-getCXX)" in
+ *clang*) comp="clang" ;;
+ *g++*) comp="gcc" ;;
+ *ic*c) comp="icc" ;;
+ *) die "compiler $(tc-getCXX) not supported by build system" ;;
+ esac
+
+ if use debug ; then
+ buildtypes="release debug"
+ else
+ buildtypes="release"
+ fi
+
+ for bt in ${buildtypes}; do
+ CXX="$(tc-getCXX)" \
+ CC="$(tc-getCC)" \
+ AS="$(tc-getAS)" \
+ arch=${arch} \
+ CPLUS_FLAGS="${CXXFLAGS}" \
+ emake compiler=${comp} work_dir="${BUILD_DIR}" tbb_root="${S}" cfg=${bt} $@
+ done
+}
+
+multilib_src_compile() {
+ local_src_compile tbb tbbmalloc
+}
+
+multilib_src_test() {
+ local_src_compile test
+}
+
+multilib_src_install() {
+ local bt
+ local buildtypes
+ if use debug ; then
+ buildtypes="release debug"
+ else
+ buildtypes="release"
+ fi
+ for bt in ${buildtypes}; do
+ cd "${BUILD_DIR}_${bt}" || die
+ local l
+ for l in $(find . -name lib\*$(get_libname \*)); do
+ dolib.so ${l}
+ local bl=$(basename ${l})
+ dosym ${bl} /usr/$(get_libdir)/${bl%%.*}$(get_libname)
+ done
+ done
+
+ cd "${BUILD_DIR}" || die
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins *.pc
+}
+
+multilib_src_install_all() {
+ doheader -r include/*
+
+ einstalldocs
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples/build
+ doins build/*.inc
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples
+ docompress -x "/usr/share/doc/${PF}/examples"
+ fi
+}
diff --git a/dev-cpp/tclap/Manifest b/dev-cpp/tclap/Manifest
new file mode 100644
index 000000000000..95f59399a2f5
--- /dev/null
+++ b/dev-cpp/tclap/Manifest
@@ -0,0 +1,2 @@
+DIST tclap-1.2.1.tar.gz 442387 BLAKE2B 413d77f59224dd7751621f32a5712178c4954cb532095203a1eb839c97d20e8651f94f90d4961a47f654d5b478946fb988db66df0d17c8230fde0b771af77405 SHA512 8bd6ee724600880840048c7b36f02d31b1aa4910b17f80fb04aef89b1f1917856d9979ec488edbd457b66d9d689aea97540abb842a8b902bbd75c66a6e07b9b1
+DIST tclap-1.2.2.tar.gz 231714 BLAKE2B 94fc3d5253c08a305e5f75f6b4b7ab556e94980193502b64665ff828609cde20f340e3fe18cef12011da07ae2db2c2bb52a08f112d052d74c45be8290d525092 SHA512 516ec17f82a61277922bc8c0ed66973300bf42a738847fbbd2912c6405c34f94a13e47dc964854a5b26a9a9f1f518cce682ca54e769d6016851656c647866107
diff --git a/dev-cpp/tclap/metadata.xml b/dev-cpp/tclap/metadata.xml
new file mode 100644
index 000000000000..639b631abdf0
--- /dev/null
+++ b/dev-cpp/tclap/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 type="person">
+ <email>gentoo@culot.org</email>
+ <name>Frederic Culot</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">tclap</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</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 000000000000..f499c9d0373e
--- /dev/null
+++ b/dev-cpp/tclap/tclap-1.2.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit eutils
+
+DESCRIPTION="Simple templatized C++ library for parsing command line arguments"
+HOMEPAGE="http://tclap.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 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/tclap/tclap-1.2.2.ebuild b/dev-cpp/tclap/tclap-1.2.2.ebuild
new file mode 100644
index 000000000000..53fcd8f85956
--- /dev/null
+++ b/dev-cpp/tclap/tclap-1.2.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Simple templatized C++ library for parsing command line arguments"
+HOMEPAGE="http://tclap.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~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/tree/Manifest b/dev-cpp/tree/Manifest
new file mode 100644
index 000000000000..c6030dad7492
--- /dev/null
+++ b/dev-cpp/tree/Manifest
@@ -0,0 +1 @@
+DIST tree-2.81.tar.gz 1167128 BLAKE2B ea92724b16fc7ea8a5f0036f5a7a57d000d66b332b4ba46139463f707f95922f38b1d4d56a6d2fca0a3c4ece8f11e28bbf4aa6bec5c5a7bc59ccaa36a01413d6 SHA512 85e910fdb19ffd03ae79302a95ebffdb44725fd9f291a61d6912f743b54fe9b3d1c863e00c7e75d238f428946809e42c7ae6379b1051688fb06ee6c6d761d294
diff --git a/dev-cpp/tree/files/tree-2.81-test.patch b/dev-cpp/tree/files/tree-2.81-test.patch
new file mode 100644
index 000000000000..c9e675dc7953
--- /dev/null
+++ b/dev-cpp/tree/files/tree-2.81-test.patch
@@ -0,0 +1,36 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,13 +1,6 @@
+-
+-%.o: %.cc
+- g++ -c -I. $^
+-
+-test1: test1.o
+- g++ -o test1 test1.o
+-
+-run_tests: test1 test1.req
+- ./test1 > test1.res
+- @diff test1.res test1.req
++check: test_tree
++ ./test_tree > mytest.output && \
++ diff -Nu test_tree.output mytest.output
+ @echo "*** All tests OK ***"
+
+ clean:
+--- a/test_tree.output
++++ b/test_tree.output
+@@ -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/metadata.xml b/dev-cpp/tree/metadata.xml
new file mode 100644
index 000000000000..078d44db5187
--- /dev/null
+++ b/dev-cpp/tree/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 type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <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>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/tree/tree-2.81.ebuild b/dev-cpp/tree/tree-2.81.ebuild
new file mode 100644
index 000000000000..cce24586ed8f
--- /dev/null
+++ b/dev-cpp/tree/tree-2.81.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit 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="${WORKDIR}/${P}/src"
+
+PATCHES=( "${FILESDIR}"/${P}-test.patch )
+
+src_configure() {
+ tc-export CXX
+}
+
+src_install() {
+ doheader tree.hh tree_util.hh
+ dodoc tree_example.cc
+
+ if use doc; then
+ dodoc ../doc/treefig.*
+ rm ../doc/treefig.* || die
+
+ docinto html
+ rm ../doc/{doxygen_tree.config,favicon.ico,tree.tex} || die
+ dodoc -r ../doc/.
+ fi
+ docompress -x /usr/share/doc/${PF}
+}
diff --git a/dev-cpp/waylandpp/Manifest b/dev-cpp/waylandpp/Manifest
new file mode 100644
index 000000000000..ddd2e862bb86
--- /dev/null
+++ b/dev-cpp/waylandpp/Manifest
@@ -0,0 +1,5 @@
+DIST waylandpp-0.2.3.tar.gz 180539 BLAKE2B 8941200b46235c8b65926065a3a758871581fe21ffbcc17dc33a00c546c920247739d3137b528fe8971b7c1c2240b5a056387dcbaa1437047709e079cb2e58c2 SHA512 424ccef67e1faedfb03aa7465917e4dfc0eae578a1eb42bcdbe71df02955fef00fc1b480acb4828e168f051a82a13f923e0c9be93d3ede221e791a7af88647a5
+DIST waylandpp-0.2.4.tar.gz 240718 BLAKE2B 4493f3e19dd546412f110227c44440a422d0e1156eb24ed8bc3e58e5ebda22c0aee16e5f2a2efc1328a697c5436f81c11c67d7c46855f32f7531783a1d514ae1 SHA512 74855ea86926692a9f6ccb5645a7ed30000bab0f01a2f37a30f2c0a341d67d511ae217b8f69adc52fa2c25ac65afa182a6dbf2318360435a02b6ff428b4c9d51
+DIST waylandpp-0.2.5.tar.gz 177735 BLAKE2B 9add6147b7694d275f2f15f03476aef5bddebdca029f012743a0c0c388c7ef7394536b4401c78830487bb1c36a0b29ea348bc2acf60617af7bcbf917a5b691dd SHA512 a8c80282022b2ede3c3d0f5516e236aedaf3ef685565da8c61214fe37eda139bf152093eb29960be1889798eef5631b9d68a5e832c10cf1160c4a90f45eccb6e
+DIST waylandpp-0.2.6.tar.gz 178969 BLAKE2B aff9108691dfb2f27ac829865d3367a7f72de0a838b64f6265183a36a9ed5efbfcc9abcf724c784f5bda08c1a312cc7077fa55756b10520114dc8a23aa30f7a3 SHA512 b2d2f22864db830ec6a78282552a3e677f109c49381f21e80efec3cc65cad1820b1e10ad76d960e9d470f84060bb7f3edf0dcdd94025ae80a4a93ffcecfb8c5f
+DIST waylandpp-0.2.7.tar.gz 179121 BLAKE2B 6a8e77817962b8bd6ea93c059cd8cee9c655821bca0dc996b014d6085de1f88fe9a9f2b7c80a8b8fa405e898f7d96dc5d01f78288033d18184b5f0504c78c276 SHA512 67ec76d9bc0146472d70364c98b6b5af957c757a95d55c224ef2d9bf8b3ab15dc4f6333dca1ad803d94403be11abe7055db54d9fc708c6f5c0196f6a328a5ed2
diff --git a/dev-cpp/waylandpp/metadata.xml b/dev-cpp/waylandpp/metadata.xml
new file mode 100644
index 000000000000..fdd46d5d64ea
--- /dev/null
+++ b/dev-cpp/waylandpp/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>candrews@gentoo.org</email>
+ <name>Craig Andrews</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/NilsBrause/waylandpp/issues</bugs-to>
+ <remote-id type="github">NilsBrause/waylandpp</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/waylandpp/waylandpp-0.2.3.ebuild b/dev-cpp/waylandpp/waylandpp-0.2.3.ebuild
new file mode 100644
index 000000000000..953c92f45fc0
--- /dev/null
+++ b/dev-cpp/waylandpp/waylandpp-0.2.3.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils versionator
+
+DESCRIPTION="Wayland C++ bindings"
+HOMEPAGE="https://github.com/NilsBrause/waylandpp"
+
+LICENSE="MIT"
+IUSE="doc"
+SLOT="0/$(get_version_component_range 1-2)"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/NilsBrause/waylandpp.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/NilsBrause/waylandpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 x86"
+fi
+
+RDEPEND="
+ >=dev-libs/wayland-1.11.0
+ media-libs/mesa[wayland]
+"
+DEPEND="${RDEPEND}
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+ "
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/dev-cpp/waylandpp/waylandpp-0.2.4.ebuild b/dev-cpp/waylandpp/waylandpp-0.2.4.ebuild
new file mode 100644
index 000000000000..c80260e3db64
--- /dev/null
+++ b/dev-cpp/waylandpp/waylandpp-0.2.4.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Wayland C++ bindings"
+HOMEPAGE="https://github.com/NilsBrause/waylandpp"
+
+LICENSE="MIT"
+IUSE="doc"
+SLOT="0/$(ver_cut 1-2)"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/NilsBrause/waylandpp.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/NilsBrause/waylandpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RDEPEND="
+ >=dev-libs/wayland-1.11.0
+ media-libs/mesa[wayland]
+ >=dev-libs/pugixml-1.4
+"
+DEPEND="${RDEPEND}
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+ "
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/waylandpp/waylandpp-0.2.5.ebuild b/dev-cpp/waylandpp/waylandpp-0.2.5.ebuild
new file mode 100644
index 000000000000..6fda559666cb
--- /dev/null
+++ b/dev-cpp/waylandpp/waylandpp-0.2.5.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Wayland C++ bindings"
+HOMEPAGE="https://github.com/NilsBrause/waylandpp"
+
+LICENSE="MIT"
+IUSE="doc"
+SLOT="0/$(ver_cut 1-2)"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/NilsBrause/waylandpp.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/NilsBrause/waylandpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RDEPEND="
+ >=dev-libs/wayland-1.11.0
+ media-libs/mesa[wayland]
+ >=dev-libs/pugixml-1.9-r1
+"
+DEPEND="${RDEPEND}
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+ "
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/waylandpp/waylandpp-0.2.6.ebuild b/dev-cpp/waylandpp/waylandpp-0.2.6.ebuild
new file mode 100644
index 000000000000..6fda559666cb
--- /dev/null
+++ b/dev-cpp/waylandpp/waylandpp-0.2.6.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Wayland C++ bindings"
+HOMEPAGE="https://github.com/NilsBrause/waylandpp"
+
+LICENSE="MIT"
+IUSE="doc"
+SLOT="0/$(ver_cut 1-2)"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/NilsBrause/waylandpp.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/NilsBrause/waylandpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RDEPEND="
+ >=dev-libs/wayland-1.11.0
+ media-libs/mesa[wayland]
+ >=dev-libs/pugixml-1.9-r1
+"
+DEPEND="${RDEPEND}
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+ "
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/waylandpp/waylandpp-0.2.7.ebuild b/dev-cpp/waylandpp/waylandpp-0.2.7.ebuild
new file mode 100644
index 000000000000..6fda559666cb
--- /dev/null
+++ b/dev-cpp/waylandpp/waylandpp-0.2.7.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Wayland C++ bindings"
+HOMEPAGE="https://github.com/NilsBrause/waylandpp"
+
+LICENSE="MIT"
+IUSE="doc"
+SLOT="0/$(ver_cut 1-2)"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/NilsBrause/waylandpp.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/NilsBrause/waylandpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RDEPEND="
+ >=dev-libs/wayland-1.11.0
+ media-libs/mesa[wayland]
+ >=dev-libs/pugixml-1.9-r1
+"
+DEPEND="${RDEPEND}
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+ "
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/waylandpp/waylandpp-9999.ebuild b/dev-cpp/waylandpp/waylandpp-9999.ebuild
new file mode 100644
index 000000000000..6fda559666cb
--- /dev/null
+++ b/dev-cpp/waylandpp/waylandpp-9999.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Wayland C++ bindings"
+HOMEPAGE="https://github.com/NilsBrause/waylandpp"
+
+LICENSE="MIT"
+IUSE="doc"
+SLOT="0/$(ver_cut 1-2)"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/NilsBrause/waylandpp.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/NilsBrause/waylandpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RDEPEND="
+ >=dev-libs/wayland-1.11.0
+ media-libs/mesa[wayland]
+ >=dev-libs/pugixml-1.9-r1
+"
+DEPEND="${RDEPEND}
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+ "
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/websocketpp/Manifest b/dev-cpp/websocketpp/Manifest
new file mode 100644
index 000000000000..f678a25e2e1c
--- /dev/null
+++ b/dev-cpp/websocketpp/Manifest
@@ -0,0 +1 @@
+DIST websocketpp-0.8.1.tar.gz 699468 BLAKE2B e5769229b400d2f42e69541b07cfba17dcc82cdad20685a52ac1130c2fc4e94764a38d2e4f7c36101b11705e10c67eb149ba2c30750e7a6f63696d52c272fed2 SHA512 35e0261ed0285acf77d300768819bd380197de8acdf68223e2d7598481b9bfd69cb1653b435139771b1db6c16530c8d8cf9a887a8a6bba3fea126d0da4dbc13c
diff --git a/dev-cpp/websocketpp/files/websocketpp-0.7.0-cmake-install.patch b/dev-cpp/websocketpp/files/websocketpp-0.7.0-cmake-install.patch
new file mode 100644
index 000000000000..4548c650759d
--- /dev/null
+++ b/dev-cpp/websocketpp/files/websocketpp-0.7.0-cmake-install.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f60caa1..9ff2211 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -15,13 +15,20 @@ set (WEBSOCKETPP_VERSION ${WEBSOCKETPP_MAJOR_VERSION}.${WEBSOCKETPP_MINOR_VERSIO
+
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
++get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
++if ("${LIB64}" STREQUAL "TRUE")
++ set(LIBSUFFIX 64)
++else()
++ set(LIBSUFFIX "")
++endif()
++
+ set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
++set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
+ if (WIN32 AND NOT CYGWIN)
+- set (DEF_INSTALL_CMAKE_DIR cmake)
++ set (INSTALL_CMAKE_DIR cmake)
+ else ()
+- set (DEF_INSTALL_CMAKE_DIR lib/cmake/websocketpp)
++ set (INSTALL_CMAKE_DIR ${LIB_INSTALL_DIR}/cmake/websocketpp)
+ endif ()
+-set (INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+
+ # Make relative paths absolute (needed later on)
+ foreach (p INCLUDE CMAKE)
diff --git a/dev-cpp/websocketpp/files/websocketpp-0.8.1-boost-1.70.patch b/dev-cpp/websocketpp/files/websocketpp-0.8.1-boost-1.70.patch
new file mode 100644
index 000000000000..40ae155307d2
--- /dev/null
+++ b/dev-cpp/websocketpp/files/websocketpp-0.8.1-boost-1.70.patch
@@ -0,0 +1,139 @@
+From c769c9238ad62178f506038178714a1c35aa2769 Mon Sep 17 00:00:00 2001
+From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
+Date: Tue, 16 Apr 2019 08:38:01 +0200
+Subject: [PATCH 1/2] Replace make_shared with new in some cases
+
+Replace make_shared for asio types that take a lib::ref as a parameter.
+This should fix the ASIO change (boostorg/asio@59066d8) for 1.70,
+while keeping it backwards compatible to older boost versions.
+---
+ websocketpp/transport/asio/connection.hpp | 7 ++++---
+ websocketpp/transport/asio/endpoint.hpp | 3 +--
+ websocketpp/transport/asio/security/none.hpp | 3 +--
+ websocketpp/transport/asio/security/tls.hpp | 3 +--
+ 4 files changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
+index 60f88a79..1ccda8f3 100644
+--- a/websocketpp/transport/asio/connection.hpp
++++ b/websocketpp/transport/asio/connection.hpp
+@@ -311,9 +311,10 @@ class connection : public config::socket_type::socket_con_type {
+ * needed.
+ */
+ timer_ptr set_timer(long duration, timer_handler callback) {
+- timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
+- lib::ref(*m_io_service),
+- lib::asio::milliseconds(duration)
++ timer_ptr new_timer(
++ new lib::asio::steady_timer(
++ *m_io_service,
++ lib::asio::milliseconds(duration))
+ );
+
+ if (config::enable_multithreading) {
+diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
+index ddab2c74..4b719a97 100644
+--- a/websocketpp/transport/asio/endpoint.hpp
++++ b/websocketpp/transport/asio/endpoint.hpp
+@@ -195,8 +195,7 @@ class endpoint : public config::socket_type {
+
+ m_io_service = ptr;
+ m_external_io_service = true;
+- m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
+- lib::ref(*m_io_service));
++ m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
+
+ m_state = READY;
+ ec = lib::error_code();
+diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp
+index 5c8293db..6c7d3524 100644
+--- a/websocketpp/transport/asio/security/none.hpp
++++ b/websocketpp/transport/asio/security/none.hpp
+@@ -168,8 +168,7 @@ class connection : public lib::enable_shared_from_this<connection> {
+ return socket::make_error_code(socket::error::invalid_state);
+ }
+
+- m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
+- lib::ref(*service));
++ m_socket.reset(new lib::asio::ip::tcp::socket(*service));
+
+ if (m_socket_init_handler) {
+ m_socket_init_handler(m_hdl, *m_socket);
+diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
+index c76fd9aa..04ac3790 100644
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -193,8 +193,7 @@ class connection : public lib::enable_shared_from_this<connection> {
+ if (!m_context) {
+ return socket::make_error_code(socket::error::invalid_tls_context);
+ }
+- m_socket = lib::make_shared<socket_type>(
+- _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
++ m_socket.reset(new socket_type(*service, *m_context));
+
+ if (m_socket_init_handler) {
+ m_socket_init_handler(m_hdl, get_socket());
+
+From f810ca2e800e9b55be41c5911cf1d1185fcd516b Mon Sep 17 00:00:00 2001
+From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
+Date: Wed, 17 Apr 2019 10:06:18 +0000
+Subject: [PATCH 2/2] Fix missed entries; fix testing
+
+---
+ CMakeLists.txt | 2 +-
+ websocketpp/transport/asio/connection.hpp | 3 +--
+ websocketpp/transport/asio/endpoint.hpp | 7 ++-----
+ 3 files changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2786aba9..951de975 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+ endif ()
+
+ if (NOT Boost_USE_STATIC_LIBS)
+- add_definitions (/DBOOST_TEST_DYN_LINK)
++ add_definitions (-DBOOST_TEST_DYN_LINK)
+ endif ()
+
+ set (Boost_FIND_REQUIRED TRUE)
+diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
+index 1ccda8f3..57dda74a 100644
+--- a/websocketpp/transport/asio/connection.hpp
++++ b/websocketpp/transport/asio/connection.hpp
+@@ -462,8 +462,7 @@ class connection : public config::socket_type::socket_con_type {
+ m_io_service = io_service;
+
+ if (config::enable_multithreading) {
+- m_strand = lib::make_shared<lib::asio::io_service::strand>(
+- lib::ref(*io_service));
++ m_strand.reset(new lib::asio::io_service::strand(*io_service));
+ }
+
+ lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
+diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
+index 4b719a97..94509adb 100644
+--- a/websocketpp/transport/asio/endpoint.hpp
++++ b/websocketpp/transport/asio/endpoint.hpp
+@@ -687,9 +687,7 @@ class endpoint : public config::socket_type {
+ * @since 0.3.0
+ */
+ void start_perpetual() {
+- m_work = lib::make_shared<lib::asio::io_service::work>(
+- lib::ref(*m_io_service)
+- );
++ m_work.reset(new lib::asio::io_service::work(*m_io_service));
+ }
+
+ /// Clears the endpoint's perpetual flag, allowing it to exit when empty
+@@ -853,8 +851,7 @@ class endpoint : public config::socket_type {
+
+ // Create a resolver
+ if (!m_resolver) {
+- m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
+- lib::ref(*m_io_service));
++ m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
+ }
+
+ tcon->set_uri(u);
diff --git a/dev-cpp/websocketpp/files/websocketpp-0.8.1-disable-test_transport-test_transport_asio_timers.patch b/dev-cpp/websocketpp/files/websocketpp-0.8.1-disable-test_transport-test_transport_asio_timers.patch
new file mode 100644
index 000000000000..8d6c93fcec30
--- /dev/null
+++ b/dev-cpp/websocketpp/files/websocketpp-0.8.1-disable-test_transport-test_transport_asio_timers.patch
@@ -0,0 +1,46 @@
+--- a/test/transport/CMakeLists.txt
++++ b/test/transport/CMakeLists.txt
+@@ -1,24 +1,24 @@
+ if (OPENSSL_FOUND)
+
+-# Test transport integration
+-file (GLOB SOURCE integration.cpp)
+-
+-init_target (test_transport)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+-
+-# Test transport asio timers
+-file (GLOB SOURCE asio/timers.cpp)
+-
+-init_target (test_transport_asio_timers)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++## Test transport integration
++#file (GLOB SOURCE integration.cpp)
++#
++#init_target (test_transport)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++#
++## Test transport asio timers
++#file (GLOB SOURCE asio/timers.cpp)
++#
++#init_target (test_transport_asio_timers)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+
+ # Test transport asio security
+ file (GLOB SOURCE asio/security.cpp)
diff --git a/dev-cpp/websocketpp/metadata.xml b/dev-cpp/websocketpp/metadata.xml
new file mode 100644
index 000000000000..afcd3d48c5fc
--- /dev/null
+++ b/dev-cpp/websocketpp/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 type="person">
+ <email>johu@gentoo.org</email>
+ <name>Johannes Huber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">zaphoyd/websocketpp</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/websocketpp/websocketpp-0.8.1-r1.ebuild b/dev-cpp/websocketpp/websocketpp-0.8.1-r1.ebuild
new file mode 100644
index 000000000000..051e22e7eeb3
--- /dev/null
+++ b/dev-cpp/websocketpp/websocketpp-0.8.1-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="C++/Boost Asio based websocket client/server library"
+HOMEPAGE="https://www.zaphoyd.com/websocketpp"
+SRC_URI="https://github.com/zaphoyd/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( dev-libs/boost )"
+RDEPEND="dev-libs/boost"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.7.0-cmake-install.patch
+ "${FILESDIR}"/${PN}-0.8.1-boost-1.70.patch
+ # disable tests that are timing sensitive
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1461069
+ "${FILESDIR}"/${PN}-0.8.1-disable-test_transport-test_transport_asio_timers.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_CPP11=ON
+ -DBUILD_TESTS="$(usex test)"
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-cpp/yaml-cpp/Manifest b/dev-cpp/yaml-cpp/Manifest
new file mode 100644
index 000000000000..9a5094e8b595
--- /dev/null
+++ b/dev-cpp/yaml-cpp/Manifest
@@ -0,0 +1,2 @@
+DIST yaml-cpp-0.6.2.tar.gz 1396250 BLAKE2B be342c212c980cdb03349dbafbe1db0bb581123b4dd6909393d3cdc86145b997a9d2f9b57a5e9d7c8cc60cdfd03f1c37e9db610d8784f2d29fdeada5ab322894 SHA512 fea8ce0a20a00cbc75023d1db442edfcd32d0ac57a3c41b32ec8d56f87cc1d85d7dd7a923ce662f5d3a315f91a736d6be0d649997acd190915c1d68cc93795e4
+DIST yaml-cpp-0.6.3.tar.gz 1398768 BLAKE2B 07abe1c56740105a0af2335bb1cd48086cb614d9d04c61342e53788bfb043fd7eb2629e441a0a5be50898b288f3526f1707c5fdf1d734395b6450c3103773b14 SHA512 68b9ce987cabc1dec79382f922de20cc2c222cb9c090ecb93dc686b048da5c917facf4fce6d8f72feea44b61e5a6770ed3b0c199c4cd4e6bde5b6245c09f8e49
diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch
new file mode 100644
index 000000000000..2892108bd250
--- /dev/null
+++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch
@@ -0,0 +1,45 @@
+From d540476e31b080aa1f903ad20ec0426dd3838be7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anarcat@debian.org>
+Date: Tue, 25 Apr 2017 20:10:20 -0400
+Subject: [PATCH] fix stack overflow in HandleNode() (CVE-2017-5950)
+
+simply set a hardcoded recursion limit to 2000 (inspired by Python's)
+to avoid infinitely recursing into arbitrary data structures
+
+assert() the depth. unsure if this is the right approach, but given
+that HandleNode() is "void", I am not sure how else to return an
+error. the problem with this approach of course is that it will still
+crash the caller, unless they have proper exception handling in place.
+
+Closes: #459
+---
+ src/singledocparser.cpp | 2 ++
+ src/singledocparser.h | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp
+index a27c1c3b..1b4262ee 100644
+--- a/src/singledocparser.cpp
++++ b/src/singledocparser.cpp
+@@ -46,6 +46,8 @@ void SingleDocParser::HandleDocument(EventHandler& eventHandler) {
+ }
+
+ void SingleDocParser::HandleNode(EventHandler& eventHandler) {
++ assert(depth < depth_limit);
++ depth++;
+ // an empty node *is* a possibility
+ if (m_scanner.empty()) {
+ eventHandler.OnNull(m_scanner.mark(), NullAnchor);
+diff --git a/src/singledocparser.h b/src/singledocparser.h
+index 2b92067c..7046f1e2 100644
+--- a/src/singledocparser.h
++++ b/src/singledocparser.h
+@@ -51,6 +51,8 @@ class SingleDocParser : private noncopyable {
+ anchor_t LookupAnchor(const Mark& mark, const std::string& name) const;
+
+ private:
++ int depth = 0;
++ int depth_limit = 2000;
+ Scanner& m_scanner;
+ const Directives& m_directives;
+ std::unique_ptr<CollectionStack> m_pCollectionStack;
diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch
new file mode 100644
index 000000000000..671bde36704a
--- /dev/null
+++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch
@@ -0,0 +1,70 @@
+From 259f944bc3e45420f5891737101260f07ab3030a Mon Sep 17 00:00:00 2001
+From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
+Date: Tue, 27 Feb 2018 14:17:49 +0500
+Subject: [PATCH] Externalize googletest project
+
+Externalize gtest to avoid installation, fixes #539.
+---
+ test/CMakeLists.txt | 35 ++++++++++++++++++++++++++---------
+ 1 file changed, 26 insertions(+), 9 deletions(-)
+
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 3633da5..7b39dd4 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -1,16 +1,27 @@
++include(ExternalProject)
++
++ExternalProject_Add(
++ googletest_project
++ SOURCE_DIR "${CMAKE_SOURCE_DIR}/test/gtest-1.8.0"
++ INSTALL_DIR "${CMAKE_BINARY_DIR}/prefix"
++ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DBUILD_GMOCK=ON
++)
++
++add_library(gmock UNKNOWN IMPORTED)
++set_target_properties(gmock PROPERTIES
++ IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/prefix/lib/libgmock.a
++)
++
++find_package(Threads)
++
++include_directories(SYSTEM "${PROJECT_BINARY_DIR}/prefix/include")
++
+ set(gtest_force_shared_crt ${MSVC_SHARED_RT} CACHE BOOL
+ "Use shared (DLL) run-time lib even when Google Test built as a static lib.")
+-add_subdirectory(gtest-1.8.0)
+-include_directories(SYSTEM gtest-1.8.0/googlemock/include)
+-include_directories(SYSTEM gtest-1.8.0/googletest/include)
+-
+-if(WIN32 AND BUILD_SHARED_LIBS)
+- add_definitions("-DGTEST_LINKED_AS_SHARED_LIBRARY")
+-endif()
+
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+- set(yaml_test_flags "-Wno-variadic-macros -Wno-sign-compare")
++ set(yaml_test_flags "-Wno-variadic-macros -Wno-sign-compare")
+
+ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set(yaml_test_flags "${yaml_test_flags} -Wno-c99-extensions")
+@@ -36,9 +47,15 @@ add_executable(run-tests
+ ${test_sources}
+ ${test_headers}
+ )
++
++add_dependencies(run-tests googletest_project)
++
+ set_target_properties(run-tests PROPERTIES
+ COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags} ${yaml_test_flags}"
+ )
+-target_link_libraries(run-tests yaml-cpp gmock)
++target_link_libraries(run-tests
++ yaml-cpp
++ gmock
++ ${CMAKE_THREAD_LIBS_INIT})
+
+ add_test(yaml-test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run-tests)
+--
+2.16.1
+
diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch
new file mode 100644
index 000000000000..fd7a7198c1c6
--- /dev/null
+++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch
@@ -0,0 +1,44 @@
+From c9460110e072df84b7dee3eb651f2ec5df75fb18 Mon Sep 17 00:00:00 2001
+From: Jesse Beder <jbeder@gmail.com>
+Date: Mon, 20 Jan 2020 18:05:15 -0600
+Subject: [PATCH] Fix reading empty token stack with a node with properties but
+ no scalar.
+
+E.g. `!2`.
+---
+ src/singledocparser.cpp | 6 ++++++
+ test/integration/load_node_test.cpp | 5 +++++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp
+index 52544dd6..47e9e047 100644
+--- a/src/singledocparser.cpp
++++ b/src/singledocparser.cpp
+@@ -79,6 +79,12 @@ void SingleDocParser::HandleNode(EventHandler& eventHandler) {
+ if (!anchor_name.empty())
+ eventHandler.OnAnchor(mark, anchor_name);
+
++ // after parsing properties, an empty node is again a possibility
++ if (m_scanner.empty()) {
++ eventHandler.OnNull(mark, anchor);
++ return;
++ }
++
+ const Token& token = m_scanner.peek();
+
+ if (token.type == Token::PLAIN_SCALAR && IsNullString(token.value)) {
+diff --git a/test/integration/load_node_test.cpp b/test/integration/load_node_test.cpp
+index 4f4f28e8..0e0dd6bc 100644
+--- a/test/integration/load_node_test.cpp
++++ b/test/integration/load_node_test.cpp
+@@ -257,5 +257,10 @@ TEST(NodeTest, LoadTagWithParenthesis) {
+ EXPECT_EQ(node.as<std::string>(), "foo");
+ }
+
++TEST(NodeTest, LoadTagWithNullScalar) {
++ Node node = Load("!2");
++ EXPECT_TRUE(node.IsNull());
++}
++
+ } // namespace
+ } // namespace YAML
diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch
new file mode 100644
index 000000000000..d9160856c47f
--- /dev/null
+++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch
@@ -0,0 +1,57 @@
+commit f5f288c7622d3547c29a8355b8ccda0155483b79
+Author: Till Hofmann <hofmann@kbsg.rwth-aachen.de>
+Date: Sun Nov 17 22:43:20 2019 +0100
+
+ Revert "fix up static, so works as DLL (#559)"
+
+ This reverts commit 774f25800e6f19f4b927023c85d1389af322da5e.
+
+diff --git a/include/yaml-cpp/node/detail/node_data.h b/include/yaml-cpp/node/detail/node_data.h
+index 82fb79a..50bcd74 100644
+--- a/include/yaml-cpp/node/detail/node_data.h
++++ b/include/yaml-cpp/node/detail/node_data.h
+@@ -81,7 +81,7 @@ class YAML_CPP_API node_data {
+ shared_memory_holder pMemory);
+
+ public:
+- static const std::string& empty_scalar();
++ static std::string empty_scalar;
+
+ private:
+ void compute_seq_size() const;
+diff --git a/include/yaml-cpp/node/impl.h b/include/yaml-cpp/node/impl.h
+index 7a3deac..b363f86 100644
+--- a/include/yaml-cpp/node/impl.h
++++ b/include/yaml-cpp/node/impl.h
+@@ -166,13 +166,13 @@ inline T Node::as(const S& fallback) const {
+ inline const std::string& Node::Scalar() const {
+ if (!m_isValid)
+ throw InvalidNode(m_invalidKey);
+- return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar();
++ return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar;
+ }
+
+ inline const std::string& Node::Tag() const {
+ if (!m_isValid)
+ throw InvalidNode(m_invalidKey);
+- return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar();
++ return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar;
+ }
+
+ inline void Node::SetTag(const std::string& tag) {
+diff --git a/src/node_data.cpp b/src/node_data.cpp
+index 6cfedfc..eba1ae4 100644
+--- a/src/node_data.cpp
++++ b/src/node_data.cpp
+@@ -13,10 +13,7 @@
+ namespace YAML {
+ namespace detail {
+
+-const std::string& node_data::empty_scalar() {
+- static const std::string svalue;
+- return svalue;
+-}
++std::string node_data::empty_scalar;
+
+ node_data::node_data()
+ : m_isDefined(false),
diff --git a/dev-cpp/yaml-cpp/metadata.xml b/dev-cpp/yaml-cpp/metadata.xml
new file mode 100644
index 000000000000..1228e9929e7e
--- /dev/null
+++ b/dev-cpp/yaml-cpp/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 type="person">
+ <email>johu@gentoo.org</email>
+ <name>Johannes Huber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">jbeder/yaml-cpp</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild
new file mode 100644
index 000000000000..925e955fe1d7
--- /dev/null
+++ b/dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-multilib
+
+DESCRIPTION="YAML parser and emitter in C++"
+HOMEPAGE="https://github.com/jbeder/yaml-cpp"
+SRC_URI="https://github.com/jbeder/${PN}/archive/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/0.6"
+KEYWORDS="amd64 ~arm arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( dev-cpp/gtest )"
+
+S="${WORKDIR}/${PN}-${P}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-CVE-2017-5950.patch"
+ "${FILESDIR}/${P}-unbundle-gtest.patch"
+)
+
+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
+ -DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule
+ -DYAML_CPP_BUILD_TESTS=$(usex test)
+ )
+ cmake-multilib_src_configure
+}
diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild
new file mode 100644
index 000000000000..8a579eada7c4
--- /dev/null
+++ b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS="cmake"
+inherit cmake-multilib
+
+DESCRIPTION="YAML parser and emitter in C++"
+HOMEPAGE="https://github.com/jbeder/yaml-cpp"
+SRC_URI="https://github.com/jbeder/${PN}/archive/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/0.6"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# test breaks build
+# RESTRICT="!test? ( test )"
+RESTRICT+="test"
+
+DEPEND="test? ( dev-cpp/gtest )"
+
+S="${WORKDIR}/${PN}-${P}"
+
+PATCHES=( "${FILESDIR}/${P}-abi-breakage.patch" )
+
+src_prepare() {
+ sed -i \
+ -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \
+ yaml-cpp.pc.cmake || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DYAML_BUILD_SHARED_LIBS=ON
+ -DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule
+ -DYAML_CPP_BUILD_TESTS=$(usex test)
+ )
+
+ cmake-multilib_src_configure
+}
diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild
new file mode 100644
index 000000000000..98223343eb1e
--- /dev/null
+++ b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS="cmake"
+inherit cmake-multilib
+
+DESCRIPTION="YAML parser and emitter in C++"
+HOMEPAGE="https://github.com/jbeder/yaml-cpp"
+SRC_URI="https://github.com/jbeder/${PN}/archive/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/0.6"
+KEYWORDS="amd64 ~arm arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# test breaks build
+# RESTRICT="!test? ( test )"
+RESTRICT+="test"
+
+DEPEND="test? ( dev-cpp/gtest )"
+
+S="${WORKDIR}/${PN}-${P}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-abi-breakage.patch"
+ "${FILESDIR}/${P}-CVE-2017-11692.patch"
+)
+
+src_prepare() {
+ sed -i \
+ -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \
+ yaml-cpp.pc.cmake || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DYAML_BUILD_SHARED_LIBS=ON
+ -DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule
+ -DYAML_CPP_BUILD_TESTS=$(usex test)
+ )
+
+ cmake-multilib_src_configure
+}