Gentoo Archives: gentoo-commits

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-mail/notmuch/
Date: Tue, 21 Dec 2021 04:19:14
Message-Id: 1640060174.7750aefc9a88435bafbf86135980884126b94828.gyakovlev@gentoo
1 commit: 7750aefc9a88435bafbf86135980884126b94828
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Tue Dec 21 04:16:14 2021 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Tue Dec 21 04:16:14 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7750aefc
7
8 net-mail/notmuch: add 0.34.2
9
10 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
11
12 net-mail/notmuch/Manifest | 1 +
13 net-mail/notmuch/notmuch-0.34.2.ebuild | 303 +++++++++++++++++++++++++++++++++
14 2 files changed, 304 insertions(+)
15
16 diff --git a/net-mail/notmuch/Manifest b/net-mail/notmuch/Manifest
17 index 8f1c189ad144..a53e1acf6fcc 100644
18 --- a/net-mail/notmuch/Manifest
19 +++ b/net-mail/notmuch/Manifest
20 @@ -1,3 +1,4 @@
21 DIST database-v1.tar.xz 204876 BLAKE2B 846a8d2f17edb61ed1c3d3c655becd1f60b4046772058706f13d516f65421a5105593660f1c556907bb2bb9607a3c2521243d1be07bffb70817ad3b8461680ca SHA512 e2d87373e00b65756d7fea40c54fb236d7a37ce839145c3afd99ab26efdc17796e540c021e2c24e521df2d0a01ccbf918994f87a0d83235ff9b109a51555b3d0
22 DIST notmuch-0.32.2.tar.xz 725652 BLAKE2B 02801f57bd62b8020298babcc8243276f95fb535621178b2b0b8dfb58d14e8123b7b1fa7d2c246c9e005ca2c7c2d594aeea710408c3d14f26ffcd550c03b4d9a SHA512 e4151cb3ba0e5d26e67572a37c3132d0e35af5d9ca4339d88d8ba25385b6022c376a75abcffb57fda3242c836f6e40dec39c4038674682616b6e5785223295bf
23 DIST notmuch-0.34.1.tar.xz 748444 BLAKE2B f8e2d8041082a95832d0b5bf600b92b5de93e606d99ffdf38ad13bbd80205688780d64a4c64f1db3783eaa56b34f5fef1839430faf058aa5b92053026de06326 SHA512 ef1423e049a83f81fb6b5a75f9a35efc0381c661bbe00007dabd6b385df829ac4195137ccef3fa1ec652df8eb4566e3d9d30880a4c74497a9668cb3ca240fb88
24 +DIST notmuch-0.34.2.tar.xz 749384 BLAKE2B b8abb99cbb3632bd42742e3f31fb76b7113c2f9c4240081efad940d2fec139f442cc7d21be5b67ca7aca7ce730e9e3b9f8db690ed3a1239946ec490a089b700b SHA512 fd15145404c621fb259b869ddfd77d6302f777a8ead203cfe3a62b66b452f7d3737b214657517c592ce86ce37fb914f800830ea9d05da20d59ec09feaa81d20c
25
26 diff --git a/net-mail/notmuch/notmuch-0.34.2.ebuild b/net-mail/notmuch/notmuch-0.34.2.ebuild
27 new file mode 100644
28 index 000000000000..d7b1744e55c7
29 --- /dev/null
30 +++ b/net-mail/notmuch/notmuch-0.34.2.ebuild
31 @@ -0,0 +1,303 @@
32 +# Copyright 1999-2021 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=7
36 +
37 +DISTUTILS_OPTIONAL=1
38 +DISTUTILS_USE_SETUPTOOLS=manual
39 +NEED_EMACS="24.1"
40 +PYTHON_COMPAT=( python3_{7..10} pypy3 )
41 +
42 +inherit bash-completion-r1 desktop distutils-r1 elisp-common flag-o-matic pax-utils toolchain-funcs xdg-utils
43 +
44 +DESCRIPTION="Thread-based e-mail indexer, supporting quick search and tagging"
45 +HOMEPAGE="https://notmuchmail.org/"
46 +SRC_URI="https://notmuchmail.org/releases/${P}.tar.xz
47 + test? ( https://notmuchmail.org/releases/test-databases/database-v1.tar.xz )"
48 +
49 +LICENSE="GPL-3"
50 +# Sub-slot corresponds to major wersion of libnotmuch.so.X.Y. Bump of Y is
51 +# meant to be binary backward compatible.
52 +SLOT="0/5"
53 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc64 ~x86 ~x64-macos"
54 +REQUIRED_USE="
55 + apidoc? ( doc )
56 + nmbug? ( python )
57 + python? ( ${PYTHON_REQUIRED_USE} )
58 + test? ( crypt emacs python valgrind )
59 +"
60 +IUSE="apidoc crypt doc emacs mutt nmbug python test valgrind"
61 +RESTRICT="!test? ( test )"
62 +
63 +BDEPEND="
64 + app-arch/xz-utils[extra-filters(-)]
65 + virtual/pkgconfig
66 + apidoc? (
67 + app-doc/doxygen
68 + dev-lang/perl
69 + )
70 + doc? (
71 + dev-python/sphinx
72 + sys-apps/texinfo
73 + )
74 + python? (
75 + dev-python/setuptools[${PYTHON_USEDEP}]
76 + test? ( dev-python/pytest[${PYTHON_USEDEP}] )
77 + )
78 + test? (
79 + app-shells/bash
80 + sys-process/parallel
81 + )
82 +"
83 +
84 +COMMON_DEPEND="
85 + dev-libs/glib
86 + dev-libs/gmime:3.0[crypt]
87 + >=dev-libs/xapian-1.4.0:=
88 + sys-libs/talloc
89 + sys-libs/zlib:=
90 + emacs? ( >=app-editors/emacs-${NEED_EMACS}:* )
91 + python? (
92 + ${PYTHON_DEPS}
93 + virtual/python-cffi[${PYTHON_USEDEP}]
94 + )
95 +"
96 +
97 +DEPEND="${COMMON_DEPEND}
98 + test? (
99 + >=app-editors/emacs-${NEED_EMACS}:*[libxml2]
100 + app-misc/dtach
101 + sys-devel/gdb[python]
102 + crypt? (
103 + app-crypt/gnupg
104 + dev-libs/openssl
105 + )
106 + )
107 + valgrind? ( dev-util/valgrind )
108 +"
109 +
110 +RDEPEND="${COMMON_DEPEND}
111 + crypt? ( app-crypt/gnupg )
112 + mutt? (
113 + dev-perl/File-Which
114 + dev-perl/Mail-Box
115 + dev-perl/MailTools
116 + dev-perl/String-ShellQuote
117 + dev-perl/Term-ReadLine-Gnu
118 + virtual/perl-Digest-SHA
119 + virtual/perl-File-Path
120 + virtual/perl-Getopt-Long
121 + dev-perl/Pod-Parser
122 + )
123 + nmbug? ( dev-vcs/git )
124 +"
125 +
126 +SITEFILE="50${PN}-gentoo.el"
127 +
128 +pkg_setup() {
129 + use emacs && elisp-check-emacs-version
130 +}
131 +
132 +src_unpack() {
133 + unpack "${P}".tar.xz
134 + if use test; then
135 + mkdir -p "${S}"/test/test-databases || die
136 + cp "${DISTDIR}"/database-v1.tar.xz "${S}"/test/test-databases/ || die
137 + fi
138 +}
139 +
140 +src_prepare() {
141 + default
142 +
143 + use python && distutils-r1_src_prepare
144 +
145 + mv contrib/notmuch-mutt/README contrib/notmuch-mutt/README-mutt || die
146 +
147 + # Override 'install' target, we want to install manpages with doman, but let it install texinfo files.
148 + sed -i "s/all install-man install-info/all $(usex doc install-info '')/" "Makefile.local" || die
149 +
150 + use test && append-flags '-g'
151 +
152 + # Non-autoconf configure
153 + [[ ${CHOST} == *-solaris* ]] && append-ldflags '-lnsl' '-lsocket'
154 +
155 + # sphinx-4 broke everything. https://bugs.gentoo.org/789492
156 + echo 'man_make_section_directory = False' >> doc/conf.py || die
157 +}
158 +
159 +src_configure() {
160 + python_setup # For sphinx
161 +
162 + tc-export CC CXX
163 +
164 + local myconf=(
165 + --bashcompletiondir="$(get_bashcompdir)"
166 + --emacslispdir="${EPREFIX}/${SITELISP}/${PN}"
167 + --emacsetcdir="${EPREFIX}/${SITEETC}/${PN}"
168 + --without-desktop
169 + --without-ruby
170 + --zshcompletiondir="${EPREFIX}/usr/share/zsh/site-functions"
171 + $(use_with apidoc api-docs)
172 + $(use_with doc docs)
173 + $(use_with emacs)
174 + )
175 +
176 + # FIXME:
177 + # Checking for GMime session key extraction support... * ACCESS DENIED: open_wr: /dev/bus/usb/001/011
178 + # notmuch configure compiles a program _check_session_keys.c, inline in ./configure script
179 + # gmime/gpg/scdaemon tries to open usb devices in GMime test
180 + # we pretend to allow it, without actually allowing it to read or write.
181 + # https://bugs.gentoo.org/821328
182 + addpredict /dev/bus/usb
183 +
184 + econf "${myconf[@]}"
185 +}
186 +
187 +python_compile() {
188 + pushd bindings/python-cffi > /dev/null || die
189 + distutils-r1_python_compile
190 + # copy stuff just in case
191 + if use test; then
192 + mkdir -p build/stage/tests || die
193 + cp -v tests/*.py build/stage/tests || die
194 + fi
195 + popd > /dev/null || die
196 +
197 + # TODO: we want to drop those, research revdeps
198 + pushd bindings/python > /dev/null || die
199 + distutils-r1_python_compile
200 + popd > /dev/null || die
201 +}
202 +
203 +python_compile_all() {
204 + use doc && emake -C bindings/python/docs html
205 +}
206 +
207 +src_compile() {
208 + python_setup # For sphinx
209 +
210 + # prevent race in emacs doc generation
211 + # FileNotFoundError: [Errno 2] No such file or directory: '..work/notmuch-0.31/emacs/notmuch.rsti'
212 + if use emacs; then
213 + use doc && emake -j1 -C emacs docstring.stamp V=1 #nowarn
214 + fi
215 +
216 + emake V=1
217 +
218 + use python && distutils-r1_src_compile
219 +
220 + if use mutt; then
221 + pushd contrib/notmuch-mutt > /dev/null || die
222 + emake notmuch-mutt.1
223 + popd > /dev/null || die
224 + fi
225 +}
226 +
227 +python_test() {
228 + # we only have tests for cffi bindings
229 + pushd bindings/python-cffi > /dev/null || die
230 + rm -f tox.ini || die
231 + pytest -vv || die "Tests failed with ${EPYTHON}"
232 + popd > /dev/null || die
233 +}
234 +
235 +src_test() {
236 + local test_failures=()
237 + pax-mark -m notmuch
238 +
239 + # we run pytest via eclass phasefunc, so delete upstream launcher
240 + use python && { rm -v test/T391-python-cffi.sh || die ; }
241 +
242 + LD_LIBRARY_PATH="${S}/lib" \
243 + nonfatal emake test V=1 OPTIONS="--verbose --tee" || test_failures+=( "'emake tests'" )
244 + pax-mark -ze notmuch
245 +
246 + # both lib and bin needed for testsuite.
247 + if use python; then
248 + LD_LIBRARY_PATH="${S}/lib" \
249 + PATH="${S}:${PATH}" \
250 + nonfatal distutils-r1_src_test || test_failures+=( "'python tests'" )
251 + fi
252 +
253 + [[ ${test_failures} ]] && die "Tests failed: ${test_failures[@]}"
254 +}
255 +
256 +python_install() {
257 + pushd bindings/python-cffi > /dev/null || die
258 + distutils-r1_python_install
259 + popd > /dev/null || die
260 +
261 + pushd bindings/python > /dev/null || die
262 + distutils-r1_python_install
263 + popd > /dev/null || die
264 +}
265 +
266 +src_install() {
267 + default
268 +
269 + if use doc; then
270 + pushd doc/_build/man/man1 > /dev/null || die
271 + ln notmuch.1 notmuch-setup.1 || die
272 + popd > /dev/null || die
273 + if use apidoc; then
274 + # rename overly generic manpage to avoid clashes
275 + mv doc/_build/man/man3/deprecated.3 \
276 + doc/_build/man/man3/notmuch-deprecated.3 || die
277 + fi
278 + doman doc/_build/man/man?/*.?
279 + fi
280 +
281 + if use emacs; then
282 + elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die
283 + domenu emacs/notmuch-emacs-mua.desktop
284 + fi
285 +
286 + if use nmbug; then
287 + # TODO: those guys need proper deps
288 + python_fix_shebang devel/nmbug/{nmbug,notmuch-report}
289 + dobin devel/nmbug/{nmbug,notmuch-report}
290 + fi
291 +
292 + if use mutt; then
293 + pushd contrib/notmuch-mutt > /dev/null || die
294 + dobin notmuch-mutt
295 + # this manpage is built by pod2man
296 + doman notmuch-mutt.1
297 + insinto /etc/mutt
298 + doins notmuch-mutt.rc
299 + dodoc README-mutt
300 + popd > /dev/null || die
301 + fi
302 +
303 + local DOCS=( README{,.rst} INSTALL NEWS )
304 + einstalldocs
305 +
306 + if use python; then
307 + use doc && local HTML_DOCS=( bindings/python/docs/html/. )
308 + distutils-r1_src_install
309 + fi
310 +}
311 +
312 +pkg_preinst() {
313 + local _rcfile="/etc/mutt/notmuch-mutt.rc"
314 + if use mutt && ! [[ -e "${EROOT}"${_rcfile} ]]; then
315 + elog "To enable notmuch support in mutt, add the following line"
316 + elog "to your mutt config file:"
317 + elog ""
318 + elog " source ${_rcfile}"
319 + fi
320 +}
321 +
322 +pkg_postinst() {
323 + if use emacs; then
324 + elisp-site-regen
325 + xdg_desktop_database_update
326 + fi
327 +}
328 +
329 +pkg_postrm() {
330 + if use emacs; then
331 + elisp-site-regen
332 + xdg_desktop_database_update
333 + fi
334 +}