1{ stdenv
2, lib
3, rustPlatform
4, fetchFromGitHub
5, pkg-config
6, Foundation
7, dbusSupport ? stdenv.isLinux, dbus
8# rustls will be used for TLS if useOpenSSL=false
9, useOpenSSL ? stdenv.isLinux, openssl
10, notificationSupport ? stdenv.isLinux
11}:
12
13rustPlatform.buildRustPackage rec {
14 pname = "tiny";
15 version = "0.11.0";
16
17 src = fetchFromGitHub {
18 owner = "osa1";
19 repo = pname;
20 rev = "v${version}";
21 hash = "sha256-oOaLQh9gJlurHi9awoRh4wQnXwkuOGJLnGQA6di6k1Q=";
22 };
23
24 cargoPatches = [ ./Cargo.lock.patch ];
25
26 cargoHash = "sha256-wUBScLNRNAdDZ+HpQjYiExgPJnE9cxviooHePbJI13Q=";
27
28 nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
29 buildInputs = lib.optionals dbusSupport [ dbus ]
30 ++ lib.optionals useOpenSSL [ openssl ]
31 ++ lib.optional stdenv.isDarwin Foundation;
32
33 buildFeatures = lib.optional notificationSupport "desktop-notifications";
34
35 checkFlags = [
36 # flaky test
37 "--skip=tests::config::parsing_tab_configs"
38 ];
39
40 meta = with lib; {
41 description = "A console IRC client";
42 homepage = "https://github.com/osa1/tiny";
43 changelog = "https://github.com/osa1/tiny/raw/v${version}/CHANGELOG.md";
44 license = licenses.mit;
45 maintainers = with maintainers; [ Br1ght0ne vyp ];
46 };
47}