about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/matrix-synapse
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/matrix-synapse')
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/default.nix104
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-synapse.patch20
2 files changed, 124 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..5db09284874c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
@@ -0,0 +1,104 @@
+{ lib, stdenv, python2
+, enableSystemd ? true
+}:
+
+with python2.pkgs;
+
+let
+  matrix-angular-sdk = buildPythonPackage rec {
+    pname = "matrix-angular-sdk";
+    version = "0.6.8";
+
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0gmx4y5kqqphnq3m7xk2vpzb0w2a4palicw7wfdr1q2schl9fhz2";
+    };
+
+    # no checks from Pypi but as this is abandonware, there will be no
+    # new version anyway
+    doCheck = false;
+  };
+
+  matrix-synapse-ldap3 = buildPythonPackage rec {
+    pname = "matrix-synapse-ldap3";
+    version = "0.1.3";
+
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0a0d1y9yi0abdkv6chbmxr3vk36gynnqzrjhbg26q4zg06lh9kgn";
+    };
+
+    propagatedBuildInputs = [ service-identity ldap3 twisted ];
+
+    # ldaptor is not ready for py3 yet
+    doCheck = !isPy3k;
+    checkInputs = [ ldaptor mock ];
+  };
+
+in buildPythonApplication rec {
+  pname = "matrix-synapse";
+  version = "0.34.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bqwivzfx3kikzjmn4mng829ll8y62pd08hvsx99arr7cyzp6gri";
+  };
+
+  patches = [
+    ./matrix-synapse.patch
+  ];
+
+  propagatedBuildInputs = [
+    bcrypt
+    bleach
+    canonicaljson
+    daemonize
+    dateutil
+    frozendict
+    jinja2
+    jsonschema
+    lxml
+    matrix-angular-sdk
+    matrix-synapse-ldap3
+    msgpack-python
+    netaddr
+    phonenumbers
+    pillow
+    (prometheus_client.overrideAttrs (x: {
+      src = fetchPypi {
+        pname = "prometheus_client";
+        version = "0.3.1";
+        sha256 = "093yhvz7lxl7irnmsfdnf2030lkj4gsfkg6pcmy4yr1ijk029g0p";
+      };
+    }))
+    psutil
+    psycopg2
+    pyasn1
+    pydenticon
+    pymacaroons-pynacl
+    pynacl
+    pyopenssl
+    pysaml2
+    pyyaml
+    requests
+    signedjson
+    sortedcontainers
+    treq
+    twisted
+    unpaddedbase64
+  ] ++ lib.optional enableSystemd systemd;
+
+  # tests fail under py3 for now, but version 0.34.0 will use py3 by default
+  # https://github.com/matrix-org/synapse/issues/4036
+  doCheck = true;
+  checkPhase = "python -m twisted.trial test";
+
+  checkInputs = [ mock setuptoolsTrial ];
+
+  meta = with stdenv.lib; {
+    homepage = https://matrix.org;
+    description = "Matrix reference homeserver";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ralith roblabla ekleog ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-synapse.patch b/nixpkgs/pkgs/servers/matrix-synapse/matrix-synapse.patch
new file mode 100644
index 000000000000..288e6ff16245
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-synapse.patch
@@ -0,0 +1,20 @@
+diff --git a/homeserver b/homeserver
+new file mode 120000
+index 0000000..2f1d413
+--- /dev/null
++++ b/homeserver
+@@ -0,0 +1,1 @@
++synapse/app/homeserver.py
+\ No newline at end of file
+diff --git a/setup.py b/setup.py
+index b00c2af..c7f6e0a 100755
+--- a/setup.py
++++ b/setup.py
+@@ -92,6 +92,6 @@ setup(
+     include_package_data=True,
+     zip_safe=False,
+     long_description=long_description,
+-    scripts=["synctl"] + glob.glob("scripts/*"),
++    scripts=["synctl", "homeserver"] + glob.glob("scripts/*"),
+     cmdclass={'test': TestCommand},
+ )