Unverified Commit 3642d686 authored by Doron Behar's avatar Doron Behar Committed by GitHub
Browse files

mjolnir: refactor, 1.9.1 -> 1.9.2, fix building (#403356)

parents 39fbbb7b 71ab0b5f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ let

  # these config files will be merged one after the other to build the final config
  configFiles = [
    "${pkgs.mjolnir}/libexec/mjolnir/deps/mjolnir/config/default.yaml"
    "${pkgs.mjolnir}/lib/node_modules/mjolnir/config/default.yaml"
    moduleConfigFile
  ];

+0 −75
Original line number Diff line number Diff line
{
  "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"
}
+26 −29
Original line number Diff line number Diff line
{
  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 ];
  nativeBuildInputs = [
    yarnConfigHook
    yarnBuildHook
    yarnInstallHook
    nodejs
    makeWrapper
  ];

  buildPhase = ''
    runHook preBuild
  postInstall = ''
    cp -r lib/* $out/lib/node_modules/mjolnir/lib/

    pushd deps/${pname}
    yarn run build
    popd
    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

    runHook postBuild
  '';

  postInstall = ''
    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";
  };
}
})