mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
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
This commit is contained in:
committed by
Patrice Clement
parent
56ca3d6054
commit
090527c1ed
36
dev-db/mongodb/files/mongodb-3.0.14-fix-scons.patch
Normal file
36
dev-db/mongodb/files/mongodb-3.0.14-fix-scons.patch
Normal file
@@ -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'):
|
||||
83
dev-db/mongodb/files/mongodb-3.0.14-fix-std-string.patch
Normal file
83
dev-db/mongodb/files/mongodb-3.0.14-fix-std-string.patch
Normal file
@@ -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;
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user