1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 rustPlatform,
6 setuptools-rust,
7}:
8
9buildPythonPackage rec {
10 pname = "matrix-http-rendezvous-synapse";
11 version = "0.1.12";
12 format = "pyproject";
13
14 src = fetchFromGitHub {
15 owner = "matrix-org";
16 repo = "rust-http-rendezvous-server";
17 rev = "v${version}";
18 sha256 = "sha256-minwa+7HLTNSBtBtt5pnoHsFnNEh834nsVw80+FIQi8=";
19 };
20
21 postPatch = ''
22 cp ${./rendezvous-Cargo.lock} Cargo.lock
23 '';
24
25 cargoDeps = rustPlatform.fetchCargoVendor {
26 inherit
27 pname
28 version
29 src
30 postPatch
31 ;
32 hash = "sha256-CDUyH08s96xUy0VhK+4ym0w9IgAq9P1UjUipVjlpl9c=";
33 };
34
35 nativeBuildInputs = [
36 setuptools-rust
37 ]
38 ++ (with rustPlatform; [
39 cargoSetupHook
40 maturinBuildHook
41 ]);
42
43 buildAndTestSubdir = "synapse";
44
45 pythonImportsCheck = [ "matrix_http_rendezvous_synapse" ];
46
47 meta = with lib; {
48 description = "Implementation of MSC3886: Simple rendezvous capability";
49 homepage = "https://github.com/matrix-org/rust-http-rendezvous-server";
50 license = licenses.asl20;
51 maintainers = with maintainers; [ SuperSandro2000 ];
52 };
53}