highs: 1.8.0 -> 1.8.1 (#360451)
[NixPkgs.git] / pkgs / games / blightmud / default.nix
blobb5ebd8c279ee4b83b40d170d82321a35c7f94b5c
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , rustPlatform
5 , pkg-config
6 , alsa-lib
7 , openssl
8 , withTTS ? false
9 , speechd-minimal
10 , darwin
12 let
13   inherit (darwin.apple_sdk.frameworks)
14     CoreAudio AudioUnit AVFoundation AppKit;
16 rustPlatform.buildRustPackage rec {
17   pname = "blightmud";
18   version = "5.3.1";
20   src = fetchFromGitHub {
21     owner = pname;
22     repo = pname;
23     rev = "v${version}";
24     hash = "sha256-9GUul5EoejcnCQqq1oX+seBtxttYIUhgcexaZk+7chk=";
25   };
27   cargoHash = "sha256-84m5dihmiEGrFCajqaMW05MQtBceLodBzqtjW+zh6kg=";
29   buildFeatures = lib.optional withTTS "tts";
31   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
33   buildInputs = [ openssl ]
34     ++ lib.optionals (withTTS && stdenv.hostPlatform.isLinux) [ speechd-minimal ]
35     ++ lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib ]
36     ++ lib.optionals (withTTS && stdenv.hostPlatform.isDarwin) [ AVFoundation AppKit ]
37     ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreAudio AudioUnit ];
39   checkFlags =
40     let
41       # Most of Blightmud's unit tests pass without trouble in the isolated
42       # Nixpkgs build env. The following tests need to be skipped.
43       skipList = [
44         "test_connect"
45         "test_gmcp_negotiation"
46         "test_ttype_negotiation"
47         "test_reconnect"
48         "test_is_connected"
49         "test_mud"
50         "test_server"
51         "test_lua_script"
52         "timer_test"
53         "validate_assertion_fail"
54         "regex_smoke_test"
55         "test_tls_init_verify_err"
56         "test_tls_init_no_verify"
57         "test_tls_init_verify"
58       ];
59       skipFlag = test: "--skip " + test;
60     in
61     builtins.concatStringsSep " " (builtins.map skipFlag skipList);
63   meta = with lib; {
64     description = "Terminal MUD client written in Rust";
65     mainProgram = "blightmud";
66     longDescription = ''
67       Blightmud is a terminal client for connecting to Multi User Dungeon (MUD)
68       games. It is written in Rust and supports TLS, GMCP, MSDP, MCCP2, tab
69       completion, text searching and a split view for scrolling. Blightmud can
70       be customized with Lua scripting for aliases, triggers, timers, customized
71       status bars, and more. Blightmud supports several accessibility features
72       including an optional built-in text-to-speech engine and a screen reader
73       friendly mode.
74     '';
75     homepage = "https://github.com/Blightmud/Blightmud";
76     license = licenses.gpl3Plus;
77     maintainers = with maintainers; [ cpu ];
78     platforms = platforms.linux ++ platforms.darwin;
79   };