diff options
Diffstat (limited to 'pkgs/servers/mautrix-signal/default.nix')
-rw-r--r-- | pkgs/servers/mautrix-signal/default.nix | 68 |
1 files changed, 16 insertions, 52 deletions
diff --git a/pkgs/servers/mautrix-signal/default.nix b/pkgs/servers/mautrix-signal/default.nix index eb886482c2ff1..3b913a2bd4627 100644 --- a/pkgs/servers/mautrix-signal/default.nix +++ b/pkgs/servers/mautrix-signal/default.nix @@ -1,72 +1,36 @@ -{ lib, python3, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub, olm, libsignal-ffi }: -python3.pkgs.buildPythonPackage rec { +buildGoModule { pname = "mautrix-signal"; - version = "0.4.3"; + # mautrix-signal's latest released version v0.4.3 still uses the Python codebase + # which is broken for new devices, see https://github.com/mautrix/signal/issues/388. + # The new Go version fixes this by using the official libsignal as a library and + # can be upgraded to directly from the Python version. + version = "unstable-2023-12-30"; src = fetchFromGitHub { owner = "mautrix"; repo = "signal"; - rev = "refs/tags/v${version}"; - sha256 = "sha256-QShyuwHiWRcP1hGkvCQfixvoUQ/FXr2DYC5VrcMKX48="; + rev = "6abe80e6c79b31b5dc37a484b65d346a1ffd4f05"; + hash = "sha256-EDSP+kU0EmIaYbAB/hxAUTEay+H5aqn9ovBQFZg6wJk="; }; - postPatch = '' - # the version mangling in mautrix_signal/get_version.py interacts badly with pythonRelaxDepsHook - substituteInPlace setup.py \ - --replace 'version=version' 'version="${version}"' - ''; - - nativeBuildInputs = with python3.pkgs; [ - pythonRelaxDepsHook - ]; - - pythonRelaxDeps = [ - "mautrix" + buildInputs = [ + olm + # must match the version used in https://github.com/mautrix/signal/tree/main/pkg/libsignalgo + # see https://github.com/mautrix/signal/issues/401 + libsignal-ffi ]; - propagatedBuildInputs = with python3.pkgs; [ - commonmark - aiohttp - aiosqlite - asyncpg - attrs - commonmark - mautrix - phonenumbers - pillow - prometheus-client - pycryptodome - python-olm - python-magic - qrcode - ruamel-yaml - unpaddedbase64 - yarl - ]; + vendorHash = "sha256-f3sWX+mBouuxVKu+fZIYTWLXT64fllUWpcUYAxjzQpI="; doCheck = false; - postInstall = '' - mkdir -p $out/bin - - # Make a little wrapper for running mautrix-signal with its dependencies - echo "$mautrixSignalScript" > $out/bin/mautrix-signal - echo "#!/bin/sh - exec python -m mautrix_signal \"\$@\" - " > $out/bin/mautrix-signal - chmod +x $out/bin/mautrix-signal - wrapProgram $out/bin/mautrix-signal \ - --prefix PATH : "${python3}/bin" \ - --prefix PYTHONPATH : "$PYTHONPATH" - ''; - meta = with lib; { homepage = "https://github.com/mautrix/signal"; description = "A Matrix-Signal puppeting bridge"; license = licenses.agpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ expipiplus1 ]; + maintainers = with maintainers; [ expipiplus1 niklaskorz ma27 ]; mainProgram = "mautrix-signal"; }; } |