about summary refs log tree commit diff
path: root/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
diff options
context:
space:
mode:
authorMartin Weinelt <hexa@darmstadt.ccc.de>2022-09-13 14:50:39 +0200
committerMartin Weinelt <hexa@darmstadt.ccc.de>2022-09-13 15:42:14 +0200
commit24d15603add32d3b149bdc95b485fb4163bbecd3 (patch)
tree935b28b224ff46e442b29e2ca8bf9a21e63c4522 /pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
parentcb8c505bc338116efef8d3f6f7c232107c920e9c (diff)
matrix-appservice-irc: 0.34.1 -> 0.35.0
Fetches, injects and patchelfs the rust native crypto bindings for the
two most prominent targets.
Diffstat (limited to 'pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix')
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix32
1 files changed, 30 insertions, 2 deletions
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix b/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
index 020a3a28fe77c..2686b19541fc2 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, nodePackages, makeWrapper, nixosTests, nodejs, stdenv, lib, fetchFromGitHub }:
+{ pkgs, nodePackages, makeWrapper, nixosTests, nodejs, stdenv, lib, fetchFromGitHub, fetchurl, autoPatchelfHook }:
 
 let
   ourNodePackages = import ./node-composition.nix {
@@ -7,6 +7,26 @@ let
   };
   version = (lib.importJSON ./package.json).version;
   srcInfo = lib.importJSON ./src.json;
+
+  # TODO: package matrix-rust-sdk and use that instead of fetching & patching binaries
+  platform = {
+    "x86_64-linux" = "linux-x64-gnu";
+    "aarch64-linux" = "linux-arm64-gnu";
+  }.${stdenv.hostPlatform.system} or
+    (throw "matrix-appservice-irc: Unsupported platform ${stdenv.hostPlatform.system}");
+
+  matrix-sdk-crypto = let
+    version = "0.1.0-beta.1";
+    base = "https://github.com/matrix-org/matrix-rust-sdk/releases/download/matrix-sdk-crypto-nodejs-v${version}";
+  in
+    fetchurl {
+      url = "${base}/matrix-sdk-crypto.${platform}.node";
+      hash = {
+        "x86_64-linux" = "sha256-a6FX+KhHooipIMsJ7Fl7gmUBt8WbTUgT6sXN4N3NXRk=";
+        "aarch64-linux" = "sha256-jvr6gMTQ4aAk5x0iXpA28ADdaCgDpvOjmogd52Z6bIY=";
+      }.${stdenv.hostPlatform.system} or
+        (throw "matrix-appservice-irc: Unsupported platform ${stdenv.hostPlatform.system}");
+    };
 in
 ourNodePackages.package.override {
   pname = "matrix-appservice-irc";
@@ -19,11 +39,18 @@ ourNodePackages.package.override {
     inherit (srcInfo) sha256;
   };
 
-  nativeBuildInputs = [ makeWrapper nodePackages.node-gyp-build ];
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper nodePackages.node-gyp-build ];
+
+  dontAutoPatchelf = true;
 
   postInstall = ''
     makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-irc" \
       --add-flags "$out/lib/node_modules/matrix-appservice-irc/app.js"
+
+    # install the native bindings for matrix-sdk-crypto
+    export CRYPTO_SDK_PATH="$out/lib/node_modules/matrix-appservice-irc/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/matrix-sdk-crypto.${platform}.node"
+    cp -v ${matrix-sdk-crypto} "$CRYPTO_SDK_PATH"
+    autoPatchelf "$CRYPTO_SDK_PATH"
   '';
 
   passthru.tests.matrix-appservice-irc = nixosTests.matrix-appservice-irc;
@@ -34,5 +61,6 @@ ourNodePackages.package.override {
     maintainers = with maintainers; [ ];
     homepage = "https://github.com/matrix-org/matrix-appservice-irc";
     license = licenses.asl20;
+    platforms = platforms.linux;
   };
 }