mongosh: 2.4.2 -> 2.5.1, build from source, disable telemetry by default

This commit is contained in:
Yureka 2025-05-12 09:23:01 +02:00
parent 9cbcbeec98
commit d169c89e07
5 changed files with 55 additions and 6080 deletions

View file

@ -0,0 +1,13 @@
diff --git a/packages/cli-repl/src/cli-repl.ts b/packages/cli-repl/src/cli-repl.ts
index b00c52e1..7a096d6d 100644
--- a/packages/cli-repl/src/cli-repl.ts
+++ b/packages/cli-repl/src/cli-repl.ts
@@ -159,7 +159,7 @@ export class CliRepl implements MongoshIOProvider {
this.config = {
userId: id,
telemetryAnonymousId: id,
- enableTelemetry: true,
+ enableTelemetry: false,
};
this.getCryptLibraryPaths = options.getCryptLibraryPaths;

File diff suppressed because it is too large Load diff

View file

@ -1,38 +1,59 @@
{
lib,
buildNpmPackage,
fetchurl,
fetchFromGitHub,
fetchpatch,
libmongocrypt,
krb5,
testers,
mongosh,
nix-update-script,
}:
let
source = lib.importJSON ./source.json;
in
buildNpmPackage {
buildNpmPackage (finalAttrs: {
pname = "mongosh";
inherit (source) version;
version = "2.5.1";
src = fetchurl {
url = "https://registry.npmjs.org/mongosh/-/${source.filename}";
hash = source.integrity;
src = fetchFromGitHub {
owner = "mongodb-js";
repo = "mongosh";
# Tracking a few commits ahead of 2.5.1 to ensure the package-lock.json patch below applies
#tag = "v${finalAttrs.version}";
rev = "2163e8b10a77af18e0cedfa164526506c051593e";
hash = "sha256-DYX8NqAISwzBpdilcv3YVrL72byXMeC4z/nLqd2nf2c=";
};
postPatch = ''
ln -s ${./package-lock.json} package-lock.json
patches = [
# https://github.com/mongodb-js/mongosh/pull/2452
(fetchpatch {
url = "https://github.com/mongodb-js/mongosh/commit/30f66260fce3e1744298d086bd2b54b2d2bfffbb.patch";
hash = "sha256-c2QM/toeoagfhvuh4r+/5j7ZyV6DEr9brA9mXpEy1kM=";
})
./disable-telemetry.patch
];
npmDepsHash = "sha256-6uXEKAAGXxaODjXIszYml5Af4zSuEzy/QKdMgSzLD84=";
npmFlags = [
"--omit=optional"
"--ignore-scripts"
];
npmBuildScript = "compile";
dontNpmInstall = true;
installPhase = ''
runHook preInstall
npmWorkspace=packages/mongosh npmInstallHook
cp -r packages configs $out/lib/node_modules/mongosh/
rm $out/lib/node_modules/mongosh/node_modules/@mongosh/docker-build-scripts # dangling symlink
runHook postInstall
'';
npmDepsHash = source.deps;
makeCacheWritable = true;
dontNpmBuild = true;
npmFlags = [ "--omit=optional" ];
passthru = {
tests.version = testers.testVersion {
package = mongosh;
package = finalAttrs.finalPackage;
};
updateScript = ./update.sh;
updateScript = nix-update-script { };
};
meta = {
@ -42,4 +63,4 @@ buildNpmPackage {
license = lib.licenses.asl20;
mainProgram = "mongosh";
};
}
})

View file

@ -1,6 +0,0 @@
{
"version": "2.4.2",
"integrity": "sha512-sNgCITVstYsOkHDH05//wGQ/FJnFfq5gHGoHpIMehX/r2vSm3LEcCW366JlLvRmFj/f4NRGjvFI9c1Ks30W+Zw==",
"filename": "mongosh-2.4.2.tgz",
"deps": "sha256-aXjK0cW48nih2nI/m2i25zRpmLQ/KHo0KMiNJSvb13g="
}

View file

@ -1,25 +0,0 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p nodejs libarchive prefetch-npm-deps moreutils jq
# shellcheck shell=bash
set -exuo pipefail
cd -- "$(dirname -- "${BASH_SOURCE[0]}")"
TMPDIR="$(mktemp -d)"
trap 'rm -r -- "$TMPDIR"' EXIT
pushd -- "$TMPDIR"
npm pack mongosh --json | jq '.[0] | { version, integrity, filename }' > source.json
bsdtar -x -f "$(jq -r .filename source.json)"
pushd package
npm install --omit=optional --package-lock-only
popd
DEPS="$(prefetch-npm-deps package/package-lock.json)"
jq ".deps = \"$DEPS\"" source.json | sponge source.json
popd
cp -t . -- "$TMPDIR/source.json" "$TMPDIR/package/package-lock.json"