gnupg22: drop, libgcrypt_1_8: drop (#371269)
[NixPkgs.git] / pkgs / servers / web-apps / lemmy / server.nix
blob6a8bd6f06daf3a21f31f3df630fa7fb401175626
2   lib,
3   stdenv,
4   rustPlatform,
5   fetchFromGitHub,
6   openssl,
7   postgresql,
8   libiconv,
9   Security,
10   SystemConfiguration,
11   protobuf,
12   rustfmt,
13   nixosTests,
15 let
16   pinData = lib.importJSON ./pin.json;
17   version = pinData.serverVersion;
19 rustPlatform.buildRustPackage rec {
20   inherit version;
21   pname = "lemmy-server";
23   src = fetchFromGitHub {
24     owner = "LemmyNet";
25     repo = "lemmy";
26     rev = version;
27     hash = pinData.serverHash;
28     fetchSubmodules = true;
29   };
31   preConfigure = ''
32     echo 'pub const VERSION: &str = "${version}";' > crates/utils/src/version.rs
33   '';
35   cargoHash = pinData.serverCargoHash;
37   buildInputs =
38     [ postgresql ]
39     ++ lib.optionals stdenv.hostPlatform.isDarwin [
40       libiconv
41       Security
42       SystemConfiguration
43     ];
45   # Using OPENSSL_NO_VENDOR is not an option on darwin
46   # As of version 0.10.35 rust-openssl looks for openssl on darwin
47   # with a hardcoded path to /usr/lib/libssl.x.x.x.dylib
48   # https://github.com/sfackler/rust-openssl/blob/master/openssl-sys/build/find_normal.rs#L115
49   OPENSSL_LIB_DIR = "${lib.getLib openssl}/lib";
50   OPENSSL_INCLUDE_DIR = "${openssl.dev}/include";
52   PROTOC = "${protobuf}/bin/protoc";
53   PROTOC_INCLUDE = "${protobuf}/include";
54   nativeBuildInputs = [
55     protobuf
56     rustfmt
57   ];
59   checkFlags = [
60     # test requires database access
61     "--skip=session_middleware::tests::test_session_auth"
63     # tests require network access
64     "--skip=scheduled_tasks::tests::test_nodeinfo_mastodon_social"
65     "--skip=scheduled_tasks::tests::test_nodeinfo_lemmy_ml"
66   ];
68   passthru.updateScript = ./update.py;
69   passthru.tests.lemmy-server = nixosTests.lemmy;
71   meta = with lib; {
72     description = "🐀 Building a federated alternative to reddit in rust";
73     homepage = "https://join-lemmy.org/";
74     license = licenses.agpl3Only;
75     maintainers = with maintainers; [
76       happysalada
77       billewanick
78       georgyo
79     ];
80     mainProgram = "lemmy_server";
81   };