about summary refs log tree commit diff
path: root/pkgs/servers/matrix-synapse
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/matrix-synapse')
-rw-r--r--pkgs/servers/matrix-synapse/default.nix64
-rw-r--r--pkgs/servers/matrix-synapse/matrix-synapse.patch20
2 files changed, 84 insertions, 0 deletions
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
new file mode 100644
index 000000000000..302aa8d55932
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -0,0 +1,64 @@
+{ lib, pkgs, stdenv, pythonPackages, fetchurl, fetchFromGitHub, fetchpatch }:
+let
+  matrix-angular-sdk = pythonPackages.buildPythonPackage rec {
+    name = "matrix-angular-sdk-${version}";
+    version = "0.6.8";
+
+    src = fetchurl {
+      url = "mirror://pypi/m/matrix-angular-sdk/matrix-angular-sdk-${version}.tar.gz";
+      sha256 = "0gmx4y5kqqphnq3m7xk2vpzb0w2a4palicw7wfdr1q2schl9fhz2";
+    };
+  };
+  matrix-synapse-ldap3 = pythonPackages.buildPythonPackage rec {
+    pname = "matrix-synapse-ldap3";
+    version = "0.1.3";
+
+    src = fetchFromGitHub {
+      owner = "matrix-org";
+      repo = "matrix-synapse-ldap3";
+      rev = "v${version}";
+      sha256 = "0ss7ld3bpmqm8wcs64q1kb7vxlpmwk9lsgq0mh21a9izyfc7jb2l";
+    };
+
+    propagatedBuildInputs = with pythonPackages; [ service-identity ldap3 twisted ];
+
+    checkInputs = with pythonPackages; [ ldaptor mock ];
+  };
+in pythonPackages.buildPythonApplication rec {
+  name = "matrix-synapse-${version}";
+  version = "0.31.2";
+
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "synapse";
+    rev = "v${version}";
+    sha256 = "15nfdq5s0d4bv1in6vymhq70hpz48p0nlzx25wxpibbrix630h8q";
+  };
+
+  patches = [
+    ./matrix-synapse.patch
+  ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    blist canonicaljson daemonize dateutil frozendict pillow pyasn1
+    pydenticon pymacaroons-pynacl pynacl pyopenssl pysaml2 pytz requests
+    signedjson systemd twisted ujson unpaddedbase64 pyyaml prometheus_client
+    matrix-angular-sdk bleach netaddr jinja2 psycopg2
+    psutil msgpack-python lxml matrix-synapse-ldap3
+    phonenumbers jsonschema affinity bcrypt
+  ];
+
+  # Checks fail because of Tox.
+  doCheck = false;
+
+  buildInputs = with pythonPackages; [
+    mock setuptoolsTrial
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://matrix.org;
+    description = "Matrix reference homeserver";
+    license = licenses.asl20;
+    maintainers = [ maintainers.ralith maintainers.roblabla ];
+  };
+}
diff --git a/pkgs/servers/matrix-synapse/matrix-synapse.patch b/pkgs/servers/matrix-synapse/matrix-synapse.patch
new file mode 100644
index 000000000000..288e6ff16245
--- /dev/null
+++ b/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},
+ )