You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/mail-client/mutt/mutt-1.13.4-r1.ebuild

262 lines
8.1 KiB

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
inherit eutils flag-o-matic autotools
PATCHREV="r0"
PATCHSET="gentoo-${PVR}/${PATCHREV}"
DESCRIPTION="A small but very powerful text-based mail client"
HOMEPAGE="http://www.mutt.org/"
MUTT_G_PATCHES="mutt-gentoo-${PV}-patches-${PATCHREV}.tar.xz"
SRC_URI="ftp://ftp.mutt.org/pub/mutt/${P}.tar.gz
https://bitbucket.org/${PN}/${PN}/downloads/${P}.tar.gz
https://dev.gentoo.org/~grobian/distfiles/${MUTT_G_PATCHES}"
IUSE="berkdb debug doc gdbm gnutls gpgme +hcache idn +imap kerberos libressl +lmdb mbox nls pgp-classic pop qdbm +sasl selinux slang smime-classic +smtp +ssl tokyocabinet vanilla prefix"
# hcache: allow multiple, bug #607360
REQUIRED_USE="
hcache? ( || ( berkdb gdbm lmdb qdbm tokyocabinet ) )
imap? ( ssl )
pop? ( ssl )
smime-classic? ( ssl !gnutls )
smtp? ( ssl sasl )
sasl? ( || ( imap pop smtp ) )
kerberos? ( || ( imap pop smtp ) )"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# yes, we overdepend on the backend impls here, hopefully one day we can
# have REQUIRED_USE do what it is made for again. bug #607360
CDEPEND="
app-misc/mime-types
virtual/libiconv
berkdb? ( >=sys-libs/db-4:= )
gdbm? ( sys-libs/gdbm )
lmdb? ( dev-db/lmdb:= )
qdbm? ( dev-db/qdbm )
tokyocabinet? ( dev-db/tokyocabinet )
ssl? (
gnutls? ( >=net-libs/gnutls-1.0.17:= )
!gnutls? (
libressl? ( dev-libs/libressl:= )
!libressl? ( >=dev-libs/openssl-0.9.6:0= )
)
)
nls? ( virtual/libintl )
sasl? ( >=dev-libs/cyrus-sasl-2 )
kerberos? ( virtual/krb5 )
idn? ( net-dns/libidn2 )
gpgme? ( >=app-crypt/gpgme-0.9.0:= )
slang? ( sys-libs/slang )
!slang? ( >=sys-libs/ncurses-5.2:0= )
"
DEPEND="${CDEPEND}
net-mail/mailbase
doc? (
dev-libs/libxml2
dev-libs/libxslt
app-text/docbook-xsl-stylesheets
|| ( www-client/lynx www-client/w3m www-client/elinks )
)"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-mutt )
smime-classic? ( || ( dev-libs/libressl >=dev-libs/openssl-0.9.6:0 ) )
pgp-classic? ( app-crypt/gnupg )
"
src_prepare() {
local PATCHDIR="${WORKDIR}"/mutt-gentoo-${PV}-patches-${PATCHREV}
if use !vanilla ; then
# apply patches
export EPATCH_FORCE="yes"
export EPATCH_SUFFIX="patch"
# http://hg.code.sf.net/p/gentoomuttpatches/code/file/mutt-1.10
local patches=(
patches-mutt
bugs-gentoo
features-common
features-extra
gentoo
)
local patchset
for patchset in "${patches[@]}" ; do
[[ -d "${PATCHDIR}/${patchset}" ]] || continue
einfo "Patches for ${PATCHSET} patchset ${patchset}"
EPATCH_SOURCE="${PATCHDIR}"/${patchset} epatch \
|| die "patchset ${patchset} failed"
done
# add some explanation as to why not to go upstream
sed -i \
-e '/ReachingUs = N_(/aThis release of Mutt is heavily enriched with patches.\\nFor this reason, any bugs are better reported at https://bugs.gentoo.org/\\nor re-emerge with USE=vanilla and try to reproduce your problem.\\n\\' \
main.c || die "Failed to add bug instructions"
fi
local upatches=
# allow user patches
eapply_user && upatches=" with user patches"
# patch version string for bug reports
local patchset=
use vanilla || patchset=", ${PATCHSET}"
sed -i -e 's|"Mutt %s (%s)"|"Mutt %s (%s'"${patchset}${upatches}"')"|' \
muttlib.c || die "failed patching in Gentoo version"
# many patches touch the buildsystem, we always need this
AT_M4DIR="m4" eautoreconf
# the configure script contains some "cleverness" whether or not to setgid
# the dotlock program, resulting in bugs like #278332
sed -i -e 's/@DOTLOCK_GROUP@//' Makefile.in || die "sed failed"
}
src_configure() {
local myconf=(
# signing and encryption
$(use_enable pgp-classic pgp)
$(use_enable smime-classic smime)
$(use_enable gpgme)
# features
$(use_enable debug)
$(use_enable doc)
$(use_enable nls)
# protocols
$(use_enable imap)
$(use_enable pop)
$(use_enable smtp)
$(use ssl && use gnutls && echo --with-gnutls --without-ssl)
$(use ssl && use !gnutls && echo --without-gnutls --with-ssl )
$(use !ssl && echo --without-gnutls --without-ssl)
$(use_with sasl)
$(use_with idn idn2) --without-idn # avoid automagic libidn dep
$(use_with kerberos gss)
"$(use slang && echo --with-slang="${EPREFIX}"/usr || echo a=b)"
"$(use_with !slang curses "${EPREFIX}"/usr)"
"--enable-compressed"
"--enable-external-dotlock"
"--enable-iconv"
"--enable-nfs-fix"
"--enable-sidebar"
"--sysconfdir=${EPREFIX}/etc/${PN}"
"--with-docdir=${EPREFIX}/usr/share/doc/${PN}-${PVR}"
"--without-bundled-regex" # use the implementation from libc
"--with-exec-shell=${EPREFIX}/bin/sh"
)
if [[ ${CHOST} == *-solaris2.* && ${CHOST#*-solaris2.} -le 10 ]] ; then
# arrows in index view do not show when using wchar_t
# or misalign due to wrong computations
myconf+=( "--without-wc-funcs" )
fi
# note: REQUIRED_USE should have selected only one of these, but for
# bug #607360 we're forced to allow multiple. For that reason, this
# list is ordered to preference, and only the first is taken.
local hcaches=(
"lmdb"
"qdbm"
"tokyocabinet"
"gdbm"
"berkdb:bdb"
)
local ucache hcache lcache
for hcache in "${hcaches[@]}" ; do
if use ${hcache%%:*} ; then
ucache=${hcache}
break
fi
done
if [[ -n ${ucache} ]] ; then
myconf+=( "--enable-hcache" )
else
myconf+=( "--disable-hcache" )
fi
for hcache in "${hcaches[@]}" ; do
[[ ${hcache} == ${ucache} ]] \
&& myconf+=( "--with-${hcache#*:}" ) \
|| myconf+=( "--without-${hcache#*:}" )
done
if use mbox; then
myconf+=( "--with-mailpath=${EPREFIX}/var/spool/mail" )
else
myconf+=( "--with-homespool=Maildir" )
fi
econf "${myconf[@]}"
}
src_install() {
emake DESTDIR="${D}" install
insinto /etc/${PN}
if use mbox; then
newins "${FILESDIR}"/Muttrc.mbox Muttrc
else
doins "${FILESDIR}"/Muttrc
fi
# include attachment settings, it's mandatory and shouldn't harm
# when not being referenced (index_format using %X)
{
echo
echo "# mandatory attachments settings, not setting these is a BUG!"
echo "# see https://marc.info/?l=mutt-dev&m=158347284923517&w=2"
grep '^attachments' "${ED}"/etc/${PN}/Muttrc.dist
} >> "${ED}"/etc/${PN}/Muttrc
# A newer file is provided by app-misc/mime-types. So we link it.
rm "${ED}"/etc/${PN}/mime.types
dosym ../mime.types /etc/${PN}/mime.types
# nuke manpages that should be provided by an MTA, bug #177605
rm "${ED}"/usr/share/man/man5/{mbox,mmdf}.5 \
|| ewarn "failed to remove files, please file a bug"
if use !prefix ; then
fowners root:mail /usr/bin/mutt_dotlock
fperms g+s /usr/bin/mutt_dotlock
fi
dodoc BEWARE COPYRIGHT ChangeLog NEWS OPS* PATCHES README* TODO VERSION
}
pkg_postinst() {
if [[ -z ${REPLACING_VERSIONS} ]] ; then
echo
elog "If you are new to mutt you may want to take a look at"
elog "the Gentoo QuickStart Guide to Mutt E-Mail:"
elog " https://wiki.gentoo.org/wiki/Mutt"
echo
else
ewarn "The nntp and notmuch patches were dropped from this release."
ewarn "Due to too much maintenance cost, the nntp and notmuch patches"
ewarn "were dropped from this release. If you need support for any"
ewarn "of these features, please consider using mail-client/neomutt."
echo
fi
if use !pgp-classic && use !smime-classic && use !gpgme ; then
ewarn "Please note that crypto related USE-flags of Mutt have changed."
ewarn "To comply with PMS, the following USE-flags were renamed:"
ewarn "(see https://bugs.gentoo.org/695078)"
ewarn " pgp_classic -> pgp-classic"
ewarn " smime_classic -> smime-classic"
echo
fi
if use gpgme ; then
ewarn "Note: in order for Mutt to actually use the gpgme backend"
ewarn " you MUST include 'set crypt_use_gpgme=yes' in .muttrc"
# https is broken due to a certificate mismatch :(
ewarn " http://www.mutt.org/doc/manual/#crypt-use-gpgme"
fi
}