From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5D72F138359 for ; Sun, 1 Nov 2020 11:51:51 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 50459E0831; Sun, 1 Nov 2020 11:51:50 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 1D2E4E0830 for ; Sun, 1 Nov 2020 11:51:50 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 74D1D33BEB8 for ; Sun, 1 Nov 2020 11:51:48 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id EB66E38A for ; Sun, 1 Nov 2020 11:51:46 +0000 (UTC) From: "Georgy Yakovlev" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Georgy Yakovlev" Message-ID: <1604231398.539a232d6c9d5faca4e067bcf9c96cccac3acdc7.gyakovlev@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: net-mail/notmuch/ X-VCS-Repository: repo/gentoo X-VCS-Files: net-mail/notmuch/metadata.xml net-mail/notmuch/notmuch-0.31-r1.ebuild net-mail/notmuch/notmuch-0.31-r2.ebuild X-VCS-Directories: net-mail/notmuch/ X-VCS-Committer: gyakovlev X-VCS-Committer-Name: Georgy Yakovlev X-VCS-Revision: 539a232d6c9d5faca4e067bcf9c96cccac3acdc7 X-VCS-Branch: master Date: Sun, 1 Nov 2020 11:51:46 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 1db19986-6bf5-4560-948e-222e415750ee X-Archives-Hash: 3d5ceb9bc3104c5cf4dc84595825cda1 commit: 539a232d6c9d5faca4e067bcf9c96cccac3acdc7 Author: Georgy Yakovlev gentoo org> AuthorDate: Sun Nov 1 05:59:13 2020 +0000 Commit: Georgy Yakovlev gentoo org> CommitDate: Sun Nov 1 11:49:58 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=539a232d 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 gentoo.org> net-mail/notmuch/metadata.xml | 1 + net-mail/notmuch/notmuch-0.31-r1.ebuild | 213 ------------------------ net-mail/notmuch/notmuch-0.31-r2.ebuild | 279 ++++++++++++++++++++++++++++++++ 3 files changed, 280 insertions(+), 213 deletions(-) diff --git a/net-mail/notmuch/metadata.xml b/net-mail/notmuch/metadata.xml index 799fdb5f19a..9c4dc0d6dd2 100644 --- a/net-mail/notmuch/metadata.xml +++ b/net-mail/notmuch/metadata.xml @@ -10,6 +10,7 @@ Proxy Maintainers + Provide doxygen generated API docs Install API documentation 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 07472ca4b03..00000000000 --- 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 00000000000..f9466e5398c --- /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 +}