git: 3d3f9b4f57eb - main - databases/mongodb70: fix build on 14-current
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 24 Jun 2023 08:05:17 UTC
The branch main has been updated by ronald:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3d3f9b4f57eb9d6233325d45e7e6675e1599853b
commit 3d3f9b4f57eb9d6233325d45e7e6675e1599853b
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-06-24 07:52:10 +0000
Commit: Ronald Klop <ronald@FreeBSD.org>
CommitDate: 2023-06-24 08:02:23 +0000
databases/mongodb70: fix build on 14-current
Fixes provided by Dimitry in a private reply on https://lists.freebsd.org/archives/freebsd-ports/2023-May/003870.html. Dank je wel!
poidriere stage-qa ok
runtime tested: proper clean start and restart on existing db
---
databases/mongodb70/Makefile | 2 +
...tch-src_mongo_db_exec_document__value_value.cpp | 15 +++++
...mongo_db_exec_document__value_value__internal.h | 13 ++++
.../files/patch-src_mongo_db_exec_near.cpp | 46 ++++++++++++++
.../files/patch-src_mongo_s_write__ops_write__op.h | 74 ++++++++++++++++++++++
.../files/patch-src_mongo_util_net_ssl__types.h | 10 +++
...rty_boost_boost_mpl_aux___integral__wrapper.hpp | 11 ++++
7 files changed, 171 insertions(+)
diff --git a/databases/mongodb70/Makefile b/databases/mongodb70/Makefile
index 182724f20841..aead0f8dc076 100644
--- a/databases/mongodb70/Makefile
+++ b/databases/mongodb70/Makefile
@@ -86,6 +86,8 @@ SASL_MAKE_ARGS= --use-sasl-client
SSL_USES= ssl
SSL_MAKE_ARGS= --ssl
+CFLAGS+= -DBOOST_NO_CXX98_FUNCTION_BASE
+
.include <bsd.port.pre.mk>
ALL_TARGET= install-core
diff --git a/databases/mongodb70/files/patch-src_mongo_db_exec_document__value_value.cpp b/databases/mongodb70/files/patch-src_mongo_db_exec_document__value_value.cpp
new file mode 100644
index 000000000000..194db618f3b2
--- /dev/null
+++ b/databases/mongodb70/files/patch-src_mongo_db_exec_document__value_value.cpp
@@ -0,0 +1,15 @@
+--- src/mongo/db/exec/document_value/value.cpp.orig 2023-06-15 22:07:57 UTC
++++ src/mongo/db/exec/document_value/value.cpp
+@@ -59,6 +59,12 @@ using namespace std::string_literals;
+ using std::vector;
+ using namespace std::string_literals;
+
++RCVector::RCVector() {
++}
++
++RCVector::RCVector(std::vector<Value> v) : vec(std::move(v)) {
++}
++
+ void ValueStorage::verifyRefCountingIfShould() const {
+ switch (type) {
+ case MinKey:
diff --git a/databases/mongodb70/files/patch-src_mongo_db_exec_document__value_value__internal.h b/databases/mongodb70/files/patch-src_mongo_db_exec_document__value_value__internal.h
new file mode 100644
index 000000000000..6770dde9e770
--- /dev/null
+++ b/databases/mongodb70/files/patch-src_mongo_db_exec_document__value_value__internal.h
@@ -0,0 +1,13 @@
+--- src/mongo/db/exec/document_value/value_internal.h.orig 2023-06-15 22:07:57 UTC
++++ src/mongo/db/exec/document_value/value_internal.h
+@@ -51,8 +51,8 @@ class RCVector : public RefCountable { (public)
+ /// A heap-allocated reference-counted std::vector
+ class RCVector : public RefCountable {
+ public:
+- RCVector() {}
+- RCVector(std::vector<Value> v) : vec(std::move(v)) {}
++ RCVector();
++ RCVector(std::vector<Value> v);
+ std::vector<Value> vec;
+ };
+
diff --git a/databases/mongodb70/files/patch-src_mongo_db_exec_near.cpp b/databases/mongodb70/files/patch-src_mongo_db_exec_near.cpp
new file mode 100644
index 000000000000..0bbdb149268d
--- /dev/null
+++ b/databases/mongodb70/files/patch-src_mongo_db_exec_near.cpp
@@ -0,0 +1,46 @@
+--- src/mongo/db/exec/near.cpp.orig 2023-06-15 22:07:57 UTC
++++ src/mongo/db/exec/near.cpp
+@@ -42,6 +42,21 @@ using std::vector;
+ using std::unique_ptr;
+ using std::vector;
+
++/**
++ * Holds a generic search result with a distance computed in some fashion.
++ */
++struct NearStage::SearchResult {
++ SearchResult(WorkingSetID resultID, double distance) : resultID(resultID), distance(distance) {}
++
++ bool operator<(const SearchResult& other) const {
++ // We want increasing distance, not decreasing, so we reverse the <
++ return distance > other.distance;
++ }
++
++ WorkingSetID resultID;
++ double distance;
++};
++
+ NearStage::NearStage(ExpressionContext* expCtx,
+ const char* typeName,
+ StageType type,
+@@ -113,21 +128,6 @@ PlanStage::StageState NearStage::doWork(WorkingSetID*
+
+ return nextState;
+ }
+-
+-/**
+- * Holds a generic search result with a distance computed in some fashion.
+- */
+-struct NearStage::SearchResult {
+- SearchResult(WorkingSetID resultID, double distance) : resultID(resultID), distance(distance) {}
+-
+- bool operator<(const SearchResult& other) const {
+- // We want increasing distance, not decreasing, so we reverse the <
+- return distance > other.distance;
+- }
+-
+- WorkingSetID resultID;
+- double distance;
+-};
+
+ // Set "toReturn" when NEED_YIELD.
+ PlanStage::StageState NearStage::bufferNext(WorkingSetID* toReturn) {
diff --git a/databases/mongodb70/files/patch-src_mongo_s_write__ops_write__op.h b/databases/mongodb70/files/patch-src_mongo_s_write__ops_write__op.h
new file mode 100644
index 000000000000..f5edb3f0748f
--- /dev/null
+++ b/databases/mongodb70/files/patch-src_mongo_s_write__ops_write__op.h
@@ -0,0 +1,74 @@
+--- src/mongo/s/write_ops/write_op.h.orig 2023-06-15 22:07:57 UTC
++++ src/mongo/s/write_ops/write_op.h
+@@ -38,7 +38,7 @@ struct TargetedWrite;
+ namespace mongo {
+
+ struct TargetedWrite;
+-struct ChildWriteOp;
++class WriteOp;
+
+ enum WriteOpState {
+ // Item is ready to be targeted
+@@ -63,6 +63,31 @@ enum WriteOpState {
+ };
+
+ /**
++ * State of a write in-progress (to a single shard) which is one part of a larger write
++ * operation.
++ *
++ * As above, the write op may finish in either a successful (_Completed) or unsuccessful
++ * (_Error) state.
++ */
++struct ChildWriteOp {
++ ChildWriteOp(WriteOp* const parent) : parentOp(parent) {}
++
++ const WriteOp* const parentOp;
++
++ WriteOpState state{WriteOpState_Ready};
++
++ // non-zero when state == _Pending
++ // Not owned here but tracked for reporting
++ TargetedWrite* pendingWrite{nullptr};
++
++ // filled when state > _Pending
++ std::unique_ptr<ShardEndpoint> endpoint;
++
++ // filled when state == _Error or (optionally) when state == _Cancelled
++ boost::optional<write_ops::WriteError> error;
++};
++
++/**
+ * State of a single write item in-progress from a client request.
+ *
+ * The lifecyle of a write op:
+@@ -182,30 +207,6 @@ class WriteOp { (private)
+
+ // stores the shards where this write operation succeeded
+ absl::flat_hash_set<ShardId> _successfulShardSet;
+-};
+-/**
+- * State of a write in-progress (to a single shard) which is one part of a larger write
+- * operation.
+- *
+- * As above, the write op may finish in either a successful (_Completed) or unsuccessful
+- * (_Error) state.
+- */
+-struct ChildWriteOp {
+- ChildWriteOp(WriteOp* const parent) : parentOp(parent) {}
+-
+- const WriteOp* const parentOp;
+-
+- WriteOpState state{WriteOpState_Ready};
+-
+- // non-zero when state == _Pending
+- // Not owned here but tracked for reporting
+- TargetedWrite* pendingWrite{nullptr};
+-
+- // filled when state > _Pending
+- std::unique_ptr<ShardEndpoint> endpoint;
+-
+- // filled when state == _Error or (optionally) when state == _Cancelled
+- boost::optional<write_ops::WriteError> error;
+ };
+
+ // First value is write item index in the batch, second value is child write op index
diff --git a/databases/mongodb70/files/patch-src_mongo_util_net_ssl__types.h b/databases/mongodb70/files/patch-src_mongo_util_net_ssl__types.h
new file mode 100644
index 000000000000..b74a1c248ddc
--- /dev/null
+++ b/databases/mongodb70/files/patch-src_mongo_util_net_ssl__types.h
@@ -0,0 +1,10 @@
+--- src/mongo/util/net/ssl_types.h.orig 2023-06-15 22:07:57 UTC
++++ src/mongo/util/net/ssl_types.h
+@@ -61,6 +61,7 @@ class SSLX509Name { (public)
+ auto equalityLens() const {
+ return std::tie(oid, type, value);
+ }
++ friend bool operator==(const Entry& lhs, const Entry& rhs);
+ };
+
+ SSLX509Name() = default;
diff --git a/databases/mongodb70/files/patch-src_third__party_boost_boost_mpl_aux___integral__wrapper.hpp b/databases/mongodb70/files/patch-src_third__party_boost_boost_mpl_aux___integral__wrapper.hpp
new file mode 100644
index 000000000000..f6e1178b4a65
--- /dev/null
+++ b/databases/mongodb70/files/patch-src_third__party_boost_boost_mpl_aux___integral__wrapper.hpp
@@ -0,0 +1,11 @@
+--- src/third_party/boost/boost/mpl/aux_/integral_wrapper.hpp.orig 2023-06-15 22:07:57 UTC
++++ src/third_party/boost/boost/mpl/aux_/integral_wrapper.hpp
+@@ -56,7 +56,7 @@ struct AUX_WRAPPER_NAME
+ // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
+ // while some other don't like 'value + 1' (Borland), and some don't like
+ // either
+-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
++#if 1 //BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
+ private:
+ BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
+ BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));