1{ lib
2, stdenv
3, fetchurl
4, fetchpatch
5, ncurses
6}:
7
8stdenv.mkDerivation rec {
9 pname = "tcsh";
10 version = "6.24.00";
11
12 src = fetchurl {
13 url = "mirror://tcsh/${pname}-${version}.tar.gz";
14 hash = "sha256-YL4sUEvY8fpuQksZVkldfnztUqKslNtf0n9La/yPdPA=";
15 };
16
17 strictDeps = true;
18 buildInputs = [
19 ncurses
20 ];
21
22 patches = lib.optional stdenv.hostPlatform.isMusl
23 # Use system malloc
24 (fetchpatch {
25 name = "sysmalloc.patch";
26 url = "https://git.alpinelinux.org/aports/plain/community/tcsh/001-sysmalloc.patch?id=184585c046cdd56512f1a76e426dd799b368f8cf";
27 sha256 = "1qc6ydxhdfizsbkaxhpn3wib8sfphrw10xnnsxx2prvzg9g2zp67";
28 });
29
30 meta = with lib; {
31 homepage = "https://www.tcsh.org/";
32 description = "An enhanced version of the Berkeley UNIX C shell (csh)";
33 longDescription = ''
34 tcsh is an enhanced but completely compatible version of the Berkeley UNIX
35 C shell, csh. It is a command language interpreter usable both as an
36 interactive login shell and a shell script command processor.
37
38 It includes:
39 - command-line editor
40 - programmable word completion
41 - spelling correction
42 - history mechanism
43 - job control
44 '';
45 license = licenses.bsd2;
46 maintainers = with maintainers; [ AndersonTorres ];
47 platforms = platforms.unix;
48 };
49
50 passthru.shellPath = "/bin/tcsh";
51}