about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/matrix-synapse/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/matrix-synapse/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/default.nix82
1 files changed, 82 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
new file mode 100644
index 000000000000..fbcec04e5320
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
@@ -0,0 +1,82 @@
+{ lib, stdenv, python3, openssl
+, enableSystemd ? stdenv.isLinux, nixosTests
+}:
+
+with python3.pkgs;
+
+let
+  plugins = python3.pkgs.callPackage ./plugins { };
+in
+buildPythonApplication rec {
+  pname = "matrix-synapse";
+  version = "1.15.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hfyqp5bzsqp002synxp9jcm9fwzw9p0gcklmycmv616x3flylkf";
+  };
+
+  patches = [
+    # adds an entry point for the service
+    ./homeserver-script.patch
+  ];
+
+  propagatedBuildInputs = [
+    setuptools
+    bcrypt
+    bleach
+    canonicaljson
+    daemonize
+    frozendict
+    jinja2
+    jsonschema
+    lxml
+    msgpack
+    netaddr
+    phonenumbers
+    pillow
+    (prometheus_client.overrideAttrs (x: {
+      src = fetchPypi {
+        pname = "prometheus_client";
+        version = "0.3.1";
+        sha256 = "093yhvz7lxl7irnmsfdnf2030lkj4gsfkg6pcmy4yr1ijk029g0p";
+      };
+    }))
+    psutil
+    psycopg2
+    pyasn1
+    pymacaroons
+    pynacl
+    pyopenssl
+    pysaml2
+    pyyaml
+    requests
+    signedjson
+    sortedcontainers
+    treq
+    twisted
+    unpaddedbase64
+    typing-extensions
+    authlib
+    pyjwt
+  ] ++ lib.optional enableSystemd systemd;
+
+  checkInputs = [ mock parameterized openssl ];
+
+  doCheck = !stdenv.isDarwin;
+
+  checkPhase = ''
+    PYTHONPATH=".:$PYTHONPATH" ${python3.interpreter} -m twisted.trial tests
+  '';
+
+  passthru.tests = { inherit (nixosTests) matrix-synapse; };
+  passthru.plugins = plugins;
+  passthru.python = python3;
+
+  meta = with stdenv.lib; {
+    homepage = "https://matrix.org";
+    description = "Matrix reference homeserver";
+    license = licenses.asl20;
+    maintainers = teams.matrix.members;
+  };
+}