pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/databases/mongodb3



Module Name:    pkgsrc
Committed By:   adam
Date:           Tue Jul  9 07:28:30 UTC 2019

Modified Files:
        pkgsrc/databases/mongodb3: Makefile distinfo options.mk
        pkgsrc/databases/mongodb3/patches: patch-SConstruct
            patch-src_mongo_base_initializer.h
            patch-src_mongo_platform_random.cpp
            patch-src_mongo_platform_stack__locator__netbsd.cpp
            patch-src_mongo_shell_linenoise__utf8.h
            patch-src_mongo_util_processinfo__netbsd.cpp
Removed Files:
        pkgsrc/databases/mongodb3/patches: patch-debian_mongod.conf
            patch-src_mongo_db_dbwebserver.cpp
            patch-src_mongo_db_fts_unicode_string.cpp
            patch-src_mongo_platform_stack__locator__dragonfly.cpp
            patch-src_mongo_util_net_miniwebserver.cpp

Log Message:
mongodb3: updated to 3.4.21

3.4.21:
Issues fixed:
SERVER-39820: Add the client IP address to the successful authentication log message
SERVER-41213: Unique background index builds may produce inconsistent keys
SERVER-37765: Platform Support: Remove Ubuntu 14.04
SERVER-37774: Platform Support: Remove Enterprise Ubuntu 16.04 PPCLE
WT-4615: Sync backup file before returning backup cursor

3.4.20:
Issues fixed:
SERVER-39166: $graphLookup should force a pipeline to split in sharded cluster
SERVER-39723: Change listIndexes command behavior to show in-progress index builds
TOOLS-2158: mongodump failing on Windows with “error opening system CA store: Access is denied.”

3.4.19:
Issues fixed:
SERVER-18985: setParameter should log at level 0
SERVER-22766: Dynamic oplog sizing for WiredTiger nodes
SERVER-33469: Make syslog log lines consistent with mongod log lines
SERVER-37132: Negation of $in with regex can incorrectly plan from the cache, leading to missing query results
SERVER-37182: Different values when referencing whole object vs. a field of that object after $arrayToObject
SERVER-37616: Implement tuneable batch size for the rangedeleter

3.4.18:
Issues fixed:
SERVER-25175: listIndexes shouldn’t include in-progress background indexes
SERVER-35418: Allow specifying CAs for incoming and outgoing connections separately.
SERVER-36944: applyOps does not permit unknown field names when creating a v:1 index.
SERVER-37058: Update with numeric field names inside an array can cause validation to fail.

3.4.17:
Issues fixed:
SERVER-33857 Missing log redaction due to confusion with Command::redactForLogging().
SERVER-34846 Covered index with collated field returns incorrect result when collation not involved in match or sort.
SERVER-36010 Change log messages for Windows stacktraces to use error() or severe() rather than log().
SERVER-34558: Add SSL_version to client metadata logging.

3.4.16:
Issues fixed:
SERVER-32999: Platform Support: Remove Debian 7 builds.
SERVER-29301: Upgrade MozJS to ESR 45.9.0
SERVER-5461: Add syncSourceHost field to replSetGetStatus output.

3.4.15:
Issues fixed:
SERVER-31535: Platform Support: remove Ubuntu 12.04 builds.
SERVER-32923: Platform Support: remove SLES11 builds.
SERVER-20056: Log a startup warning if wiredTigerCacheSizeGB is > 80% of RAM.
SERVER-28981: Sharding balancer prefers shards in a specific order when moving chunks.

3.4.14:
Issues fixed:
SERVER-28151: Authentication database should be synced first during an initial sync.
SERVER-32886: Unnecessary sleeps during chunk migration.
SERVER-32933: Allow mongod to start when unable to reach LDAP server.

3.4.13:
Issues fixed:
SERVER-33238: Prevent WiredTiger read ticket count from going negative.

3.4.12:
Issues fixed:
SERVER-31437: Fix parsing of mongo host/db connect string.
SERVER-32875: Don’t stall ftdc due to running out of tickets.
SERVER-33089: Unable to start queryable mongod because it failed to regenerate index for admin.system.users.

3.4.11:
Issues fixed:
SERVER-19605: Oplog timeout should be configurable.
SERVER-19919: Chunks that exceed 250000 docs but are under half chunk size get marked as jumbo.
SERVER-29293: Recipient shard fails to abort migration on stepdown.
SERVER-32001: unindexing a key in a partial unique index may cause server crash

3.4.10:
Issues fixed:
SERVER-15723: Avoid G_X lock for rename_collection within database
SERVER-31049: View with collation doesn’t work as expected in sharded cluster
SERVER-29287: Upgrade pcre to 8.41
SERVER-31204: Calling shardCollection after enableSharding may fail if executed against different mongos

3.4.9:
Issues fixed:
SERVER-20392: Sharding an existing small collection results in large number of chunks
SERVER-30189: Reduce calls to allocator for large $in expressions
SERVER-30487: RangeDeleter holds WT transaction open while waiting for majority
SERVER-30636: Range deleter assert failed because of replication lag

3.4.7:
Issues fixed:
SERVER-29282: BSON Document Size can be exceeded when grouping inserts on SECONDARY nodes
SERVER-29568: Enable configuration of OpenSSL cipher suite via setParameter
SERVER-29817: Optimize incremental update performance of ChunkManager and CollectionMetadata

3.4.6:
Issues fixed:
SERVER-27347: Only close idle cached cursors on the WiredTiger ident that is busy.
SERVER-29618: $geoWithin in aggregation pipeline after $lookup and $unwind returns incorrect results.
WT-3362: Cursor opens should never block for the duration of a checkpoint.

3.4.5:
Issues fixed:
SERVER-28952: Multikey indexes should not be eligible for DISTINCT_SCAN if distinct key is an array component.
SERVER-28427: GlobalLock with timeout can still block indefinitely.
SERVER-29018 mongos can segfault in getMore on views with find batchSize of 0.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 pkgsrc/databases/mongodb3/Makefile
cvs rdiff -u -r1.1 -r1.2 pkgsrc/databases/mongodb3/distinfo \
    pkgsrc/databases/mongodb3/options.mk
cvs rdiff -u -r1.1 -r1.2 pkgsrc/databases/mongodb3/patches/patch-SConstruct \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_base_initializer.h \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_random.cpp \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__netbsd.cpp \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_shell_linenoise__utf8.h \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_util_processinfo__netbsd.cpp
cvs rdiff -u -r1.1 -r0 \
    pkgsrc/databases/mongodb3/patches/patch-debian_mongod.conf \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_db_dbwebserver.cpp \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_db_fts_unicode_string.cpp \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__dragonfly.cpp \
    pkgsrc/databases/mongodb3/patches/patch-src_mongo_util_net_miniwebserver.cpp

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/databases/mongodb3/Makefile
diff -u pkgsrc/databases/mongodb3/Makefile:1.2 pkgsrc/databases/mongodb3/Makefile:1.3
--- pkgsrc/databases/mongodb3/Makefile:1.2      Mon Jul  1 04:08:01 2019
+++ pkgsrc/databases/mongodb3/Makefile  Tue Jul  9 07:28:30 2019
@@ -1,16 +1,15 @@
-# $NetBSD: Makefile,v 1.2 2019/07/01 04:08:01 ryoon Exp $
+# $NetBSD: Makefile,v 1.3 2019/07/09 07:28:30 adam Exp $
 
 # This package is intentionally old to avoid:
 #   Server Side Public License
 #   c++17 (and c++14 if 3.4.4 does not already need it)
-DISTNAME=      mongodb-src-r3.4.4
-PKGNAME=       ${DISTNAME:S/src-r//:S/-rc/rc/}
-PKGREVISION=   7
+DISTNAME=      mongodb-src-r3.4.21
+PKGNAME=       ${DISTNAME:S/src-r//}
 CATEGORIES=    databases
 MASTER_SITES=  http://fastdl.mongodb.org/src/
 
 MAINTAINER=    gdt%NetBSD.org@localhost
-HOMEPAGE=      http://mongodb.org/
+HOMEPAGE=      https://www.mongodb.com/
 COMMENT=       NoSQL distributed document-oriented database
 LICENSE=       gnu-agpl-v3 # Client and tools licensed under apache-2.0
 
@@ -21,29 +20,27 @@ EXTRACT_USING=      bsdtar
 
 NO_CONFIGURE=  yes
 USE_LANGUAGES= c c++
+GCC_REQD+=     5.3.0
 
 SCONS_ARGS=    ${_MAKE_JOBS}
+SCONS_ARGS+=   --disable-warnings-as-errors
+SCONS_ARGS+=   --release
+SCONS_ARGS+=   --runtime-hardening=off # does not produce executables
 SCONS_ARGS+=   --use-system-boost
+#SCONS_ARGS+=  --use-system-icu
 SCONS_ARGS+=   --use-system-pcre
 SCONS_ARGS+=   --use-system-snappy
 SCONS_ARGS+=   --use-system-tcmalloc
 SCONS_ARGS+=   --use-system-yaml
 SCONS_ARGS+=   --use-system-zlib
 SCONS_ARGS+=   --js-engine=mozjs
-SCONS_ARGS+=   --release
 
-PYTHON_VERSIONS_INCOMPATIBLE=  34 35 36 37 # not yet supported as of 3.0.4
+PYTHON_VERSIONS_ACCEPTED=      27 # not yet supported as of 3.4.21
 
 .include "../../mk/bsd.prefs.mk"
 
-# XXX this doesn't work for some reason
-#.if !empty(INSTALL_UNSTRIPPED:Uno:M[Yy][Ee][Ss])
-#SCONS_ARGS+=  --nostrip
-#.endif
-
-GCC_REQD+=     5.3.0
-
-CPPFLAGS+=     -fno-jump-tables
+CPPFLAGS+=     -fno-jump-tables  # XXX: still needed?
+LDFLAGS+=      ${COMPILER_RPATH_FLAG}${PREFIX}/lib -L${PREFIX}/lib
 
 .include "options.mk"
 
@@ -56,6 +53,7 @@ BUILD_DEFS+=          MONGODB_LOGPATH
 MONGODB_USER?=         mongodb
 MONGODB_GROUP?=                mongodb
 MONGODB_DBPATH?=       ${VARBASE}/mongodb
+MONGODB_CONFIGDBPATH?= ${VARBASE}/mongoconfigdb
 MONGODB_LOGPATH?=      ${VARBASE}/log/mongodb
 
 PKG_USERS_VARS+=       MONGODB_USER
@@ -68,34 +66,31 @@ PKG_GECOS.${MONGODB_USER}=  MongoDB datab
 PKG_HOME.${MONGODB_USER}=      ${MONGODB_DBPATH}
 PKG_SHELL.${MONGODB_USER}=     ${SH}
 
-OWN_DIRS_PERMS+=       ${MONGODB_DBPATH} ${MONGODB_USER} ${MONGODB_GROUP} 0755
-OWN_DIRS_PERMS+=       ${MONGODB_DBPATH}/journal ${MONGODB_USER} ${MONGODB_GROUP} 0755
-OWN_DIRS_PERMS+=       ${MONGODB_LOGPATH} ${MONGODB_USER} ${MONGODB_GROUP} 0755
+OWN_DIRS_PERMS+=       ${MONGODB_DBPATH:Q} ${MONGODB_USER} ${MONGODB_GROUP} 0755
+OWN_DIRS_PERMS+=       ${MONGODB_DBPATH:Q}/journal ${MONGODB_USER} ${MONGODB_GROUP} 0755
+OWN_DIRS_PERMS+=       ${MONGODB_LOGPATH:Q} ${MONGODB_USER} ${MONGODB_GROUP} 0755
 
 FILES_SUBST+=          MONGODB_USER=${MONGODB_USER}
 FILES_SUBST+=          MONGODB_GROUP=${MONGODB_GROUP}
 FILES_SUBST+=          MONGODB_DBPATH=${MONGODB_DBPATH}
 FILES_SUBST+=          MONGODB_LOGPATH=${MONGODB_LOGPATH}
 
-# XXX No better idea how to pass CXXFLAGS and LDFLAGS to scons
-SUBST_CLASSES+=                scons
-SUBST_STAGE.scons=     pre-build
-SUBST_FILES.scons=     SConstruct
-SUBST_VARS.scons=      PREFIX CXXFLAGS LDFLAGS
-
 SUBST_CLASSES+=                path
 SUBST_STAGE.path=      pre-build
-SUBST_FILES.path=      src/mongo/db/flushtest.cpp debian/mongod.conf
-SUBST_FILES.path+=     debian/mongod.1 debian/mongo.1 src/mongo/shell/dbshell.cpp
-SUBST_SED.path=                -e 's|/data/db|${MONGODB_DBPATH}|g'
-SUBST_SED.path+=       -e 's|/etc|${PKG_SYSCONFDIR}|'
-SUBST_VARS.path=       MONGODB_DBPATH MONGODB_LOGPATH
-
-LDFLAGS+=              ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.boost-libs}/lib
-
-MONGODB_MAN_FILES=     bsondump.1 mongo.1 mongod.1 mongodump.1 mongoexport.1   \
-                       mongofiles.1 mongoimport.1 mongooplog.1 mongoperf.1     \
-                       mongorestore.1 mongos.1 mongosniff.1 mongostat.1 mongotop.1
+SUBST_MESSAGE.path=    Replacing database paths.
+SUBST_FILES.path=      debian/mongo.1 debian/mongod.1
+SUBST_FILES.path+=     src/mongo/shell/dbshell.cpp
+SUBST_FILES.path+=     src/mongo/db/storage/storage_options.cpp
+SUBST_SED.path=                -e 's,/data/db,${MONGODB_DBPATH},g'
+SUBST_SED.path+=       -e 's,/data/configdb,${MONGODB_CONFIGDBPATH},g'
+SUBST_SED.path+=       -e 's,/etc,${PKG_SYSCONFDIR},g'
+
+SUBST_CLASSES+=                varbase
+SUBST_STAGE.varbase=   pre-build
+SUBST_MESSAGE.varbase= Changing /var to ${VARBASE}.
+SUBST_FILES.varbase=   debian/mongod.conf
+SUBST_SED.varbase=     -e 's,/var/lib,${VARBASE},g'
+SUBST_SED.varbase+=    -e 's,/var/log,${VARBASE},g'
 
 NOT_PAX_MPROTECT_SAFE+=        bin/mongo bin/mongod
 
@@ -106,31 +101,44 @@ INSTALLATION_DIRS+=       share/doc/mongodb sh
 CONF_FILES+=           share/examples/mongodb/mongod.conf \
                        ${PKG_SYSCONFDIR}/mongod.conf
 
+# Copy system specific files for NetBSD and DragonFly
 post-extract:
-       chmod -R g-w ${WRKSRC}
-       cp -r ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/freebsd \
+       ${CHMOD} -R g-w ${WRKSRC}
+       ${CP} -R ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/freebsd \
                ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/dragonfly
-       cp -r ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/openbsd \
+       ${CP} -R ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/openbsd \
                ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/netbsd
-       cp ${WRKSRC}/src/mongo/db/ftdc/ftdc_system_stats_openbsd.cpp \
+       ${CP} ${WRKSRC}/src/mongo/db/ftdc/ftdc_system_stats_openbsd.cpp \
                ${WRKSRC}/src/mongo/db/ftdc/ftdc_system_stats_netbsd.cpp
+       ${CP} ${WRKSRC}/src/mongo/db/ftdc/ftdc_system_stats_freebsd.cpp \
+               ${WRKSRC}/src/mongo/db/ftdc/ftdc_system_stats_dragonfly.cpp
+       ${CP} ${WRKSRC}/src/mongo/util/processinfo_openbsd.cpp \
+               ${WRKSRC}/src/mongo/util/processinfo_netbsd.cpp
+       ${CP} ${WRKSRC}/src/mongo/util/processinfo_freebsd.cpp \
+               ${WRKSRC}/src/mongo/util/processinfo_dragonfly.cpp
+       ${CP} ${WRKSRC}/src/mongo/platform/stack_locator_freebsd.cpp \
+               ${WRKSRC}/src/mongo/platform/stack_locator_netbsd.cpp
+       ${CP} ${WRKSRC}/src/mongo/platform/stack_locator_freebsd.cpp \
+               ${WRKSRC}/src/mongo/platform/stack_locator_dragonfly.cpp
+       ${CP} -R ${WRKSRC}/src/third_party/wiredtiger/build_openbsd \
+               ${WRKSRC}/src/third_party/wiredtiger/build_netbsd
+       ${CP} -R ${WRKSRC}/src/third_party/wiredtiger/build_freebsd \
+               ${WRKSRC}/src/third_party/wiredtiger/build_dragonfly
 
 do-build:
-       cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${SCONSBIN} ${SCONS_ARGS} core
+       cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${SCONSBIN} ${SCONS_ARGS} \
+       CC=${CC:Q} CXX=${CXX:Q} CFLAGS=${CFLAGS:Q} CXXFLAGS=${CXXFLAGS:Q} \
+       LINKFLAGS=${LDFLAGS:Q} CPPPATH=${INCL_PATH:Q} VERBOSE=1 core
 
 do-install:
        cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${SCONSBIN} ${SCONS_ARGS} \
-               --prefix=${DESTDIR}${PREFIX} install
-
-do-test:
-       cd ${WRKSRC} && ./test
+       CC=${CC:Q} CXX=${CXX:Q} CFLAGS=${CFLAGS:Q} CXXFLAGS=${CXXFLAGS:Q} \
+       LINKFLAGS=${LDFLAGS:Q} CPPPATH=${INCL_PATH:Q} \
+       --prefix=${DESTDIR}${PREFIX} install
 
 post-install:
        ${INSTALL_DATA} ${WRKSRC}/README ${DESTDIR}${PREFIX}/share/doc/mongodb
-.for file in ${MONGODB_MAN_FILES}
-       ${INSTALL_MAN} ${WRKSRC}/debian/${file} \
-               ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
-.endfor
+       ${INSTALL_MAN} ${WRKSRC}/debian/*.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
        ${INSTALL_DATA} ${WRKSRC}/debian/mongod.conf \
                ${DESTDIR}${PREFIX}/share/examples/mongodb
 
@@ -143,5 +151,6 @@ post-install:
 .include "../../devel/snappy/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
 .include "../../net/libpcap/buildlink3.mk"
+#.include "../../textproc/icu/buildlink3.mk"
 .include "../../textproc/yaml-cpp/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/databases/mongodb3/distinfo
diff -u pkgsrc/databases/mongodb3/distinfo:1.1 pkgsrc/databases/mongodb3/distinfo:1.2
--- pkgsrc/databases/mongodb3/distinfo:1.1      Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/distinfo  Tue Jul  9 07:28:30 2019
@@ -1,28 +1,22 @@
-$NetBSD: distinfo,v 1.1 2019/06/28 16:30:56 gdt Exp $
+$NetBSD: distinfo,v 1.2 2019/07/09 07:28:30 adam Exp $
 
-SHA1 (mongodb-src-r3.4.4.tar.gz) = 6f9f2d8a3c1c2f4089fd03f8be0b86ff0431d955
-RMD160 (mongodb-src-r3.4.4.tar.gz) = 2a65f380204a92762ceea2be35dbe2c671e106f6
-SHA512 (mongodb-src-r3.4.4.tar.gz) = dbae89b49c363e7258021cd31385e4449bfdfdfd5adfcb1683e4431372731e58ec33bf8f7576d2d52659a52461bd6a32fbc67d5c6e36d52184ec1aabb345d940
-Size (mongodb-src-r3.4.4.tar.gz) = 39867133 bytes
-SHA1 (patch-SConstruct) = 6ec188274fb25614494ec192be7809a6a01962de
-SHA1 (patch-debian_mongod.conf) = e5074b5f7ad50560b99d652feab58da764ba542c
-SHA1 (patch-src_mongo_base_initializer.h) = add32c5940c922a98122d0e6883eb3ad52dc25c5
-SHA1 (patch-src_mongo_db_dbwebserver.cpp) = 1e7bb9588930742839d2bc9e26b33751a64f98c7
-SHA1 (patch-src_mongo_db_fts_unicode_string.cpp) = 98c5b1b39c07190f08ec9f22ec3002b0a803f72f
+SHA1 (mongodb-src-r3.4.21.tar.gz) = af4e39c4d91332e9216e924c27f9e7230fb0fe88
+RMD160 (mongodb-src-r3.4.21.tar.gz) = d276839102a6dbef7f069154172025f8990b5d59
+SHA512 (mongodb-src-r3.4.21.tar.gz) = 8f4f091ab0a018e6476b860392c26bd379d34b62d5f6a510ae515c992b177407ee370c213579f70d5595d98a8dc0c2fd6b97ccf77683f7995d5d4e1bf5ca367b
+Size (mongodb-src-r3.4.21.tar.gz) = 40151763 bytes
+SHA1 (patch-SConstruct) = da410da1bd59c5a7b6ac5e3ba00144bf569efd77
+SHA1 (patch-src_mongo_base_initializer.h) = f82d58895251f7be08a09012ed7db64e3863a1fe
 SHA1 (patch-src_mongo_db_matcher_expression__leaf.cpp) = 52064034fabb5de63eccf87ddd140303c54f0312
 SHA1 (patch-src_mongo_db_repl_isself.c) = 82321c918b91ce1a68ce79c14589126aca6baf96
 SHA1 (patch-src_mongo_db_repl_master__slave.cpp) = 2f37f0819a2b2743df01f6b6ab0b3013b3b7d726
 SHA1 (patch-src_mongo_db_repl_oplog__fetcher.cpp) = e12dbfbd4e70ee210cdd4eb0582661666e8eb06a
 SHA1 (patch-src_mongo_installer_msi_SConscript) = 78424fa10f90470dd941b900ef8fd131d28f6e65
-SHA1 (patch-src_mongo_platform_random.cpp) = 59c31e55fc2dc5a2b82b8f16dacf8736d8354cdb
-SHA1 (patch-src_mongo_platform_stack__locator__dragonfly.cpp) = fb885c491e4de1cfbc2875620d854af726e5b45f
-SHA1 (patch-src_mongo_platform_stack__locator__netbsd.cpp) = 3b09e86b2401555b6ab4c31d14c0693d766119c2
+SHA1 (patch-src_mongo_platform_random.cpp) = 9af0fd82a653bf4f273ce107e54c5e63eaeb3b85
+SHA1 (patch-src_mongo_platform_stack__locator__netbsd.cpp) = 3f67bbae82c0f3cae410a21219589bc082e7b9b1
 SHA1 (patch-src_mongo_shell_bench.cpp) = c0fd15347d35e37daf87b642148215dee3ab7220
-SHA1 (patch-src_mongo_shell_linenoise__utf8.h) = f975925f56125d48b5124894fa1adf1382a634d2
+SHA1 (patch-src_mongo_shell_linenoise__utf8.h) = 952b1599364893d9fd0be915e3d0c2faabb9153f
 SHA1 (patch-src_mongo_util_intrusive__counter.h) = 9f1af59e1bc86e33bf183a6dda1737007afc7a18
-SHA1 (patch-src_mongo_util_net_miniwebserver.cpp) = 3715e826b8d03793066a84b2c1680c32c6ee6368
-SHA1 (patch-src_mongo_util_processinfo__dragonfly.cpp) = 62c236ce820dfe81f45625b15e022cca0f2c10ee
-SHA1 (patch-src_mongo_util_processinfo__netbsd.cpp) = 6eabe5ffec4168bb9ba8a58b7d742772d38b4714
+SHA1 (patch-src_mongo_util_processinfo__netbsd.cpp) = 6c01ad839ff31e7500d76af6622dfa726fcc8264
 SHA1 (patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_float128_dpml__exception.c) = ef3b260e8a49227cbbabf427500b7c70bce15083
 SHA1 (patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_float128_op__system.h) = 39f6fba82e2870ee4a5d99785033621225a72a16
 SHA1 (patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_src_bid__functions.h) = d3a85d3a3b33691466c65cdf51c56f221429aea9
Index: pkgsrc/databases/mongodb3/options.mk
diff -u pkgsrc/databases/mongodb3/options.mk:1.1 pkgsrc/databases/mongodb3/options.mk:1.2
--- pkgsrc/databases/mongodb3/options.mk:1.1    Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/options.mk        Tue Jul  9 07:28:30 2019
@@ -1,10 +1,9 @@
-# $NetBSD: options.mk,v 1.1 2019/06/28 16:30:56 gdt Exp $
+# $NetBSD: options.mk,v 1.2 2019/07/09 07:28:30 adam Exp $
 
 PKG_OPTIONS_VAR=       PKG_OPTIONS.mongodb
 PKG_SUPPORTED_OPTIONS= ssl wiredtiger
-PKG_SUGGESTED_OPTIONS= #
 
-.if !empty(MACHINE_ARCH:Mx86_64)
+.if ${MACHINE_ARCH} == "x86_64"
 PKG_SUGGESTED_OPTIONS+=        wiredtiger
 .endif
 
@@ -19,7 +18,7 @@ SCONS_ARGS+=          --ssl
 # MongoDB doesn't provide guarantees for non-bundled WiredTiger:
 # https://groups.google.com/forum/#!msg/mongodb-dev/31FQSo4KVCI/Fx-WtJ9fzU4J
 .if !empty(PKG_OPTIONS:Mwiredtiger)
-.  if empty(MACHINE_ARCH:Mx86_64)
+.  if ${MACHINE_ARCH} != "x86_64"
 PKG_FAIL_REASON+=      "WiredTiger is not supported on 32-bit platforms"
 .  endif
 SCONS_ARGS+=           --wiredtiger=on

Index: pkgsrc/databases/mongodb3/patches/patch-SConstruct
diff -u pkgsrc/databases/mongodb3/patches/patch-SConstruct:1.1 pkgsrc/databases/mongodb3/patches/patch-SConstruct:1.2
--- pkgsrc/databases/mongodb3/patches/patch-SConstruct:1.1      Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/patches/patch-SConstruct  Tue Jul  9 07:28:30 2019
@@ -1,9 +1,12 @@
-$NetBSD: patch-SConstruct,v 1.1 2019/06/28 16:30:56 gdt Exp $
+$NetBSD: patch-SConstruct,v 1.2 2019/07/09 07:28:30 adam Exp $
 
-Add support for NetBSD/Dragonfly, fix locations.
+Add support for NetBSD/Dragonfly.
+Fix locations.
+Don't compile with debug info.
+Don't mess with the linker.
 Respect LDFLAGS and CXXFLAGS
 
---- SConstruct.orig    2017-04-20 21:43:42.000000000 +0000
+--- SConstruct.orig    2019-05-21 17:07:37.000000000 +0000
 +++ SConstruct
 @@ -30,7 +30,7 @@ EnsureSConsVersion( 2, 3, 0 )
  def print_build_failures():
@@ -72,7 +75,7 @@ Respect LDFLAGS and CXXFLAGS
  
  env_vars = Variables(
      files=variables_files,
-@@ -892,6 +896,7 @@ envDict = dict(BUILD_ROOT=buildDir,
+@@ -899,6 +903,7 @@ envDict = dict(BUILD_ROOT=buildDir,
                 INSTALL_DIR=installDir,
                 CONFIG_HEADER_DEFINES={},
                 LIBDEPS_TAG_EXPANSIONS=[],
@@ -80,7 +83,7 @@ Respect LDFLAGS and CXXFLAGS
                 )
  
  env = Environment(variables=env_vars, **envDict)
-@@ -901,12 +906,12 @@ env.AddMethod(env_os_is_wrapper, 'Target
+@@ -908,12 +913,12 @@ env.AddMethod(env_os_is_wrapper, 'Target
  env.AddMethod(env_get_os_name_wrapper, 'GetTargetOSName')
  
  def fatal_error(env, msg, *args):
@@ -96,7 +99,7 @@ Respect LDFLAGS and CXXFLAGS
  
      Exit(1)
  
-@@ -926,7 +931,7 @@ else:
+@@ -933,7 +938,7 @@ else:
  env.AddMethod(lambda env: env['VERBOSE'], 'Verbose')
  
  if has_option('variables-help'):
@@ -105,7 +108,7 @@ Respect LDFLAGS and CXXFLAGS
      Exit(0)
  
  unknown_vars = env_vars.UnknownVariables()
-@@ -1029,7 +1034,9 @@ def CheckForProcessor(context, which_arc
+@@ -1036,7 +1041,9 @@ def CheckForProcessor(context, which_arc
  os_macros = {
      "windows": "_WIN32",
      "solaris": "__sun",
@@ -115,7 +118,7 @@ Respect LDFLAGS and CXXFLAGS
      "openbsd": "__OpenBSD__",
      "osx": "__APPLE__",
      "linux": "__linux__",
-@@ -1124,7 +1131,7 @@ else:
+@@ -1131,7 +1138,7 @@ else:
      env['TARGET_ARCH'] = detected_processor
  
  if env['TARGET_OS'] not in os_macros:
@@ -124,7 +127,7 @@ Respect LDFLAGS and CXXFLAGS
  elif not detectConf.CheckForOS(env['TARGET_OS']):
      env.ConfError("TARGET_OS ({0}) is not supported by compiler", env['TARGET_OS'])
  
-@@ -1360,7 +1367,7 @@ elif env['_LIBDEPS'] == '$_LIBDEPS_LIBS'
+@@ -1367,7 +1374,7 @@ elif env['_LIBDEPS'] == '$_LIBDEPS_LIBS'
  
  libdeps.setup_environment(env, emitting_shared=(link_model.startswith("dynamic")))
  
@@ -133,13 +136,13 @@ Respect LDFLAGS and CXXFLAGS
      env['LINK_LIBGROUP_START'] = '-Wl,--start-group'
      env['LINK_LIBGROUP_END'] = '-Wl,--end-group'
      env['LINK_WHOLE_ARCHIVE_START'] = '-Wl,--whole-archive'
-@@ -1388,10 +1395,24 @@ if env.TargetOSIs('linux'):
+@@ -1395,10 +1402,24 @@ if env.TargetOSIs('linux'):
  elif env.TargetOSIs('solaris'):
       env.Append( LIBS=["socket","resolv","lgrp"] )
  
 +elif os.sys.platform.startswith( "dragonfly" ):
-+    env.Append( CPPPATH=[ "@PREFIX@/include" ] )
-+    env.Append( LIBPATH=[ "@PREFIX@/lib" ] )
++    env.Append( CPPPATH=[ "/dist/pkg/include" ] )
++    env.Append( LIBPATH=[ "/dist/pkg/lib" ] )
 +    env.Append( LIBS=[ "m" ] )
 +    env.Append( LIBS=[ "kvm" ] )
 +    env.Append( CPPDEFINES=[ "__dragonfly__" ] )
@@ -149,8 +152,8 @@ Respect LDFLAGS and CXXFLAGS
      env.Append( CCFLAGS=[ "-fno-omit-frame-pointer" ] )
  
 +elif os.sys.platform.startswith( "netbsd" ):
-+    env.Append( CPPPATH=[ "@PREFIX@/include" ] )
-+    env.Append( LIBPATH=[ "@PREFIX@/lib" ] )
++    env.Append( CPPPATH=[ "/dist/pkg/include" ] )
++    env.Append( LIBPATH=[ "/dist/pkg/lib" ] )
 +    env.Append( LIBS=[ "m" ] )
 +    env.Append( LIBS=[ "kvm" ] )
 +    env.Append( CPPDEFINES=[ "__netbsd__" ] )
@@ -158,7 +161,15 @@ Respect LDFLAGS and CXXFLAGS
  elif env.TargetOSIs('openbsd'):
      env.Append( LIBS=[ "kvm" ] )
  
-@@ -1570,6 +1591,9 @@ if env.TargetOSIs('posix'):
+@@ -1564,7 +1585,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=["-fno-omit-frame-pointer",
+                          "-fno-strict-aliasing",
+-                         "-ggdb",
+                          "-pthread",
+                          "-Wall",
+                          "-Wsign-compare",
+@@ -1577,6 +1597,9 @@ if env.TargetOSIs('posix'):
  
      env.Append( CXXFLAGS=["-Woverloaded-virtual"] )
      env.Append( LINKFLAGS=["-pthread"] )
@@ -168,7 +179,7 @@ Respect LDFLAGS and CXXFLAGS
  
      # SERVER-9761: Ensure early detection of missing symbols in dependent libraries at program
      # startup.
-@@ -2158,9 +2182,9 @@ def doConfigure(myenv):
+@@ -2165,9 +2188,9 @@ def doConfigure(myenv):
      if usingLibStdCxx:
          def CheckModernLibStdCxx(context):
              test_body = """
@@ -181,15 +192,24 @@ Respect LDFLAGS and CXXFLAGS
              """
  
              context.Message('Checking for libstdc++ 5.3.0 or better... ')
-@@ -2764,6 +2788,7 @@ def doConfigure(myenv):
-             # permit more than four parameters.
+@@ -2375,7 +2398,7 @@ def doConfigure(myenv):
+         #
+         myenv.Append( CCFLAGS=["/Zc:inline"])
+ 
+-    if myenv.ToolchainIs('gcc', 'clang'):
++    if myenv.ToolchainIs('gcc', 'clang') and get_option('runtime-hardening') == "on":
+         # This tells clang/gcc to use the gold linker if it is available - we prefer the gold linker
+         # because it is much faster.
+         AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
+@@ -2800,6 +2823,7 @@ def doConfigure(myenv):
              "BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD",
              "BOOST_SYSTEM_NO_DEPRECATED",
+             "BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS",
 +            "BOOST_OPTIONAL_USE_SINGLETON_DEFINITION_OF_NONE",
          ]
      )
  
-@@ -2830,7 +2855,7 @@ def doConfigure(myenv):
+@@ -2866,7 +2890,7 @@ def doConfigure(myenv):
          myenv.ConfError("Couldn't find SASL header/libraries")
  
      # requires ports devel/libexecinfo to be installed
Index: pkgsrc/databases/mongodb3/patches/patch-src_mongo_base_initializer.h
diff -u pkgsrc/databases/mongodb3/patches/patch-src_mongo_base_initializer.h:1.1 pkgsrc/databases/mongodb3/patches/patch-src_mongo_base_initializer.h:1.2
--- pkgsrc/databases/mongodb3/patches/patch-src_mongo_base_initializer.h:1.1    Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/patches/patch-src_mongo_base_initializer.h        Tue Jul  9 07:28:30 2019
@@ -1,6 +1,7 @@
-$NetBSD: patch-src_mongo_base_initializer.h,v 1.1 2019/06/28 16:30:56 gdt Exp $
+$NetBSD: patch-src_mongo_base_initializer.h,v 1.2 2019/07/09 07:28:30 adam Exp $
 
 Fixes at least SunOS.
+
 --- src/mongo/base/initializer.h.orig  2014-04-07 00:36:57.000000000 +0000
 +++ src/mongo/base/initializer.h
 @@ -17,6 +17,7 @@
Index: pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_random.cpp
diff -u pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_random.cpp:1.1 pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_random.cpp:1.2
--- pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_random.cpp:1.1   Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_random.cpp       Tue Jul  9 07:28:30 2019
@@ -1,6 +1,7 @@
-$NetBSD: patch-src_mongo_platform_random.cpp,v 1.1 2019/06/28 16:30:56 gdt Exp $
+$NetBSD: patch-src_mongo_platform_random.cpp,v 1.2 2019/07/09 07:28:30 adam Exp $
 
 Add NetBSD support.
+
 --- src/mongo/platform/random.cpp.orig 2016-01-05 18:31:44.000000000 +0000
 +++ src/mongo/platform/random.cpp
 @@ -145,7 +145,7 @@ SecureRandom* SecureRandom::create() {
Index: pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__netbsd.cpp
diff -u pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__netbsd.cpp:1.1 pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__netbsd.cpp:1.2
--- pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__netbsd.cpp:1.1   Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__netbsd.cpp       Tue Jul  9 07:28:30 2019
@@ -1,63 +1,23 @@
-$NetBSD: patch-src_mongo_platform_stack__locator__netbsd.cpp,v 1.1 2019/06/28 16:30:56 gdt Exp $
+$NetBSD: patch-src_mongo_platform_stack__locator__netbsd.cpp,v 1.2 2019/07/09 07:28:30 adam Exp $
 
---- src/mongo/platform/stack_locator_netbsd.cpp.orig   2016-02-11 12:24:33.443209041 +0000
+Add NetBSD support.
+
+--- src/mongo/platform/stack_locator_netbsd.cpp.orig   2019-07-08 19:30:20.000000000 +0000
 +++ src/mongo/platform/stack_locator_netbsd.cpp
-@@ -0,0 +1,58 @@
-+/**
-+ *    Copyright (C) 2015 MongoDB Inc.
-+ *
-+ *    This program is free software: you can redistribute it and/or  modify
-+ *    it under the terms of the GNU Affero General Public License, version 3,
-+ *    as published by the Free Software Foundation.
-+ *
-+ *    This program is distributed in the hope that it will be useful,
-+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *    GNU Affero General Public License for more details.
-+ *
-+ *    You should have received a copy of the GNU Affero General Public License
-+ *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+ *
-+ *    As a special exception, the copyright holders give permission to link the
-+ *    code of portions of this program with the OpenSSL library under certain
-+ *    conditions as described in each individual source file and distribute
-+ *    linked combinations including the program with the OpenSSL library. You
-+ *    must comply with the GNU Affero General Public License in all respects for
-+ *    all of the code used other than as permitted herein. If you modify file(s)
-+ *    with this exception, you may extend this exception to your version of the
-+ *    file(s), but you are not obligated to do so. If you do not wish to do so,
-+ *    delete this exception statement from your version. If you delete this
-+ *    exception statement from all source files in the program, then also delete
-+ *    it in the license file.
-+ */
-+
-+#include "mongo/platform/basic.h"
-+
-+#include "mongo/platform/stack_locator.h"
-+
-+#include <pthread.h>
-+
-+
-+#include "mongo/util/assert_util.h"
-+#include "mongo/util/scopeguard.h"
-+
-+namespace mongo {
-+
-+StackLocator::StackLocator() {
-+    pthread_attr_t attr;
-+    size_t size;
-+
-+    pthread_t self = pthread_self();
-+
-+    invariant(pthread_attr_init(&attr) == 0);
-+    ON_BLOCK_EXIT(pthread_attr_destroy, &attr);
-+
-+    invariant(pthread_attr_get_np(self, &attr) == 0);
-+
-+    invariant(pthread_attr_getstack(&attr, &_end, &size) == 0);
-+
-+    // TODO: Assumes stack grows downward on FreeBSD
-+    _begin = static_cast<char*>(_end) + size;
-+}
-+
-+}  // namespace mongo
+@@ -31,7 +31,6 @@
+ #include "mongo/platform/stack_locator.h"
+ 
+ #include <pthread.h>
+-#include <pthread_np.h>
+ 
+ #include "mongo/util/assert_util.h"
+ #include "mongo/util/scopeguard.h"
+@@ -51,7 +50,7 @@ StackLocator::StackLocator() {
+ 
+     invariant(pthread_attr_getstack(&attr, &_end, &size) == 0);
+ 
+-    // TODO: Assumes stack grows downward on FreeBSD
++    // TODO: Assumes stack grows downward on NetBSD
+     _begin = static_cast<char*>(_end) + size;
+ }
+ 
Index: pkgsrc/databases/mongodb3/patches/patch-src_mongo_shell_linenoise__utf8.h
diff -u pkgsrc/databases/mongodb3/patches/patch-src_mongo_shell_linenoise__utf8.h:1.1 pkgsrc/databases/mongodb3/patches/patch-src_mongo_shell_linenoise__utf8.h:1.2
--- pkgsrc/databases/mongodb3/patches/patch-src_mongo_shell_linenoise__utf8.h:1.1       Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/patches/patch-src_mongo_shell_linenoise__utf8.h   Tue Jul  9 07:28:30 2019
@@ -1,6 +1,7 @@
-$NetBSD: patch-src_mongo_shell_linenoise__utf8.h,v 1.1 2019/06/28 16:30:56 gdt Exp $
+$NetBSD: patch-src_mongo_shell_linenoise__utf8.h,v 1.2 2019/07/09 07:28:30 adam Exp $
 
 Use Boost swap instead of std. Fixes build on SunOS.
+
 --- src/mongo/shell/linenoise_utf8.h.orig      2016-01-05 18:31:44.000000000 +0000
 +++ src/mongo/shell/linenoise_utf8.h
 @@ -27,6 +27,7 @@
Index: pkgsrc/databases/mongodb3/patches/patch-src_mongo_util_processinfo__netbsd.cpp
diff -u pkgsrc/databases/mongodb3/patches/patch-src_mongo_util_processinfo__netbsd.cpp:1.1 pkgsrc/databases/mongodb3/patches/patch-src_mongo_util_processinfo__netbsd.cpp:1.2
--- pkgsrc/databases/mongodb3/patches/patch-src_mongo_util_processinfo__netbsd.cpp:1.1  Fri Jun 28 16:30:56 2019
+++ pkgsrc/databases/mongodb3/patches/patch-src_mongo_util_processinfo__netbsd.cpp      Tue Jul  9 07:28:30 2019
@@ -1,217 +1,50 @@
-$NetBSD: patch-src_mongo_util_processinfo__netbsd.cpp,v 1.1 2019/06/28 16:30:56 gdt Exp $
+$NetBSD: patch-src_mongo_util_processinfo__netbsd.cpp,v 1.2 2019/07/09 07:28:30 adam Exp $
 
---- src/mongo/util/processinfo_netbsd.cpp.orig 2017-06-24 01:47:17.271883765 +0000
+Add NetBSD support.
+
+--- src/mongo/util/processinfo_netbsd.cpp.orig 2019-07-08 19:34:24.000000000 +0000
 +++ src/mongo/util/processinfo_netbsd.cpp
-@@ -0,0 +1,212 @@
-+/*    Copyright 2012 10gen Inc.
-+ *
-+ *    This program is free software: you can redistribute it and/or  modify
-+ *    it under the terms of the GNU Affero General Public License, version 3,
-+ *    as published by the Free Software Foundation.
-+ *
-+ *    This program is distributed in the hope that it will be useful,
-+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *    GNU Affero General Public License for more details.
-+ *
-+ *    You should have received a copy of the GNU Affero General Public License
-+ *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+ *
-+ *    As a special exception, the copyright holders give permission to link the
-+ *    code of portions of this program with the OpenSSL library under certain
-+ *    conditions as described in each individual source file and distribute
-+ *    linked combinations including the program with the OpenSSL library. You
-+ *    must comply with the GNU Affero General Public License in all respects
-+ *    for all of the code used other than as permitted herein. If you modify
-+ *    file(s) with this exception, you may extend this exception to your
-+ *    version of the file(s), but you are not obligated to do so. If you do not
-+ *    wish to do so, delete this exception statement from your version. If you
-+ *    delete this exception statement from all source files in the program,
-+ *    then also delete it in the license file.
-+ */
-+
-+#if defined(__NetBSD__)
+@@ -25,6 +25,8 @@
+  *    then also delete it in the license file.
+  */
+ 
 +#define _KMEMUSER
-+#endif
-+
-+#define MONGO_LOG_DEFAULT_COMPONENT ::mongo::logger::LogComponent::kControl
-+
-+#include <cstdlib>
-+#include <string>
-+
-+#include <kvm.h>
-+#include <sys/file.h>
-+#include <sys/mman.h>
-+#include <sys/param.h>
-+#include <sys/sysctl.h>
-+#include <sys/types.h>
-+#include <sys/vmmeter.h>
-+#include <unistd.h>
-+
-+#include "mongo/util/scopeguard.h"
-+#include "mongo/util/log.h"
-+#include "processinfo.h"
-+
-+using namespace std;
-+
-+namespace mongo {
-+
-+ProcessInfo::ProcessInfo(ProcessId pid) : _pid(pid) {}
-+
-+ProcessInfo::~ProcessInfo() {}
-+
-+/**
-+ * Get a sysctl string value by name.  Use string specialization by default.
-+ */
-+template <typename T>
-+int getSysctlByIDWithDefault(const int* sysctlID,
-+                             const int idLen,
-+                             const T& defaultValue,
-+                             T* result);
-+
-+template <>
-+int getSysctlByIDWithDefault<uintptr_t>(const int* sysctlID,
-+                                        const int idLen,
-+                                        const uintptr_t& defaultValue,
-+                                        uintptr_t* result) {
-+    uintptr_t value = 0;
-+    size_t len = sizeof(value);
-+    if (sysctl(sysctlID, idLen, &value, &len, NULL, 0) == -1) {
-+        *result = defaultValue;
-+        return errno;
-+    }
-+    if (len > sizeof(value)) {
-+        *result = defaultValue;
-+        return EINVAL;
-+    }
-+
-+    *result = value;
-+    return 0;
-+}
-+
-+template <>
-+int getSysctlByIDWithDefault<string>(const int* sysctlID,
-+                                     const int idLen,
-+                                     const string& defaultValue,
-+                                     string* result) {
-+    char value[256] = {0};
-+    size_t len = sizeof(value);
-+    if (sysctl(sysctlID, idLen, &value, &len, NULL, 0) == -1) {
-+        *result = defaultValue;
-+        return errno;
-+    }
-+    *result = value;
-+    return 0;
-+}
-+
-+bool ProcessInfo::checkNumaEnabled() {
-+    return false;
-+}
-+
-+int ProcessInfo::getVirtualMemorySize() {
-+    kvm_t* kd = NULL;
-+    int cnt = 0;
-+    char err[_POSIX2_LINE_MAX] = {0};
-+    if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, err)) == NULL) {
-+        log() << "Unable to get virt mem size: " << err << endl;
-+        return -1;
-+    }
 +
+ #define MONGO_LOG_DEFAULT_COMPONENT ::mongo::logger::LogComponent::kControl
+ 
+ #include <cstdlib>
+@@ -36,7 +38,6 @@
+ #include <sys/param.h>
+ #include <sys/sysctl.h>
+ #include <sys/types.h>
+-#include <sys/user.h>
+ #include <sys/vmmeter.h>
+ #include <unistd.h>
+ 
+@@ -109,7 +110,7 @@ int ProcessInfo::getVirtualMemorySize() 
+         return -1;
+     }
+ 
+-    kinfo_proc* task = kvm_getprocs(kd, KERN_PROC_PID, _pid.toNative(), sizeof(kinfo_proc), &cnt);
 +    kinfo_proc2* task = kvm_getproc2(kd, KERN_PROC_PID, _pid.toNative(), sizeof(kinfo_proc2), &cnt);
-+    kvm_close(kd);
-+    return ((task->p_vm_dsize + task->p_vm_ssize + task->p_vm_tsize) * sysconf(_SC_PAGESIZE)) /
-+        1048576;
-+}
-+
-+int ProcessInfo::getResidentSize() {
-+    kvm_t* kd = NULL;
-+    int cnt = 0;
-+    char err[_POSIX2_LINE_MAX] = {0};
-+    if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, err)) == NULL) {
-+        log() << "Unable to get res mem size: " << err << endl;
-+        return -1;
-+    }
+     kvm_close(kd);
+     return ((task->p_vm_dsize + task->p_vm_ssize + task->p_vm_tsize) * sysconf(_SC_PAGESIZE)) /
+         1048576;
+@@ -123,7 +124,7 @@ int ProcessInfo::getResidentSize() {
+         log() << "Unable to get res mem size: " << err;
+         return -1;
+     }
+-    kinfo_proc* task = kvm_getprocs(kd, KERN_PROC_PID, _pid.toNative(), sizeof(kinfo_proc), &cnt);
 +    kinfo_proc2* task = kvm_getproc2(kd, KERN_PROC_PID, _pid.toNative(), sizeof(kinfo_proc2), &cnt);
-+    kvm_close(kd);
-+    return (task->p_vm_rssize * sysconf(_SC_PAGESIZE)) / 1048576;  // convert from pages to MB
-+}
-+
-+double ProcessInfo::getSystemMemoryPressurePercentage() {
-+    return 0.0;
-+}
-+
-+void ProcessInfo::SystemInfo::collectSystemInfo() {
-+    osType = "BSD";
+     kvm_close(kd);
+     return (task->p_vm_rssize * sysconf(_SC_PAGESIZE)) / 1048576;  // convert from pages to MB
+ }
+@@ -134,7 +135,7 @@ double ProcessInfo::getSystemMemoryPress
+ 
+ void ProcessInfo::SystemInfo::collectSystemInfo() {
+     osType = "BSD";
+-    osName = "OpenBSD";
 +    osName = "NetBSD";
-+    int mib[2];
-+
-+    mib[0] = CTL_KERN;
-+    mib[1] = KERN_VERSION;
-+    int status = getSysctlByIDWithDefault(mib, 2, string("unknown"), &osVersion);
-+    if (status != 0)
-+        log() << "Unable to collect OS Version. (errno: " << status << " msg: " << strerror(status)
-+              << ")" << endl;
-+
-+    mib[0] = CTL_HW;
-+    mib[1] = HW_MACHINE;
-+    status = getSysctlByIDWithDefault(mib, 2, string("unknown"), &cpuArch);
-+    if (status != 0)
-+        log() << "Unable to collect Machine Architecture. (errno: " << status
-+              << " msg: " << strerror(status) << ")" << endl;
-+    addrSize = cpuArch.find("64") != std::string::npos ? 64 : 32;
-+
-+    uintptr_t numBuffer;
-+    uintptr_t defaultNum = 1;
-+    mib[0] = CTL_HW;
-+    mib[1] = HW_PHYSMEM;
-+    status = getSysctlByIDWithDefault(mib, 2, defaultNum, &numBuffer);
-+    memSize = numBuffer;
-+    if (status != 0)
-+        log() << "Unable to collect Physical Memory. (errno: " << status
-+              << " msg: " << strerror(status) << ")" << endl;
-+
-+    mib[0] = CTL_HW;
-+    mib[1] = HW_NCPU;
-+    status = getSysctlByIDWithDefault(mib, 2, defaultNum, &numBuffer);
-+    numCores = numBuffer;
-+    if (status != 0)
-+        log() << "Unable to collect Number of CPUs. (errno: " << status
-+              << " msg: " << strerror(status) << ")" << endl;
-+
-+    pageSize = static_cast<unsigned long long>(sysconf(_SC_PAGESIZE));
-+
-+    hasNuma = checkNumaEnabled();
-+}
-+
-+void ProcessInfo::getExtraInfo(BSONObjBuilder& info) {}
-+
-+bool ProcessInfo::supported() {
-+    return true;
-+}
-+
-+bool ProcessInfo::blockCheckSupported() {
-+    return true;
-+}
-+
-+bool ProcessInfo::blockInMemory(const void* start) {
-+    char x = 0;
-+    if (mincore((void*)alignToStartOfPage(start), getPageSize(), &x)) {
-+        log() << "mincore failed: " << errnoWithDescription() << endl;
-+        return 1;
-+    }
-+    return x & 0x1;
-+}
-+
-+bool ProcessInfo::pagesInMemory(const void* start, size_t numPages, 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;
-+        return false;
-+    }
-+    for (size_t i = 0; i < numPages; ++i) {
-+        (*out)[i] = 0x1;
-+    }
-+    return true;
-+}
-+}
+     int mib[2];
+ 
+     mib[0] = CTL_KERN;



Home | Main Index | Thread Index | Old Index