python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / networking / mailutils / default.nix
blob225b208822a3acbadc7aa406cc9b96c86cbcfc3e
1 { lib
2 , stdenv
3 , fetchurl
4 , fetchpatch
5 , autoreconfHook
6 , dejagnu
7 , gettext
8 , gnum4
9 , pkg-config
10 , texinfo
11 , fribidi
12 , gdbm
13 , gnutls
14 , gss
15 , guile
16 , libmysqlclient
17 , mailcap
18 , nettools
19 , pam
20 , readline
21 , ncurses
22 , python3
23 , sasl
24 , system-sendmail
25 , libxcrypt
28 stdenv.mkDerivation rec {
29   pname = "mailutils";
30   version = "3.14";
32   src = fetchurl {
33     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
34     hash = "sha256-wMWzj+qLRaSvzUNkh/Knb9VSUJLQN4gTputVQsIScTk=";
35   };
37   separateDebugInfo = true;
39   postPatch = ''
40     sed -i -e '/chown root:mail/d' \
41            -e 's/chmod [24]755/chmod 0755/' \
42       */Makefile{.in,.am}
43     sed -i 's:/usr/lib/mysql:${libmysqlclient}/lib/mysql:' configure.ac
44   '';
46   nativeBuildInputs = [
47     autoreconfHook
48     gettext
49     gnum4
50     pkg-config
51     texinfo
52   ];
54   buildInputs = [
55     fribidi
56     gdbm
57     gnutls
58     gss
59     guile
60     libmysqlclient
61     mailcap
62     ncurses
63     pam
64     python3
65     readline
66     sasl
67     libxcrypt
68   ] ++ lib.optionals stdenv.isLinux [ nettools ];
70   patches = [
71     ./fix-build-mb-len-max.patch
72     ./path-to-cat.patch
73     # Fix cross-compilation
74     # https://lists.gnu.org/archive/html/bug-mailutils/2020-11/msg00038.html
75     (fetchpatch {
76       url = "https://lists.gnu.org/archive/html/bug-mailutils/2020-11/txtiNjqcNpqOk.txt";
77       sha256 = "0ghzqb8qx2q8cffbvqzw19mivv7r5f16whplzhm7hdj0j2i6xf6s";
78     })
79   ];
81   enableParallelBuilding = false;
82   hardeningDisable = [ "format" ];
84   configureFlags = [
85     "--with-gssapi"
86     "--with-gsasl"
87     "--with-mysql"
88     "--with-path-sendmail=${system-sendmail}/bin/sendmail"
89     "--with-mail-rc=/etc/mail.rc"
90     "DEFAULT_CUPS_CONFDIR=${mailcap}/etc" # provides mime.types to mimeview
91   ];
93   readmsg-tests = let
94     p = "https://raw.githubusercontent.com/gentoo/gentoo/9c921e89d51876fd876f250324893fd90c019326/net-mail/mailutils/files";
95   in [
96     (fetchurl { url = "${p}/hdr.at"; sha256 = "0phpkqyhs26chn63wjns6ydx9468ng3ssbjbfhcvza8h78jlsd98"; })
97     (fetchurl { url = "${p}/nohdr.at"; sha256 = "1vkbkfkbqj6ml62s1am8i286hxwnpsmbhbnq0i2i0j1i7iwkk4b7"; })
98     (fetchurl { url = "${p}/twomsg.at"; sha256 = "15m29rg2xxa17xhx6jp4s2vwa9d4khw8092vpygqbwlhw68alk9g"; })
99     (fetchurl { url = "${p}/weed.at"; sha256 = "1101xakhc99f5gb9cs3mmydn43ayli7b270pzbvh7f9rbvh0d0nh"; })
100   ];
102   checkInputs = [ dejagnu ];
103   doCheck = false; # fails 1 out of a bunch of tests, looks like a bug
104   doInstallCheck = false; # fails
106   preCheck = ''
107     # Add missing test files
108     cp ${builtins.toString readmsg-tests} readmsg/tests/
109     for f in hdr.at nohdr.at twomsg.at weed.at; do
110       mv readmsg/tests/*-$f readmsg/tests/$f
111     done
112     # Disable comsat tests that fail without tty in the sandbox.
113     tty -s || echo > comsat/tests/testsuite.at
114     # Disable lmtp tests that require root spool.
115     echo > maidag/tests/lmtp.at
116     # Disable mda tests that require /etc/passwd to contain root.
117     grep -qo '^root:' /etc/passwd || echo > maidag/tests/mda.at
118     # Provide libraries for mhn.
119     export LD_LIBRARY_PATH=$(pwd)/lib/.libs
120   '';
122   postCheck = ''
123     unset LD_LIBRARY_PATH
124   '';
126   meta = with lib; {
127     description = "Rich and powerful protocol-independent mail framework";
129     longDescription = ''
130       GNU Mailutils is a rich and powerful protocol-independent mail
131       framework.  It contains a series of useful mail libraries, clients, and
132       servers.  These are the primary mail utilities for the GNU system.  The
133       central library is capable of handling electronic mail in various
134       mailbox formats and protocols, both local and remote.  Specifically,
135       this project contains a POP3 server, an IMAP4 server, and a Sieve mail
136       filter.  It also provides a POSIX `mailx' client, and a collection of
137       other handy tools.
139       The GNU Mailutils libraries supply an ample set of primitives for
140       handling electronic mail in programs written in C, C++, Python or
141       Scheme.
143       The utilities provided by Mailutils include imap4d and pop3d mail
144       servers, mail reporting utility comsatd, general-purpose mail delivery
145       agent maidag, mail filtering program sieve, and an implementation of MH
146       message handling system.
147     '';
149     license = with licenses; [
150       lgpl3Plus /* libraries */
151       gpl3Plus /* tools */
152     ];
154     maintainers = with maintainers; [ orivej vrthra ];
156     homepage = "https://www.gnu.org/software/mailutils/";
158     # Some of the dependencies fail to build on {cyg,dar}win.
159     platforms = platforms.gnu ++ platforms.unix;
160   };