diff options
Diffstat (limited to 'mail-client')
-rw-r--r-- | mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch | 37 | ||||
-rw-r--r-- | mail-client/neomutt/neomutt-20210205-r1.ebuild | 156 |
2 files changed, 193 insertions, 0 deletions
diff --git a/mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch b/mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch new file mode 100644 index 000000000000..06f31ffeb46b --- /dev/null +++ b/mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch @@ -0,0 +1,37 @@ +From fa1db5785e5cfd9d3cd27b7571b9fe268d2ec2dc Mon Sep 17 00:00:00 2001 +From: Kevin McCarthy <kevin@8t8.us> +Date: Mon, 3 May 2021 13:11:30 -0700 +Subject: [PATCH] Fix seqset iterator when it ends in a comma + +If the seqset ended with a comma, the substr_end marker would be just +before the trailing nul. In the next call, the loop to skip the +marker would iterate right past the end of string too. + +The fix is simple: place the substr_end marker and skip past it +immediately. +--- + imap/util.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/imap/util.c b/imap/util.c +index 52aff7da0..27fb86295 100644 +--- a/imap/util.c ++++ b/imap/util.c +@@ -1119,13 +1119,11 @@ int mutt_seqset_iterator_next(struct SeqsetIterator *iter, unsigned int *next) + if (iter->substr_cur == iter->eostr) + return 1; + +- while (!*(iter->substr_cur)) +- iter->substr_cur++; + iter->substr_end = strchr(iter->substr_cur, ','); + if (!iter->substr_end) + iter->substr_end = iter->eostr; + else +- *(iter->substr_end) = '\0'; ++ *(iter->substr_end++) = '\0'; + + char *range_sep = strchr(iter->substr_cur, ':'); + if (range_sep) +-- +2.30.2 + diff --git a/mail-client/neomutt/neomutt-20210205-r1.ebuild b/mail-client/neomutt/neomutt-20210205-r1.ebuild new file mode 100644 index 000000000000..3c05cf9fd231 --- /dev/null +++ b/mail-client/neomutt/neomutt-20210205-r1.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} =~ 99999999$ ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/neomutt/neomutt.git" +else + SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~ppc64 ~s390 ~x86" +fi + +TEST_FILES_COMMIT=8629adab700a75c54e8e28bf05ad092503a98f75 +SRC_URI+=" test? ( https://github.com/${PN}/neomutt-test-files/archive/${TEST_FILES_COMMIT}.tar.gz -> neomutt-test-files-${TEST_FILES_COMMIT}.tar.gz )" + +DESCRIPTION="A small but very powerful text-based mail client" +HOMEPAGE="https://neomutt.org/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="autocrypt berkdb doc gdbm gnutls gpgme idn kerberos kyotocabinet + lmdb nls notmuch pgp-classic qdbm sasl selinux slang smime-classic + ssl tokyocabinet test" +REQUIRED_USE=" + autocrypt? ( gpgme )" + +CDEPEND=" + app-misc/mime-types + berkdb? ( + || ( + sys-libs/db:6.2 + sys-libs/db:5.3 + sys-libs/db:4.8 + ) + <sys-libs/db-6.3:= + ) + gdbm? ( sys-libs/gdbm:= ) + kyotocabinet? ( dev-db/kyotocabinet ) + lmdb? ( dev-db/lmdb:= ) + nls? ( virtual/libintl ) + qdbm? ( dev-db/qdbm ) + tokyocabinet? ( dev-db/tokyocabinet ) + gnutls? ( >=net-libs/gnutls-1.0.17:= ) + gpgme? ( >=app-crypt/gpgme-1.13.1:= ) + autocrypt? ( >=dev-db/sqlite-3 ) + idn? ( net-dns/libidn:= ) + kerberos? ( virtual/krb5 ) + notmuch? ( net-mail/notmuch:= ) + sasl? ( >=dev-libs/cyrus-sasl-2 ) + !slang? ( sys-libs/ncurses:0= ) + slang? ( sys-libs/slang ) + ssl? ( >=dev-libs/openssl-1.0.2u:0= ) +" +DEPEND="${CDEPEND} + dev-lang/tcl:= + 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 ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch" +) + +src_configure() { + local myconf=( + "$(usex doc --full-doc --disable-doc)" + "$(use_enable nls)" + "$(use_enable notmuch)" + + "$(use_enable autocrypt)" + "$(use_enable gpgme)" + "$(use_enable pgp-classic pgp)" + "$(use_enable smime-classic smime)" + + # Database backends. + "$(use_enable berkdb bdb)" + "$(use_enable gdbm)" + "$(use_enable kyotocabinet)" + "$(use_enable qdbm)" + "$(use_enable tokyocabinet)" + + "$(use_enable idn)" + "$(use_enable kerberos gss)" + "$(use_enable lmdb)" + "$(use_enable sasl)" + "--with-ui=$(usex slang slang ncurses)" + "--sysconfdir=${EPREFIX}/etc/${PN}" + "$(use_enable ssl)" + "$(use_enable gnutls)" + + "$(usex test --testing --disable-testing)" + ) + + econf CCACHE=none "${myconf[@]}" +} + +src_test() { + local test_dir="$(readlink --canonicalize ${S}/../neomutt-test-files-${TEST_FILES_COMMIT})" + pushd ${test_dir} || die "Could not cd into test_dir" + NEOMUTT_TEST_DIR="${test_dir}" ./setup.sh \ + || die "Failed to run the setup.sh script" + popd || die "Could not cd back" + NEOMUTT_TEST_DIR="${test_dir}" emake test +} + +src_install() { + emake DESTDIR="${D}" install + + # A man-page is always handy, so fake one - here neomuttrc.5 (neomutt.1 + # already exists) + if use !doc; then + sed -n \ + -e '/^\(CC_FOR_BUILD\|CFLAGS_FOR_BUILD\)\s*=/p' \ + -e '/^\(EXTRA_CFLAGS_FOR_BUILD\|LDFLAGS_FOR_BUILD\)\s*=/p' \ + -e '/^\(EXEEXT\|SRCDIR\)\s*=/p' \ + Makefile > docs/Makefile.fakedoc || die + sed -n \ + -e '/^MAKEDOC_CPP\s*=/,/^\s*$/p' \ + -e '/^docs\/\(makedoc$(EXEEXT)\|neomutt\.1\|neomuttrc\.5\)\s*:/,/^\s*$/p' \ + docs/Makefile.autosetup >> docs/Makefile.fakedoc || die + emake -f docs/Makefile.fakedoc docs/neomutt.1 + emake -f docs/Makefile.fakedoc docs/neomuttrc.5 + doman docs/neomutt.1 docs/neomuttrc.5 + fi + + dodoc LICENSE* ChangeLog* README* +} + +pkg_postinst() { + if use gpgme && ( use pgp-classic || use smime-classic ); then + ewarn " Note that gpgme (old gpg) includes both pgp and smime" + ewarn " support. You can probably remove pgp-classic (old crypt)" + ewarn " and smime-classic (old smime) from your USE-flags and" + ewarn " only enable gpgme." + fi + + if use autocrypt && ! use idn; then + ewarn " It is highly recommended that NeoMutt be also configured" + ewarn " with idn when autocrypt is enabled." + fi +} |