commit:     86a4861e461e295b66844592352e95ae610d1083
Author:     Nicolas Bock <nicolasbock <AT> gentoo <DOT> org>
AuthorDate: Wed May  5 21:54:19 2021 +0000
Commit:     Nicolas Bock <nicolasbock <AT> gentoo <DOT> org>
CommitDate: Thu May  6 14:26:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86a4861e

mail-client/neomutt: neomutt-20210205-r1

* Applied 0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch

Bug: https://bugs.gentoo.org/788391
Closes: https://github.com/gentoo/gentoo/pull/20694
Signed-off-by: Nicolas Bock <nicolasbock <AT> gentoo.org>

 ...x-seqset-iterator-when-it-ends-in-a-comma.patch |  37 +++++
 mail-client/neomutt/neomutt-20210205-r1.ebuild     | 156 +++++++++++++++++++++
 2 files changed, 193 insertions(+)

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 00000000000..06f31ffeb46
--- /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 <[email protected]>
+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 00000000000..3c05cf9fd23
--- /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
+}

Reply via email to