summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2020-10-31 22:59:13 -0700
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2020-11-01 03:49:58 -0800
commit539a232d6c9d5faca4e067bcf9c96cccac3acdc7 (patch)
treed6b37fb55da2170b2da286ada630138a04c97090 /net-mail/notmuch
parentdev-ml/lablgtk: Stabilize 2.18.10 ppc, #713540 (diff)
downloadgentoo-539a232d6c9d5faca4e067bcf9c96cccac3acdc7.tar.gz
gentoo-539a232d6c9d5faca4e067bcf9c96cccac3acdc7.tar.bz2
gentoo-539a232d6c9d5faca4e067bcf9c96cccac3acdc7.zip
net-mail/notmuch: QA revbump: fix multiple issues
add apidoc flag, which depends on doxygen split doxygen dep under apidoc flag apidoc depends on doc, add required_use add py3.9 and pypy3 support (all tests pass) switch to cffi virtual add missing PYTHON_USEDEP to cffi add desktop file installation for emacs regen desktop database if required add python tests and pytest dep remove mock dep, works fine with stdlib one add perl dep where appropriate for some scripts add missing subslot on zlib use standard python subphase functions instead of bindings() fix makefile target sed use more standard funtion calls instead of hard to read hacks work around a Makefile race emacs doc generation, it needs -j1 add python documentation installation add basic docs, switch to einstalldocs prevent automagic dependency on gnu parallel in tests make tests more verbose prevent automagic dependency on sphinx (bug #751535) fix manpage installation fix manpage compression fix texinfo file installation fix missing manpage symlink fix overly generic manpage name fix nmbug & friends shebangs silence pushd/popd calls move around some deps misc style changes TODO: more cleanup needed. nmbug need python dependencies. TODO: remove old bindings to fix setuptools warning. TODO: crypto tests fail ( probably #749969 ) Bug: https://bugs.gentoo.org/751535 Package-Manager: Portage-3.0.8, Repoman-3.0.2 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'net-mail/notmuch')
-rw-r--r--net-mail/notmuch/metadata.xml1
-rw-r--r--net-mail/notmuch/notmuch-0.31-r1.ebuild213
-rw-r--r--net-mail/notmuch/notmuch-0.31-r2.ebuild279
3 files changed, 280 insertions, 213 deletions
diff --git a/net-mail/notmuch/metadata.xml b/net-mail/notmuch/metadata.xml
index 799fdb5f19ac..9c4dc0d6dd23 100644
--- a/net-mail/notmuch/metadata.xml
+++ b/net-mail/notmuch/metadata.xml
@@ -10,6 +10,7 @@
<name>Proxy Maintainers</name>
</maintainer>
<use>
+ <flag name="apidoc">Provide doxygen generated API docs</flag>
<flag name="doc">Install API documentation</flag>
<flag name="crypt">Support decryption and verification of PGP/MIME
messages and in Emacs UI - encryption; support also S/MIME
diff --git a/net-mail/notmuch/notmuch-0.31-r1.ebuild b/net-mail/notmuch/notmuch-0.31-r1.ebuild
deleted file mode 100644
index 07472ca4b038..000000000000
--- a/net-mail/notmuch/notmuch-0.31-r1.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_OPTIONAL=1
-NEED_EMACS="24.1"
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit bash-completion-r1 distutils-r1 elisp-common eutils flag-o-matic \
- pax-utils toolchain-funcs
-
-DESCRIPTION="Thread-based e-mail indexer, supporting quick search and tagging"
-HOMEPAGE="https://notmuchmail.org/"
-SRC_URI="https://notmuchmail.org/releases/${P}.tar.xz
- test? ( https://notmuchmail.org/releases/test-databases/database-v1.tar.xz )"
-
-LICENSE="GPL-3"
-# Sub-slot corresponds to major wersion of libnotmuch.so.X.Y. Bump of Y is
-# meant to be binary backward compatible.
-SLOT="0/5"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc64 ~x86"
-REQUIRED_USE="
- nmbug? ( python )
- python? ( ${PYTHON_REQUIRED_USE} )
- test? ( crypt emacs python valgrind )
-"
-IUSE="crypt doc emacs mutt nmbug python test valgrind"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- virtual/pkgconfig
- doc? (
- app-doc/doxygen
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/sphinx
- sys-apps/texinfo
- )
-"
-COMMON_DEPEND="
- dev-libs/glib
- dev-libs/gmime:3.0[crypt]
- >=dev-libs/xapian-1.4.0:=
- sys-libs/talloc
- sys-libs/zlib
- emacs? ( >=app-editors/emacs-${NEED_EMACS}:* )
- python? (
- ${PYTHON_DEPS}
- dev-python/cffi
- )
-"
-DEPEND="${COMMON_DEPEND}
- test? (
- >=app-editors/emacs-${NEED_EMACS}:*[libxml2]
- app-misc/dtach
- sys-devel/gdb
- crypt? (
- app-crypt/gnupg
- dev-libs/openssl
- )
- )
- valgrind? ( dev-util/valgrind )
-"
-RDEPEND="${COMMON_DEPEND}
- crypt? ( app-crypt/gnupg )
- mutt? (
- dev-perl/File-Which
- dev-perl/Mail-Box
- dev-perl/MailTools
- dev-perl/String-ShellQuote
- dev-perl/Term-ReadLine-Gnu
- virtual/perl-Digest-SHA
- virtual/perl-File-Path
- virtual/perl-Getopt-Long
- virtual/perl-Pod-Parser
- )
- nmbug? ( dev-vcs/git )
-"
-
-DOCS=( AUTHORS NEWS README )
-SITEFILE="50${PN}-gentoo.el"
-
-bindings() {
- local rc=0
- if use python; then
- # CFFI based bindings (recommended)
- pushd bindings/python-cffi || die
- ${@}
- rc=${?}
- popd || die
-
- # Old deprecated bindings, #736204. These are known to cause
- # memory loss and other issues. Avoid if at all possible.
- pushd bindings/python || die
- ${@}
- rc=${?}
- popd || die
- fi
- return ${rc}
-}
-
-pkg_setup() {
- use emacs && elisp-check-emacs-version
-}
-
-src_unpack() {
- unpack "${P}".tar.xz
- if use test; then
- mkdir -p "${S}"/test/test-databases || die
- cp "${DISTDIR}"/database-v1.tar.xz "${S}"/test/test-databases/ || die
- fi
-}
-
-src_prepare() {
- local _deps=""
- default
-
- # Python bindings
- bindings distutils-r1_src_prepare
- mv contrib/notmuch-mutt/README contrib/notmuch-mutt/README-mutt || die
-
- # Override dependencies for 'install' target
- use doc && _deps="install-info"
- sed -e "s/^install:.\+/install: all ${_deps}/" -i Makefile.local || die
-
- if use test; then
- append-cflags -g
- append-cxxflags -g
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # Non-autoconf configure
- append-ldflags -lnsl -lsocket
- fi
-}
-
-src_configure() {
- python_setup # For sphinx
- local _args=(
- --bashcompletiondir="$(get_bashcompdir)"
- --emacslispdir="${EPREFIX}/${SITELISP}/${PN}"
- --emacsetcdir="${EPREFIX}/${SITEETC}/${PN}"
- --without-desktop
- --without-ruby
- --zshcompletiondir="${EPREFIX}/usr/share/zsh/site-functions"
- $(use_with emacs)
- $(use_with doc api-docs)
- )
- tc-export CC CXX
- econf "${_args[@]}"
-}
-
-src_compile() {
- python_setup # For sphinx
- V=1 default
- bindings distutils-r1_src_compile
-
- if use mutt; then
- pushd contrib/notmuch-mutt || die
- emake notmuch-mutt.1
- popd || die
- fi
-}
-
-src_test() {
- pax-mark -m notmuch
- LD_LIBRARY_PATH="${WORKDIR}/${P}/lib" V=1 default
- pax-mark -ze notmuch
-}
-
-src_install() {
- default
- doman doc/_build/man/man?/*.?
-
- if use emacs; then
- elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die
- fi
-
- if use nmbug; then
- dobin devel/nmbug/nmbug
- dobin devel/nmbug/notmuch-report
- fi
-
- if use mutt; then
- pushd contrib/notmuch-mutt || die
- dobin notmuch-mutt
- doman notmuch-mutt.1
- insinto /etc/mutt
- doins notmuch-mutt.rc
- dodoc README-mutt
- popd || die
- fi
-
- DOCS="" bindings distutils-r1_src_install
-}
-
-pkg_preinst() {
- local _rcfile="/etc/mutt/notmuch-mutt.rc"
- if use mutt && ! [[ -e ${ROOT}${_rcfile} ]]; then
- elog "To enable notmuch support in mutt, add the following line"
- elog "to your mutt config file:"
- elog ""
- elog " source ${_rcfile}"
- fi
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/net-mail/notmuch/notmuch-0.31-r2.ebuild b/net-mail/notmuch/notmuch-0.31-r2.ebuild
new file mode 100644
index 000000000000..f9466e5398c8
--- /dev/null
+++ b/net-mail/notmuch/notmuch-0.31-r2.ebuild
@@ -0,0 +1,279 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_OPTIONAL=1
+NEED_EMACS="24.1"
+PYTHON_COMPAT=( python3_{6,7,8,9} pypy3 )
+
+inherit bash-completion-r1 desktop distutils-r1 elisp-common eutils flag-o-matic pax-utils toolchain-funcs xdg-utils
+
+DESCRIPTION="Thread-based e-mail indexer, supporting quick search and tagging"
+HOMEPAGE="https://notmuchmail.org/"
+SRC_URI="https://notmuchmail.org/releases/${P}.tar.xz
+ test? ( https://notmuchmail.org/releases/test-databases/database-v1.tar.xz )"
+
+LICENSE="GPL-3"
+# Sub-slot corresponds to major wersion of libnotmuch.so.X.Y. Bump of Y is
+# meant to be binary backward compatible.
+SLOT="0/5"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc64 ~x86"
+REQUIRED_USE="
+ apidoc? ( doc )
+ nmbug? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? ( crypt emacs python valgrind )
+"
+IUSE="apidoc crypt doc emacs mutt nmbug python test valgrind"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ virtual/pkgconfig
+ apidoc? (
+ app-doc/doxygen
+ dev-lang/perl
+ )
+ doc? (
+ dev-python/sphinx
+ sys-apps/texinfo
+ )
+ python? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+COMMON_DEPEND="
+ dev-libs/glib
+ dev-libs/gmime:3.0[crypt]
+ >=dev-libs/xapian-1.4.0:=
+ sys-libs/talloc
+ sys-libs/zlib:=
+ emacs? ( >=app-editors/emacs-${NEED_EMACS}:* )
+ python? (
+ ${PYTHON_DEPS}
+ virtual/python-cffi[${PYTHON_USEDEP}]
+ )
+"
+
+DEPEND="${COMMON_DEPEND}
+ test? (
+ >=app-editors/emacs-${NEED_EMACS}:*[libxml2]
+ app-misc/dtach
+ sys-devel/gdb
+ crypt? (
+ app-crypt/gnupg
+ dev-libs/openssl
+ )
+ )
+ valgrind? ( dev-util/valgrind )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ crypt? ( app-crypt/gnupg )
+ mutt? (
+ dev-perl/File-Which
+ dev-perl/Mail-Box
+ dev-perl/MailTools
+ dev-perl/String-ShellQuote
+ dev-perl/Term-ReadLine-Gnu
+ virtual/perl-Digest-SHA
+ virtual/perl-File-Path
+ virtual/perl-Getopt-Long
+ virtual/perl-Pod-Parser
+ )
+ nmbug? ( dev-vcs/git )
+"
+
+DOCS=( AUTHORS NEWS README )
+SITEFILE="50${PN}-gentoo.el"
+
+pkg_setup() {
+ use emacs && elisp-check-emacs-version
+}
+
+src_unpack() {
+ unpack "${P}".tar.xz
+ if use test; then
+ mkdir -p "${S}"/test/test-databases || die
+ cp "${DISTDIR}"/database-v1.tar.xz "${S}"/test/test-databases/ || die
+ fi
+}
+
+src_prepare() {
+ default
+
+ use python && distutils-r1_src_prepare
+
+ mv contrib/notmuch-mutt/README contrib/notmuch-mutt/README-mutt || die
+
+ # Override 'install' target, we want to install manpages with doman, but let it install texinfo files.
+ sed -i "s/all install-man install-info/all $(usex doc install-info '')/" "Makefile.local" || die
+
+ use test && append-flags '-g'
+
+ # Non-autoconf configure
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags '-lnsl' '-lsocket'
+}
+
+src_configure() {
+ python_setup # For sphinx
+
+ tc-export CC CXX
+
+ local myconf=(
+ --bashcompletiondir="$(get_bashcompdir)"
+ --emacslispdir="${EPREFIX}/${SITELISP}/${PN}"
+ --emacsetcdir="${EPREFIX}/${SITEETC}/${PN}"
+ --without-desktop
+ --without-ruby
+ --zshcompletiondir="${EPREFIX}/usr/share/zsh/site-functions"
+ $(use_with apidoc api-docs)
+ $(use_with doc docs)
+ $(use_with emacs)
+ )
+
+ econf "${myconf[@]}"
+}
+
+python_compile() {
+ pushd bindings/python-cffi > /dev/null || die
+ distutils-r1_python_compile
+ popd > /dev/null || die
+
+ # TODO: we want to drop those, research revdeps
+ pushd bindings/python > /dev/null || die
+ distutils-r1_python_compile
+ popd > /dev/null || die
+}
+
+python_compile_all() {
+ use doc && emake -C bindings/python/docs html
+}
+
+src_compile() {
+ python_setup # For sphinx
+
+ # prevent race in emacs doc generation
+ # FileNotFoundError: [Errno 2] No such file or directory: '..work/notmuch-0.31/emacs/notmuch.rsti'
+ if use emacs; then
+ use doc && emake -j1 -C emacs docstring.stamp V=1 #nowarn
+ fi
+
+ emake V=1
+
+ use python && distutils-r1_src_compile
+
+ if use mutt; then
+ pushd contrib/notmuch-mutt > /dev/null || die
+ emake notmuch-mutt.1
+ popd > /dev/null || die
+ fi
+}
+
+python_test() {
+ # we only have tests for cffi bindings
+ pushd bindings/python-cffi > /dev/null || die
+ rm -f tox.ini || die
+ pytest -vv || die "Tests failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+src_test() {
+ local test_failures=()
+ # NOTMUCH_TEST_SERIALIZE is needed to avoid using gnu parallel (if it's installed)
+ pax-mark -m notmuch
+ NOTMUCH_TEST_SERIALIZE=1 \
+ LD_LIBRARY_PATH="${S}/lib" \
+ nonfatal emake test V=1 OPTIONS="--verbose --tee" || test_failures+=( "'emake tests'" )
+ pax-mark -ze notmuch
+
+ # both lib and bin needed for testsuite.
+ if use python; then
+ LD_LIBRARY_PATH="${S}/lib" \
+ PATH="${S}:${PATH}" \
+ nonfatal distutils-r1_src_test || test_failures+=( "'python tests'" )
+ fi
+
+ [[ ${test_failures} ]] && die "Tests failed: ${test_failures[@]}"
+}
+
+python_install() {
+ pushd bindings/python-cffi > /dev/null || die
+ distutils-r1_python_install
+ popd > /dev/null || die
+
+ pushd bindings/python > /dev/null || die
+ distutils-r1_python_install
+ popd > /dev/null || die
+}
+
+src_install() {
+ default
+
+ local DOCS=( README{,.rst} INSTALL NEWS )
+
+ if use doc; then
+ pushd doc/_build/man/man1 > /dev/null || die
+ ln notmuch.1 notmuch-setup.1 || die
+ popd > /dev/null || die
+ if use apidoc; then
+ # rename overly generic manpage to avoid clashes
+ mv doc/_build/man/man3/deprecated.3 \
+ doc/_build/man/man3/notmuch-deprecated.3 || die
+ fi
+ doman doc/_build/man/man?/*.?
+ fi
+
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die
+ domenu emacs/notmuch-emacs-mua.desktop
+ fi
+
+ if use nmbug; then
+ # TODO: those guys need proper deps
+ python_fix_shebang devel/nmbug/{nmbug,notmuch-report}
+ dobin devel/nmbug/{nmbug,notmuch-report}
+ fi
+
+ if use mutt; then
+ pushd contrib/notmuch-mutt > /dev/null || die
+ dobin notmuch-mutt
+ # this manpage is built by pod2man
+ doman notmuch-mutt.1
+ insinto /etc/mutt
+ doins notmuch-mutt.rc
+ DOCS+=( README-mutt )
+ popd > /dev/null || die
+ fi
+
+ einstalldocs
+
+ if use python; then
+ use doc && local HTML_DOCS=( bindings/python/docs/html/. )
+ distutils-r1_src_install
+ fi
+}
+
+pkg_preinst() {
+ local _rcfile="/etc/mutt/notmuch-mutt.rc"
+ if use mutt && ! [[ -e ${ROOT}${_rcfile} ]]; then
+ elog "To enable notmuch support in mutt, add the following line"
+ elog "to your mutt config file:"
+ elog ""
+ elog " source ${_rcfile}"
+ fi
+}
+
+pkg_postinst() {
+ if use emacs; then
+ elisp-site-regen
+ xdg_desktop_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use emacs; then
+ elisp-site-regen
+ xdg_desktop_database_update
+ fi
+}