From 326b8f7d8f0619cf48b5a5db18270e10b91b623c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 27 Sep 2022 17:26:53 +0200 Subject: [PATCH] matrix-synapse: 1.67.0 -> 1.68.0 https://github.com/matrix-org/synapse/releases/tag/v1.68.0 Uses poetry-core to build the package. Drops setuptools-rust from runtime dependencies, because they are checked at startup, which breaks because we do a clear separation of concerns. Fixes a misconception about the tests, that were until now always run against the source module. This breaks with the introduction of the rust components, because they're not available in the source module. Adds missing pre and post hooks to checkPhase. --- pkgs/servers/matrix-synapse/default.nix | 35 ++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) 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; };