summaryrefslogtreecommitdiff
path: root/databases/mongosh
diff options
context:
space:
mode:
Diffstat (limited to 'databases/mongosh')
-rw-r--r--databases/mongosh/Makefile85
-rw-r--r--databases/mongosh/distinfo14
-rw-r--r--databases/mongosh/files/node-modules-patches/patch-node__modules_kerberos_binding.gyp2
-rw-r--r--databases/mongosh/files/node-modules-patches/patch-node__modules_mongodb-client-encryption_binding.gyp4
-rw-r--r--databases/mongosh/files/patch-package.json23
-rw-r--r--databases/mongosh/files/patch-scripts_nodejs-patches_002-workaround-node-bug-5222918
-rw-r--r--databases/mongosh/files/patch-scripts_sort-workspaces.js11
7 files changed, 76 insertions, 81 deletions
diff --git a/databases/mongosh/Makefile b/databases/mongosh/Makefile
index 17cbfe1d4938..20b496a4107c 100644
--- a/databases/mongosh/Makefile
+++ b/databases/mongosh/Makefile
@@ -1,6 +1,6 @@
PORTNAME= mongosh
DISTVERSIONPREFIX= v
-DISTVERSION= 2.3.8
+DISTVERSION= 2.5.5
CATEGORIES= databases shells net
MASTER_SITES= https://registry.npmjs.org/mongodb-client-encryption/-/:mongocrypt \
https://registry.npmjs.org/kerberos/-/:kerberos \
@@ -26,31 +26,33 @@ ONLY_FOR_ARCHS= amd64
# issue created upstream https://github.com/nrwl/nx/issues/29257
PATCH_DEPENDS= npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX}
-BUILD_DEPENDS= brotli>=1.0.9,1:archivers/brotli \
- c-ares>=1.17.2:dns/c-ares \
- libnghttp2>=1.45.1:www/libnghttp2 \
- libuv>=1.42.0:devel/libuv \
- objdump:devel/binutils \
+BUILD_DEPENDS= objdump:devel/binutils \
bash>0:shells/bash \
git>0:devel/git
LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
libcares.so:dns/c-ares \
+ libicui18n.so:devel/icu \
libnghttp2.so:www/libnghttp2 \
+ libnghttp3.so:www/libnghttp3 \
+ libngtcp2.so:net/libngtcp2 \
+ libsimdjson.so:devel/simdjson \
libuv.so:devel/libuv \
+ libzstd.so:archivers/zstd \
libmongocrypt.so:databases/libmongocrypt
RUN_DEPENDS= ca_root_nss>=0:security/ca_root_nss
-USES= compiler:c++11-lib gmake gssapi:mit localbase nodejs:lts,build pkgconfig python:build ssl tar:xz
+USES= compiler:c++11-lang gmake gssapi:mit localbase nodejs:lts,build pkgconfig python:build ssl tar:xz
USE_GITHUB= yes
GH_ACCOUNT= VultureProject
GH_PROJECT= mongosh
-CUSTOM_ENV= SEGMENT_API_KEY=dummy GYP_DEFINES="libmongocrypt_link_type=dynamic"
+CUSTOM_ENV= SEGMENT_API_KEY=dummy GYP_DEFINES="libmongocrypt_link_type=dynamic" PUPPETEER_SKIP_DOWNLOAD=1 NPM_CONFIG_CACHE=${NPM_CACHE_DIR}
CONFIGURE_ENV= ${CUSTOM_ENV}
MAKE_ENV= ${CUSTOM_ENV} \
- NODE_JS_VERSION=file://${_DISTDIR}/${NODEJS_TARBALL} \
- BOXEDNODE_CONFIGURE_ARGS="--shared-brotli,--shared-cares,--shared-libuv,--shared-nghttp2,--shared-zlib,--shared-openssl,--openssl-use-def-ca-store,--without-npm"
+ NODE_JS_VERSION=file://${DISTDIR}/${DIST_SUBDIR}/${NODEJS_TARBALL} \
+ BOXEDNODE_CONFIGURE_ARGS="--prefix=${PREFIX:S|^${DESTDIR}||},--shared-brotli,--shared-cares,--shared-libuv,--shared-nghttp2,--shared-nghttp3,--shared-ngtcp2,--shared-simdjson,--shared-zlib,--shared-zstd,--shared-openssl,--openssl-use-def-ca-store,--with-intl=system-icu,--without-npm" \
+ BOXEDNODE_MAKE_ARGS="V=0"
CXXFLAGS+= -DNODE_API_EXPERIMENTAL \
-DNODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT
@@ -58,43 +60,47 @@ REINPLACE_ARGS= -i ''
MPROTECT_DISABLE= bin/mongosh
-MONGO_CRYPT_VER=6.1.0
+MONGO_CRYPT_VER=6.4.0
KERBEROS_VER= 2.1.0
OSDNSNATIVE_VER=1.2.1
NODE_MODULES_DIR= ${WRKSRC}/node_modules
NODE_MODULES_TARBALL= ${PORTNAME}-${DISTVERSIONFULL}-${ARCH}-node-modules.tar.xz
-NPM_CACHE_DIR= /tmp/.npm
+NPM_CACHE_DIR= ${TMPDIR}/.npm
NODEJS_TARBALL= node-v${NODEJS_PORTVERSION}.tar.gz
+NODEJS_SHAFILE= node-v${NODEJS_PORTVERSION}-SHASUMS256.txt
post-fetch:
-.if !exists(/tmp/checkpoint)
- ${FETCH_CMD} -o ${_DISTDIR} https://nodejs.org/dist/v${NODEJS_PORTVERSION}/${NODEJS_TARBALL}
- ${FETCH_CMD} -o ${_DISTDIR} https://nodejs.org/dist/v${NODEJS_PORTVERSION}/SHASUMS256.txt
- ${TOUCH} /tmp/checkpoint
-.endif
+ if [ ! -r ${DISTDIR}/${DIST_SUBDIR}/${NODEJS_TARBALL} -o ! -r ${DISTDIR}/${DIST_SUBDIR}/${NODEJS_SHAFILE} ]; then \
+ ${FETCH_CMD} -o ${DISTDIR}/${DIST_SUBDIR} https://nodejs.org/dist/v${NODEJS_PORTVERSION}/${NODEJS_TARBALL}; \
+ ${FETCH_CMD} -o ${DISTDIR}/${DIST_SUBDIR}/${NODEJS_SHAFILE} https://nodejs.org/dist/v${NODEJS_PORTVERSION}/SHASUMS256.txt; \
+ fi
post-extract:
.if !exists(${NODE_MODULES_DIR})
- ${TAR} -xzf ${_DISTDIR}/${NODE_MODULES_TARBALL} -C ${WRKSRC}
- ${REINPLACE_CMD} -e "s/'make'/'gmake'/g" \
- -e "s/'V='/'V=0'/g" \
- -e 's/(await (0, nv_1.default)(range)).pop()/{"version": "${NODEJS_PORTVERSION}"}/g' \
- -e "s|\$${releaseBaseUrl}/\(SHASUMS256.txt\)|${_DISTDIR}/\1|g" \
- -e 's/await (0, node_fetch_1.default)(shaSumsUrl)/{"ok":1}/g' \
+ ${TAR} -xzf ${DISTDIR}/${DIST_SUBDIR}/${NODE_MODULES_TARBALL} -C ${WRKSRC}
+ ${MKDIR} -v ${WRKDIR}/boxednode/mongosh
+ ${REINPLACE_CMD} -e "s|'make'|'${GMAKE}'|g" \
+ -e "s/if (inputIsFileUrl)/if (false)/g" \
+ -e 's/(await nv_1.default(range)).pop()/{"version":"${NODEJS_PORTVERSION}"}/g' \
+ -e 's/path_1.default.join(dir, tarballName)/url_1.fileURLToPath(range)/g' \
+ -e "s|\$${releaseBaseUrl}/SHASUMS256.txt|${DISTDIR}/${DIST_SUBDIR}/${NODEJS_SHAFILE}|g" \
+ -e 's/await node_fetch_1.default(shaSumsUrl)/{"ok":1}/g' \
-e "s/shaSums.text()/fs_1.promises.readFile(shaSumsUrl, 'utf8')/g" \
-e "s/catch (_a) { }/catch (_a) { console.error(_a) }/g" \
+ -e "s|os_1.default.tmpdir()|'${WRKDIR}'|g" \
${NODE_MODULES_DIR}/boxednode/lib/index.js
- ${GREP} -A20 "const shaSumsUrl" ${NODE_MODULES_DIR}/boxednode/lib/index.js
- ${REINPLACE_CMD} -e "s|\('install',\) \('--ignore-scripts'\)|\1 '--offline', '--cache ${NPM_CACHE_DIR}', \2|g" \
+ ${GREP} -A36 "let version;" ${NODE_MODULES_DIR}/boxednode/lib/index.js
+ ${REINPLACE_CMD} -e "s|'install', '--ignore-scripts', '--production'|'--version'|g" \
${NODE_MODULES_DIR}/boxednode/lib/native-addons.js
- ${GREP} "ignore-scripts" ${NODE_MODULES_DIR}/boxednode/lib/native-addons.js
+ ${GREP} "version" ${NODE_MODULES_DIR}/boxednode/lib/native-addons.js
.endif
post-patch:
- ${FIND} ${WRKSRC}/scripts -name "*.orig" -delete
${CP} -v ${FILESDIR}/node-patches/* ${WRKSRC}/scripts/nodejs-patches
do-configure:
+ ${FIND} ${WRKSRC}/scripts -name "*.orig" -delete
+ ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' ${NODE_MODULES_DIR}/mongodb-client-encryption/binding.gyp ${NODE_MODULES_DIR}/kerberos/binding.gyp
.for module in mongodb-client-encryption kerberos os-dns-native
cd ${NODE_MODULES_DIR}/${module} && ${CONFIGURE_ENV} node-gyp configure --nodedir=${LOCALBASE}
.endfor
@@ -103,8 +109,10 @@ do-build:
.for module in mongodb-client-encryption kerberos os-dns-native
cd ${NODE_MODULES_DIR}/${module} && ${MAKE_ENV} ${MAKE_CMD} BUILDTYPE=Release -C build -d
.endfor
- ${REINPLACE_CMD} 's/"version": "0.0.0-dev.0"/"version": "${DISTVERSION}"/g' ${WRKSRC}/packages/cli-repl/package.json
- ${RM} ${WRKSRC}/scripts/nodejs-patches/005-windows-escape-product-dir-abs-in-openssl-node-56111.patch
+ ${REINPLACE_CMD} -E 's/"version": ".*"/"version": "${DISTVERSION}"/g' ${WRKSRC}/packages/cli-repl/package.json
+ ${RM} -v \
+ ${WRKSRC}/scripts/nodejs-patches/005-windows-escape-product-dir-abs-in-openssl-node-56111.patch \
+ ${WRKSRC}/scripts/nodejs-patches/006-windows-virtual-terminal-input-libuv-4688.patch
cd ${WRKSRC} && ${MAKE_ENV} ${LOCALBASE}/bin/npm run compile-exec
do-install:
@@ -128,22 +136,27 @@ npm-pkg-list: extract
.endfor
node-modules-archive: patch
- cd ${WRKSRC} && ${LOCALBASE}/bin/npx cross-env PUPPETEER_SKIP_DOWNLOAD=1 ${LOCALBASE}/bin/npm install --cache ${NPM_CACHE_DIR} --no-audit --no-fund --no-prune
- cd ${WRKSRC} && ${LOCALBASE}/bin/npx cross-env ${LOCALBASE}/bin/npm install ipv6-normalize --cache ${NPM_CACHE_DIR} --no-audit --no-fund --no-prune
+# Comment DISTFILES, post-extract
+ cd ${WRKSRC} && ${LOCALBASE}/bin/npx cross-env ${CONFIGURE_ENV} ${LOCALBASE}/bin/npm clean-install --cache ${NPM_CACHE_DIR} --no-audit --no-fund
+ cd ${WRKSRC} && ${LOCALBASE}/bin/npx cross-env ${CONFIGURE_ENV} ${LOCALBASE}/bin/npm install ipv6-normalize mongodb-redact --cache ${NPM_CACHE_DIR} --no-audit --no-fund
.for module in mongodb-client-encryption kerberos os-dns-native
${MKDIR} -v ${NODE_MODULES_DIR}/${module}
- ${TAR} -xzf ${_DISTDIR}/${module}-*.tgz -C ${NODE_MODULES_DIR}/${module} --strip-components 1
+ ${TAR} -xzf ${DISTDIR}/${DIST_SUBDIR}/${module}-*.tgz -C ${NODE_MODULES_DIR}/${module} --strip-components 1
.endfor
- for f in ${FILESDIR}/node-modules-patches/*; do ${PATCH} -N -d ${WRKSRC} < $$f; done
+ for f in ${FILESDIR}/node-modules-patches/*; do ${PATCH} -Nd ${WRKSRC} < $$f; done
${FIND} ${WRKSRC} -name "*.orig" -or -name "*.bak" -delete
-.for module in mongodb-client-encryption kerberos os-dns-native mongodb-crypt-library-version glibc-version
- cd ${NODE_MODULES_DIR}/${module} && ${CONFIGURE_ENV} ${LOCALBASE}/bin/npm install --ignore-scripts --cache ${NPM_CACHE_DIR} --no-audit --no-fund --no-prune
+.for module in mongodb-client-encryption kerberos os-dns-native mongodb-crypt-library-version glibc-version native-machine-id
+ cd ${NODE_MODULES_DIR}/${module} && ${CONFIGURE_ENV} ${LOCALBASE}/bin/npm install --ignore-scripts --cache ${NPM_CACHE_DIR} --no-audit --no-fund
.endfor
- cd ${WRKSRC} && ${TAR} cf - node_modules | ${LOCALBASE}/bin/pv -s $$(du -sAk node_modules | awk '{print $$1}')000 | xz > /tmp/${NODE_MODULES_TARBALL}
+ cd ${WRKSRC} && ${TAR} cf - node_modules packages/*/node_modules | ${LOCALBASE}/bin/pv -s $$(/usr/bin/du -sAk node_modules | ${AWK} '{print $$1}')000 | ${XZ_CMD} > ${TMPDIR}/${NODE_MODULES_TARBALL}
.include <bsd.port.pre.mk>
.include "${PORTSDIR}/www/node${NODEJS_VERSION}/Makefile.version"
+NODE_WITH_JIT!= ${BSDMAKE} -C ${PORTSDIR}/www/node${NODEJS_VERSION} showconfig | ${GREP} -o "JIT=on" || ${TRUE}
+.if empty(NODE_WITH_JIT)
+IGNORE= www/node${NODEJS_VERSION} must be built with JIT enabled. Run '${BSDMAKE} -C ${PORTSDIR}/www/node${NODEJS_VERSION} config' to enable it.
+.endif
.include <bsd.port.post.mk>
diff --git a/databases/mongosh/distinfo b/databases/mongosh/distinfo
index 9480a247e2b7..3b7c2ef927a2 100644
--- a/databases/mongosh/distinfo
+++ b/databases/mongosh/distinfo
@@ -1,11 +1,11 @@
-TIMESTAMP = 1738594106
-SHA256 (mongosh/mongodb-client-encryption-6.1.0.tgz) = 6a1384d1b9411abcdc25423553a965bd18ee9a4e1052b1c083a53cb11a90b6dd
-SIZE (mongosh/mongodb-client-encryption-6.1.0.tgz) = 30442
+TIMESTAMP = 1752255670
+SHA256 (mongosh/mongodb-client-encryption-6.4.0.tgz) = 5d283c4ee0265e1413166e810d6cbb4d35ace474deae4b056eeea6fd7e92a37b
+SIZE (mongosh/mongodb-client-encryption-6.4.0.tgz) = 32081
SHA256 (mongosh/kerberos-2.1.0.tgz) = eeb1d33472dcf15be8ae46e30ffc76455a62356a91cee52bb8d48f97a35a58c7
SIZE (mongosh/kerberos-2.1.0.tgz) = 28988
SHA256 (mongosh/os-dns-native-1.2.1.tgz) = 9baa54587fed81884735aee59d82eaf95870d344b83f5060a75256f4852d964d
SIZE (mongosh/os-dns-native-1.2.1.tgz) = 6535
-SHA256 (mongosh/mongosh-v2.3.8-amd64-node-modules.tar.xz) = 2b7a04f96596eb13b7b2c9392ca841faebee0c9bfac99c7972df74282d176fe3
-SIZE (mongosh/mongosh-v2.3.8-amd64-node-modules.tar.xz) = 159374104
-SHA256 (mongosh/VultureProject-mongosh-v2.3.8_GH0.tar.gz) = d7a0ae00cdf9ac45eb969796d4cb5d908a7ff025df2d518633cd9fdb24dcd285
-SIZE (mongosh/VultureProject-mongosh-v2.3.8_GH0.tar.gz) = 8259565
+SHA256 (mongosh/mongosh-v2.5.5-amd64-node-modules.tar.xz) = 2d7fe2b2d85f3f5dd86c6cb6fd4eed96a8220120d721aaec4ed7133030bb20eb
+SIZE (mongosh/mongosh-v2.5.5-amd64-node-modules.tar.xz) = 196534152
+SHA256 (mongosh/VultureProject-mongosh-v2.5.5_GH0.tar.gz) = 7efe030b48101f0c7b22304028fbae2b0c09224004a547c6c2268554946526fc
+SIZE (mongosh/VultureProject-mongosh-v2.5.5_GH0.tar.gz) = 9409121
diff --git a/databases/mongosh/files/node-modules-patches/patch-node__modules_kerberos_binding.gyp b/databases/mongosh/files/node-modules-patches/patch-node__modules_kerberos_binding.gyp
index 089a54df37ae..c0f0668169eb 100644
--- a/databases/mongosh/files/node-modules-patches/patch-node__modules_kerberos_binding.gyp
+++ b/databases/mongosh/files/node-modules-patches/patch-node__modules_kerberos_binding.gyp
@@ -15,7 +15,7 @@
- ['(OS=="mac" or OS=="linux") and (kerberos_use_rtld!="true")', {
+ ['(OS=="mac" or OS=="linux" or OS=="freebsd") and (kerberos_use_rtld!="true")', {
+ 'include_dirs': [
-+ '/usr/local/include'
++ '%%LOCALBASE%%/include'
+ ],
'link_settings': {
'libraries': [
diff --git a/databases/mongosh/files/node-modules-patches/patch-node__modules_mongodb-client-encryption_binding.gyp b/databases/mongosh/files/node-modules-patches/patch-node__modules_mongodb-client-encryption_binding.gyp
index c4ad4896eb5c..f29e77d4c33a 100644
--- a/databases/mongosh/files/node-modules-patches/patch-node__modules_mongodb-client-encryption_binding.gyp
+++ b/databases/mongosh/files/node-modules-patches/patch-node__modules_mongodb-client-encryption_binding.gyp
@@ -7,9 +7,9 @@
- 'link_settings': { 'libraries': ['-lmongocrypt'] }
+ 'include_dirs': [
+ '/usr/include',
-+ '/usr/local/include'
++ '%%LOCALBASE%%/include'
+ ],
-+ 'link_settings': { 'libraries': ['-L/usr/local/lib -lmongocrypt'] }
++ 'link_settings': { 'libraries': ['-L%%LOCALBASE%%/lib -lmongocrypt'] }
}],
['libmongocrypt_link_type=="static"', {
'conditions': [
diff --git a/databases/mongosh/files/patch-package.json b/databases/mongosh/files/patch-package.json
index 6ab96895758d..a2ff3090a9ec 100644
--- a/databases/mongosh/files/patch-package.json
+++ b/databases/mongosh/files/patch-package.json
@@ -1,27 +1,18 @@
---- package.json.orig 2024-10-28 16:25:21 UTC
+--- package.json.orig 2025-07-02 13:57:45 UTC
+++ package.json
-@@ -33,7 +33,7 @@
- "start-browser": "npm run start --workspace @mongosh/browser-repl",
- "start": "npm run start-cli",
- "precompile-exec": "npm run compile-cli",
-- "compile-exec": "npm run evergreen-release compile",
-+ "compile-exec": "SEGMENT_API_KEY=dummy npm run evergreen-release compile",
- "compile-all": "npm run compile-compass && npm run compile-exec",
- "evergreen-release": "cd packages/build && npm run evergreen-release --",
- "release": "cd packages/build && npm run release --",
-@@ -66,7 +66,6 @@
+@@ -69,7 +69,6 @@
"postcreate-static-analysis-report": "mongodb-sbom-tools sarif-to-markdown --sarif=.sbom/codeql.sarif.json --md=.sbom/codeql.md",
"where": "monorepo-where",
"reformat": "npm run reformat --workspaces --if-present",
- "prepare": "husky",
"precommit": "precommit",
- "preinstall": "node scripts/sort-workspaces.js"
- },
-@@ -108,7 +107,6 @@
+ "preinstall": "node scripts/sort-workspaces.js",
+ "bump-auxiliary": "npm run bump-auxiliary --workspace @mongosh/build",
+@@ -114,7 +113,6 @@
"duplexpair": "^1.0.2",
"find-up": "^5.0.0",
"glob": "^10.3.12",
- "husky": "^9.0.11",
"mocha": "^10.2.0",
- "mongodb": "^6.9.0",
- "mongodb-runner": "^5.7.0",
+ "mongodb": "^6.16.0",
+ "mongodb-runner": "^5.7.1",
diff --git a/databases/mongosh/files/patch-scripts_nodejs-patches_002-workaround-node-bug-52229 b/databases/mongosh/files/patch-scripts_nodejs-patches_002-workaround-node-bug-52229
index bed349e3cb91..b21fb545eb49 100644
--- a/databases/mongosh/files/patch-scripts_nodejs-patches_002-workaround-node-bug-52229
+++ b/databases/mongosh/files/patch-scripts_nodejs-patches_002-workaround-node-bug-52229
@@ -1,17 +1,19 @@
---- scripts/nodejs-patches/002-workaround-node-bug-52229.orig 2024-05-16 08:32:21 UTC
+--- scripts/nodejs-patches/002-workaround-node-bug-52229.orig 2025-07-02 13:57:45 UTC
+++ scripts/nodejs-patches/002-workaround-node-bug-52229
-@@ -2,13 +2,12 @@ diff --git a/common.gypi b/common.gypi
- index efcd8da84815..fe11453f09b5 100644
+@@ -2,7 +2,7 @@ diff --git a/common.gypi b/common.gypi
+ index 888b8b94ca1a..375956862d2d 100644
--- a/common.gypi
+++ b/common.gypi
--@@ -268,6 +268,9 @@
-+@@ -268,6 +268,8 @@
- # Defines these mostly for node-gyp to pickup.
- 'defines': [
+-@@ -270,7 +270,10 @@
++@@ -270,7 +270,9 @@
'_GLIBCXX_USE_CXX11_ABI=1',
+ # This help forks when building Node.js on a 32-bit arch as
+ # libuv is always compiled with _FILE_OFFSET_BITS=64
+@@ -10,7 +10,6 @@ index 888b8b94ca1a..375956862d2d 100644
+ + '_FILE_OFFSET_BITS=64',
+ # Work around https://github.com/nodejs/node/issues/52229
+ "NODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT=1",
-+ "NAPI_EXPERIMENTAL=1",
],
-
+
# Forcibly disable -Werror. We support a wide range of compilers, it's
diff --git a/databases/mongosh/files/patch-scripts_sort-workspaces.js b/databases/mongosh/files/patch-scripts_sort-workspaces.js
deleted file mode 100644
index 0fe4e6da9222..000000000000
--- a/databases/mongosh/files/patch-scripts_sort-workspaces.js
+++ /dev/null
@@ -1,11 +0,0 @@
---- scripts/sort-workspaces.js.orig 2024-05-03 16:42:16 UTC
-+++ scripts/sort-workspaces.js
-@@ -22,7 +22,7 @@ async function main() {
- ));
-
- // should use the scopes in lerna.json
-- const { stdout } = await exec('npx -y lerna ls --all --no-since --toposort --json');
-+ const { stdout } = await exec('npx -y lerna ls --all --toposort --json');
- packageJSON.workspaces = JSON.parse(stdout).map(({ location }) => path.relative(monorepoRoot, location));
-
- await fs.writeFile(