diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index 699c2e083b28..bb970bb959f4 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, python3, openssl +{ lib, stdenv, python3, openssl, rustPlatform , enableSystemd ? stdenv.isLinux, nixosTests , enableRedis ? true , callPackage @@ -11,13 +11,35 @@ in with python3.pkgs; buildPythonApplication rec { pname = "matrix-synapse"; - version = "1.67.0"; + version = "1.68.0"; + format = "pyproject"; src = fetchPypi { inherit pname version; - sha256 = "sha256-86KVu1wUkVy1/mONVbDM1g+Y+Kh90y1rpf58Kc2VtBY="; + hash = "sha256-jQcprvKEbLuLWth0aWeh5mi/v8z83GIrjCsm3JdJcUM="; }; + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-k8iAYRgFCuv6QYAUW5kSEwFSEXVNAEGpPya7biS1Vlo="; + }; + + postPatch = '' + # Remove setuptools_rust from runtime dependencies + # https://github.com/matrix-org/synapse/blob/v1.68.0/pyproject.toml#L177-L185 + sed -i '/^setuptools_rust =/d' pyproject.toml + ''; + + nativeBuildInputs = [ + poetry-core + rustPlatform.cargoSetupHook + setuptools-rust + ] ++ (with rustPlatform.rust; [ + cargo + rustc + ]); + buildInputs = [ openssl ]; propagatedBuildInputs = [ @@ -63,7 +85,14 @@ buildPythonApplication rec { doCheck = !stdenv.isDarwin; checkPhase = '' + runHook preCheck + + # remove src module, so tests use the installed module instead + rm -rf ./synapse + PYTHONPATH=".:$PYTHONPATH" ${python3.interpreter} -m twisted.trial -j $NIX_BUILD_CORES tests + + runHook postCheck ''; passthru.tests = { inherit (nixosTests) matrix-synapse; };