1{ lib
2, stdenv
3, autoreconfHook
4, bison
5, coreutils
6, cyrus_sasl
7, db
8, fetchFromSavannah
9, flex
10, gdbm
11, liblockfile
12, ncurses
13, openssl
14, readline
15, runtimeShell
16}:
17
18stdenv.mkDerivation (finalAttrs: {
19 pname = "nmh";
20 version = "1.7.1";
21 src = fetchFromSavannah {
22 repo = "nmh";
23 rev = finalAttrs.version;
24 hash = "sha256-sBftXl4hWs4bKw5weHkif1KIJBpheU/RCePx0WXuv9o=";
25 };
26
27 postPatch = ''
28 substituteInPlace config/config.c --replace /bin/cat ${coreutils}/bin/cat
29 substituteInPlace \
30 sbr/arglist.c \
31 uip/mhbuildsbr.c \
32 uip/whatnowsbr.c \
33 uip/slocal.c \
34 --replace '"/bin/sh"' '"${runtimeShell}"'
35 # the "cleanup" pseudo-test makes diagnosing test failures a pain
36 ln -s -f ${stdenv}/bin/true test/cleanup
37 '';
38
39 nativeBuildInputs = [
40 autoreconfHook
41 flex
42 bison
43 ];
44
45 buildInputs = [
46 cyrus_sasl
47 db
48 gdbm
49 liblockfile
50 ncurses
51 openssl
52 readline
53 ];
54
55 NIX_CFLAGS_COMPILE = "-Wno-stringop-truncation";
56 doCheck = true;
57 enableParallelBuilding = true;
58
59 meta = {
60 description = "New MH Mail Handling System";
61 homepage = "https://nmh.nongnu.org/";
62 downloadPage = "http://download.savannah.nongnu.org/releases/nmh/";
63 changelog = "http://savannah.nongnu.org/news/?group=nmh";
64 license = [ lib.licenses.bsd3 ];
65 longDescription = ''
66 This is the nmh mail user agent (reader/sender), a command-line based
67 mail reader that is powerful and extensible. nmh is an excellent choice
68 for people who receive and process a lot of mail.
69
70 Unlike most mail user agents, nmh is not a single program, rather it is
71 a set of programs that are run from the shell. This allows the user to
72 utilize the full power of the Unix shell in coordination with nmh.
73 Various front-ends are available, such as mh-e (an emacs mode), xmh, and
74 exmh (X11 clients).
75
76 nmh was originally based on MH version 6.8.3, and is intended to be a
77 (mostly) compatible drop-in replacement for MH.
78
79 These tools are mainly useful for writing scripts that manipulating
80 claws-mail's mail folders. Most other mail clients have migrated to
81 maildir.
82 '';
83 };
84
85})