1{
2 lib,
3 stdenv,
4 fetchurl,
5 ncurses,
6 zlib,
7 openssl,
8 sslSupport ? true,
9}:
10
11assert sslSupport -> openssl != null;
12
13let
14 inherit (lib)
15 licenses
16 maintainers
17 optional
18 platforms
19 ;
20in
21
22stdenv.mkDerivation rec {
23 pname = "tinyfugue";
24 version = "50b8";
25 verUrl = "5.0%20beta%208";
26
27 src = fetchurl {
28 url = "mirror://sourceforge/project/tinyfugue/tinyfugue/${verUrl}/tf-${version}.tar.gz";
29 sha256 = "12fra2fdwqj6ilv9wdkc33rkj343rdcf5jyff4yiwywlrwaa2l1p";
30 };
31
32 patches = [
33 ./fix-build.patch
34 ];
35
36 configureFlags = optional (!sslSupport) "--disable-ssl";
37
38 buildInputs = [
39 ncurses
40 zlib
41 ]
42 ++ optional sslSupport openssl;
43
44 # Workaround build failure on -fno-common toolchains like upstream
45 # gcc-10. Otherwise build fails as:
46 # ld: world.o:/build/tf-50b8/src/socket.h:24: multiple definition of
47 # `world_decl'; command.o:/build/tf-50b8/src/socket.h:24: first defined here
48 env.NIX_CFLAGS_COMPILE = "-fcommon";
49
50 meta = {
51 homepage = "https://tinyfugue.sourceforge.net/";
52 description = "Terminal UI, screen-oriented MUD client";
53 mainProgram = "tf";
54 longDescription = ''
55 TinyFugue, aka "tf", is a flexible, screen-oriented MUD client, for use
56 with any type of text MUD.
57 '';
58 license = licenses.gpl2Only;
59 platforms = platforms.linux ++ platforms.darwin;
60 maintainers = [ maintainers.KibaFox ];
61 };
62}