From 9474df2285f83e720ad2fd3e979d4458b6f1922c Mon Sep 17 00:00:00 2001 From: pacien Date: Sun, 27 Dec 2020 12:56:57 +0100 Subject: matrix-appservice-discord: 0.5.2 -> 1.0.0 Upstream now uses Yarn instead of NPM, so we now use yarn2nix instead of node2nix. --- pkgs/servers/matrix-appservice-discord/default.nix | 79 ++++++++++++++++++---- 1 file changed, 65 insertions(+), 14 deletions(-) (limited to 'pkgs/servers/matrix-appservice-discord/default.nix') diff --git a/pkgs/servers/matrix-appservice-discord/default.nix b/pkgs/servers/matrix-appservice-discord/default.nix index beb3ad70c79..4a41f019e17 100644 --- a/pkgs/servers/matrix-appservice-discord/default.nix +++ b/pkgs/servers/matrix-appservice-discord/default.nix @@ -1,29 +1,80 @@ -{ pkgs, nodejs, stdenv }: +{ lib, mkYarnPackage, fetchFromGitHub, runCommand, makeWrapper, python, nodejs }: + +assert lib.versionAtLeast nodejs.version "12.0.0"; let - nodePackages = import ./node-composition.nix { - inherit pkgs nodejs; - inherit (stdenv.hostPlatform) system; + nodeSources = runCommand "node-sources" {} '' + tar --no-same-owner --no-same-permissions -xf "${nodejs.src}" + mv node-* $out + ''; + +in mkYarnPackage rec { + pname = "matrix-appservice-discord"; + + # when updating, run `./generate.sh ` + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "Half-Shot"; + repo = "matrix-appservice-discord"; + rev = "v${version}"; + sha256 = "0pca4jxxl4b8irvb1bacsrzjg8m7frq9dnx1knnd2n6ia3f3x545"; }; -in nodePackages."matrix-appservice-discord-git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2".override { - nativeBuildInputs = [ pkgs.makeWrapper ]; + packageJSON = ./package.json; + yarnNix = ./yarn-dependencies.nix; + + pkgConfig = { + better-sqlite3 = { + buildInputs = [ python ]; + postInstall = '' + # build native sqlite bindings + npm run build-release --offline --nodedir="${nodeSources}" + ''; + }; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildPhase = '' + # compile TypeScript sources + yarn --offline build + ''; + + doCheck = true; + checkPhase = '' + yarn --offline test + ''; postInstall = '' - # compile Typescript sources - npm run build + OUT_JS_DIR="$out/${passthru.nodeAppDir}/build" # server wrapper - makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord" \ - --add-flags "$out/lib/node_modules/matrix-appservice-discord/build/src/discordas.js" + makeWrapper '${nodejs}/bin/node' "$out/bin/${pname}" \ + --add-flags "$OUT_JS_DIR/src/discordas.js" # admin tools wrappers - for toolPath in $out/lib/node_modules/matrix-appservice-discord/build/tools/*; do - makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord-$(basename $toolPath .js)" \ + for toolPath in $OUT_JS_DIR/tools/*; do + makeWrapper '${nodejs}/bin/node' "$out/bin/${pname}-$(basename $toolPath .js)" \ --add-flags "$toolPath" done ''; - # other metadata generated and inherited from ./node-package.nix - meta.maintainers = with stdenv.lib.maintainers; [ pacien ]; + # don't generate the dist tarball + # (`doDist = false` does not work in mkYarnPackage) + distPhase = '' + true + ''; + + passthru = { + nodeAppDir = "libexec/${pname}/deps/${pname}"; + }; + + meta = { + description = "A bridge between Matrix and Discord"; + homepage = "https://github.com/Half-Shot/matrix-appservice-discord"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ pacien ]; + platforms = lib.platforms.linux; + }; } -- cgit 1.4.1 From 92f62de6f1ee9c9e31a8432ad222e79deef2ad87 Mon Sep 17 00:00:00 2001 From: pacien Date: Sun, 6 Jun 2021 16:09:19 +0200 Subject: matrix-appservice-discord: increase test timeout Hydra and my local machine are sometimes hitting the default timeout. See https://hydra.nixos.org/build/138032455/nixlog/8/tail --- pkgs/servers/matrix-appservice-discord/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'pkgs/servers/matrix-appservice-discord/default.nix') diff --git a/pkgs/servers/matrix-appservice-discord/default.nix b/pkgs/servers/matrix-appservice-discord/default.nix index 4a41f019e17..7b7a67821f9 100644 --- a/pkgs/servers/matrix-appservice-discord/default.nix +++ b/pkgs/servers/matrix-appservice-discord/default.nix @@ -43,7 +43,8 @@ in mkYarnPackage rec { doCheck = true; checkPhase = '' - yarn --offline test + # the default 2000ms timeout is sometimes too short on our busy builders + yarn --offline test --timeout 10000 ''; postInstall = '' -- cgit 1.4.1