nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
Doron Behar 36578e75af neomutt: Use w3m instead of elinks, since elinks is insecure
Ever since 5ad43894f2, elinks won't
evaluate (by default) hence it makes neomutt not evaluate as well, due
to elinks marked as insecure. This change makes neomutt generate
manual.txt out of manual.html with w3m instead of elinks.
2020-10-03 21:11:54 +03:00

117 lines
3.4 KiB
Nix

{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, runtimeShell, sqlite, zlib
, glibcLocales
, fetchpatch
}:
stdenv.mkDerivation rec {
version = "20200925";
pname = "neomutt";
src = fetchFromGitHub {
owner = "neomutt";
repo = "neomutt";
rev = version;
sha256 = "1q931n9sijq1iin3swzk57rz7qmy485hvr1fahy5i2wd1xx9yhb2";
};
buildInputs = [
cyrus_sasl gss gpgme kerberos libidn ncurses
notmuch openssl perl lmdb
mailcap sqlite
];
patches = [
# To be removed on next release. Fixes two bugs in the sidebar behavior.
(fetchpatch {
url = "https://github.com/neomutt/neomutt/commit/96753674e70edb695c1dc7af73e3317956c1b259.patch";
sha256 = "0yjmgdfhn8ra7bc3d40c3c29imgpgbhzphjxp6575llh9kw5h53s";
})
(fetchpatch {
url = "https://github.com/neomutt/neomutt/commit/6078653c9233644ca76c24bdb64e49bd443dd714.patch";
sha256 = "1s1p86bqpc9xq9z5qfh0mxxh6syps8shq0dm7bbkg1bz7qya5phy";
})
];
nativeBuildInputs = [
docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m
];
enableParallelBuilding = true;
postPatch = ''
substituteInPlace contrib/smime_keys \
--replace /usr/bin/openssl ${openssl}/bin/openssl
for f in doc/*.{xml,xsl}* ; do
substituteInPlace $f \
--replace http://docbook.sourceforge.net/release/xsl/current ${docbook_xsl}/share/xml/docbook-xsl \
--replace http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd
done
# allow neomutt to map attachments to their proper mime.types if specified wrongly
# and use a far more comprehensive list than the one shipped with neomutt
substituteInPlace send/sendlib.c \
--replace /etc/mime.types ${mailcap}/etc/mime.types
'';
preBuild = ''
export HOME=$(mktemp -d)
'';
configureFlags = [
"--enable-autocrypt"
"--gpgme"
"--gss"
"--lmdb"
"--notmuch"
"--ssl"
"--sasl"
"--with-homespool=mailbox"
"--with-mailpath="
# To make it not reference .dev outputs. See:
# https://github.com/neomutt/neomutt/pull/2367
"--disable-include-path-in-cflags"
# Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
"ac_cv_path_SENDMAIL=sendmail"
"--zlib"
];
# Fix missing libidn in mutt;
# this fix is ugly since it links all binaries in mutt against libidn
# like pgpring, pgpewrap, ...
NIX_LDFLAGS = "-lidn";
postInstall = ''
wrapProgram "$out/bin/neomutt" --prefix PATH : "$out/libexec/neomutt"
'';
doCheck = true;
preCheck = ''
cp -r ${fetchFromGitHub {
owner = "neomutt";
repo = "neomutt-test-files";
rev = "8629adab700a75c54e8e28bf05ad092503a98f75";
sha256 = "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr";
}} $(pwd)/test-files
chmod -R +w test-files
(cd test-files && ./setup.sh)
export NEOMUTT_TEST_DIR=$(pwd)/test-files
'';
checkTarget = "test";
postCheck = "unset NEOMUTT_TEST_DIR";
meta = with stdenv.lib; {
description = "A small but very powerful text-based mail client";
homepage = "http://www.neomutt.org";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ma27 ];
platforms = platforms.unix;
};
}