Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / matrix-conduit / default.nix
blob91cdded5a2feb4adb952e89d7f40b6bbf7959a18
1 { lib
2 , rustPlatform
3 , fetchFromGitLab
4 , pkg-config
5 , sqlite
6 , stdenv
7 , darwin
8 , nixosTests
9 , rocksdb
10 , rust-jemalloc-sys
13 rustPlatform.buildRustPackage rec {
14   pname = "matrix-conduit";
15   version = "0.8.0";
17   src = fetchFromGitLab {
18     owner = "famedly";
19     repo = "conduit";
20     rev = "v${version}";
21     hash = "sha256-/qKPeE2Ptweaf+rHOvdW0TUDLwN9D93MMgDoU4fTzEA=";
22   };
24   # We have to use importCargoLock here because `cargo vendor` currently doesn't support workspace
25   # inheritance within Git dependencies, but importCargoLock does.
26   cargoLock = {
27     lockFile = ./Cargo.lock;
28     outputHashes = {
29       "ruma-0.10.1" = "sha256-I1mTeJLo+pgIqFkn1D2De/oACQPkUELjGdyGf3MVuLQ=";
30     };
31   };
33   # Conduit enables rusqlite's bundled feature by default, but we'd rather use our copy of SQLite.
34   preBuild = ''
35     substituteInPlace Cargo.toml --replace "features = [\"bundled\"]" "features = []"
36     cargo update --offline -p rusqlite
37   '';
39   nativeBuildInputs = [
40     rustPlatform.bindgenHook
41     pkg-config
42   ];
44   buildInputs = [
45     sqlite
46     rust-jemalloc-sys
47   ] ++ lib.optionals stdenv.isDarwin [
48     darwin.apple_sdk.frameworks.Security
49     darwin.apple_sdk.frameworks.SystemConfiguration
50   ];
52   env = {
53     ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
54     ROCKSDB_LIB_DIR = "${rocksdb}/lib";
55   };
57   # tests failed on x86_64-darwin with SIGILL: illegal instruction
58   doCheck = !(stdenv.isx86_64 && stdenv.isDarwin);
60   passthru.tests = {
61     inherit (nixosTests) matrix-conduit;
62   };
64   meta = with lib; {
65     description = "Matrix homeserver written in Rust";
66     homepage = "https://conduit.rs/";
67     license = licenses.asl20;
68     maintainers = with maintainers; [ pstn pimeys ];
69     mainProgram = "conduit";
70   };