13 inherit (darwin.apple_sdk.frameworks)
14 CoreAudio AudioUnit AVFoundation AppKit;
16 rustPlatform.buildRustPackage rec {
20 src = fetchFromGitHub {
24 hash = "sha256-9GUul5EoejcnCQqq1oX+seBtxttYIUhgcexaZk+7chk=";
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 ];
41 # Most of Blightmud's unit tests pass without trouble in the isolated
42 # Nixpkgs build env. The following tests need to be skipped.
45 "test_gmcp_negotiation"
46 "test_ttype_negotiation"
53 "validate_assertion_fail"
55 "test_tls_init_verify_err"
56 "test_tls_init_no_verify"
57 "test_tls_init_verify"
59 skipFlag = test: "--skip " + test;
61 builtins.concatStringsSep " " (builtins.map skipFlag skipList);
64 description = "Terminal MUD client written in Rust";
65 mainProgram = "blightmud";
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
75 homepage = "https://github.com/Blightmud/Blightmud";
76 license = licenses.gpl3Plus;
77 maintainers = with maintainers; [ cpu ];
78 platforms = platforms.linux ++ platforms.darwin;