991d4bf68c
The original issue can be reproduced when sending with an unpatched `mutt` or `neomutt` an email with an attachement which as han `.asc` extension. This will be interpreted as `application/pgp-encrypted` which experiences special logic, in the end the attachement will contain "Version: 1"[1][2][3] Right now, there are the following issues in the {,neo}mutt packages: * `mutt.override { smimeSupport = true }` fails to build since the Debian patch results in a 404. Debian moved their packages to `salsa.debian.org`. However we can't use a versioned URL for this as Debian only tracks the Mutt versions that are available in their releases. The patch doesn't touch Mutt's core and is therefore simple to rebase, so sticking to the 1.10.2 patch for now should be sufficient. * The original issue was never fixed in NeoMutt, currently we use the S/MIME database from `pkgs.mime-types` which contains the issue with `application/pgp-encrypted` as well. After some discussion[4] it seems to be the best decision to use the `mailcap` database distributed by Fedora[5] which fixes the issue rather than `mime-types` v9 from 2012. [1] https://bugs.archlinux.org/task/43319 [2] https://bugs.gentoo.org/534658 [3] https://github.com/neomutt/neomutt/blob/neomutt-20180716/sendlib.c#L490-L496 [4] https://github.com/NixOS/nixpkgs/pull/50927#issuecomment-441383260 [5] https://pagure.io/mailcap
97 lines
2.9 KiB
Nix
97 lines
2.9 KiB
Nix
{ stdenv, fetchurl, fetchpatch, ncurses, which, perl
|
|
, gdbm ? null
|
|
, openssl ? null
|
|
, cyrus_sasl ? null
|
|
, gnupg ? null
|
|
, gpgme ? null
|
|
, kerberos ? null
|
|
, headerCache ? true
|
|
, sslSupport ? true
|
|
, saslSupport ? true
|
|
, smimeSupport ? false
|
|
, gpgSupport ? false
|
|
, gpgmeSupport ? true
|
|
, imapSupport ? true
|
|
, withSidebar ? true
|
|
, gssSupport ? true
|
|
}:
|
|
|
|
assert headerCache -> gdbm != null;
|
|
assert sslSupport -> openssl != null;
|
|
assert saslSupport -> cyrus_sasl != null;
|
|
assert smimeSupport -> openssl != null;
|
|
assert gpgSupport -> gnupg != null;
|
|
assert gpgmeSupport -> gpgme != null && openssl != null;
|
|
|
|
with stdenv.lib;
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "mutt-${version}";
|
|
version = "1.10.1";
|
|
|
|
src = fetchurl {
|
|
url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
|
|
sha256 = "182lkbkpd3q3l1x6bvyds90ycp38gyyxhf35ry0d3hwf2n1khjkk";
|
|
};
|
|
|
|
patches = optional smimeSupport (fetchpatch {
|
|
url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.10.1-2/debian/patches/misc/smime.rc.patch";
|
|
sha256 = "1rl27qqwl4nw321ll5jcvfmkmz4fkvcsh5vihjcrhzzyf6vz8wmj";
|
|
});
|
|
|
|
buildInputs =
|
|
[ ncurses which perl ]
|
|
++ optional headerCache gdbm
|
|
++ optional sslSupport openssl
|
|
++ optional gssSupport kerberos
|
|
++ optional saslSupport cyrus_sasl
|
|
++ optional gpgmeSupport gpgme;
|
|
|
|
configureFlags = [
|
|
(enableFeature headerCache "hcache")
|
|
(enableFeature gpgmeSupport "gpgme")
|
|
(enableFeature imapSupport "imap")
|
|
(enableFeature withSidebar "sidebar")
|
|
"--enable-smtp"
|
|
"--enable-pop"
|
|
"--with-mailpath="
|
|
|
|
# Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
|
|
"ac_cv_path_SENDMAIL=sendmail"
|
|
|
|
# This allows calls with "-d N", that output debug info into ~/.muttdebug*
|
|
"--enable-debug"
|
|
|
|
# The next allows building mutt without having anything setgid
|
|
# set by the installer, and removing the need for the group 'mail'
|
|
# I set the value 'mailbox' because it is a default in the configure script
|
|
"--with-homespool=mailbox"
|
|
] ++ optional sslSupport "--with-ssl"
|
|
++ optional gssSupport "--with-gss"
|
|
++ optional saslSupport "--with-sasl";
|
|
|
|
postPatch = optionalString (smimeSupport || gpgmeSupport) ''
|
|
sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl
|
|
'';
|
|
|
|
postInstall = optionalString smimeSupport ''
|
|
# S/MIME setup
|
|
cp contrib/smime.rc $out/etc/smime.rc
|
|
sed -i 's#openssl#${openssl}/bin/openssl#' $out/etc/smime.rc
|
|
echo "source $out/etc/smime.rc" >> $out/etc/Muttrc
|
|
'' + optionalString gpgSupport ''
|
|
# GnuPG setup
|
|
cp contrib/gpg.rc $out/etc/gpg.rc
|
|
sed -i 's#\(command="\)gpg #\1${gnupg}/bin/gpg #' $out/etc/gpg.rc
|
|
echo "source $out/etc/gpg.rc" >> $out/etc/Muttrc
|
|
'';
|
|
|
|
meta = {
|
|
description = "A small but very powerful text-based mail client";
|
|
homepage = http://www.mutt.org;
|
|
license = licenses.gpl2Plus;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ the-kenny rnhmjoj ];
|
|
};
|
|
}
|