diff options
author | Tomas Mozes <hydrapolic@gmail.com> | 2017-09-22 09:51:01 +0200 |
---|---|---|
committer | Patrice Clement <monsieurp@gentoo.org> | 2017-09-22 11:28:05 +0200 |
commit | 090527c1edee962b4e90fc3ca0ec9c6ed0322fbb (patch) | |
tree | da7bfdbe90da4134ecc6a3def3e1a2648678ca7b | |
parent | dev-ml/lambda-term: udpate to opam.eclass (diff) | |
download | gentoo-090527c1edee962b4e90fc3ca0ec9c6ed0322fbb.tar.gz gentoo-090527c1edee962b4e90fc3ca0ec9c6ed0322fbb.tar.bz2 gentoo-090527c1edee962b4e90fc3ca0ec9c6ed0322fbb.zip |
dev-db/mongodb: fix building with newer glibc/pcre.
Gentoo-Bug: https://bugs.gentoo.org/631688
Package-Manager: Portage-2.3.10, Repoman-2.3.3
Closes: https://github.com/gentoo/gentoo/pull/5764
-rw-r--r-- | dev-db/mongodb/files/mongodb-3.0.14-fix-scons.patch | 36 | ||||
-rw-r--r-- | dev-db/mongodb/files/mongodb-3.0.14-fix-std-string.patch | 83 | ||||
-rw-r--r-- | dev-db/mongodb/mongodb-3.0.14.ebuild | 63 | ||||
-rw-r--r-- | dev-db/mongodb/mongodb-3.0.15.ebuild | 63 |
4 files changed, 197 insertions, 48 deletions
diff --git a/dev-db/mongodb/files/mongodb-3.0.14-fix-scons.patch b/dev-db/mongodb/files/mongodb-3.0.14-fix-scons.patch new file mode 100644 index 000000000000..1db5d7695c72 --- /dev/null +++ b/dev-db/mongodb/files/mongodb-3.0.14-fix-scons.patch @@ -0,0 +1,36 @@ +diff --git a/SConstruct b/SConstruct +--- a/SConstruct ++++ b/SConstruct +@@ -1008,7 +1008,6 @@ + # -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used. + env.Append( CCFLAGS=["-fPIC", + "-fno-strict-aliasing", +- "-ggdb", + "-pthread", + "-Wall", + "-Wsign-compare", +@@ -1016,13 +1015,13 @@ + "-Winvalid-pch"] ) + # env.Append( " -Wconversion" ) TODO: this doesn't really work yet + if linux or darwin: +- env.Append( CCFLAGS=["-pipe"] ) + if not has_option("disable-warnings-as-errors"): + env.Append( CCFLAGS=["-Werror"] ) + + env.Append( CPPDEFINES=["_FILE_OFFSET_BITS=64"] ) +- env.Append( CXXFLAGS=["-Wnon-virtual-dtor", "-Woverloaded-virtual"] ) + env.Append( LINKFLAGS=["-fPIC", "-pthread"] ) ++ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] ) ++ env.Append( LINKFLAGS=os.environ['LDFLAGS'] ) + + # SERVER-9761: Ensure early detection of missing symbols in dependent libraries at program + # startup. +@@ -1039,7 +1038,7 @@ + if not darwin: + env.Append( LINKFLAGS=["-rdynamic"] ) + +- env.Append( LIBS=[] ) ++ env.Append( LIBS=['pcre', 'pcrecpp', 'snappy', 'yaml-cpp'] ) + + #make scons colorgcc friendly + for key in ('HOME', 'TERM'): diff --git a/dev-db/mongodb/files/mongodb-3.0.14-fix-std-string.patch b/dev-db/mongodb/files/mongodb-3.0.14-fix-std-string.patch new file mode 100644 index 000000000000..9de319bda9dd --- /dev/null +++ b/dev-db/mongodb/files/mongodb-3.0.14-fix-std-string.patch @@ -0,0 +1,83 @@ +--- a/src/mongo/shell/bench.cpp 2017-09-20 19:12:20.893056990 +0200 ++++ b/src/mongo/shell/bench.cpp 2017-09-20 19:14:08.165060566 +0200 +@@ -52,6 +52,9 @@ + #include "mongo/util/time_support.h" + #include "mongo/util/version.h" + ++#include <string> ++using namespace std; ++ + // --------------------------------- + // ---- benchmarking system -------- + // --------------------------------- +--- a/src/mongo/db/dbwebserver.cpp 2017-09-20 19:24:50.042081961 +0200 ++++ b/src/mongo/db/dbwebserver.cpp 2017-09-20 19:26:20.240084968 +0200 +@@ -58,6 +58,8 @@ + #include "mongo/util/ramlog.h" + #include "mongo/util/version.h" + ++#include <string> ++using namespace std; + + namespace mongo { + +--- a/src/mongo/db/matcher/expression_leaf.cpp 2017-09-20 19:27:59.009088260 +0200 ++++ b/src/mongo/db/matcher/expression_leaf.cpp 2017-09-20 19:28:31.082089329 +0200 +@@ -39,6 +39,9 @@ + #include "mongo/db/jsobj.h" + #include "mongo/db/matcher/path.h" + ++#include <string> ++using namespace std; ++ + namespace mongo { + + Status LeafMatchExpression::initPath(const StringData& path) { +--- a/src/mongo/db/repl/master_slave.cpp 2017-09-20 19:30:04.569092445 +0200 ++++ b/src/mongo/db/repl/master_slave.cpp 2017-09-20 19:31:19.145094931 +0200 +@@ -70,6 +70,9 @@ + #include "mongo/util/exit.h" + #include "mongo/util/log.h" + ++#include <string> ++using namespace std; ++ + using boost::scoped_ptr; + using std::auto_ptr; + using std::cout; +--- a/src/mongo/util/net/miniwebserver.cpp 2017-09-20 19:32:55.368098138 +0200 ++++ b/src/mongo/util/net/miniwebserver.cpp 2017-09-20 19:33:57.128100197 +0200 +@@ -39,6 +39,9 @@ + #include "mongo/util/hex.h" + #include "mongo/util/log.h" + ++#include <string> ++using namespace std; ++ + namespace mongo { + + using boost::shared_ptr; +--- a/src/mongo/s/config.cpp 2017-09-20 19:42:45.614117812 +0200 ++++ b/src/mongo/s/config.cpp 2017-09-20 19:43:28.278119234 +0200 +@@ -60,6 +60,9 @@ + #include "mongo/util/net/message.h" + #include "mongo/util/stringutils.h" + ++#include <string> ++using namespace std; ++ + namespace mongo { + + using boost::scoped_ptr; +--- a/src/mongo/s/grid.cpp 2017-09-20 19:51:07.684134547 +0200 ++++ b/src/mongo/s/grid.cpp 2017-09-20 19:51:43.436135739 +0200 +@@ -55,6 +55,9 @@ + #include "mongo/util/startup_test.h" + #include "mongo/util/stringutils.h" + ++#include <string> ++using namespace std; ++ + namespace mongo { + + using std::endl; diff --git a/dev-db/mongodb/mongodb-3.0.14.ebuild b/dev-db/mongodb/mongodb-3.0.14.ebuild index 8b12daab3c25..97c48d9a1d0b 100644 --- a/dev-db/mongodb/mongodb-3.0.14.ebuild +++ b/dev-db/mongodb/mongodb-3.0.14.ebuild @@ -1,13 +1,13 @@ # Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=6 SCONS_MIN_VERSION="2.3.0" CHECKREQS_DISK_BUILD="2400M" CHECKREQS_DISK_USR="512M" CHECKREQS_MEMORY="1024M" -inherit eutils flag-o-matic multilib pax-utils scons-utils systemd user versionator check-reqs +inherit eutils flag-o-matic multilib pax-utils scons-utils systemd toolchain-funcs user versionator check-reqs MY_P=${PN}-src-r${PV/_rc/-rc} @@ -30,7 +30,7 @@ RDEPEND="app-arch/snappy mms-agent? ( app-admin/mms-agent ) ssl? ( !libressl? ( >=dev-libs/openssl-1.0.1g:0= ) - libressl? ( dev-libs/libressl:= ) + libressl? ( dev-libs/libressl:0= ) )" DEPEND="${RDEPEND} >=sys-devel/gcc-4.8.2:* @@ -39,6 +39,12 @@ DEPEND="${RDEPEND} kerberos? ( dev-libs/cyrus-sasl[kerberos] )" PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )" +PATCHES=( + "${FILESDIR}/${PN}-3.0.14-fix-scons.patch" + "${FILESDIR}/${PN}-3.0.14-fix-std-string.patch" + "${FILESDIR}/${PN}-3.4.6-sysmacros-include.patch" +) + S=${WORKDIR}/${MY_P} pkg_setup() { @@ -53,36 +59,36 @@ pkg_setup() { # --c++11 is required by scons instead of auto detection: # https://jira.mongodb.org/browse/SERVER-19661 - scons_opts="--variant-dir=build --cc=$(tc-getCC) --cxx=$(tc-getCXX) --c++11" - scons_opts+=" --disable-warnings-as-errors" - scons_opts+=" --use-system-boost" - scons_opts+=" --use-system-pcre" - scons_opts+=" --use-system-snappy" - scons_opts+=" --use-system-stemmer" - scons_opts+=" --use-system-yaml" + scons_opts=( + --variant-dir=build --cc=$(tc-getCC) --cxx=$(tc-getCXX) --c++11 + --disable-warnings-as-errors + --use-system-boost + --use-system-pcre + --use-system-snappy + --use-system-stemmer + --use-system-yaml + ) if use debug; then - scons_opts+=" --dbg=on" + scons_opts+=( --dbg=on ) fi if use prefix; then - scons_opts+=" --cpppath=${EPREFIX}/usr/include" - scons_opts+=" --libpath=${EPREFIX}/usr/$(get_libdir)" + scons_opts+=( + --cpppath="${EPREFIX}/usr/include )" + --libpath="${EPREFIX}/usr/$(get_libdir)" + ) fi if use kerberos; then - scons_opts+=" --use-sasl-client" + scons_opts+=( --use-sasl-client ) fi if use ssl; then - scons_opts+=" --ssl" + scons_opts+=( --ssl ) fi } -src_prepare() { - epatch "${FILESDIR}/${PN}-3.0.0-fix-scons.patch" -} - src_compile() { # respect mongoDB upstream's basic recommendations # see bug #536688 and #526114 @@ -90,12 +96,13 @@ src_compile() { filter-flags '-m*' filter-flags '-O?' fi - escons ${scons_opts} core tools + escons "${scons_opts[@]}" core tools || die } src_install() { - escons ${scons_opts} --nostrip install --prefix="${ED}"/usr + escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr || die + local x for x in /var/{lib,log}/${PN}; do keepdir "${x}" fowners mongodb:mongodb "${x}" @@ -130,9 +137,17 @@ pkg_preinst() { } src_test() { - escons ${scons_opts} dbtest - "${S}"/dbtest --dbpath=unittest || die "dbtest failed" - escons ${scons_opts} smokeCppUnittests --smokedbprefix="smokecpptest" || die "smokeCppUnittests tests failed" + escons "${scons_opts[@]}" unittests || die + + # tests fail + sed -i '/\/util\/options_parser\/options_parser_test/d' build/unittests.txt || die + sed -i '/\/mongo\/server_options_test/d' build/unittests.txt || die + + local x + while read x; do + einfo "Running test $x" + ./$x || die + done < build/unittests.txt } pkg_postinst() { diff --git a/dev-db/mongodb/mongodb-3.0.15.ebuild b/dev-db/mongodb/mongodb-3.0.15.ebuild index cbb0ca36d680..848080d07995 100644 --- a/dev-db/mongodb/mongodb-3.0.15.ebuild +++ b/dev-db/mongodb/mongodb-3.0.15.ebuild @@ -1,13 +1,13 @@ # Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=6 SCONS_MIN_VERSION="2.3.0" CHECKREQS_DISK_BUILD="2400M" CHECKREQS_DISK_USR="512M" CHECKREQS_MEMORY="1024M" -inherit eutils flag-o-matic multilib pax-utils scons-utils systemd user versionator check-reqs +inherit eutils flag-o-matic multilib pax-utils scons-utils systemd toolchain-funcs user versionator check-reqs MY_P=${PN}-src-r${PV/_rc/-rc} @@ -30,7 +30,7 @@ RDEPEND="app-arch/snappy mms-agent? ( app-admin/mms-agent ) ssl? ( !libressl? ( >=dev-libs/openssl-1.0.1g:0= ) - libressl? ( dev-libs/libressl:= ) + libressl? ( dev-libs/libressl:0= ) )" DEPEND="${RDEPEND} >=sys-devel/gcc-4.8.2:* @@ -39,6 +39,12 @@ DEPEND="${RDEPEND} kerberos? ( dev-libs/cyrus-sasl[kerberos] )" PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )" +PATCHES=( + "${FILESDIR}/${PN}-3.0.14-fix-scons.patch" + "${FILESDIR}/${PN}-3.0.14-fix-std-string.patch" + "${FILESDIR}/${PN}-3.4.6-sysmacros-include.patch" +) + S=${WORKDIR}/${MY_P} pkg_setup() { @@ -53,36 +59,36 @@ pkg_setup() { # --c++11 is required by scons instead of auto detection: # https://jira.mongodb.org/browse/SERVER-19661 - scons_opts="--variant-dir=build --cc=$(tc-getCC) --cxx=$(tc-getCXX) --c++11" - scons_opts+=" --disable-warnings-as-errors" - scons_opts+=" --use-system-boost" - scons_opts+=" --use-system-pcre" - scons_opts+=" --use-system-snappy" - scons_opts+=" --use-system-stemmer" - scons_opts+=" --use-system-yaml" + scons_opts=( + --variant-dir=build --cc=$(tc-getCC) --cxx=$(tc-getCXX) --c++11 + --disable-warnings-as-errors + --use-system-boost + --use-system-pcre + --use-system-snappy + --use-system-stemmer + --use-system-yaml + ) if use debug; then - scons_opts+=" --dbg=on" + scons_opts+=( --dbg=on ) fi if use prefix; then - scons_opts+=" --cpppath=${EPREFIX}/usr/include" - scons_opts+=" --libpath=${EPREFIX}/usr/$(get_libdir)" + scons_opts+=( + --cpppath="${EPREFIX}/usr/include )" + --libpath="${EPREFIX}/usr/$(get_libdir)" + ) fi if use kerberos; then - scons_opts+=" --use-sasl-client" + scons_opts+=( --use-sasl-client ) fi if use ssl; then - scons_opts+=" --ssl" + scons_opts+=( --ssl ) fi } -src_prepare() { - epatch "${FILESDIR}/${PN}-3.0.0-fix-scons.patch" -} - src_compile() { # respect mongoDB upstream's basic recommendations # see bug #536688 and #526114 @@ -90,12 +96,13 @@ src_compile() { filter-flags '-m*' filter-flags '-O?' fi - escons ${scons_opts} core tools + escons "${scons_opts[@]}" core tools || die } src_install() { - escons ${scons_opts} --nostrip install --prefix="${ED}"/usr + escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr || die + local x for x in /var/{lib,log}/${PN}; do keepdir "${x}" fowners mongodb:mongodb "${x}" @@ -130,9 +137,17 @@ pkg_preinst() { } src_test() { - escons ${scons_opts} dbtest - "${S}"/dbtest --dbpath=unittest || die "dbtest failed" - escons ${scons_opts} smokeCppUnittests --smokedbprefix="smokecpptest" || die "smokeCppUnittests tests failed" + escons "${scons_opts[@]}" unittests || die + + # tests fail + sed -i '/\/util\/options_parser\/options_parser_test/d' build/unittests.txt || die + sed -i '/\/mongo\/server_options_test/d' build/unittests.txt || die + + local x + while read x; do + einfo "Running test $x" + ./$x || die + done < build/unittests.txt } pkg_postinst() { |