Please scratch this diff. It breaks various version of net/unifi (even a jump to 3.6 is not feasible.)
Sorry for the noise. Omar Polo <o...@omarpolo.com> writes: > Hello ports@, > > The attached diff updates mongodb from the current 3.2 to 4.4.10 so it > builds with scons 4. > > I couldn't fully test the port because: > > - I don't own any Ubiquiti stuff > - `make test' filled my poor SSD with ~90GB of WRKDIR and no signs of > finishing anytime soon > > so help testing the update is greatly appreciated. (I did some basic > runtime testing thought.) > > I'm kinda confused about the versioning. net/unifi/Makefile.inc > explicitly set mongodb < 3.6.0, and that's probably why freebsd and nix > still have mongo 3.x packaged. But if I read repology correctly, gentoo > ships mongodb 5, 4.4 and 4.2 and some unifi stuff too, so I think it's > worth to give this update at least try. If it fails, the plan B is to > update mongo to 3.6.23 and patch the hell out of site_scons/mongo/*.py > to run under python 3. > > Random notes: > > - patch-src_mongo_util_net_ssl_manager_openssl_cpp is a desperate > tentative to build mongo with base libressl. The other options are > to either use openssl from ports or disable TLS. FWIW I ran > (locally) mongodb with a self-signed certificate and it worked fine. > > - some tools are not bundled anymore. If there is interest in those, I > can try porting mongo-tools (https://github.com/mongodb/mongo-tools) > > - the license changed to a custom one. mongodb is still packaged on > various other systems so I guess it's not a problem. > > - make port-lib-depends-check complains regarding libbind, but does so > also in the other ports that depends on libbind, so I guess it's OK. > > - I've added the port in the config file even if it's the default > because 1) it's what upstream does and 2) I think it's handy to have > a remainder of which port mongo operates on without digging through > the doc. > > Remember to apply with -E because the diff removes some files and to > apply the scons patch that I just posted. > > Thanks, > > Omar Polo > > > Index: Makefile > =================================================================== > RCS file: /home/cvs/ports/databases/mongodb/Makefile,v > retrieving revision 1.43 > diff -u -p -r1.43 Makefile > --- Makefile 9 Jun 2021 19:50:06 -0000 1.43 > +++ Makefile 25 Oct 2021 10:46:10 -0000 > @@ -9,76 +9,104 @@ DPB_PROPERTIES = parallel > > COMMENT = scalable, high-performance document-oriented database > > -DISTNAME = mongodb-src-r3.2.22 > +DISTNAME = mongodb-src-r4.4.10 > PKGNAME = ${DISTNAME:S/src-r//} > CATEGORIES = databases > -REVISION = 4 > > HOMEPAGE = https://www.mongodb.com/ > > -# mongodb itself: AGPLv3 > -# client/utils: Apache 2.0 > +# mongodb itself: SSPLv1 > +# abseil-cpp: Apache > +# asio: Boost > +# fmt: MIT > +# mozjs-60: MPL > +# wiredtiger: GPLv2 or v3 > PERMIT_PACKAGE = Yes > > -WANTLIB += boost_chrono-mt boost_filesystem-mt boost_program_options-mt > -WANTLIB += boost_regex-mt boost_system-mt boost_thread-mt c crypto > -WANTLIB += execinfo kvm m pcap pcre pcrecpp pthread ssl yaml-cpp > -WANTLIB += z ${COMPILER_LIBCXX} > +WANTLIB += ${COMPILER_LIBCXX} boost_filesystem-mt boost_iostreams-mt > +WANTLIB += boost_log-mt boost_program_options-mt boost_system-mt > +WANTLIB += boost_thread-mt c crypto curl execinfo icudata icui18n > +WANTLIB += icuuc kvm lib/libbind/bind m pcre pcrecpp snappy ssl > +WANTLIB += stemmer yaml-cpp z zstd > > MASTER_SITES = https://fastdl.mongodb.org/src/ > > MODULES = devel/scons \ > lang/python > -MODPY_VERSION = ${MODPY_DEFAULT_VERSION_2} > > # XXX should come from scons module, but broken when gcc module also used: > NO_CCACHE = Yes > > +# C++17 > COMPILER = base-clang ports-gcc > -MODPY_VERSION = ${MODPY_DEFAULT_VERSION_2} > MODPY_RUNDEP = No > + > MODSCONS_ENV = CC="${CC}" \ > CXX="${CXX}" \ > CCFLAGS="${CFLAGS} -DBOOST_NO_USER_CONFIG" \ > - CXXFLAGS="${CXXFLAGS}" \ > - LINKFLAGS="${LDFLAGS}" \ > - CPPPATH="${LOCALBASE}/include" \ > - LIBPATH="${LOCALBASE}/lib" \ > - VERBOSE=true > -MODSCONS_FLAGS += --prefix="${PREFIX}" \ > + CXXFLAGS="${CXXFLAGS} -DBOOST_LOG_DYN_LINK" \ > + CPPPATH="${LOCALBASE}/include ${LOCALBASE}/include/bind" \ > + LIBPATH="${LOCALBASE}/lib ${LOCALBASE}/lib/libbind" \ > + LIBS="-lbind" \ > + LINKFLAGS="${LDFLAGS} -Wl,-rpath,${LOCALBASE}/lib/libbind" \ > + VERBOSE=true \ > + PREFIX="${PREFIX}" > + > +# XXX --use-system-fmt fails at linking because mongo reaches into fmt > +# internals; see src/mongo/logv2/log_attr.h > +MODSCONS_FLAGS += \ > --opt=on \ > - --ssl=SSL \ > + --ssl=on \ > --allocator=system \ > --use-system-boost \ > + --use-system-icu \ > --use-system-pcre \ > + --use-system-snappy \ > + --use-system-stemmer \ > --use-system-yaml \ > --use-system-zlib \ > - -j${MAKE_JOBS} > + --use-system-zstd \ > + --disable-warnings-as-errors > > -ALL_TARGET = core tools > -LIB_DEPENDS = devel/boost \ > +ALL_TARGET = install-core > +LIB_DEPENDS = archivers/snappy \ > + archivers/zstd \ > + devel/boost \ > devel/pcre \ > - devel/yaml-cpp > -TEST_DEPENDS = textproc/py-yaml \ > - databases/py-mongo > -# icu4c support is not actually compiled in, but scons picks up the > -# headers and patching this away is intrusive > -BUILD_DEPENDS = textproc/icu4c > + devel/yaml-cpp \ > + net/curl \ > + net/libbind \ > + textproc/icu4c \ > + textproc/libstemmer > +BUILD_DEPENDS = devel/py-cheetah${MODPY_FLAVOR} \ > + textproc/py-yaml${MODPY_FLAVOR} \ > + sysutils/py-psutil${MODPY_FLAVOR} > +TEST_DEPENDS = databases/py-mongo${MODPY_FLAVOR} \ > + ${BUILD_DEPENDS} > + > +# to build the bundled mozjs we need some config files: steal the > +# FreeBSD ones > +post-extract: > + cd ${WRKSRC}/src/third_party/mozjs-60/platform/x86_64/ && \ > + cp -R freebsd openbsd > > do-install: > -.for bin in mongo mongod mongos mongosniff mongobridge mongoperf > - ${INSTALL_PROGRAM} ${WRKSRC}/${bin} ${PREFIX}/bin/ > +.for bin in mongo mongod mongos > + ${INSTALL_PROGRAM} ${WRKSRC}/build/opt/mongo/${bin} \ > + ${PREFIX}/bin/ > if [ -f ${WRKSRC}/debian/${bin}.1 ]; then \ > ${INSTALL_MAN} ${WRKSRC}/debian/${bin}.1 ${PREFIX}/man/man1; \ > fi > .endfor > + ${INSTALL_MAN} ${WRKSRC}/debian/mongodb-parameters.5 ${PREFIX}/man/man5 > ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/mongodb > ${INSTALL_DATA} ${FILESDIR}/mongodb.conf \ > ${PREFIX}/share/examples/mongodb > > do-test: > @${SETENV} ${MAKE_ENV} ${MODSCONS_BIN} -C ${WRKSRC} \ > - ${MODSCONS_ENV} ${MODSCONS_FLAGS} unittests > - cd ${WRKSRC} && ${MODPY_BIN} buildscripts/resmoke.py --suites=unittests > + ${MODSCONS_ENV} ${MODSCONS_FLAGS} install-unittests > + cd ${WRKSRC} && ${MODPY_BIN} buildscripts/resmoke.py run \ > + --suites=unittests > > .include <bsd.port.mk> > Index: distinfo > =================================================================== > RCS file: /home/cvs/ports/databases/mongodb/distinfo,v > retrieving revision 1.13 > diff -u -p -r1.13 distinfo > --- distinfo 20 Feb 2019 17:58:04 -0000 1.13 > +++ distinfo 16 Oct 2021 20:03:00 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (mongodb-src-r3.2.22.tar.gz) = > JvNEPXO7Bo2qBwqUxiYalB9ZHNdhRIPHyRXOHP3mElI= > -SIZE (mongodb-src-r3.2.22.tar.gz) = 29350747 > +SHA256 (mongodb-src-r4.4.10.tar.gz) = > 3SLK/UoO6LzjotCnduCSuPD/GTvrp9Fxj2uKxfngyeY= > +SIZE (mongodb-src-r4.4.10.tar.gz) = 50636024 > Index: files/mongodb.conf > =================================================================== > RCS file: /home/cvs/ports/databases/mongodb/files/mongodb.conf,v > retrieving revision 1.2 > diff -u -p -r1.2 mongodb.conf > --- files/mongodb.conf 6 May 2016 15:33:37 -0000 1.2 > +++ files/mongodb.conf 18 Oct 2021 10:21:49 -0000 > @@ -10,6 +10,7 @@ net: > # Only listen on the local network interface. Change this only if you > # need a public-facing instance and have turned on authorization. > bindIp: 127.0.0.1 > + port: 27017 > storage: > dbPath: /var/mongodb/data > journal: > Index: patches/patch-SConstruct > =================================================================== > RCS file: /home/cvs/ports/databases/mongodb/patches/patch-SConstruct,v > retrieving revision 1.9 > diff -u -p -r1.9 patch-SConstruct > --- patches/patch-SConstruct 18 Mar 2021 15:51:13 -0000 1.9 > +++ patches/patch-SConstruct 19 Oct 2021 11:56:59 -0000 > @@ -3,11 +3,29 @@ $OpenBSD: patch-SConstruct,v 1.9 2021/03 > Index: SConstruct > --- SConstruct.orig > +++ SConstruct > -@@ -846,6 +846,7 @@ envDict = dict(BUILD_ROOT=buildDir, > - INSTALL_DIR=installDir, > +@@ -91,7 +91,7 @@ def make_variant_dir_generator(): > + > + # Always randomize the build order to shake out missing edges, and to help > the cache: > + # http://scons.org/doc/production/HTML/scons-user/ch24s06.html > +-SetOption('random', 1) > ++#SetOption('random', 1) > + > + # Options TODOs: > + # > +@@ -1131,6 +1131,7 @@ envDict = dict(BUILD_ROOT=buildDir, > + CONFIGURELOG='$BUILD_ROOT/scons/config.log', > CONFIG_HEADER_DEFINES={}, > LIBDEPS_TAG_EXPANSIONS=[], > + ENV = {'PATH': os.environ['PATH']}, > ) > > - env = Environment(variables=env_vars, **envDict) > + # TODO: Remove these when hygienic builds are default. > +@@ -3338,7 +3339,7 @@ def doConfigure(myenv): > + sslLibName = "ssl" > + cryptoLibName = "crypto" > + sslLinkDependencies = ["crypto", "dl"] > +- if conf.env.TargetOSIs('freebsd'): > ++ if conf.env.TargetOSIs('freebsd') or conf.env.TargetOSIs('openbsd'): > + sslLinkDependencies = ["crypto"] > + > + if conf.env.TargetOSIs('windows'): > Index: patches/patch-src_SConscript > =================================================================== > RCS file: patches/patch-src_SConscript > diff -N patches/patch-src_SConscript > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_SConscript 19 Oct 2021 10:11:14 -0000 > @@ -0,0 +1,15 @@ > +$OpenBSD$ > + > +Index: src/SConscript > +--- src/SConscript.orig > ++++ src/SConscript > +@@ -17,9 +17,7 @@ env.SConscript('third_party/SConscript', exports=['env > + env = env.Clone() > + env.InjectThirdParty(libraries=[ > + 'abseil-cpp', > +- 'boost', > + 'fmt', > +- 'pcre', > + 'safeint', > + ]) > + > Index: patches/patch-src_mongo_db_concurrency_lock_manager_h > =================================================================== > RCS file: patches/patch-src_mongo_db_concurrency_lock_manager_h > diff -N patches/patch-src_mongo_db_concurrency_lock_manager_h > --- patches/patch-src_mongo_db_concurrency_lock_manager_h 18 Mar 2021 > 15:51:13 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,15 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_concurrency_lock_manager_h,v 1.1 2021/03/18 > 15:51:13 sthen Exp $ > - > -Fix build with Boost > 1.72.0 > - > -Index: src/mongo/db/concurrency/lock_manager.h > ---- src/mongo/db/concurrency/lock_manager.h.orig > -+++ src/mongo/db/concurrency/lock_manager.h > -@@ -30,6 +30,7 @@ > - > - #include <cstdint> > - #include <deque> > -+#include <map> > - > - #include "mongo/config.h" > - #include "mongo/db/concurrency/lock_manager_defs.h" > Index: patches/patch-src_mongo_db_ftdc_compressor_cpp > =================================================================== > RCS file: patches/patch-src_mongo_db_ftdc_compressor_cpp > diff -N patches/patch-src_mongo_db_ftdc_compressor_cpp > --- patches/patch-src_mongo_db_ftdc_compressor_cpp 18 Mar 2021 15:51:13 > -0000 1.2 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,23 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_ftdc_compressor_cpp,v 1.2 2021/03/18 15:51:13 > sthen Exp $ > - > -Index: src/mongo/db/ftdc/compressor.cpp > ---- src/mongo/db/ftdc/compressor.cpp.orig > -+++ src/mongo/db/ftdc/compressor.cpp > -@@ -47,7 +47,7 @@ FTDCCompressor::addSample(const BSONObj& sample, Date_ > - if (_referenceDoc.isEmpty()) { > - FTDCBSONUtil::extractMetricsFromDocument(sample, sample, &_metrics); > - _reset(sample, date); > -- return {boost::none_t()}; > -+ return {boost::none}; > - } > - > - _metrics.resize(0); > -@@ -107,7 +107,7 @@ FTDCCompressor::addSample(const BSONObj& sample, Date_ > - } > - > - // The buffer is not full, inform the caller > -- return {boost::none_t()}; > -+ return {boost::none}; > - } > - > - StatusWith<std::tuple<ConstDataRange, Date_t>> > FTDCCompressor::getCompressedSamples() { > Index: patches/patch-src_mongo_db_ftdc_compressor_test_cpp > =================================================================== > RCS file: patches/patch-src_mongo_db_ftdc_compressor_test_cpp > diff -N patches/patch-src_mongo_db_ftdc_compressor_test_cpp > --- patches/patch-src_mongo_db_ftdc_compressor_test_cpp 26 Dec 2017 > 19:18:57 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,14 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_ftdc_compressor_test_cpp,v 1.1 2017/12/26 > 19:18:57 rsadowski Exp $ > - > -Index: src/mongo/db/ftdc/compressor_test.cpp > ---- src/mongo/db/ftdc/compressor_test.cpp.orig > -+++ src/mongo/db/ftdc/compressor_test.cpp > -@@ -122,7 +122,7 @@ class TestTie { (public) > - TestTie() : _compressor(&_config) {} > - > - ~TestTie() { > -- validate(boost::none_t()); > -+ validate(boost::none); > - } > - > - StatusWith<boost::optional<std::tuple<ConstDataRange, > FTDCCompressor::CompressorState, Date_t>>> > Index: patches/patch-src_mongo_db_ftdc_file_writer_cpp > =================================================================== > RCS file: patches/patch-src_mongo_db_ftdc_file_writer_cpp > diff -N patches/patch-src_mongo_db_ftdc_file_writer_cpp > --- patches/patch-src_mongo_db_ftdc_file_writer_cpp 26 Dec 2017 19:18:57 > -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,14 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_ftdc_file_writer_cpp,v 1.1 2017/12/26 19:18:57 > rsadowski Exp $ > - > -Index: src/mongo/db/ftdc/file_writer.cpp > ---- src/mongo/db/ftdc/file_writer.cpp.orig > -+++ src/mongo/db/ftdc/file_writer.cpp > -@@ -211,7 +211,7 @@ Status FTDCFileWriter::flush(const boost::optional<Con > - > - Status FTDCFileWriter::close() { > - if (_archiveStream.is_open()) { > -- Status s = flush(boost::none_t(), Date_t()); > -+ Status s = flush(boost::none, Date_t()); > - > - _archiveStream.close(); > - > Index: patches/patch-src_mongo_db_fts_unicode_string_cpp > =================================================================== > RCS file: patches/patch-src_mongo_db_fts_unicode_string_cpp > diff -N patches/patch-src_mongo_db_fts_unicode_string_cpp > --- patches/patch-src_mongo_db_fts_unicode_string_cpp 26 Dec 2017 19:18:57 > -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,16 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_fts_unicode_string_cpp,v 1.1 2017/12/26 > 19:18:57 rsadowski Exp $ > - > -fix boost > 1.58.0 build > - > -Index: src/mongo/db/fts/unicode/string.cpp > ---- src/mongo/db/fts/unicode/string.cpp.orig > -+++ 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 > Index: patches/patch-src_mongo_db_matcher_expression_leaf_cpp > =================================================================== > RCS file: patches/patch-src_mongo_db_matcher_expression_leaf_cpp > diff -N patches/patch-src_mongo_db_matcher_expression_leaf_cpp > --- patches/patch-src_mongo_db_matcher_expression_leaf_cpp 23 Oct 2017 > 07:44:22 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,17 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_matcher_expression_leaf_cpp,v 1.1 2017/10/23 > 07:44:22 kili Exp $ > - > -pcrecpp.h used to expose std::string, which is no longer the case > -starting with pcre-8.41. > - > -Index: src/mongo/db/matcher/expression_leaf.cpp > ---- src/mongo/db/matcher/expression_leaf.cpp.orig > -+++ src/mongo/db/matcher/expression_leaf.cpp > -@@ -45,6 +45,8 @@ > - > - namespace mongo { > - > -+using std::string; > -+ > - Status LeafMatchExpression::initPath(StringData path) { > - _path = path; > - return _elementPath.init(_path); > Index: patches/patch-src_mongo_db_repl_master_slave_cpp > =================================================================== > RCS file: patches/patch-src_mongo_db_repl_master_slave_cpp > diff -N patches/patch-src_mongo_db_repl_master_slave_cpp > --- patches/patch-src_mongo_db_repl_master_slave_cpp 23 Oct 2017 07:44:22 > -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,16 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_repl_master_slave_cpp,v 1.1 2017/10/23 07:44:22 > kili Exp $ > - > -pcrecpp.h used to expose std::string, which is no longer the case > -starting with pcre-8.41. > - > -Index: src/mongo/db/repl/master_slave.cpp > ---- src/mongo/db/repl/master_slave.cpp.orig > -+++ src/mongo/db/repl/master_slave.cpp > -@@ -77,6 +77,7 @@ using std::endl; > - using std::max; > - using std::min; > - using std::set; > -+using std::string; > - using std::stringstream; > - using std::unique_ptr; > - using std::vector; > Index: patches/patch-src_mongo_db_service_context_d_h > =================================================================== > RCS file: patches/patch-src_mongo_db_service_context_d_h > diff -N patches/patch-src_mongo_db_service_context_d_h > --- patches/patch-src_mongo_db_service_context_d_h 18 Mar 2021 15:51:13 > -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,15 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_service_context_d_h,v 1.1 2021/03/18 15:51:13 > sthen Exp $ > - > -Fix build with Boost > 1.72.0 > - > -Index: src/mongo/db/service_context_d.h > ---- src/mongo/db/service_context_d.h.orig > -+++ src/mongo/db/service_context_d.h > -@@ -28,6 +28,7 @@ > - > - #pragma once > - > -+#include <map> > - #include <vector> > - > - #include "mongo/db/service_context.h" > Index: patches/patch-src_mongo_db_storage_mmap_v1_file_allocator_h > =================================================================== > RCS file: patches/patch-src_mongo_db_storage_mmap_v1_file_allocator_h > diff -N patches/patch-src_mongo_db_storage_mmap_v1_file_allocator_h > --- patches/patch-src_mongo_db_storage_mmap_v1_file_allocator_h 4 Sep > 2021 20:27:53 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,15 +0,0 @@ > -$OpenBSD: patch-src_mongo_db_storage_mmap_v1_file_allocator_h,v 1.1 > 2021/09/04 20:27:53 sthen Exp $ > - > -Fix build with Boost > 1.72.0 > - > -Index: src/mongo/db/storage/mmap_v1/file_allocator.h > ---- src/mongo/db/storage/mmap_v1/file_allocator.h.orig > -+++ src/mongo/db/storage/mmap_v1/file_allocator.h > -@@ -30,6 +30,7 @@ > - #include "mongo/platform/basic.h" > - > - #include <list> > -+#include <map> > - #include <boost/filesystem/path.hpp> > - > - #include "mongo/stdx/condition_variable.h" > Index: patches/patch-src_mongo_s_chunk_diff_h > =================================================================== > RCS file: patches/patch-src_mongo_s_chunk_diff_h > diff -N patches/patch-src_mongo_s_chunk_diff_h > --- patches/patch-src_mongo_s_chunk_diff_h 18 Mar 2021 15:51:13 -0000 > 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,15 +0,0 @@ > -$OpenBSD: patch-src_mongo_s_chunk_diff_h,v 1.1 2021/03/18 15:51:13 sthen Exp > $ > - > -Fix build with Boost > 1.72.0 > - > -Index: src/mongo/s/chunk_diff.h > ---- src/mongo/s/chunk_diff.h.orig > -+++ src/mongo/s/chunk_diff.h > -@@ -28,6 +28,7 @@ > - > - #pragma once > - > -+#include <map> > - #include <string> > - > - #include "mongo/bson/bsonmisc.h" > Index: patches/patch-src_mongo_shell_bench_cpp > =================================================================== > RCS file: patches/patch-src_mongo_shell_bench_cpp > diff -N patches/patch-src_mongo_shell_bench_cpp > --- patches/patch-src_mongo_shell_bench_cpp 23 Oct 2017 07:44:22 -0000 > 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,16 +0,0 @@ > -$OpenBSD: patch-src_mongo_shell_bench_cpp,v 1.1 2017/10/23 07:44:22 kili Exp > $ > - > -pcrecpp.h used to expose std::string, which is no longer the case > -starting with pcre-8.41. > - > -Index: src/mongo/shell/bench.cpp > ---- src/mongo/shell/bench.cpp.orig > -+++ src/mongo/shell/bench.cpp > -@@ -79,6 +79,7 @@ using std::unique_ptr; > - using std::cout; > - using std::endl; > - using std::map; > -+using std::string; > - > - const std::map<OpType, std::string> opTypeName{{OpType::NONE, "none"}, > - {OpType::NOP, "nop"}, > Index: patches/patch-src_mongo_util_dns_query_posix-impl_h > =================================================================== > RCS file: patches/patch-src_mongo_util_dns_query_posix-impl_h > diff -N patches/patch-src_mongo_util_dns_query_posix-impl_h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_mongo_util_dns_query_posix-impl_h 16 Oct 2021 > 22:07:11 -0000 > @@ -0,0 +1,17 @@ > +$OpenBSD$ > + > +use libbind (sigh...) > + > +Index: src/mongo/util/dns_query_posix-impl.h > +--- src/mongo/util/dns_query_posix-impl.h.orig > ++++ src/mongo/util/dns_query_posix-impl.h > +@@ -36,7 +36,8 @@ > + #include <sys/types.h> > + #include <netinet/in.h> > + #include <arpa/nameser.h> > +-#include <resolv.h> > ++#include <bind/arpa/nameser.h> > ++#include <bind/resolv.h> > + // clang-format on > + > + #include <stdio.h> > Index: patches/patch-src_mongo_util_net_sock_h > =================================================================== > RCS file: > /home/cvs/ports/databases/mongodb/patches/patch-src_mongo_util_net_sock_h,v > retrieving revision 1.2 > diff -u -p -r1.2 patch-src_mongo_util_net_sock_h > --- patches/patch-src_mongo_util_net_sock_h 18 Mar 2021 15:51:13 -0000 > 1.2 > +++ patches/patch-src_mongo_util_net_sock_h 16 Oct 2021 20:05:02 -0000 > @@ -4,9 +4,9 @@ Index: src/mongo/util/net/sock.h > --- src/mongo/util/net/sock.h.orig > +++ src/mongo/util/net/sock.h > @@ -37,6 +37,7 @@ > + #include <sys/socket.h> > #include <sys/types.h> > #include <sys/un.h> > - #include <errno.h> > +#include <unistd.h> > > #ifdef __OpenBSD__ > Index: patches/patch-src_mongo_util_net_ssl_manager_openssl_cpp > =================================================================== > RCS file: patches/patch-src_mongo_util_net_ssl_manager_openssl_cpp > diff -N patches/patch-src_mongo_util_net_ssl_manager_openssl_cpp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_mongo_util_net_ssl_manager_openssl_cpp 25 Oct 2021 > 10:43:16 -0000 > @@ -0,0 +1,86 @@ > +$OpenBSD$ > + > +mongodb bundles some "shims" to support both OpenSSL (including old > +versions) and LibreSSL. It doesn't work well, because to build we > +need some of those shims, but not all. > + > +Index: src/mongo/util/net/ssl_manager_openssl.cpp > +--- src/mongo/util/net/ssl_manager_openssl.cpp.orig > ++++ src/mongo/util/net/ssl_manager_openssl.cpp > +@@ -276,15 +276,21 @@ inline int X509_NAME_ENTRY_set(const X509_NAME_ENTRY* > + return ne->set; > + } > + > ++#endif > ++ > + inline void X509_OBJECT_free(X509_OBJECT* a) { > + X509_OBJECT_free_contents(a); > + OPENSSL_free(a); > + } > + > ++#if 0 > ++ > + void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX* ctx, STACK_OF(X509) * > sk) { > + X509_STORE_CTX_set_chain(ctx, sk); > + } > + > ++#endif > ++ > + X509_OBJECT* X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX* vs, int > type, X509_NAME* name) { > + X509_OBJECT* ret; > + ret = (X509_OBJECT*)OPENSSL_malloc(sizeof(X509_OBJECT)); > +@@ -299,6 +305,8 @@ X509_OBJECT* X509_STORE_CTX_get_obj_by_subject(X509_ST > + return ret; > + } > + > ++#if 0 > ++ > + X509* X509_OBJECT_get0_X509(const X509_OBJECT* a) { > + if (a == NULL || a->type != X509_LU_X509) { > + return NULL; > +@@ -307,6 +315,8 @@ X509* X509_OBJECT_get0_X509(const X509_OBJECT* a) { > + return a->data.x509; > + } > + > ++#endif > ++ > + using UniqueVerifiedChainPolyfill = std::unique_ptr<STACK_OF(X509), > X509StackDeleter>; > + > + STACK_OF(X509) * SSL_get0_verified_chain(SSL* s) { > +@@ -326,15 +336,17 @@ STACK_OF(X509) * SSL_get0_verified_chain(SSL* s) { > + return X509_STORE_CTX_get1_chain(ctx.get()); > + } > + > ++#if 0 > ++ > + const OCSP_CERTID* OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP* single) { > + return single->certId; > + } > + > +-#if OPENSSL_VERSION_NUMBER < 0x10002000L > ++#endif > + inline bool ASN1_TIME_diff(int*, int*, const ASN1_TIME*, const ASN1_TIME*) { > + return false; > + } > +-#endif > ++#if 0 > + > + int DH_set0_pqg(DH* dh, BIGNUM* p, BIGNUM* q, BIGNUM* g) { > + dh->p = p; > +@@ -353,13 +365,15 @@ void DH_get0_pqg(const DH* dh, const BIGNUM** p, const > + } > + } > + > ++#endif > ++ > + // TLS versions before 1.1.0 did not define the TLS Feature extension > + static ASN1OID tlsFeatureOID("1.3.6.1.5.5.7.1.24", "tlsfeature", "TLS > Feature"); > + static int const NID_tlsfeature = > OBJ_create(tlsFeatureOID.identifier.c_str(), > + > tlsFeatureOID.shortDescription.c_str(), > + > tlsFeatureOID.longDescription.c_str()); > + > +-#else > ++#if 0 > + using UniqueVerifiedChainPolyfill = std::unique_ptr<STACK_OF(X509), > X509StackDeleterNoOp>; > + > + #endif > Index: patches/patch-src_mongo_util_processinfo_openbsd_cpp > =================================================================== > RCS file: > /home/cvs/ports/databases/mongodb/patches/patch-src_mongo_util_processinfo_openbsd_cpp,v > retrieving revision 1.2 > diff -u -p -r1.2 patch-src_mongo_util_processinfo_openbsd_cpp > --- patches/patch-src_mongo_util_processinfo_openbsd_cpp 13 Jan 2019 > 23:18:42 -0000 1.2 > +++ patches/patch-src_mongo_util_processinfo_openbsd_cpp 16 Oct 2021 > 22:18:35 -0000 > @@ -1,36 +1,20 @@ > -$OpenBSD: patch-src_mongo_util_processinfo_openbsd_cpp,v 1.2 2019/01/13 > 23:18:42 jca Exp $ > +$OpenBSD$ > > -- avoid use after free > - mincore(2) has been removed > > Index: src/mongo/util/processinfo_openbsd.cpp > --- src/mongo/util/processinfo_openbsd.cpp.orig > +++ src/mongo/util/processinfo_openbsd.cpp > -@@ -110,9 +110,10 @@ int ProcessInfo::getVirtualMemorySize() { > - } > - > - kinfo_proc* task = kvm_getprocs(kd, KERN_PROC_PID, _pid.toNative(), > sizeof(kinfo_proc), &cnt); > -- kvm_close(kd); > -- return ((task->p_vm_dsize + task->p_vm_ssize + task->p_vm_tsize) * > sysconf(_SC_PAGESIZE)) / > -+ int rss = ((task->p_vm_dsize + task->p_vm_ssize + task->p_vm_tsize) * > sysconf(_SC_PAGESIZE)) / > - 1048576; > -+ kvm_close(kd); > -+ return rss; > - } > - > - int ProcessInfo::getResidentSize() { > -@@ -124,8 +125,9 @@ int ProcessInfo::getResidentSize() { > - return -1; > - } > - kinfo_proc* task = kvm_getprocs(kd, KERN_PROC_PID, _pid.toNative(), > sizeof(kinfo_proc), &cnt); > -+ int rss = (task->p_vm_rssize * sysconf(_SC_PAGESIZE)) / 1048576; // > convert from pages to MB > - kvm_close(kd); > -- return (task->p_vm_rssize * sysconf(_SC_PAGESIZE)) / 1048576; // > convert from pages to MB > -+ return rss; > - } > - > - double ProcessInfo::getSystemMemoryPressurePercentage() { > -@@ -182,28 +184,14 @@ bool ProcessInfo::supported() { > +@@ -85,7 +85,7 @@ template <> > + int getSysctlByIDWithDefault<std::string>(const int* sysctlID, > + const int idLen, > + const std::string& defaultValue, > +- string* result) { > ++ std::string* result) { > + char value[256] = {0}; > + size_t len = sizeof(value); > + if (sysctl(sysctlID, idLen, &value, &len, NULL, 0) == -1) { > +@@ -195,33 +195,15 @@ bool ProcessInfo::supported() { > } > > bool ProcessInfo::blockCheckSupported() { > @@ -41,18 +25,22 @@ Index: src/mongo/util/processinfo_openbs > bool ProcessInfo::blockInMemory(const void* start) { > - char x = 0; > - if (mincore((void*)alignToStartOfPage(start), getPageSize(), &x)) { > -- log() << "mincore failed: " << errnoWithDescription() << endl; > +- LOGV2(23349, > +- "mincore failed: {errnoWithDescription}", > +- "errnoWithDescription"_attr = errnoWithDescription()); > - return 1; > - } > - return x & 0x1; > + return false; > } > > - bool ProcessInfo::pagesInMemory(const void* start, size_t numPages, > vector<char>* out) { > + bool ProcessInfo::pagesInMemory(const void* start, size_t numPages, > std::vector<char>* out) { > - out->resize(numPages); > - // int mincore(const void *addr, size_t len, char *vec); > - if (mincore((void*)alignToStartOfPage(start), numPages * getPageSize(), > &(out->front()))) { > -- log() << "mincore failed: " << errnoWithDescription() << endl; > +- LOGV2(23350, > +- "mincore failed: {errnoWithDescription}", > +- "errnoWithDescription"_attr = errnoWithDescription()); > - return false; > - } > - for (size_t i = 0; i < numPages; ++i) { > @@ -61,4 +49,5 @@ Index: src/mongo/util/processinfo_openbs > - return true; > + return false; > } > - } > + > + // get the number of CPUs available to the scheduler > Index: patches/patch-src_mongo_util_time_support_cpp > =================================================================== > RCS file: patches/patch-src_mongo_util_time_support_cpp > diff -N patches/patch-src_mongo_util_time_support_cpp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_mongo_util_time_support_cpp 16 Oct 2021 20:29:06 > -0000 > @@ -0,0 +1,14 @@ > +$OpenBSD$ > + > +Index: src/mongo/util/time_support.cpp > +--- src/mongo/util/time_support.cpp.orig > ++++ src/mongo/util/time_support.cpp > +@@ -846,7 +846,7 @@ class MachPort { (private) > + // Find minimum timer resolution of OS > + Nanoseconds getMinimumTimerResolution() { > + Nanoseconds minTimerResolution; > +-#if defined(__linux__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) > ++#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || > defined(__EMSCRIPTEN__) > + struct timespec tp; > + clock_getres(CLOCK_REALTIME, &tp); > + minTimerResolution = Nanoseconds{tp.tv_nsec}; > Index: > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_detail_impl_engine_ipp > =================================================================== > RCS file: > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_detail_impl_engine_ipp > diff -N > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_detail_impl_engine_ipp > --- > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_detail_impl_engine_ipp > 23 May 2021 07:22:37 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,16 +0,0 @@ > -$OpenBSD: > patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_detail_impl_engine_ipp,v > 1.1 2021/05/23 07:22:37 tb Exp $ > - > -Use accessor instead of reaching inside the SSL. > - > -Index: > src/third_party/asio-asio-1-11-0/asio/include/asio/ssl/detail/impl/engine.ipp > ---- > src/third_party/asio-asio-1-11-0/asio/include/asio/ssl/detail/impl/engine.ipp.orig > -+++ > src/third_party/asio-asio-1-11-0/asio/include/asio/ssl/detail/impl/engine.ipp > -@@ -206,7 +206,7 @@ const asio::error_code& engine::map_error_code( > - > - // SSL v2 doesn't provide a protocol-level shutdown, so an eof on the > - // underlying transport is passed through. > -- if (ssl_ && ssl_->version == SSL2_VERSION) > -+ if (ssl_ && SSL_version(ssl_) == SSL2_VERSION) > - return ec; > - > - // Otherwise, the peer should have negotiated a proper shutdown. > Index: > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_impl_context_ipp > =================================================================== > RCS file: > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_impl_context_ipp > diff -N > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_impl_context_ipp > --- > patches/patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_impl_context_ipp > 10 May 2021 15:10:11 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,116 +0,0 @@ > -$OpenBSD: > patch-src_third_party_asio-asio-1-11-0_asio_include_asio_ssl_impl_context_ipp,v > 1.1 2021/05/10 15:10:11 tb Exp $ > - > -Index: > src/third_party/asio-asio-1-11-0/asio/include/asio/ssl/impl/context.ipp > ---- > src/third_party/asio-asio-1-11-0/asio/include/asio/ssl/impl/context.ipp.orig > -+++ src/third_party/asio-asio-1-11-0/asio/include/asio/ssl/impl/context.ipp > -@@ -192,13 +192,14 @@ context::~context() > - { > - if (handle_) > - { > -- if (handle_->default_passwd_callback_userdata) > -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); > -+ if (cb_userdata) > - { > - detail::password_callback_base* callback = > - static_cast<detail::password_callback_base*>( > -- handle_->default_passwd_callback_userdata); > -+ cb_userdata); > - delete callback; > -- handle_->default_passwd_callback_userdata = 0; > -+ ::SSL_CTX_set_default_passwd_cb_userdata(handle_, 0); > - } > - > - if (SSL_CTX_get_app_data(handle_)) > -@@ -528,10 +529,12 @@ asio::error_code context::use_certificate_chain( > - bio_cleanup bio = { make_buffer_bio(chain) }; > - if (bio.p) > - { > -+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); > -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); > - x509_cleanup cert = { > - ::PEM_read_bio_X509_AUX(bio.p, 0, > -- handle_->default_passwd_callback, > -- handle_->default_passwd_callback_userdata) }; > -+ callback, > -+ cb_userdata) }; > - if (!cert.p) > - { > - ec = asio::error_code(ERR_R_PEM_LIB, > -@@ -548,15 +551,11 @@ asio::error_code context::use_certificate_chain( > - return ec; > - } > - > -- if (handle_->extra_certs) > -- { > -- ::sk_X509_pop_free(handle_->extra_certs, X509_free); > -- handle_->extra_certs = 0; > -- } > -+ ::SSL_CTX_clear_chain_certs(handle_); > - > - while (X509* cacert = ::PEM_read_bio_X509(bio.p, 0, > -- handle_->default_passwd_callback, > -- handle_->default_passwd_callback_userdata)) > -+ callback, > -+ cb_userdata)) > - { > - if (!::SSL_CTX_add_extra_chain_cert(handle_, cacert)) > - { > -@@ -621,6 +620,9 @@ asio::error_code context::use_private_key( > - { > - ::ERR_clear_error(); > - > -+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); > -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); > -+ > - bio_cleanup bio = { make_buffer_bio(private_key) }; > - if (bio.p) > - { > -@@ -632,8 +634,8 @@ asio::error_code context::use_private_key( > - break; > - case context_base::pem: > - evp_private_key.p = ::PEM_read_bio_PrivateKey( > -- bio.p, 0, handle_->default_passwd_callback, > -- handle_->default_passwd_callback_userdata); > -+ bio.p, 0, callback, > -+ cb_userdata); > - break; > - default: > - { > -@@ -680,6 +682,9 @@ asio::error_code context::use_rsa_private_key( > - { > - ::ERR_clear_error(); > - > -+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); > -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); > -+ > - bio_cleanup bio = { make_buffer_bio(private_key) }; > - if (bio.p) > - { > -@@ -691,8 +696,8 @@ asio::error_code context::use_rsa_private_key( > - break; > - case context_base::pem: > - rsa_private_key.p = ::PEM_read_bio_RSAPrivateKey( > -- bio.p, 0, handle_->default_passwd_callback, > -- handle_->default_passwd_callback_userdata); > -+ bio.p, 0, callback, > -+ cb_userdata); > - break; > - default: > - { > -@@ -911,11 +916,12 @@ int context::verify_callback_function(int preverified, > - asio::error_code context::do_set_password_callback( > - detail::password_callback_base* callback, asio::error_code& ec) > - { > -- if (handle_->default_passwd_callback_userdata) > -- delete static_cast<detail::password_callback_base*>( > -- handle_->default_passwd_callback_userdata); > -+ void* old_callback = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); > -+ ::SSL_CTX_set_default_passwd_cb_userdata(handle_, callback); > - > -- handle_->default_passwd_callback_userdata = callback; > -+ if (old_callback) > -+ delete static_cast<detail::password_callback_base*>( > -+ old_callback); > - > - SSL_CTX_set_default_passwd_cb(handle_, > &context::password_callback_function); > - > Index: > patches/patch-src_third_party_mozjs-60_platform_x86_64_openbsd_build_js-confdefs_h > =================================================================== > RCS file: > patches/patch-src_third_party_mozjs-60_platform_x86_64_openbsd_build_js-confdefs_h > diff -N > patches/patch-src_third_party_mozjs-60_platform_x86_64_openbsd_build_js-confdefs_h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ > patches/patch-src_third_party_mozjs-60_platform_x86_64_openbsd_build_js-confdefs_h > 16 Oct 2021 22:10:35 -0000 > @@ -0,0 +1,14 @@ > +$OpenBSD$ > + > +Index: src/third_party/mozjs-60/platform/x86_64/openbsd/build/js-confdefs.h > +--- src/third_party/mozjs-60/platform/x86_64/openbsd/build/js-confdefs.h.orig > ++++ src/third_party/mozjs-60/platform/x86_64/openbsd/build/js-confdefs.h > +@@ -54,7 +54,7 @@ > + #define JS_POSIX_NSPR 1 > + #define JS_PUNBOX64 1 > + #define JS_STANDALONE 1 > +-#define MALLOC_H <malloc_np.h> > ++#define MALLOC_H <stdlib.h> > + #define MALLOC_USABLE_SIZE_CONST_PTR const > + #define MOZILLA_UAVERSION "60.0" > + #define MOZILLA_VERSION "60.3.0" > Index: pkg/PLIST > =================================================================== > RCS file: /home/cvs/ports/databases/mongodb/pkg/PLIST,v > retrieving revision 1.8 > diff -u -p -r1.8 PLIST > --- pkg/PLIST 20 Feb 2019 17:58:04 -0000 1.8 > +++ pkg/PLIST 18 Oct 2021 10:24:18 -0000 > @@ -12,16 +12,12 @@ > @owner > @group > @bin bin/mongo > -@bin bin/mongobridge > @bin bin/mongod > -@bin bin/mongoperf > @bin bin/mongos > -@bin bin/mongosniff > @man man/man1/mongo.1 > @man man/man1/mongod.1 > -@man man/man1/mongoperf.1 > @man man/man1/mongos.1 > -@man man/man1/mongosniff.1 > +@man man/man5/mongodb-parameters.5 > share/examples/mongodb/ > share/examples/mongodb/mongodb.conf > @sample ${SYSCONFDIR}/mongodb.conf