mjolnir: refactor, 1.9.1 -> 1.9.2, fix building

This commit is contained in:
Tristan Ross 2025-05-01 09:42:12 -07:00
parent 98195dde7b
commit d69e8bbf34
No known key found for this signature in database
GPG key ID: B09C422035669AF8
2 changed files with 27 additions and 105 deletions

View file

@ -1,75 +0,0 @@
{
"name": "mjolnir",
"version": "1.9.1",
"description": "A moderation tool for Matrix",
"main": "lib/index.js",
"repository": "git@github.com:matrix-org/mjolnir.git",
"author": "The Matrix.org Foundation C.I.C.",
"license": "Apache-2.0",
"private": true,
"scripts": {
"build": "tsc",
"postbuild": "rm -rf lib/test/ && cp -r lib/src/* lib/ && rm -rf lib/src/",
"lint": "tslint --project ./tsconfig.json -t stylish && npx prettier . --check",
"start:dev": "yarn build && node --async-stack-traces lib/index.js",
"test": "ts-mocha --project ./tsconfig.json test/commands/**/*.ts",
"test:integration": "NODE_ENV=harness ts-mocha --async-stack-traces --require test/integration/fixtures.ts --timeout 300000 --project ./tsconfig.json \"test/integration/**/*Test.ts\"",
"test:integration:single": "NODE_ENV=harness npx ts-mocha --require test/integration/fixtures.ts --timeout 300000 --project ./tsconfig.json",
"test:appservice:integration": "NODE_ENV=harness ts-mocha --async-stack-traces --timeout 300000 --project ./tsconfig.json \"test/appservice/integration/**/*Test.ts\"",
"test:appservice:integration:single": "NODE_ENV=harness npx ts-mocha --timeout 300000 --project ./tsconfig.json",
"test:manual": "NODE_ENV=harness ts-node test/integration/manualLaunchScript.ts",
"version": "sed -i '/# version automated/s/[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*/'$npm_package_version'/' synapse_antispam/setup.py && git add synapse_antispam/setup.py && cat synapse_antispam/setup.py"
},
"devDependencies": {
"@types/config": "^3.3.0",
"@types/crypto-js": "^4.0.2",
"@types/express": "^4.17.13",
"@types/html-to-text": "^8.0.1",
"@types/humanize-duration": "^3.27.1",
"@types/js-yaml": "^4.0.5",
"@types/jsdom": "^16.2.11",
"@types/mocha": "^9.0.0",
"@types/nedb": "^1.8.12",
"@types/node": "^18.0.0",
"@types/pg": "^8.6.5",
"@types/request": "^2.48.8",
"@types/shell-quote": "1.7.1",
"crypto-js": "^4.2.0",
"eslint": "^7.32",
"expect": "^27.0.6",
"mocha": "^9.0.1",
"ts-mocha": "^9.0.2",
"tslint": "^6.1.3",
"typescript": "^4.8.4",
"typescript-formatter": "^7.2"
},
"dependencies": {
"@sentry/node": "^7.17.2",
"@sentry/tracing": "^7.17.2",
"@tensorflow/tfjs-node": "^4.21.0",
"@vector-im/matrix-bot-sdk": "^0.7.1-element.6",
"await-lock": "^2.2.2",
"axios": "^1.7.6",
"body-parser": "^1.20.1",
"config": "^3.3.8",
"express": "^4.20",
"html-to-text": "^8.0.0",
"humanize-duration": "^3.27.1",
"humanize-duration-ts": "^2.1.1",
"js-yaml": "^4.1.0",
"jsdom": "^16.6.0",
"lru-cache": "^11.0.1",
"matrix-appservice-bridge": "10.3.1",
"nsfwjs": "^4.1.0",
"parse-duration": "^1.0.2",
"pg": "^8.8.0",
"prom-client": "^14.1.0",
"shell-quote": "^1.7.3",
"ulidx": "^0.3.0",
"yaml": "^2.2.2"
},
"engines": {
"node": ">=20.0.0"
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}

View file

@ -1,23 +1,26 @@
{
lib,
mkYarnPackage,
stdenv,
yarnConfigHook,
yarnBuildHook,
yarnInstallHook,
nodejs,
fetchFromGitHub,
fetchYarnDeps,
matrix-sdk-crypto-nodejs,
makeWrapper,
nodejs,
nixosTests,
}:
mkYarnPackage rec {
stdenv.mkDerivation (finalAttrs: {
pname = "mjolnir";
version = "1.9.1";
version = "1.9.2";
src = fetchFromGitHub {
owner = "matrix-org";
repo = "mjolnir";
tag = "v${version}";
hash = "sha256-LK2CgMLDJHfr1+ejHYeJNw2ekCnUA8GHufZ6vbifzGQ=";
tag = "v${finalAttrs.version}";
hash = "sha256-OxHnCMP6IP0EaAs4YQgmV04tq6IdAYmKQX8O9Q48CPk=";
};
patches = [
@ -25,33 +28,27 @@ mkYarnPackage rec {
./001-disable-nsfwprotection.patch
];
packageJSON = ./package.json;
offlineCache = fetchYarnDeps {
yarnLock = src + "/yarn.lock";
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-1V7ooONt9j+4hk/3w6Dsv/SdWwa1xsLk97EwhuPegNo=";
};
packageResolutions = {
"@matrix-org/matrix-sdk-crypto-nodejs" =
"${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/matrix-sdk-crypto-nodejs";
};
nativeBuildInputs = [ makeWrapper ];
buildPhase = ''
runHook preBuild
pushd deps/${pname}
yarn run build
popd
runHook postBuild
'';
nativeBuildInputs = [
yarnConfigHook
yarnBuildHook
yarnInstallHook
nodejs
makeWrapper
];
postInstall = ''
cp -r lib/* $out/lib/node_modules/mjolnir/lib/
rm -rf $out/lib/node_modules/mjolnir/node_modules/@matrix-org/matrix-sdk-crypto-nodejs
ln -s ${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/matrix-sdk-crypto-nodejs $out/lib/node_modules/mjolnir/node_modules/@matrix-org/matrix-sdk-crypto-nodejs
makeWrapper ${nodejs}/bin/node "$out/bin/mjolnir" \
--add-flags "$out/libexec/mjolnir/deps/mjolnir/lib/index.js"
--add-flags "$out/lib/node_modules/mjolnir/lib/index.js"
'';
passthru = {
@ -60,7 +57,7 @@ mkYarnPackage rec {
};
};
meta = with lib; {
meta = {
description = "Moderation tool for Matrix";
homepage = "https://github.com/matrix-org/mjolnir";
longDescription = ''
@ -77,8 +74,8 @@ mkYarnPackage rec {
A Synapse module is also available to apply the same rulesets the bot
uses across an entire homeserver.
'';
license = licenses.asl20;
maintainers = with maintainers; [ jojosch ];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jojosch ];
mainProgram = "mjolnir";
};
}
})