Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mail-client/neomutt: Add unit tests #16886

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions mail-client/neomutt/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
DIST neomutt-20200626.tar.gz 3349377 BLAKE2B 4fd75c2e8e8b3d55a63f954cb261c3930f871141c73d3fb8d2f42422735f3f862bae6966249187632aa2d55acb0372cd150381e11ce936cfef9976c71e43eb67 SHA512 f4ffc958bdd02107b2dd11bf321483a6e1e73a67e0540d034ab26f9eb13930ad80299b11f79acaedb4262f8f8643f9ce4baa388bc7f901b9ae35e9650acdcc9e
DIST neomutt-20200821.tar.gz 3404856 BLAKE2B db15997c89135680dcef7c6108ca1c2e120eade4a1e915f02de6f81758fed2a360f905e3dbe79f4ebfc17e86c3476d4823f227f5752a5558de13dde2cde6308a SHA512 f7cba9123613c34711b84ab9f5ccab840be38876da20b29d281c142a3b4f5d582b879d727c95232b0fcc7b41947d05bf89707232d3980e160bcdba68784d6eef
DIST neomutt-test-files-8629adab700a75c54e8e28bf05ad092503a98f75.tar.gz 3673 BLAKE2B 50354f19aedc5fc07d59ecb5b38fa65de16119bc0929f47014bd35dab4d3a4e5953c8b35670f3440003cf0cbccc2d0d2b3a869dc929cdc3cd60b02790270fb54 SHA512 3d4962210bc558234d818801dcaa7851a0aef011c96d91c054af535186ffda42059fc61fb148c48e1b076999fe3159b31589a69a29ed1897f8928f52fcc157d3
51 changes: 34 additions & 17 deletions mail-client/neomutt/neomutt-20200626-r1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

EAPI=7

inherit eutils flag-o-matic
inherit eutils

if [[ ${PV} =~ 99999999$ ]]; then
inherit git-r3
Expand All @@ -14,18 +14,17 @@ else
KEYWORDS="~amd64 ~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="berkdb doc gdbm gnutls gpgme idn kerberos kyotocabinet libressl
lmdb nls notmuch pgp-classic qdbm sasl selinux slang smime-classic
ssl tokyocabinet"

# Disable tests until neomutt-test-files are avablae
# (https://bugs.gentoo.org/734122)
RESTRICT=test
ssl tokyocabinet test"

CDEPEND="
app-misc/mime-types
Expand All @@ -37,38 +36,45 @@ CDEPEND="
)
<sys-libs/db-6.3:=
)
gdbm? ( sys-libs/gdbm )
gdbm? ( sys-libs/gdbm:= )
kyotocabinet? ( dev-db/kyotocabinet )
lmdb? ( dev-db/lmdb )
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-0.9.0 )
gnutls? ( >=net-libs/gnutls-1.0.17:= )
gpgme? ( >=app-crypt/gpgme-0.9.0:= )
idn? ( net-dns/libidn:= )
kerberos? ( virtual/krb5 )
notmuch? ( net-mail/notmuch )
notmuch? ( net-mail/notmuch:= )
sasl? ( >=dev-libs/cyrus-sasl-2 )
!slang? ( sys-libs/ncurses:0 )
!slang? ( sys-libs/ncurses:0= )
slang? ( sys-libs/slang )
ssl? (
!libressl? ( >=dev-libs/openssl-0.9.6:0 )
libressl? ( dev-libs/libressl )
!libressl? ( >=dev-libs/openssl-1.0.2u:0= )
libressl? ( dev-libs/libressl:= )
)
"
DEPEND="${CDEPEND}
dev-lang/tcl
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 )
)"
|| (
www-client/lynx
www-client/w3m
www-client/elinks
)
)
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-mutt )
"

RESTRICT="!test? ( test )"

src_configure() {
local myconf=(
"$(usex doc --full-doc --disable-doc)"
Expand All @@ -94,11 +100,22 @@ src_configure() {
"--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

Expand Down
149 changes: 149 additions & 0 deletions mail-client/neomutt/neomutt-20200821.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit eutils

if [[ ${PV} =~ 99999999$ ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/neomutt/neomutt.git"
EGIT_CHECKOUT_DIR="${WORKDIR}/neomutt-${P}"
else
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~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="berkdb doc gdbm gnutls gpgme idn kerberos kyotocabinet libressl
lmdb nls notmuch pgp-classic qdbm sasl selinux slang smime-classic
ssl tokyocabinet test"

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-0.9.0:= )
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? (
!libressl? ( >=dev-libs/openssl-1.0.2u:0= )
libressl? ( dev-libs/libressl:= )
)
"
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 )"

src_configure() {
local myconf=(
"$(usex doc --full-doc --disable-doc)"
"$(use_enable nls)"
"$(use_enable notmuch)"

"$(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
}