nixpkgs/pkgs/servers/matrix-synapse/default.nix
Peter Hoeg dc74c44e67 matrix-synapse: prepare for python3 switch
With this commit, we *can* swap python2 for python3 to run synapse using python3
instead.

The reason for not making the switch is that a number of CLI tools provided with
synapse do not yet work under py3 despite synapse running fine.

So this doesn't actually do anything on its own except to prepare for the
upcoming py3 switch.
2018-11-08 16:23:32 +08:00

99 lines
2.0 KiB
Nix

{ 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.33.8";
src = fetchPypi {
inherit pname version;
sha256 = "0j8knnqpkidkmpwr2i1k9cwlnwfqpzn3q6ysjvrwpa76hpfcg40l";
};
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
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 ];
};
}