[dev-db/mongodb] add newer
This commit is contained in:
parent
6d67032b2b
commit
3ef1c19c85
2
dev-db/mongodb/Manifest
Normal file
2
dev-db/mongodb/Manifest
Normal file
@ -0,0 +1,2 @@
|
||||
DIST mongodb-src-r4.4.19.tar.gz 50865489 BLAKE2B 082956a1c64daca2ac1c8c59e5a2a14a773e2cdf9ca076589d4afd3914584e68bbae0101d05d90a6c51b10aa8cd07c96c589c13f5374948ad80c2db0838625a5 SHA512 70310d74072077c9470f1bf99389c14a21e8631374df2dae16e4a7e8d6d9ebcf260d4ce21d34174e1cca13d58802a5cc3990c3b2511c76de6d0e12e57d06bb6a
|
||||
DIST mongodb-src-r5.0.15.tar.gz 56141122 BLAKE2B a1ac106b046499cd643fcbed6173a2a2c366be4e20b1a80e7ff604a192b35ce6f294f589c5c18b68c2b04b257d28eaf97366516f6e83a717da2e2b7c9615945d SHA512 1f3298bb92ebdeab3894257cf9d98e1a61601d418f0a30e3fada621dfcb530e642a861c8297b0d698cebef6e5027ea7bd07bfa5297d9a9b679a3580f2a365308
|
30
dev-db/mongodb/files/mongodb-4.2.0-fix-scons.patch
Normal file
30
dev-db/mongodb/files/mongodb-4.2.0-fix-scons.patch
Normal file
@ -0,0 +1,30 @@
|
||||
--- a/SConstruct 2019-08-21 09:25:00.980260318 +0200
|
||||
+++ b/SConstruct 2019-08-21 09:27:53.653601283 +0200
|
||||
@@ -1858,7 +1858,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=["-fno-omit-frame-pointer",
|
||||
"-fno-strict-aliasing",
|
||||
- "-ggdb" if not env.TargetOSIs('emscripten') else "-g",
|
||||
"-pthread",
|
||||
"-Wall",
|
||||
"-Wsign-compare",
|
||||
@@ -1870,6 +1869,8 @@
|
||||
env.Append( CCFLAGS=["-Werror"] )
|
||||
|
||||
env.Append( CXXFLAGS=["-Woverloaded-virtual"] )
|
||||
+ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] )
|
||||
+ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
|
||||
if env.ToolchainIs('clang'):
|
||||
env.Append( CXXFLAGS=['-Werror=unused-result'] )
|
||||
|
||||
@@ -1890,8 +1891,8 @@
|
||||
|
||||
env.Append( LIBS=[] )
|
||||
|
||||
- #make scons colorgcc friendly
|
||||
- for key in ('HOME', 'TERM'):
|
||||
+ #make scons colorgcc, distcc, ccache friendly
|
||||
+ for key in ('HOME', 'PATH', 'TERM'):
|
||||
try:
|
||||
env['ENV'][key] = os.environ[key]
|
||||
except KeyError:
|
45
dev-db/mongodb/files/mongodb-4.2.15-no-compass.patch
Normal file
45
dev-db/mongodb/files/mongodb-4.2.15-no-compass.patch
Normal file
@ -0,0 +1,45 @@
|
||||
diff --git a/src/mongo/SConscript b/src/mongo/SConscript
|
||||
index 0379fcb0..1aabddba 100644
|
||||
--- a/src/mongo/SConscript
|
||||
+++ b/src/mongo/SConscript
|
||||
@@ -808,32 +808,6 @@ for full_dir, archive_dir in list(env["ARCHIVE_ADDITION_DIR_MAP"].items()):
|
||||
for target in env["DIST_BINARIES"]:
|
||||
installBinary(env, "db/modules/" + target)
|
||||
|
||||
-compass_script = "install_compass"
|
||||
-if env.TargetOSIs('windows'):
|
||||
- # On windows the .in needs to be explicitly added to the file.
|
||||
- compass_script = "Install-Compass.ps1"
|
||||
-
|
||||
-compass_installer = f"#/src/mongo/installer/compass/{compass_script}"
|
||||
-
|
||||
-distBinaries.append(compass_installer)
|
||||
-
|
||||
-if not hygienic:
|
||||
- compass_script_installer = env.Install("$INSTALL_DIR/bin", compass_installer)
|
||||
-else:
|
||||
- compass_script_installer = env.AutoInstall(
|
||||
- 'bin',
|
||||
- source=[
|
||||
- compass_installer,
|
||||
- ],
|
||||
- INSTALL_ALIAS=[
|
||||
- 'tools',
|
||||
- ],
|
||||
- )
|
||||
-
|
||||
-if env.TargetOSIs('posix'):
|
||||
- env.AddPostAction( compass_script_installer, 'chmod 755 $TARGET' )
|
||||
- env.AddPostAction( compass_installer, 'chmod 755 $TARGET' )
|
||||
-
|
||||
# "dist" target is valid only when --use-new-tools is specified
|
||||
# Attempts to build release artifacts without tools must fail
|
||||
if has_option("use-new-tools"):
|
||||
@@ -851,7 +825,6 @@ if has_option("use-new-tools"):
|
||||
'--transform $BUILD_DIR/mongo=$SERVER_DIST_BASENAME/bin',
|
||||
'--transform $BUILD_DIR/mongo/stripped/src/mongo-tools=$SERVER_DIST_BASENAME/bin',
|
||||
'--transform src/mongo-tools=$SERVER_DIST_BASENAME/bin',
|
||||
- '--transform src/mongo/installer/compass=$SERVER_DIST_BASENAME/bin',
|
||||
'${TEMPFILE(SOURCES[1:])}'
|
||||
],
|
||||
),
|
41
dev-db/mongodb/files/mongodb-4.2.17-boost-1.79.patch
Normal file
41
dev-db/mongodb/files/mongodb-4.2.17-boost-1.79.patch
Normal file
@ -0,0 +1,41 @@
|
||||
https://bugs.gentoo.org/844235
|
||||
--- a/src/mongo/util/processinfo_linux.cpp
|
||||
+++ b/src/mongo/util/processinfo_linux.cpp
|
||||
@@ -51,6 +51,7 @@
|
||||
#endif
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/none.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
#include <fmt/format.h>
|
||||
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp
|
||||
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <limits>
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
#include "mongo/base/simple_string_data_comparator.h"
|
||||
--- a/src/mongo/shell/shell_utils_extended.cpp
|
||||
+++ b/src/mongo/shell/shell_utils_extended.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
#endif
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <fstream>
|
||||
|
||||
#include "mongo/scripting/engine.h"
|
||||
--- a/src/mongo/db/storage/storage_repair_observer.cpp
|
||||
+++ b/src/mongo/db/storage/storage_repair_observer.cpp
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
#include "mongo/db/dbhelpers.h"
|
21
dev-db/mongodb/files/mongodb-4.4.1-boost.patch
Normal file
21
dev-db/mongodb/files/mongodb-4.4.1-boost.patch
Normal file
@ -0,0 +1,21 @@
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -3511,17 +3511,11 @@ def doConfigure(myenv):
|
||||
"BOOST_LOG_NO_SHORTHAND_NAMES",
|
||||
"BOOST_LOG_USE_NATIVE_SYSLOG",
|
||||
"BOOST_LOG_WITHOUT_THREAD_ATTR",
|
||||
+ "BOOST_LOG_DYN_LINK",
|
||||
"ABSL_FORCE_ALIGNED_ACCESS",
|
||||
]
|
||||
)
|
||||
|
||||
- if link_model.startswith("dynamic") and not link_model == 'dynamic-sdk':
|
||||
- conf.env.AppendUnique(
|
||||
- CPPDEFINES=[
|
||||
- "BOOST_LOG_DYN_LINK",
|
||||
- ]
|
||||
- )
|
||||
-
|
||||
if use_system_version_of_library("boost"):
|
||||
if not conf.CheckCXXHeader( "boost/filesystem/operations.hpp" ):
|
||||
myenv.ConfError("can't find boost headers")
|
33
dev-db/mongodb/files/mongodb-4.4.1-fix-scons.patch
Normal file
33
dev-db/mongodb/files/mongodb-4.4.1-fix-scons.patch
Normal file
@ -0,0 +1,33 @@
|
||||
diff --git a/SConstruct b/SConstruct
|
||||
index 89c044ab..a6d02072 100644
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -2064,7 +2064,6 @@ if env.TargetOSIs('posix'):
|
||||
env.Append( CCFLAGS=["-fno-omit-frame-pointer",
|
||||
"-fno-strict-aliasing",
|
||||
"-fasynchronous-unwind-tables",
|
||||
- "-ggdb" if not env.TargetOSIs('emscripten') else "-g",
|
||||
"-pthread",
|
||||
"-Wall",
|
||||
"-Wsign-compare",
|
||||
@@ -2076,6 +2075,9 @@ if env.TargetOSIs('posix'):
|
||||
env.Append( CCFLAGS=["-Werror"] )
|
||||
|
||||
env.Append( CXXFLAGS=["-Woverloaded-virtual"] )
|
||||
+ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] )
|
||||
+ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
|
||||
+
|
||||
if env.ToolchainIs('clang'):
|
||||
env.Append( CXXFLAGS=['-Werror=unused-result'] )
|
||||
|
||||
@@ -2096,8 +2098,8 @@ if env.TargetOSIs('posix'):
|
||||
|
||||
env.Append( LIBS=[] )
|
||||
|
||||
- #make scons colorgcc friendly
|
||||
- for key in ('HOME', 'TERM'):
|
||||
+ #make scons colorgcc, distcc, ccache friendly
|
||||
+ for key in ('HOME', 'PATH', 'TERM'):
|
||||
try:
|
||||
env['ENV'][key] = os.environ[key]
|
||||
except KeyError:
|
12
dev-db/mongodb/files/mongodb-4.4.1-gcc11.patch
Normal file
12
dev-db/mongodb/files/mongodb-4.4.1-gcc11.patch
Normal file
@ -0,0 +1,12 @@
|
||||
https://bugs.gentoo.org/768339
|
||||
|
||||
--- a/src/mongo/db/exec/plan_stats.h
|
||||
+++ b/src/mongo/db/exec/plan_stats.h
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
+#include <optional>
|
||||
|
||||
#include "mongo/db/index/multikey_paths.h"
|
||||
|
71
dev-db/mongodb/files/mongodb-4.4.10-boost-1.79.patch
Normal file
71
dev-db/mongodb/files/mongodb-4.4.10-boost-1.79.patch
Normal file
@ -0,0 +1,71 @@
|
||||
https://bugs.gentoo.org/844235
|
||||
--- a/src/mongo/db/auth/security_key_test.cpp
|
||||
+++ b/src/mongo/db/auth/security_key_test.cpp
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "mongo/platform/basic.h"
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
|
||||
#include "mongo/base/string_data.h"
|
||||
#include "mongo/db/auth/authorization_manager.h"
|
||||
--- a/src/mongo/db/storage/storage_repair_observer.cpp
|
||||
+++ b/src/mongo/db/storage/storage_repair_observer.cpp
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
#include "mongo/db/dbhelpers.h"
|
||||
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp
|
||||
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "mongo/db/storage/kv/kv_engine_test_harness.h"
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
#include <memory>
|
||||
|
||||
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp
|
||||
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <limits>
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
#include "mongo/base/simple_string_data_comparator.h"
|
||||
--- a/src/mongo/shell/shell_utils_extended.cpp
|
||||
+++ b/src/mongo/shell/shell_utils_extended.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
#endif
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <fstream>
|
||||
|
||||
#include "mongo/bson/bson_validate.h"
|
||||
--- a/src/mongo/util/processinfo_linux.cpp
|
||||
+++ b/src/mongo/util/processinfo_linux.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <iostream>
|
||||
#include <malloc.h>
|
||||
#include <pcrecpp.h>
|
||||
+#include <fstream>
|
||||
#include <sched.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/mman.h>
|
||||
--- a/src/mongo/util/stacktrace_threads.cpp
|
||||
+++ b/src/mongo/util/stacktrace_threads.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <array>
|
||||
#include <atomic>
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <cctype>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
317
dev-db/mongodb/files/mongodb-4.4.10-boost-1.81.patch
Normal file
317
dev-db/mongodb/files/mongodb-4.4.10-boost-1.81.patch
Normal file
@ -0,0 +1,317 @@
|
||||
https://bugs.gentoo.org/887037
|
||||
|
||||
Workaround https://github.com/boostorg/container/commit/99091420ae553b27345e04279fd19fe24fb684c1
|
||||
in Boost 1.81.
|
||||
|
||||
Upstream s2 (as in real upstream, not MongoDB) has deviated substantially
|
||||
from the version vendored.
|
||||
--- a/src/third_party/s2/base/stl_decl_msvc.h
|
||||
+++ b/src/third_party/s2/base/stl_decl_msvc.h
|
||||
@@ -118,8 +118,8 @@ namespace msvchash {
|
||||
class hash_multimap;
|
||||
} // end namespace msvchash
|
||||
|
||||
-using msvchash::hash_set;
|
||||
-using msvchash::hash_map;
|
||||
+using msvchash::hash_set = my_hash_set;
|
||||
+using msvchash::hash_map = my_hash_map;
|
||||
using msvchash::hash;
|
||||
using msvchash::hash_multimap;
|
||||
using msvchash::hash_multiset;
|
||||
--- a/src/third_party/s2/base/stl_decl_osx.h
|
||||
+++ b/src/third_party/s2/base/stl_decl_osx.h
|
||||
@@ -68,8 +68,8 @@ using std::string;
|
||||
|
||||
using namespace std;
|
||||
using __gnu_cxx::hash;
|
||||
-using __gnu_cxx::hash_set;
|
||||
-using __gnu_cxx::hash_map;
|
||||
+using __gnu_cxx::hash_set = my_hash_set;
|
||||
+using __gnu_cxx::hash_map = my_hash_map;
|
||||
using __gnu_cxx::select1st;
|
||||
|
||||
/* On Linux (and gdrive on OSX), this comes from places like
|
||||
--- a/src/third_party/s2/hash.h
|
||||
+++ b/src/third_party/s2/hash.h
|
||||
@@ -2,10 +2,10 @@
|
||||
#define THIRD_PARTY_S2_HASH_H_
|
||||
|
||||
#include <unordered_map>
|
||||
-#define hash_map std::unordered_map
|
||||
+#define my_hash_map std::unordered_map
|
||||
|
||||
#include <unordered_set>
|
||||
-#define hash_set std::unordered_set
|
||||
+#define my_hash_set std::unordered_set
|
||||
|
||||
#define HASH_NAMESPACE_START namespace std {
|
||||
#define HASH_NAMESPACE_END }
|
||||
--- a/src/third_party/s2/s2_test.cc
|
||||
+++ b/src/third_party/s2/s2_test.cc
|
||||
@@ -10,7 +10,7 @@ using std::reverse;
|
||||
|
||||
#include <hash_set>
|
||||
#include <hash_map>
|
||||
-using __gnu_cxx::hash_set;
|
||||
+using __gnu_cxx::hash_set = my_hash_map;
|
||||
|
||||
#include "s2.h"
|
||||
#include "base/logging.h"
|
||||
@@ -709,8 +709,8 @@ TEST(S2, Frames) {
|
||||
#if 0
|
||||
TEST(S2, S2PointHashSpreads) {
|
||||
int kTestPoints = 1 << 16;
|
||||
- hash_set<size_t> set;
|
||||
- hash_set<S2Point> points;
|
||||
+ my_hash_set<size_t> set;
|
||||
+ my_hash_set<S2Point> points;
|
||||
hash<S2Point> hasher;
|
||||
S2Point base = S2Point(1, 1, 1);
|
||||
for (int i = 0; i < kTestPoints; ++i) {
|
||||
@@ -733,7 +733,7 @@ TEST(S2, S2PointHashCollapsesZero) {
|
||||
double minus_zero = -zero;
|
||||
EXPECT_NE(*reinterpret_cast<uint64 const*>(&zero),
|
||||
*reinterpret_cast<uint64 const*>(&minus_zero));
|
||||
- hash_map<S2Point, int> map;
|
||||
+ my_hash_map<S2Point, int> map;
|
||||
S2Point zero_pt(zero, zero, zero);
|
||||
S2Point minus_zero_pt(minus_zero, minus_zero, minus_zero);
|
||||
|
||||
--- a/src/third_party/s2/s2cellid_test.cc
|
||||
+++ b/src/third_party/s2/s2cellid_test.cc
|
||||
@@ -10,7 +10,7 @@ using std::reverse;
|
||||
|
||||
#include <cstdio>
|
||||
#include <hash_map>
|
||||
-using __gnu_cxx::hash_map;
|
||||
+using __gnu_cxx::hash_map = my_hash_map;
|
||||
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
@@ -170,7 +170,7 @@ TEST(S2CellId, Tokens) {
|
||||
static const int kMaxExpandLevel = 3;
|
||||
|
||||
static void ExpandCell(S2CellId const& parent, vector<S2CellId>* cells,
|
||||
- hash_map<S2CellId, S2CellId>* parent_map) {
|
||||
+ my_hash_map<S2CellId, S2CellId>* parent_map) {
|
||||
cells->push_back(parent);
|
||||
if (parent.level() == kMaxExpandLevel) return;
|
||||
int i, j, orientation;
|
||||
@@ -194,7 +194,7 @@ static void ExpandCell(S2CellId const& parent, vector<S2CellId>* cells,
|
||||
|
||||
TEST(S2CellId, Containment) {
|
||||
// Test contains() and intersects().
|
||||
- hash_map<S2CellId, S2CellId> parent_map;
|
||||
+ my_hash_map<S2CellId, S2CellId> parent_map;
|
||||
vector<S2CellId> cells;
|
||||
for (int face = 0; face < 6; ++face) {
|
||||
ExpandCell(S2CellId::FromFacePosLevel(face, 0, 0), &cells, &parent_map);
|
||||
--- a/src/third_party/s2/s2loop.cc
|
||||
+++ b/src/third_party/s2/s2loop.cc
|
||||
@@ -120,7 +120,7 @@ bool S2Loop::IsValid(string* err) const {
|
||||
}
|
||||
}
|
||||
// Loops are not allowed to have any duplicate vertices.
|
||||
- hash_map<S2Point, int> vmap;
|
||||
+ my_hash_map<S2Point, int> vmap;
|
||||
for (int i = 0; i < num_vertices(); ++i) {
|
||||
if (!vmap.insert(make_pair(vertex(i), i)).second) {
|
||||
VLOG(2) << "Duplicate vertices: " << vmap[vertex(i)] << " and " << i;
|
||||
--- a/src/third_party/s2/s2polygon.cc
|
||||
+++ b/src/third_party/s2/s2polygon.cc
|
||||
@@ -117,7 +117,7 @@ HASH_NAMESPACE_END
|
||||
bool S2Polygon::IsValid(const vector<S2Loop*>& loops, string* err) {
|
||||
// If a loop contains an edge AB, then no other loop may contain AB or BA.
|
||||
if (loops.size() > 1) {
|
||||
- hash_map<S2PointPair, pair<int, int> > edges;
|
||||
+ my_hash_map<S2PointPair, pair<int, int> > edges;
|
||||
for (size_t i = 0; i < loops.size(); ++i) {
|
||||
S2Loop* lp = loops[i];
|
||||
for (int j = 0; j < lp->num_vertices(); ++j) {
|
||||
--- a/src/third_party/s2/s2polygonbuilder.cc
|
||||
+++ b/src/third_party/s2/s2polygonbuilder.cc
|
||||
@@ -175,7 +175,7 @@ S2Loop* S2PolygonBuilder::AssembleLoop(S2Point const& v0, S2Point const& v1,
|
||||
// This ensures that only CCW loops are constructed when possible.
|
||||
|
||||
vector<S2Point> path; // The path so far.
|
||||
- hash_map<S2Point, int> index; // Maps a vertex to its index in "path".
|
||||
+ my_hash_map<S2Point, int> index; // Maps a vertex to its index in "path".
|
||||
path.push_back(v0);
|
||||
path.push_back(v1);
|
||||
index[v1] = 1;
|
||||
@@ -361,7 +361,7 @@ void S2PolygonBuilder::BuildMergeMap(PointIndex* index, MergeMap* merge_map) {
|
||||
|
||||
// First, we build the set of all the distinct vertices in the input.
|
||||
// We need to include the source and destination of every edge.
|
||||
- hash_set<S2Point> vertices;
|
||||
+ my_hash_set<S2Point> vertices;
|
||||
for (EdgeSet::const_iterator i = edges_->begin(); i != edges_->end(); ++i) {
|
||||
vertices.insert(i->first);
|
||||
VertexSet const& vset = i->second;
|
||||
@@ -370,7 +370,7 @@ void S2PolygonBuilder::BuildMergeMap(PointIndex* index, MergeMap* merge_map) {
|
||||
}
|
||||
|
||||
// Build a spatial index containing all the distinct vertices.
|
||||
- for (hash_set<S2Point>::const_iterator i = vertices.begin();
|
||||
+ for (my_hash_set<S2Point>::const_iterator i = vertices.begin();
|
||||
i != vertices.end(); ++i) {
|
||||
index->Insert(*i);
|
||||
}
|
||||
@@ -378,7 +378,7 @@ void S2PolygonBuilder::BuildMergeMap(PointIndex* index, MergeMap* merge_map) {
|
||||
// Next, we loop through all the vertices and attempt to grow a maximial
|
||||
// mergeable group starting from each vertex.
|
||||
vector<S2Point> frontier, mergeable;
|
||||
- for (hash_set<S2Point>::const_iterator vstart = vertices.begin();
|
||||
+ for (my_hash_set<S2Point>::const_iterator vstart = vertices.begin();
|
||||
vstart != vertices.end(); ++vstart) {
|
||||
// Skip any vertices that have already been merged with another vertex.
|
||||
if (merge_map->find(*vstart) != merge_map->end()) continue;
|
||||
--- a/src/third_party/s2/s2polygonbuilder.h
|
||||
+++ b/src/third_party/s2/s2polygonbuilder.h
|
||||
@@ -262,7 +262,7 @@ class S2PolygonBuilder {
|
||||
// current position to a new position, and also returns a spatial index
|
||||
// containing all of the vertices that do not need to be moved.
|
||||
class PointIndex;
|
||||
- typedef hash_map<S2Point, S2Point> MergeMap;
|
||||
+ typedef my_hash_map<S2Point, S2Point> MergeMap;
|
||||
void BuildMergeMap(PointIndex* index, MergeMap* merge_map);
|
||||
|
||||
// Moves a set of vertices from old to new positions.
|
||||
@@ -282,7 +282,7 @@ class S2PolygonBuilder {
|
||||
// once. We could have also used a multiset<pair<S2Point, S2Point> >,
|
||||
// but this representation is a bit more convenient.
|
||||
typedef multiset<S2Point> VertexSet;
|
||||
- typedef hash_map<S2Point, VertexSet> EdgeSet;
|
||||
+ typedef my_hash_map<S2Point, VertexSet> EdgeSet;
|
||||
scoped_ptr<EdgeSet> edges_;
|
||||
|
||||
// Unique collection of the starting (first) vertex of all edges,
|
||||
--- a/src/third_party/s2/s2regioncoverer.cc
|
||||
+++ b/src/third_party/s2/s2regioncoverer.cc
|
||||
@@ -321,7 +321,7 @@ void S2RegionCoverer::GetInteriorCellUnion(S2Region const& region,
|
||||
|
||||
void S2RegionCoverer::FloodFill(
|
||||
S2Region const& region, S2CellId const& start, vector<S2CellId>* output) {
|
||||
- hash_set<S2CellId> all;
|
||||
+ my_hash_set<S2CellId> all;
|
||||
vector<S2CellId> frontier;
|
||||
output->clear();
|
||||
all.insert(start);
|
||||
--- a/src/third_party/s2/s2regioncoverer_test.cc
|
||||
+++ b/src/third_party/s2/s2regioncoverer_test.cc
|
||||
@@ -11,7 +11,7 @@ using std::swap;
|
||||
using std::reverse;
|
||||
|
||||
#include <hash_map>
|
||||
-using __gnu_cxx::hash_map;
|
||||
+using __gnu_cxx::hash_map = my_hash_map;
|
||||
|
||||
#include <queue>
|
||||
using std::priority_queue;
|
||||
@@ -65,7 +65,7 @@ static void CheckCovering(S2RegionCoverer const& coverer,
|
||||
vector<S2CellId> const& covering,
|
||||
bool interior) {
|
||||
// Keep track of how many cells have the same coverer.min_level() ancestor.
|
||||
- hash_map<S2CellId, int> min_level_cells;
|
||||
+ my_hash_map<S2CellId, int> min_level_cells;
|
||||
for (int i = 0; i < covering.size(); ++i) {
|
||||
int level = covering[i].level();
|
||||
EXPECT_GE(level, coverer.min_level());
|
||||
@@ -76,7 +76,7 @@ static void CheckCovering(S2RegionCoverer const& coverer,
|
||||
if (covering.size() > coverer.max_cells()) {
|
||||
// If the covering has more than the requested number of cells, then check
|
||||
// that the cell count cannot be reduced by using the parent of some cell.
|
||||
- for (hash_map<S2CellId, int>::const_iterator i = min_level_cells.begin();
|
||||
+ for (my_hash_map<S2CellId, int>::const_iterator i = min_level_cells.begin();
|
||||
i != min_level_cells.end(); ++i) {
|
||||
EXPECT_EQ(i->second, 1);
|
||||
}
|
||||
--- a/src/third_party/s2/strings/split.cc
|
||||
+++ b/src/third_party/s2/strings/split.cc
|
||||
@@ -156,7 +156,7 @@ struct simple_insert_iterator {
|
||||
// SplitStringToIterator{Using|AllowEmpty}().
|
||||
template <typename T>
|
||||
struct simple_hash_map_iterator {
|
||||
- typedef hash_map<T, T> hashmap;
|
||||
+ typedef my_hash_map<T, T> hashmap;
|
||||
hashmap* t;
|
||||
bool even;
|
||||
typename hashmap::iterator curr;
|
||||
@@ -246,8 +246,8 @@ void SplitStringAllowEmpty(const string& full, const char* delim,
|
||||
}
|
||||
|
||||
void SplitStringToHashsetAllowEmpty(const string& full, const char* delim,
|
||||
- hash_set<string>* result) {
|
||||
- simple_insert_iterator<hash_set<string> > it(result);
|
||||
+ my_hash_set<string>* result) {
|
||||
+ simple_insert_iterator<my_hash_set<string> > it(result);
|
||||
SplitStringToIteratorAllowEmpty(full, delim, 0, it);
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ void SplitStringToSetAllowEmpty(const string& full, const char* delim,
|
||||
}
|
||||
|
||||
void SplitStringToHashmapAllowEmpty(const string& full, const char* delim,
|
||||
- hash_map<string, string>* result) {
|
||||
+ my_hash_map<string, string>* result) {
|
||||
simple_hash_map_iterator<string> it(result);
|
||||
SplitStringToIteratorAllowEmpty(full, delim, 0, it);
|
||||
}
|
||||
@@ -352,8 +352,8 @@ void SplitStringUsing(const string& full,
|
||||
}
|
||||
|
||||
void SplitStringToHashsetUsing(const string& full, const char* delim,
|
||||
- hash_set<string>* result) {
|
||||
- simple_insert_iterator<hash_set<string> > it(result);
|
||||
+ my_hash_set<string>* result) {
|
||||
+ simple_insert_iterator<my_hash_set<string> > it(result);
|
||||
SplitStringToIteratorUsing(full, delim, it);
|
||||
}
|
||||
|
||||
@@ -364,7 +364,7 @@ void SplitStringToSetUsing(const string& full, const char* delim,
|
||||
}
|
||||
|
||||
void SplitStringToHashmapUsing(const string& full, const char* delim,
|
||||
- hash_map<string, string>* result) {
|
||||
+ my_hash_map<string, string>* result) {
|
||||
simple_hash_map_iterator<string> it(result);
|
||||
SplitStringToIteratorUsing(full, delim, it);
|
||||
}
|
||||
--- a/src/third_party/s2/strings/split.h
|
||||
+++ b/src/third_party/s2/strings/split.h
|
||||
@@ -41,7 +41,7 @@ using namespace std;
|
||||
void SplitStringAllowEmpty(const string& full, const char* delim,
|
||||
vector<string>* res);
|
||||
void SplitStringToHashsetAllowEmpty(const string& full, const char* delim,
|
||||
- hash_set<string>* res);
|
||||
+ my_hash_set<string>* res);
|
||||
void SplitStringToSetAllowEmpty(const string& full, const char* delim,
|
||||
set<string>* res);
|
||||
// The even-positioned (0-based) components become the keys for the
|
||||
@@ -50,7 +50,7 @@ void SplitStringToSetAllowEmpty(const string& full, const char* delim,
|
||||
// if the key was already present in the hash table, or will be the
|
||||
// empty string if the key is a newly inserted key.
|
||||
void SplitStringToHashmapAllowEmpty(const string& full, const char* delim,
|
||||
- hash_map<string, string>* result);
|
||||
+ my_hash_map<string, string>* result);
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// SplitStringUsing()
|
||||
@@ -66,7 +66,7 @@ void SplitStringToHashmapAllowEmpty(const string& full, const char* delim,
|
||||
void SplitStringUsing(const string& full, const char* delim,
|
||||
vector<string>* res);
|
||||
void SplitStringToHashsetUsing(const string& full, const char* delim,
|
||||
- hash_set<string>* res);
|
||||
+ my_hash_set<string>* res);
|
||||
void SplitStringToSetUsing(const string& full, const char* delim,
|
||||
set<string>* res);
|
||||
// The even-positioned (0-based) components become the keys for the
|
||||
@@ -75,7 +75,7 @@ void SplitStringToSetUsing(const string& full, const char* delim,
|
||||
// if the key was already present in the hash table, or will be the
|
||||
// empty string if the key is a newly inserted key.
|
||||
void SplitStringToHashmapUsing(const string& full, const char* delim,
|
||||
- hash_map<string, string>* result);
|
||||
+ my_hash_map<string, string>* result);
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// SplitOneIntToken()
|
29
dev-db/mongodb/files/mongodb-4.4.10-no-force-lld.patch
Normal file
29
dev-db/mongodb/files/mongodb-4.4.10-no-force-lld.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Don't automagically force lld > gold > bfd. Leave it up to the user.
|
||||
|
||||
In particular, avoids issues with LTO enabled (via the flag/scons option)
|
||||
where using GCC as compiler, as lld can't do LTO with GCC.
|
||||
|
||||
https://bugs.gentoo.org/769986
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -3109,20 +3109,6 @@ def doConfigure(myenv):
|
||||
myenv.Append( CCFLAGS=["/Zc:inline"])
|
||||
|
||||
if myenv.ToolchainIs('gcc', 'clang'):
|
||||
- # This tells clang/gcc to use the gold linker if it is available - we prefer the gold linker
|
||||
- # because it is much faster. Don't use it if the user has already configured another linker
|
||||
- # selection manually.
|
||||
- if not any(flag.startswith('-fuse-ld=') for flag in env['LINKFLAGS']):
|
||||
-
|
||||
- # lld has problems with separate debug info on some platforms. See:
|
||||
- # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
|
||||
- # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
|
||||
- if get_option('separate-debug') == 'off':
|
||||
- if not AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=lld'):
|
||||
- AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
|
||||
- else:
|
||||
- AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
|
||||
-
|
||||
# Usually, --gdb-index is too expensive in big static binaries, but for dynamic
|
||||
# builds it works well.
|
||||
if link_model.startswith("dynamic"):
|
25
dev-db/mongodb/files/mongodb-4.4.8-gcc-13.patch
Normal file
25
dev-db/mongodb/files/mongodb-4.4.8-gcc-13.patch
Normal file
@ -0,0 +1,25 @@
|
||||
https://cgit.openembedded.org/meta-openembedded-contrib/commit/?id=856c21b061e000640829e158b9bb9e978a974386
|
||||
|
||||
From 5d8218b8a1b5bc71e2a0cf543a000e194daba599 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 29 Jan 2023 17:15:30 -0800
|
||||
Subject: [PATCH] free_mon: Include missing <cstdint>
|
||||
|
||||
gcc 13 moved some includes around and as a result <cstdint> is no
|
||||
longer transitively included [1]. Explicitly include it
|
||||
for uintXX_t.
|
||||
|
||||
[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
--- a/src/mongo/db/free_mon/free_mon_options.h
|
||||
+++ b/src/mongo/db/free_mon/free_mon_options.h
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
43
dev-db/mongodb/files/mongodb-4.4.8-no-compass.patch
Normal file
43
dev-db/mongodb/files/mongodb-4.4.8-no-compass.patch
Normal file
@ -0,0 +1,43 @@
|
||||
diff --git a/src/mongo/SConscript b/src/mongo/SConscript
|
||||
index 62fbfc02..5be336f7 100644
|
||||
--- a/src/mongo/SConscript
|
||||
+++ b/src/mongo/SConscript
|
||||
@@ -841,30 +841,6 @@ for full_dir, archive_dir in list(env["ARCHIVE_ADDITION_DIR_MAP"].items()):
|
||||
for target in env["DIST_BINARIES"]:
|
||||
installBinary(env, "db/modules/" + target)
|
||||
|
||||
-compass_script = "install_compass"
|
||||
-if env.TargetOSIs('windows'):
|
||||
- compass_script = "Install-Compass.ps1"
|
||||
-
|
||||
-compass_installer = f"$BUILD_DIR/mongo/installer/compass/{compass_script}"
|
||||
-
|
||||
-distBinaries.append(compass_installer)
|
||||
-
|
||||
-if not hygienic:
|
||||
- compass_script_installer = env.Install("$DESTDIR/bin", compass_installer)
|
||||
-else:
|
||||
- compass_script_installer = env.AutoInstall(
|
||||
- target='$PREFIX_BINDIR',
|
||||
- source=[
|
||||
- compass_installer,
|
||||
- ],
|
||||
- AIB_COMPONENT='dist',
|
||||
- AIB_ROLE='runtime',
|
||||
- )
|
||||
-
|
||||
-if env.TargetOSIs('posix'):
|
||||
- env.AddPostAction( compass_script_installer, 'chmod 755 $TARGET' )
|
||||
- env.AddPostAction( compass_installer, 'chmod 755 $TARGET' )
|
||||
-
|
||||
if not hygienic:
|
||||
server_archive = env.Command(
|
||||
target='#/${SERVER_ARCHIVE}',
|
||||
@@ -878,7 +854,6 @@ if not hygienic:
|
||||
'--transform $BUILD_DIR/mongo/stripped/db/modules/enterprise=$SERVER_DIST_BASENAME/bin',
|
||||
'--transform $BUILD_DIR/mongo/stripped=$SERVER_DIST_BASENAME/bin',
|
||||
'--transform $BUILD_DIR/mongo=$SERVER_DIST_BASENAME/bin',
|
||||
- '--transform src/mongo/installer/compass=$SERVER_DIST_BASENAME/bin',
|
||||
'${TEMPFILE(SOURCES[1:])}'
|
||||
],
|
||||
),
|
71
dev-db/mongodb/files/mongodb-5.0.2-boost-1.79.patch
Normal file
71
dev-db/mongodb/files/mongodb-5.0.2-boost-1.79.patch
Normal file
@ -0,0 +1,71 @@
|
||||
https://bugs.gentoo.org/844235
|
||||
--- a/src/mongo/db/auth/security_key_test.cpp
|
||||
+++ b/src/mongo/db/auth/security_key_test.cpp
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "mongo/platform/basic.h"
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
|
||||
#include "mongo/base/string_data.h"
|
||||
#include "mongo/db/auth/authorization_manager.h"
|
||||
--- a/src/mongo/db/storage/storage_repair_observer.cpp
|
||||
+++ b/src/mongo/db/storage/storage_repair_observer.cpp
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
#include "mongo/db/dbhelpers.h"
|
||||
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp
|
||||
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "mongo/db/storage/kv/kv_engine_test_harness.h"
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
#include <memory>
|
||||
|
||||
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp
|
||||
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <limits>
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
#include "mongo/base/simple_string_data_comparator.h"
|
||||
--- a/src/mongo/shell/shell_utils_extended.cpp
|
||||
+++ b/src/mongo/shell/shell_utils_extended.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
#endif
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <fmt/format.h>
|
||||
#include <fstream>
|
||||
|
||||
--- a/src/mongo/util/stacktrace_threads.cpp
|
||||
+++ b/src/mongo/util/stacktrace_threads.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <array>
|
||||
#include <atomic>
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/filesystem/fstream.hpp>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <dirent.h>
|
||||
--- a/src/mongo/util/processinfo_linux.cpp
|
||||
+++ b/src/mongo/util/processinfo_linux.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <iostream>
|
||||
#include <malloc.h>
|
||||
#include <pcrecpp.h>
|
||||
+#include <fstream>
|
||||
#include <sched.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/mman.h>
|
32
dev-db/mongodb/files/mongodb-5.0.2-fix-scons.patch
Normal file
32
dev-db/mongodb/files/mongodb-5.0.2-fix-scons.patch
Normal file
@ -0,0 +1,32 @@
|
||||
diff --git a/SConstruct b/SConstruct
|
||||
index 115de78a..613110b7 100644
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -2366,7 +2366,6 @@ if env.TargetOSIs('posix'):
|
||||
|
||||
# -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used.
|
||||
env.Append( CCFLAGS=["-fasynchronous-unwind-tables",
|
||||
- "-ggdb" if not env.TargetOSIs('emscripten') else "-g",
|
||||
"-Wall",
|
||||
"-Wsign-compare",
|
||||
"-Wno-unknown-pragmas",
|
||||
@@ -2422,6 +2421,8 @@ if env.TargetOSIs('posix'):
|
||||
|
||||
# env.Append( " -Wconversion" ) TODO: this doesn't really work yet
|
||||
env.Append( CXXFLAGS=["-Woverloaded-virtual"] )
|
||||
+ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] )
|
||||
+ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
|
||||
|
||||
# On OS X, clang doesn't want the pthread flag at link time, or it
|
||||
# issues warnings which make it impossible for us to declare link
|
||||
@@ -2473,8 +2474,8 @@ if env.TargetOSIs('posix'):
|
||||
],
|
||||
)
|
||||
|
||||
- #make scons colorgcc friendly
|
||||
- for key in ('HOME', 'TERM'):
|
||||
+ #make scons colorgcc, distcc, ccache friendly
|
||||
+ for key in ('HOME', 'PATH', 'TERM'):
|
||||
try:
|
||||
env['ENV'][key] = os.environ[key]
|
||||
except KeyError:
|
16
dev-db/mongodb/files/mongodb-5.0.2-glibc-2.34.patch
Normal file
16
dev-db/mongodb/files/mongodb-5.0.2-glibc-2.34.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git a/src/mongo/stdx/thread.h b/src/mongo/stdx/thread.h
|
||||
index 7b15bb56..4d8f73ad 100644
|
||||
--- a/src/mongo/stdx/thread.h
|
||||
+++ b/src/mongo/stdx/thread.h
|
||||
@@ -105,10 +105,7 @@ private:
|
||||
// . N Y : 4,344 | 13,048 | 7,352
|
||||
// . Y Y : 4,424 | 13,672 | 8,392
|
||||
// ( https://jira.mongodb.org/secure/attachment/233569/233569_stacktrace-writeup.txt )
|
||||
- static constexpr std::size_t kMongoMinSignalStackSize = std::size_t{64} << 10;
|
||||
-
|
||||
- static constexpr std::size_t kStackSize =
|
||||
- std::max(kMongoMinSignalStackSize, std::size_t{MINSIGSTKSZ});
|
||||
+ static constexpr std::size_t kStackSize = std::size_t{64} << 10;
|
||||
std::unique_ptr<std::byte[]> _stackStorage = std::make_unique<std::byte[]>(kStackSize);
|
||||
|
||||
#else // !MONGO_HAS_SIGALTSTACK
|
12
dev-db/mongodb/files/mongodb-5.0.2-no-compass.patch
Normal file
12
dev-db/mongodb/files/mongodb-5.0.2-no-compass.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/src/mongo/installer/SConscript b/src/mongo/installer/SConscript
|
||||
index 5bd89fe9..489e70ac 100644
|
||||
--- a/src/mongo/installer/SConscript
|
||||
+++ b/src/mongo/installer/SConscript
|
||||
@@ -7,7 +7,6 @@ env = env.Clone()
|
||||
|
||||
env.SConscript(
|
||||
dirs=[
|
||||
- 'compass',
|
||||
'msi',
|
||||
],
|
||||
exports=[
|
13
dev-db/mongodb/files/mongodb-5.0.2-skip-no-exceptions.patch
Normal file
13
dev-db/mongodb/files/mongodb-5.0.2-skip-no-exceptions.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/SConstruct b/SConstruct
|
||||
index 613110b7..4987e24e 100644
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -2958,7 +2958,7 @@ def doConfigure(myenv):
|
||||
|
||||
# This warning was added in clang-5 and incorrectly flags our implementation of
|
||||
# exceptionToStatus(). See https://bugs.llvm.org/show_bug.cgi?id=34804
|
||||
- AddToCCFLAGSIfSupported(myenv, "-Wno-exceptions")
|
||||
+ #AddToCCFLAGSIfSupported(myenv, "-Wno-exceptions")
|
||||
|
||||
# Enable sized deallocation support.
|
||||
AddToCXXFLAGSIfSupported(myenv, '-fsized-deallocation')
|
24
dev-db/mongodb/files/mongodb-5.0.2-skip-reqs-check.patch
Normal file
24
dev-db/mongodb/files/mongodb-5.0.2-skip-reqs-check.patch
Normal file
@ -0,0 +1,24 @@
|
||||
diff --git a/buildscripts/scons.py b/buildscripts/scons.py
|
||||
index 534fca32..c38f64df 100755
|
||||
--- a/buildscripts/scons.py
|
||||
+++ b/buildscripts/scons.py
|
||||
@@ -19,13 +19,13 @@ SITE_TOOLS_DIR = os.path.join(MONGODB_ROOT, 'site_scons')
|
||||
sys.path = [SCONS_DIR, SITE_TOOLS_DIR] + sys.path
|
||||
|
||||
# pylint: disable=C0413
|
||||
-from mongo.pip_requirements import verify_requirements, MissingRequirements
|
||||
+#from mongo.pip_requirements import verify_requirements, MissingRequirements
|
||||
|
||||
-try:
|
||||
- verify_requirements('etc/pip/compile-requirements.txt')
|
||||
-except MissingRequirements as ex:
|
||||
- print(ex)
|
||||
- sys.exit(1)
|
||||
+#try:
|
||||
+# verify_requirements('etc/pip/compile-requirements.txt')
|
||||
+#except MissingRequirements as ex:
|
||||
+# print(ex)
|
||||
+# sys.exit(1)
|
||||
|
||||
try:
|
||||
import SCons.Script
|
11
dev-db/mongodb/files/mongodb-5.0.5-boost-1.81-extra.patch
Normal file
11
dev-db/mongodb/files/mongodb-5.0.5-boost-1.81-extra.patch
Normal file
@ -0,0 +1,11 @@
|
||||
https://bugs.gentoo.org/889020
|
||||
--- a/src/mongo/util/boost_assert_shim.cpp
|
||||
+++ b/src/mongo/util/boost_assert_shim.cpp
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
#if defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && !defined(NDEBUG)
|
||||
|
||||
+#include <exception>
|
||||
#include <boost/assert.hpp>
|
||||
|
||||
namespace mongo {
|
49
dev-db/mongodb/files/mongodb-5.0.5-no-force-lld.patch
Normal file
49
dev-db/mongodb/files/mongodb-5.0.5-no-force-lld.patch
Normal file
@ -0,0 +1,49 @@
|
||||
Don't automagically force lld > gold > bfd. Leave it up to the user.
|
||||
|
||||
In particular, avoids issues with LTO enabled (via the flag/scons option)
|
||||
where using GCC as compiler, as lld can't do LTO with GCC.
|
||||
|
||||
https://bugs.gentoo.org/769986
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -2824,40 +2824,6 @@ def doConfigure(myenv):
|
||||
def AddToSHLINKFLAGSIfSupported(env, flag):
|
||||
return AddFlagIfSupported(env, 'C', '.c', flag, True, SHLINKFLAGS=[flag])
|
||||
|
||||
- if myenv.ToolchainIs('gcc', 'clang'):
|
||||
- # This tells clang/gcc to use the gold linker if it is available - we prefer the gold linker
|
||||
- # because it is much faster. Don't use it if the user has already configured another linker
|
||||
- # selection manually.
|
||||
- if any(flag.startswith('-fuse-ld=') for flag in env['LINKFLAGS']):
|
||||
- myenv.FatalError(f"Use the '--linker' option instead of modifying the LINKFLAGS directly.")
|
||||
-
|
||||
- linker_ld = get_option('linker')
|
||||
- if linker_ld == 'auto':
|
||||
- # lld has problems with separate debug info on some platforms. See:
|
||||
- # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
|
||||
- # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
|
||||
- #
|
||||
- # lld also apparently has problems with symbol resolution
|
||||
- # in some esoteric configurations that apply for us when
|
||||
- # using --link-model=dynamic mode, so disable lld there
|
||||
- # too. See:
|
||||
- # - https://bugs.llvm.org/show_bug.cgi?id=46676
|
||||
- #
|
||||
- # We should revisit all of these issues the next time we upgrade our clang minimum.
|
||||
- if get_option('separate-debug') == 'off' and get_option('link-model') != 'dynamic':
|
||||
- if not AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=lld'):
|
||||
- AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
|
||||
- else:
|
||||
- AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
|
||||
- elif link_model.startswith("dynamic") and linker_ld == 'bfd':
|
||||
- # BFD is not supported due to issues with it causing warnings from some of
|
||||
- # the third party libraries that mongodb is linked with:
|
||||
- # https://jira.mongodb.org/browse/SERVER-49465
|
||||
- myenv.FatalError(f"Linker {linker_ld} is not supported with dynamic link model builds.")
|
||||
- else:
|
||||
- if not AddToLINKFLAGSIfSupported(myenv, f'-fuse-ld={linker_ld}'):
|
||||
- myenv.FatalError(f"Linker {linker_ld} could not be configured.")
|
||||
-
|
||||
detectCompiler = Configure(myenv, help=False, custom_tests = {
|
||||
'CheckForCXXLink': CheckForCXXLink,
|
||||
})
|
34
dev-db/mongodb/files/mongodb.conf-r3
Normal file
34
dev-db/mongodb/files/mongodb.conf-r3
Normal file
@ -0,0 +1,34 @@
|
||||
# !! IMPORTANT !!
|
||||
#
|
||||
# This file uses the YAML format as described in the documentation:
|
||||
# http://docs.mongodb.org/manual/reference/configuration-options/
|
||||
|
||||
storage:
|
||||
dbPath: "/var/lib/mongodb"
|
||||
#engine: wiredTiger
|
||||
|
||||
systemLog:
|
||||
destination: file
|
||||
path: "/var/log/mongodb/mongodb.log"
|
||||
quiet: true
|
||||
logAppend: true
|
||||
|
||||
net:
|
||||
port: 27017
|
||||
bindIp: 127.0.0.1
|
||||
#ssl:
|
||||
# mode: disabled
|
||||
|
||||
#security:
|
||||
#keyFile:
|
||||
#clusterAuthMode:
|
||||
|
||||
#replication:
|
||||
#replSetName:
|
||||
|
||||
# Specifies one of the MongoDB parameters described here:
|
||||
# http://docs.mongodb.org/manual/reference/parameters/
|
||||
#
|
||||
# You can specify multiple setParameter fields such as:
|
||||
# setParameter: {enableTestCommands: 1}
|
||||
#setParameter:
|
11
dev-db/mongodb/files/mongodb.confd-r3
Normal file
11
dev-db/mongodb/files/mongodb.confd-r3
Normal file
@ -0,0 +1,11 @@
|
||||
# !! IMPORTANT !!
|
||||
#
|
||||
# This file is ONLY used to override some of the init script configuration.
|
||||
#
|
||||
# You should NOT use this file to configure your mongodb instance,
|
||||
# see the /etc/mongodb.conf file instead.
|
||||
#
|
||||
# Available init script modifiers :
|
||||
# - config_file : the configuration file to use (default : /etc/mongodb.conf)
|
||||
# - user : the user used to run your mongodb instance (default : mongodb)
|
||||
# - group : the group used to run your mongodb instance (default : mongodb)
|
19
dev-db/mongodb/files/mongodb.initd-r3
Normal file
19
dev-db/mongodb/files/mongodb.initd-r3
Normal file
@ -0,0 +1,19 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
: ${config_file:="/etc/${RC_SVCNAME}.conf"}
|
||||
: ${user:=mongodb}
|
||||
: ${group:=mongodb}
|
||||
|
||||
command="/usr/bin/mongod"
|
||||
command_args="--config ${config_file}"
|
||||
command_background="true"
|
||||
pidfile="/run/${RC_SVCNAME}.pid"
|
||||
command_user="${user}:${group}"
|
||||
required_files="${config_file}"
|
||||
retry="SIGTERM/30"
|
||||
|
||||
depend() {
|
||||
use net
|
||||
}
|
13
dev-db/mongodb/files/mongodb.logrotate
Normal file
13
dev-db/mongodb/files/mongodb.logrotate
Normal file
@ -0,0 +1,13 @@
|
||||
# Default log rotation / compression keeps 1 year of logs.
|
||||
/var/log/mongodb/*.log {
|
||||
daily
|
||||
rotate 365
|
||||
dateext
|
||||
copytruncate
|
||||
delaycompress
|
||||
compress
|
||||
notifempty
|
||||
extension gz
|
||||
sharedscripts
|
||||
missingok
|
||||
}
|
10
dev-db/mongodb/files/mongodb.service
Normal file
10
dev-db/mongodb/files/mongodb.service
Normal file
@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=High-performance, schema-free document-oriented database
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=mongodb
|
||||
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
12
dev-db/mongodb/files/mongodb.service-r1
Normal file
12
dev-db/mongodb/files/mongodb.service-r1
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=High-performance, schema-free document-oriented database
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=mongodb
|
||||
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
|
||||
LimitNOFILE=65536
|
||||
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
30
dev-db/mongodb/files/mongos.conf-r2
Normal file
30
dev-db/mongodb/files/mongos.conf-r2
Normal file
@ -0,0 +1,30 @@
|
||||
# !! IMPORTANT !!
|
||||
#
|
||||
# This file uses the YAML format as described in the documentation:
|
||||
# http://docs.mongodb.org/manual/reference/configuration-options/
|
||||
|
||||
systemLog:
|
||||
destination: file
|
||||
path: "/var/log/mongodb/mongos.log"
|
||||
quiet: true
|
||||
logAppend: true
|
||||
|
||||
net:
|
||||
port: 27017
|
||||
bindIp: 127.0.0.1
|
||||
ssl:
|
||||
mode: disabled
|
||||
|
||||
#security:
|
||||
#keyFile:
|
||||
#clusterAuthMode:
|
||||
|
||||
#sharding:
|
||||
#configDB:
|
||||
|
||||
# Specifies one of the MongoDB parameters described here:
|
||||
# http://docs.mongodb.org/manual/reference/parameters/
|
||||
#
|
||||
# You can specify multiple setParameter fields such as:
|
||||
# setParameter: {enableTestCommands: 1}
|
||||
#setParameter:
|
11
dev-db/mongodb/files/mongos.confd-r3
Normal file
11
dev-db/mongodb/files/mongos.confd-r3
Normal file
@ -0,0 +1,11 @@
|
||||
# !! IMPORTANT !!
|
||||
#
|
||||
# This file is ONLY used to override some of the init script configuration.
|
||||
#
|
||||
# You should NOT use this file to configure your mongos instance,
|
||||
# see the /etc/mongos.conf file instead.
|
||||
#
|
||||
# Available init script modifiers :
|
||||
# - config_file : the configuration file to use (default : /etc/mongos.conf)
|
||||
# - user : the user used to run your mongodb instance (default : mongodb)
|
||||
# - group : the group used to run your mongodb instance (default : mongodb)
|
18
dev-db/mongodb/files/mongos.initd-r3
Normal file
18
dev-db/mongodb/files/mongos.initd-r3
Normal file
@ -0,0 +1,18 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
: ${config_file:="/etc/${RC_SVCNAME}.conf"}
|
||||
: ${user:=mongodb}
|
||||
: ${group:=mongodb}
|
||||
|
||||
command="/usr/bin/mongos"
|
||||
command_args="--config ${config_file}"
|
||||
command_background="true"
|
||||
pidfile="/run/${RC_SVCNAME}.pid"
|
||||
command_user="${user}:${group}"
|
||||
required_files="${config_file}"
|
||||
|
||||
depend() {
|
||||
use net
|
||||
}
|
21
dev-db/mongodb/metadata.xml
Normal file
21
dev-db/mongodb/metadata.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>ultrabug@gentoo.org</email>
|
||||
<name>Alexys Jacob</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
MongoDB (from "humongous") is a scalable, high-performance, open source,
|
||||
schema-free, document-oriented database. Written in C++, MongoDB features:
|
||||
|
||||
MongoDB bridges the gap between key-value stores (which are fast and highly
|
||||
scalable) and traditional RDBMS systems (which provide structured schemas
|
||||
and powerful queries).
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="lto">Adds support for link time optimization</flag>
|
||||
<flag name="mongosh">Install the MongoDB shell from <pkg>app-admin/mongosh-bin</pkg></flag>
|
||||
<flag name="tools">Install the MongoDB tools (mongoimport, mongodump...) from <pkg>app-admin/mongo-tools</pkg></flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
184
dev-db/mongodb/mongodb-4.4.19.ebuild
Normal file
184
dev-db/mongodb/mongodb-4.4.19.ebuild
Normal file
@ -0,0 +1,184 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
SCONS_MIN_VERSION="3.3.1"
|
||||
CHECKREQS_DISK_BUILD="2400M"
|
||||
CHECKREQS_DISK_USR="512M"
|
||||
CHECKREQS_MEMORY="1024M"
|
||||
|
||||
inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
|
||||
|
||||
MY_P=${PN}-src-r${PV/_rc/-rc}
|
||||
|
||||
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
|
||||
HOMEPAGE="https://www.mongodb.com"
|
||||
SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0 SSPL-1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 -riscv"
|
||||
IUSE="debug kerberos lto ssl test +tools"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="acct-group/mongodb
|
||||
acct-user/mongodb
|
||||
>=app-arch/snappy-1.1.3:=
|
||||
>=dev-cpp/yaml-cpp-0.6.2:=
|
||||
dev-libs/boost:=[nls]
|
||||
>=dev-libs/libpcre-8.42[cxx]
|
||||
app-arch/zstd:=
|
||||
dev-libs/snowball-stemmer:=
|
||||
net-misc/curl
|
||||
>=sys-libs/zlib-1.2.11:=
|
||||
kerberos? ( dev-libs/cyrus-sasl[kerberos] )
|
||||
ssl? (
|
||||
>=dev-libs/openssl-1.0.1g:0=
|
||||
)"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
sys-libs/ncurses:0=
|
||||
sys-libs/readline:0=
|
||||
debug? ( dev-util/valgrind )"
|
||||
BDEPEND="
|
||||
$(python_gen_any_dep '
|
||||
test? ( dev-python/pymongo[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] )
|
||||
>=dev-util/scons-3.1.1[${PYTHON_USEDEP}]
|
||||
dev-python/cheetah3[${PYTHON_USEDEP}]
|
||||
dev-python/psutil[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
')
|
||||
"
|
||||
PDEPEND="tools? ( >=app-admin/mongo-tools-100 )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-4.4.1-fix-scons.patch"
|
||||
"${FILESDIR}/${PN}-4.4.8-no-compass.patch"
|
||||
"${FILESDIR}/${PN}-4.4.1-boost.patch"
|
||||
"${FILESDIR}/${PN}-4.4.1-gcc11.patch"
|
||||
"${FILESDIR}/${PN}-4.4.8-gcc-13.patch"
|
||||
"${FILESDIR}/${PN}-4.4.10-boost-1.79.patch"
|
||||
"${FILESDIR}/${PN}-4.4.10-no-force-lld.patch"
|
||||
"${FILESDIR}/${PN}-4.4.10-boost-1.81.patch"
|
||||
)
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
python_check_deps() {
|
||||
if use test; then
|
||||
python_has_version "dev-python/pymongo[${PYTHON_USEDEP}]" || return 1
|
||||
python_has_version "dev-python/requests[${PYTHON_USEDEP}]" || return 1
|
||||
fi
|
||||
|
||||
python_has_version ">=dev-util/scons-3.1.1[${PYTHON_USEDEP}]" &&
|
||||
python_has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
|
||||
python_has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
|
||||
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
if [[ -n ${REPLACING_VERSIONS} ]]; then
|
||||
if ver_test "$REPLACING_VERSIONS" -lt 4.2; then
|
||||
ewarn "To upgrade from a version earlier than the 4.2-series, you must"
|
||||
ewarn "successively upgrade major releases until you have upgraded"
|
||||
ewarn "to 4.2-series. Then upgrade to 4.4 series."
|
||||
else
|
||||
ewarn "Be sure to set featureCompatibilityVersion to 4.2 before upgrading."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# remove bundled libs
|
||||
rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die
|
||||
|
||||
# remove compass
|
||||
rm -r src/mongo/installer/compass || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
|
||||
# --use-system-icu fails tests
|
||||
# --use-system-tcmalloc is strongly NOT recommended:
|
||||
scons_opts=(
|
||||
AR="$(tc-getAR)"
|
||||
CC="$(tc-getCC)"
|
||||
CXX="$(tc-getCXX)"
|
||||
|
||||
--disable-warnings-as-errors
|
||||
--use-system-boost
|
||||
--use-system-pcre
|
||||
--use-system-snappy
|
||||
--use-system-stemmer
|
||||
--use-system-yaml
|
||||
--use-system-zlib
|
||||
--use-system-zstd
|
||||
)
|
||||
|
||||
use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300
|
||||
use debug && scons_opts+=( --dbg=on )
|
||||
use kerberos && scons_opts+=( --use-sasl-client )
|
||||
use lto && scons_opts+=( --lto=on )
|
||||
use ssl && scons_opts+=( --ssl )
|
||||
|
||||
# Needed to avoid forcing FORTIFY_SOURCE
|
||||
# Gentoo's toolchain applies these anyway
|
||||
scons_opts+=( --runtime-hardening=off )
|
||||
|
||||
# respect mongoDB upstream's basic recommendations
|
||||
# see bug #536688 and #526114
|
||||
if ! use debug; then
|
||||
filter-flags '-m*'
|
||||
filter-flags '-O?'
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
PREFIX="${EPREFIX}/usr" escons "${scons_opts[@]}" --nostrip install-core
|
||||
}
|
||||
|
||||
# FEATURES="test -usersandbox" emerge dev-db/mongodb
|
||||
src_test() {
|
||||
ewarn "Tests may hang with FEATURES=usersandbox"
|
||||
"${EPYTHON}" ./buildscripts/resmoke.py run --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed with ${EPYTHON}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin build/install/bin/{mongo,mongod,mongos}
|
||||
|
||||
doman debian/mongo*.1
|
||||
dodoc README docs/building.md
|
||||
|
||||
newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
|
||||
newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
|
||||
newinitd "${FILESDIR}/mongos.initd-r3" mongos
|
||||
newconfd "${FILESDIR}/mongos.confd-r3" mongos
|
||||
|
||||
insinto /etc
|
||||
newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
|
||||
newins "${FILESDIR}/mongos.conf-r2" mongos.conf
|
||||
|
||||
systemd_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
|
||||
|
||||
insinto /etc/logrotate.d/
|
||||
newins "${FILESDIR}/${PN}.logrotate" ${PN}
|
||||
|
||||
# see bug #526114
|
||||
pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
|
||||
|
||||
diropts -m0750 -o mongodb -g mongodb
|
||||
keepdir /var/log/${PN}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
ewarn "Make sure to read the release notes and follow the upgrade process:"
|
||||
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
|
||||
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
|
||||
}
|
197
dev-db/mongodb/mongodb-5.0.15.ebuild
Normal file
197
dev-db/mongodb/mongodb-5.0.15.ebuild
Normal file
@ -0,0 +1,197 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
SCONS_MIN_VERSION="3.3.1"
|
||||
CHECKREQS_DISK_BUILD="2400M"
|
||||
CHECKREQS_DISK_USR="512M"
|
||||
CHECKREQS_MEMORY="1024M"
|
||||
|
||||
inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
|
||||
|
||||
MY_P=${PN}-src-r${PV/_rc/-rc}
|
||||
|
||||
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
|
||||
HOMEPAGE="https://www.mongodb.com"
|
||||
SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0 SSPL-1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 -riscv"
|
||||
CPU_FLAGS="cpu_flags_x86_avx"
|
||||
IUSE="debug kerberos lto mongosh ssl +tools ${CPU_FLAGS}"
|
||||
|
||||
# https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server
|
||||
# resmoke needs python packages not yet present in Gentoo
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="acct-group/mongodb
|
||||
acct-user/mongodb
|
||||
>=app-arch/snappy-1.1.7:=
|
||||
>=dev-cpp/yaml-cpp-0.6.2:=
|
||||
dev-libs/boost:=[nls]
|
||||
>=dev-libs/libpcre-8.42[cxx]
|
||||
app-arch/zstd:=
|
||||
dev-libs/snowball-stemmer:=
|
||||
>=sys-libs/zlib-1.2.12:=
|
||||
kerberos? ( dev-libs/cyrus-sasl[kerberos] )
|
||||
ssl? (
|
||||
>=dev-libs/openssl-1.0.1g:0=
|
||||
)"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
sys-libs/ncurses:0=
|
||||
sys-libs/readline:0=
|
||||
debug? ( dev-util/valgrind )"
|
||||
BDEPEND="
|
||||
$(python_gen_any_dep '
|
||||
>=dev-util/scons-3.1.1[${PYTHON_USEDEP}]
|
||||
dev-python/cheetah3[${PYTHON_USEDEP}]
|
||||
dev-python/psutil[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
')
|
||||
"
|
||||
PDEPEND="
|
||||
mongosh? ( app-admin/mongosh-bin )
|
||||
tools? ( >=app-admin/mongo-tools-100 )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-4.4.1-boost.patch"
|
||||
"${FILESDIR}/${PN}-4.4.1-gcc11.patch"
|
||||
"${FILESDIR}/${PN}-5.0.2-fix-scons.patch"
|
||||
"${FILESDIR}/${PN}-5.0.2-no-compass.patch"
|
||||
"${FILESDIR}/${PN}-5.0.2-skip-no-exceptions.patch"
|
||||
"${FILESDIR}/${PN}-5.0.2-skip-reqs-check.patch"
|
||||
"${FILESDIR}/${PN}-5.0.2-boost-1.79.patch"
|
||||
"${FILESDIR}/${PN}-5.0.5-no-force-lld.patch"
|
||||
"${FILESDIR}/${PN}-4.4.10-boost-1.81.patch"
|
||||
"${FILESDIR}/${PN}-5.0.5-boost-1.81-extra.patch"
|
||||
"${FILESDIR}/${PN}-4.4.8-gcc-13.patch"
|
||||
)
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version ">=dev-util/scons-3.1.1[${PYTHON_USEDEP}]" &&
|
||||
python_has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
|
||||
python_has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
|
||||
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
# Bug 809692
|
||||
if use amd64 && ! use cpu_flags_x86_avx; then
|
||||
eerror "MongoDB 5.0 requires use of the AVX instruction set"
|
||||
eerror "https://docs.mongodb.com/v5.0/administration/production-notes/"
|
||||
die "MongoDB requires AVX"
|
||||
fi
|
||||
|
||||
if [[ -n ${REPLACING_VERSIONS} ]]; then
|
||||
if ver_test "$REPLACING_VERSIONS" -lt 4.4; then
|
||||
ewarn "To upgrade from a version earlier than the 4.4-series, you must"
|
||||
ewarn "successively upgrade major releases until you have upgraded"
|
||||
ewarn "to 4.4-series. Then upgrade to 5.0 series."
|
||||
else
|
||||
ewarn "Be sure to set featureCompatibilityVersion to 4.4 before upgrading."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# remove bundled libs
|
||||
rm -r src/third_party/{boost,pcre-*,snappy-*,yaml-cpp,zlib-*} || die
|
||||
|
||||
# remove compass
|
||||
rm -r src/mongo/installer/compass || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
|
||||
# --use-system-icu fails tests
|
||||
# --use-system-tcmalloc is strongly NOT recommended:
|
||||
scons_opts=(
|
||||
AR="$(tc-getAR)"
|
||||
CC="$(tc-getCC)"
|
||||
CXX="$(tc-getCXX)"
|
||||
|
||||
--disable-warnings-as-errors
|
||||
--jobs="$(makeopts_jobs)"
|
||||
--use-system-boost
|
||||
--use-system-pcre
|
||||
--use-system-snappy
|
||||
--use-system-stemmer
|
||||
--use-system-yaml
|
||||
--use-system-zlib
|
||||
--use-system-zstd
|
||||
)
|
||||
|
||||
use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300
|
||||
use debug && scons_opts+=( --dbg=on )
|
||||
use kerberos && scons_opts+=( --use-sasl-client )
|
||||
use lto && scons_opts+=( --lto=on )
|
||||
|
||||
scons_opts+=( --ssl=$(usex ssl on off) )
|
||||
|
||||
# Needed to avoid forcing FORTIFY_SOURCE
|
||||
# Gentoo's toolchain applies these anyway
|
||||
scons_opts+=( --runtime-hardening=off )
|
||||
|
||||
# gold is an option here but we don't really do that anymore
|
||||
if tc-ld-is-lld; then
|
||||
scons_opts+=( --linker=lld )
|
||||
else
|
||||
scons_opts+=( --linker=bfd )
|
||||
fi
|
||||
|
||||
# respect mongoDB upstream's basic recommendations
|
||||
# see bug #536688 and #526114
|
||||
if ! use debug; then
|
||||
filter-flags '-m*'
|
||||
filter-flags '-O?'
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
PREFIX="${EPREFIX}/usr" ./buildscripts/scons.py "${scons_opts[@]}" install-core || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin build/install/bin/{mongo,mongod,mongos}
|
||||
|
||||
doman debian/mongo*.1
|
||||
dodoc README docs/building.md
|
||||
|
||||
newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
|
||||
newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
|
||||
newinitd "${FILESDIR}/mongos.initd-r3" mongos
|
||||
newconfd "${FILESDIR}/mongos.confd-r3" mongos
|
||||
|
||||
insinto /etc
|
||||
newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
|
||||
newins "${FILESDIR}/mongos.conf-r2" mongos.conf
|
||||
|
||||
systemd_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
|
||||
|
||||
insinto /etc/logrotate.d/
|
||||
newins "${FILESDIR}/${PN}.logrotate" ${PN}
|
||||
|
||||
# see bug #526114
|
||||
pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
|
||||
|
||||
diropts -m0750 -o mongodb -g mongodb
|
||||
keepdir /var/log/${PN}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
ewarn "Make sure to read the release notes and follow the upgrade process:"
|
||||
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
|
||||
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
|
||||
}
|
Loading…
Reference in New Issue
Block a user