diff -ruN /usr/ports/databases/mongodb34/Makefile /tmp/mongodb34/Makefile --- /usr/ports/databases/mongodb34/Makefile 2018-07-21 11:02:47.979796000 +0200 +++ /tmp/mongodb34/Makefile 2018-07-21 11:09:45.928104000 +0200 @@ -2,8 +2,8 @@ PORTNAME= mongodb DISTVERSIONPREFIX= r -DISTVERSION= 3.4.9 -PORTREVISION= 6 +DISTVERSION= 3.4.16 +#PORTREVISION= 6 CATEGORIES= databases net MASTER_SITES= https://fastdl.mongodb.org/src/ \ http://fastdl.mongodb.org/src/ \ diff -ruN /usr/ports/databases/mongodb34/distinfo /tmp/mongodb34/distinfo --- /usr/ports/databases/mongodb34/distinfo 2017-10-07 16:48:08.000000000 +0200 +++ /tmp/mongodb34/distinfo 2018-07-21 11:09:59.670948000 +0200 @@ -1,3 +1,3 @@ -TIMESTAMP = 1507229382 -SHA256 (mongodb-src-r3.4.9.tar.gz) = 2fd0f47a5f9175e71d3d381e81a1b6a2500c9c414dd6ae0940ad6194a0e85549 -SIZE (mongodb-src-r3.4.9.tar.gz) = 39943857 +TIMESTAMP = 1532164199 +SHA256 (mongodb-src-r3.4.16.tar.gz) = 4dbfd72906d4bfe6bf22229c9ae525acde908ad676878a6512d749964fb3de2a +SIZE (mongodb-src-r3.4.16.tar.gz) = 40093657 diff -ruN /usr/ports/databases/mongodb34/files/patch-pcre /tmp/mongodb34/files/patch-pcre --- /usr/ports/databases/mongodb34/files/patch-pcre 2018-05-19 08:53:19.000000000 +0200 +++ /tmp/mongodb34/files/patch-pcre 1970-01-01 01:00:00.000000000 +0100 @@ -1,305 +0,0 @@ -From 218a7b1d4ea3d3b04a5f6f54c66640b3a15586b0 Mon Sep 17 00:00:00 2001 -From: Steven Green -Date: Tue, 22 Aug 2017 13:08:48 -0400 -Subject: [PATCH] SERVER-30166 Replace string with explicit std::string. - Enables compulation when using --use-system-pcre which presusably used to do - 'using std::string' in an earlier version of pcre - -Closes #1167 - -Signed-off-by: Mark Benvenuto -(cherry picked from commit b7cebf82bc5e5572308cc3a3fb958a825db91498) ---- - src/mongo/db/dbwebserver.cpp | 1 + - src/mongo/db/matcher/expression_leaf.cpp | 4 ++-- - src/mongo/db/repl/master_slave.cpp | 41 ++++++++++++++++---------------- - src/mongo/shell/bench.cpp | 14 +++++------ - src/mongo/util/net/miniwebserver.cpp | 1 + - 5 files changed, 32 insertions(+), 29 deletions(-) - -diff --git a/src/mongo/db/dbwebserver.cpp b/src/mongo/db/dbwebserver.cpp -index b202e0500b9..50fa68a8176 100644 ---- src/mongo/db/dbwebserver.cpp -+++ src/mongo/db/dbwebserver.cpp -@@ -65,6 +65,7 @@ - namespace mongo { - - using std::map; -+using std::string; - using std::stringstream; - using std::vector; - -diff --git a/src/mongo/db/matcher/expression_leaf.cpp b/src/mongo/db/matcher/expression_leaf.cpp -index 33356317816..0bf8d8685bc 100644 ---- src/mongo/db/matcher/expression_leaf.cpp -+++ src/mongo/db/matcher/expression_leaf.cpp -@@ -202,7 +202,7 @@ void ComparisonMatchExpression::debugString(StringBuilder& debug, int level) con - } - - void ComparisonMatchExpression::serialize(BSONObjBuilder* out) const { -- string opString = ""; -+ std::string opString = ""; - switch (matchType()) { - case LT: - opString = "$lt"; -@@ -886,7 +886,7 @@ void BitTestMatchExpression::debugString(StringBuilder& debug, int level) const - } - - void BitTestMatchExpression::serialize(BSONObjBuilder* out) const { -- string opString = ""; -+ std::string opString = ""; - - switch (matchType()) { - case BITS_ALL_SET: -diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp -index 96cfe58efdc..6929d5be297 100644 ---- src/mongo/db/repl/master_slave.cpp -+++ src/mongo/db/repl/master_slave.cpp -@@ -168,7 +168,7 @@ BSONObj ReplSource::jsobj() { - - BSONObjBuilder dbsNextPassBuilder; - int n = 0; -- for (set::iterator i = addDbNextPass.begin(); i != addDbNextPass.end(); i++) { -+ for (set::iterator i = addDbNextPass.begin(); i != addDbNextPass.end(); i++) { - n++; - dbsNextPassBuilder.appendBool(*i, 1); - } -@@ -177,7 +177,8 @@ BSONObj ReplSource::jsobj() { - - BSONObjBuilder incompleteCloneDbsBuilder; - n = 0; -- for (set::iterator i = incompleteCloneDbs.begin(); i != incompleteCloneDbs.end(); i++) { -+ for (set::iterator i = incompleteCloneDbs.begin(); i != incompleteCloneDbs.end(); -+ i++) { - n++; - incompleteCloneDbsBuilder.appendBool(*i, 1); - } -@@ -188,7 +189,7 @@ BSONObj ReplSource::jsobj() { - } - - void ReplSource::ensureMe(OperationContext* txn) { -- string myname = getHostName(); -+ std::string myname = getHostName(); - - // local.me is an identifier for a server for getLastError w:2+ - bool exists = Helpers::getSingleton(txn, "local.me", _me); -@@ -378,10 +379,10 @@ class HandshakeCmd : public Command { - } - - virtual bool run(OperationContext* txn, -- const string& ns, -+ const std::string& ns, - BSONObj& cmdObj, - int options, -- string& errmsg, -+ std::string& errmsg, - BSONObjBuilder& result) { - HandshakeArgs handshake; - Status status = handshake.initialize(cmdObj); -@@ -398,7 +399,7 @@ class HandshakeCmd : public Command { - } handshakeCmd; - - bool replHandshake(DBClientConnection* conn, const OID& myRID) { -- string myname = getHostName(); -+ std::string myname = getHostName(); - - BSONObjBuilder cmd; - cmd.append("handshake", myRID); -@@ -450,7 +451,7 @@ void ReplSource::forceResync(OperationContext* txn, const char* requester) { - BSONElement e = i.next(); - if (e.eoo()) - break; -- string name = e.embeddedObject().getField("name").valuestr(); -+ std::string name = e.embeddedObject().getField("name").valuestr(); - if (!e.embeddedObject().getBoolField("empty")) { - if (name != "local") { - if (only.empty() || only == name) { -@@ -481,7 +482,7 @@ Status ReplSource::_updateIfDoneWithInitialSync() { - return Status::OK(); - } - --void ReplSource::resyncDrop(OperationContext* txn, const string& dbName) { -+void ReplSource::resyncDrop(OperationContext* txn, const std::string& dbName) { - log() << "resync: dropping database " << dbName; - invariant(txn->lockState()->isW()); - -@@ -531,13 +532,13 @@ void ReplSource::resync(OperationContext* txn, const std::string& dbName) { - - static DatabaseIgnorer ___databaseIgnorer; - --void DatabaseIgnorer::doIgnoreUntilAfter(const string& db, const Timestamp& futureOplogTime) { -+void DatabaseIgnorer::doIgnoreUntilAfter(const std::string& db, const Timestamp& futureOplogTime) { - if (futureOplogTime > _ignores[db]) { - _ignores[db] = futureOplogTime; - } - } - --bool DatabaseIgnorer::ignoreAt(const string& db, const Timestamp& currentOplogTime) { -+bool DatabaseIgnorer::ignoreAt(const std::string& db, const Timestamp& currentOplogTime) { - if (_ignores[db].isNull()) { - return false; - } -@@ -627,7 +628,7 @@ bool ReplSource::handleDuplicateDbName(OperationContext* txn, - - // The database is present on the master and no conflicting databases - // are present on the master. Drop any local conflicts. -- for (set::const_iterator i = duplicates.begin(); i != duplicates.end(); ++i) { -+ for (set::const_iterator i = duplicates.begin(); i != duplicates.end(); ++i) { - ___databaseIgnorer.doIgnoreUntilAfter(*i, lastTime); - incompleteCloneDbs.erase(*i); - addDbNextPass.erase(*i); -@@ -822,10 +823,10 @@ void ReplSource::_sync_pullOpLog_applyOperation(OperationContext* txn, - } - - void ReplSource::syncToTailOfRemoteLog() { -- string _ns = ns(); -+ std::string _ns = ns(); - BSONObjBuilder b; - if (!only.empty()) { -- b.appendRegex("ns", string("^") + pcrecpp::RE::QuoteMeta(only)); -+ b.appendRegex("ns", std::string("^") + pcrecpp::RE::QuoteMeta(only)); - } - BSONObj last = oplogReader.findOne(_ns.c_str(), Query(b.done()).sort(BSON("$natural" << -1))); - if (!last.isEmpty()) { -@@ -873,7 +874,7 @@ class ReplApplyBatchSize - */ - int ReplSource::_sync_pullOpLog(OperationContext* txn, int& nApplied) { - int okResultCode = restartSyncAfterSleep; -- string ns = string("local.oplog.$") + sourceName(); -+ std::string ns = std::string("local.oplog.$") + sourceName(); - LOG(2) << "sync_pullOpLog " << ns << " syncedTo:" << syncedTo.toStringLong() << '\n'; - - bool tailing = true; -@@ -893,7 +894,7 @@ int ReplSource::_sync_pullOpLog(OperationContext* txn, int& nApplied) { - BSONElement e = i.next(); - if (e.eoo()) - break; -- string name = e.embeddedObject().getField("name").valuestr(); -+ std::string name = e.embeddedObject().getField("name").valuestr(); - if (!e.embeddedObject().getBoolField("empty")) { - if (name != "local") { - if (only.empty() || only == name) { -@@ -917,7 +918,7 @@ int ReplSource::_sync_pullOpLog(OperationContext* txn, int& nApplied) { - if (!only.empty()) { - // note we may here skip a LOT of data table scanning, a lot of work for the master. - // maybe append "\\." here? -- query.appendRegex("ns", string("^") + pcrecpp::RE::QuoteMeta(only)); -+ query.appendRegex("ns", std::string("^") + pcrecpp::RE::QuoteMeta(only)); - } - BSONObj queryObj = query.done(); - // e.g. queryObj = { ts: { $gte: syncedTo } } -@@ -936,7 +937,7 @@ int ReplSource::_sync_pullOpLog(OperationContext* txn, int& nApplied) { - - // show any deferred database creates from a previous pass - { -- set::iterator i = addDbNextPass.begin(); -+ set::iterator i = addDbNextPass.begin(); - if (i != addDbNextPass.end()) { - BSONObjBuilder b; - b.append("ns", *i + '.'); -@@ -980,7 +981,7 @@ int ReplSource::_sync_pullOpLog(OperationContext* txn, int& nApplied) { - BSONObj op = oplogReader.nextSafe(); - BSONElement ts = op.getField("ts"); - if (ts.type() != Date && ts.type() != bsonTimestamp) { -- string err = op.getStringField("$err"); -+ std::string err = op.getStringField("$err"); - if (!err.empty()) { - // 13051 is "tailable cursor requested on non capped collection" - if (op.getIntField("code") == 13051) { -@@ -1148,7 +1149,7 @@ int ReplSource::sync(OperationContext* txn, int& nApplied) { - - // FIXME Handle cases where this db isn't on default port, or default port is spec'd in - // hostName. -- if ((string("localhost") == hostName || string("127.0.0.1") == hostName) && -+ if ((std::string("localhost") == hostName || std::string("127.0.0.1") == hostName) && - serverGlobalParams.port == ServerGlobalParams::DefaultDBPort) { - log() << "can't sync from self (localhost). sources configuration may be wrong." << endl; - sleepsecs(5); -@@ -1293,7 +1294,7 @@ static void replMain(OperationContext* txn) { - if (s) { - stringstream ss; - ss << "sleep " << s << " sec before next pass"; -- string msg = ss.str(); -+ std::string msg = ss.str(); - if (!serverGlobalParams.quiet) - log() << msg << endl; - ReplInfo r(msg.c_str()); -diff --git a/src/mongo/shell/bench.cpp b/src/mongo/shell/bench.cpp -index 040002f5c6e..338477ebe56 100644 ---- src/mongo/shell/bench.cpp -+++ src/mongo/shell/bench.cpp -@@ -674,7 +674,7 @@ void BenchRunWorker::generateLoadOnConnection(DBClientBase* conn) { - invariant(bsonTemplateEvaluator.setId(_id) == BsonTemplateEvaluator::StatusSuccess); - - if (_config->username != "") { -- string errmsg; -+ std::string errmsg; - if (!conn->auth("admin", _config->username, _config->password, errmsg)) { - uasserted(15931, "Authenticating to connection for _benchThread failed: " + errmsg); - } -@@ -918,7 +918,7 @@ void BenchRunWorker::generateLoadOnConnection(DBClientBase* conn) { - - if (!result["err"].eoo() && result["err"].type() == String && - (_config->throwGLE || op.throwGLE)) -- throw DBException((string) "From benchRun GLE" + -+ throw DBException((std::string) "From benchRun GLE" + - causedBy(result["err"].String()), - result["code"].eoo() ? 0 : result["code"].Int()); - } -@@ -984,7 +984,7 @@ void BenchRunWorker::generateLoadOnConnection(DBClientBase* conn) { - - if (!result["err"].eoo() && result["err"].type() == String && - (_config->throwGLE || op.throwGLE)) -- throw DBException((string) "From benchRun GLE" + -+ throw DBException((std::string) "From benchRun GLE" + - causedBy(result["err"].String()), - result["code"].eoo() ? 0 : result["code"].Int()); - } -@@ -1031,7 +1031,7 @@ void BenchRunWorker::generateLoadOnConnection(DBClientBase* conn) { - - if (!result["err"].eoo() && result["err"].type() == String && - (_config->throwGLE || op.throwGLE)) -- throw DBException((string) "From benchRun GLE " + -+ throw DBException((std::string) "From benchRun GLE " + - causedBy(result["err"].String()), - result["code"].eoo() ? 0 : result["code"].Int()); - } -@@ -1133,7 +1133,7 @@ void BenchRunWorker::run() { - try { - std::unique_ptr conn(_config->createConnection()); - if (!_config->username.empty()) { -- string errmsg; -+ std::string errmsg; - if (!conn->auth("admin", _config->username, _config->password, errmsg)) { - uasserted(15932, "Authenticating to connection for benchThread failed: " + errmsg); - } -@@ -1165,7 +1165,7 @@ void BenchRunner::start() { - std::unique_ptr conn(_config->createConnection()); - // Must authenticate to admin db in order to run serverStatus command - if (_config->username != "") { -- string errmsg; -+ std::string errmsg; - if (!conn->auth("admin", _config->username, _config->password, errmsg)) { - uasserted( - 16704, -@@ -1201,7 +1201,7 @@ void BenchRunner::stop() { - { - std::unique_ptr conn(_config->createConnection()); - if (_config->username != "") { -- string errmsg; -+ std::string errmsg; - // this can only fail if admin access was revoked since start of run - if (!conn->auth("admin", _config->username, _config->password, errmsg)) { - uasserted( -diff --git a/src/mongo/util/net/miniwebserver.cpp b/src/mongo/util/net/miniwebserver.cpp -index 5f4165d42f4..9fe847168ee 100644 ---- src/mongo/util/net/miniwebserver.cpp -+++ src/mongo/util/net/miniwebserver.cpp -@@ -45,6 +45,7 @@ - namespace mongo { - - using std::shared_ptr; -+using std::string; - using std::stringstream; - using std::vector; - diff -ruN /usr/ports/databases/mongodb34/files/patch-src_mongo_db_fts_unicode_string.cpp /tmp/mongodb34/files/patch-src_mongo_db_fts_unicode_string.cpp --- /usr/ports/databases/mongodb34/files/patch-src_mongo_db_fts_unicode_string.cpp 2017-04-26 14:34:45.000000000 +0200 +++ /tmp/mongodb34/files/patch-src_mongo_db_fts_unicode_string.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ ---- src/mongo/db/fts/unicode/string.cpp.orig 2017-04-20 21:43:42 UTC -+++ src/mongo/db/fts/unicode/string.cpp -@@ -274,7 +274,7 @@ bool String::substrMatch(const std::string& str, - - // Case sensitive and diacritic sensitive. - return boost::algorithm::boyer_moore_search( -- haystack.begin(), haystack.end(), needle.begin(), needle.end()) != haystack.end(); -+ haystack.begin(), haystack.end(), needle.begin(), needle.end()) != std::make_pair(haystack.end(), haystack.end()); - } - - } // namespace unicode