diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/web-apps/lemmy/server.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/web-apps/lemmy/server.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/web-apps/lemmy/server.nix b/nixpkgs/pkgs/servers/web-apps/lemmy/server.nix new file mode 100644 index 000000000000..4f605b0b2dbd --- /dev/null +++ b/nixpkgs/pkgs/servers/web-apps/lemmy/server.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, openssl +, postgresql +, libiconv +, Security +, protobuf +, rustfmt +, nixosTests +}: +let + pinData = lib.importJSON ./pin.json; + version = pinData.serverVersion; +in +rustPlatform.buildRustPackage rec { + inherit version; + pname = "lemmy-server"; + + src = fetchFromGitHub { + owner = "LemmyNet"; + repo = "lemmy"; + rev = version; + hash = pinData.serverHash; + fetchSubmodules = true; + }; + + preConfigure = '' + echo 'pub const VERSION: &str = "${version}";' > crates/utils/src/version.rs + ''; + + cargoHash = pinData.serverCargoHash; + + buildInputs = [ postgresql ] + ++ lib.optionals stdenv.isDarwin [ libiconv Security ]; + + # Using OPENSSL_NO_VENDOR is not an option on darwin + # As of version 0.10.35 rust-openssl looks for openssl on darwin + # with a hardcoded path to /usr/lib/libssl.x.x.x.dylib + # https://github.com/sfackler/rust-openssl/blob/master/openssl-sys/build/find_normal.rs#L115 + OPENSSL_LIB_DIR = "${lib.getLib openssl}/lib"; + OPENSSL_INCLUDE_DIR = "${openssl.dev}/include"; + + PROTOC = "${protobuf}/bin/protoc"; + PROTOC_INCLUDE = "${protobuf}/include"; + nativeBuildInputs = [ protobuf rustfmt ]; + + checkFlags = [ + # test requires database access + "--skip=session_middleware::tests::test_session_auth" + ]; + + passthru.updateScript = ./update.py; + passthru.tests.lemmy-server = nixosTests.lemmy; + + meta = with lib; { + description = "🐀 Building a federated alternative to reddit in rust"; + homepage = "https://join-lemmy.org/"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ happysalada billewanick ]; + mainProgram = "lemmy_server"; + }; +} |