File notmuch.spec of Package notmuch
#
# spec file for package notmuch
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: notmuch
Version: 0.26
Release: 0
Summary: The mail indexer
License: GPL-3.0-or-later
Group: Productivity/Networking/Email/Utilities
Url: http://notmuchmail.org
Source0: http://notmuchmail.org/releases/%{name}-%{version}.tar.gz
Source1: http://notmuchmail.org/releases/%{name}-%{version}.tar.gz.sha256
Source2: http://notmuchmail.org/releases/%{name}-%{version}.tar.gz.sha256.asc
Source3: notmuch.keyring
%{bcond_without python}
%{bcond_without python3}
%{bcond_without emacs}
#FIXME: at they are not enabled
%{bcond_with ruby}
%{bcond_with go}
%define libversion 5
BuildRequires: libxapian-devel
BuildRequires: pkg-config
%if 0%{?suse_version} == 1315
BuildRequires: pkgconfig(gmime-2.6)
%else
BuildRequires: pkgconfig(gmime-3.0)
%endif
BuildRequires: python3-Sphinx
BuildRequires: pkgconfig(talloc)
%if %{with emacs}
BuildRequires: emacs-el
BuildRequires: emacs-nox
%endif
%if %{with python}
BuildRequires: python-devel
%endif
%if %{with python3}
BuildRequires: python3-devel
%endif
%if %{with ruby}
BuildRequires: ruby-devel
%endif
%if %{with go}
BuildRequires: go
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Because dealing with your mail can be so much better.
"Not much mail" is what Notmuch thinks about your email collection. Even if
you receive 12000 messages per month or have on the order of millions of
messages that you've been saving for decades. Regardless, Notmuch will be
able to quickly search all of it. It's just plain not much mail.
"Not much mail" is also what you should have in your inbox at any time.
Notmuch gives you what you need, (tags and fast search), so that you can
keep your inbox tamed and focus on what really matters in your life, (which
is surely not email).
Notmuch is an answer to Sup. Sup is a very good email program written by
William Morgan (and others) and is the direct inspiration for Notmuch.
Notmuch began as an effort to rewrite performance-critical pieces of Sup in
C rather than ruby. From there, it grew into a separate project. One
significant contribution Notmuch makes compared to Sup is the separation of
the indexer/searcher from the user interface. (Notmuch provides a library
interface so that its indexing/searching/tagging features can be integrated
into any email program.)
Notmuch is not much of an email program. It doesn't receive messages (no
POP or IMAP support). It doesn't send messages (no mail composer, no
network code at all). And for what it does do (email search) that work is
provided by an external library, Xapian. So if Notmuch provides no user
interface and Xapian does all the heavy lifting, then what's left here? Not
much.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
Requires: libnotmuch%{libversion} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%package -n libnotmuch%{libversion}
Summary: A shared library for %{name}
Group: Productivity/Networking/Email/Utilities
%description -n libnotmuch%{libversion}
The libnotmuch3 package contains shared libraries for %{name}.
%if %{with python}
%package -n python-%{name}
Summary: Python bindings for %{name}
#py_requires is useless as it was not designed for sub-packages
#BR: python-devel is on the top of spec file
Group: Development/Libraries/Python
Requires: python = %{py_ver}
Recommends: python-%{name}-doc = %{version}
%description -n python-%{name}
Python interface (bindings) for %{name}
%package -n python-%{name}-doc
Summary: Documentation of Python bindings for %{name}
Group: Documentation/HTML
%description -n python-%{name}-doc
Documentation of Python interface (bindings) for %{name}
%endif
%if %{with python3}
%package -n python3-%{name}
Summary: Python3 bindings for %{name}
Group: Development/Libraries/Python
Requires: python = %{py3_ver}
%if %{with python}
#documentation is built only when python2 is installed
#this shall be fixed once python2 disappear from openSUSE
Recommends: python-%{name}-doc = %{version}
%endif
%description -n python3-%{name}
Python3 interface (bindings) for %{name}
%endif
%if %{with emacs}
%package emacs
Summary: Emacs lisp email client based on %{name}
Group: Productivity/Networking/Email/Utilities
Requires: %{name} = %{version}-%{release}
Requires: emacs
Requires: emacs-el
%description emacs
%{name}-based email client written in emacs lisp
%endif
%prep
%setup -q
%build
#hand-made configure script
#zsh completion is a part of zsh itself
export CFLAGS="%{optflags}"
./configure \
%if %{without emacs}
--without-emacs \
%endif
--without-zsh-completion \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--includedir=%{_includedir} \
--mandir=%{_mandir} \
--sysconfdir=%{_sysconfdir}
#XXX: failed to build with smp_flags
#make %{?_smp_mflags}
make
#TODO: bindings - go, ruby
pushd bindings
%if %{with python3}
cp -r python python3
pushd python3
python3 setup.py build
popd
%endif
%if %{with python}
pushd python
python2 setup.py build
pushd docs
make dirhtml
rm -f build/dirhtml/.buildinfo
popd
popd
%endif
popd
%install
%make_install
%if %{with python3}
pushd bindings/python3
python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
popd
%endif
%if %{with python}
pushd bindings/python
python2 setup.py install --prefix=%{_prefix} --root=%{buildroot}
popd
%endif
%post -n libnotmuch%{libversion} -p /sbin/ldconfig
%postun -n libnotmuch%{libversion} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc AUTHORS COPYING COPYING-GPL-3 NEWS README
%{_bindir}/%{name}
%{_bindir}/%{name}-emacs-mua
%{_mandir}/man1/%{name}*.1*
%{_mandir}/man5/%{name}-hooks.5*
%{_mandir}/man7/%{name}-search-terms.7*
%{_mandir}/man7/%{name}-properties.7*
%files -n libnotmuch%{libversion}
%defattr(-,root,root)
%{_libdir}/libnotmuch.so.%{libversion}*
%files devel
%defattr(-,root,root)
%{_includedir}/%{name}.h
%{_libdir}/libnotmuch.so
%if %{with python}
%files -n python-%{name}
%defattr(-,root,root)
%doc bindings/python/README
%{python_sitelib}/%{name}/
%{python_sitelib}/%{name}*egg-info
%files -n python-%{name}-doc
%defattr(-,root,root)
%doc bindings/python/docs/build/dirhtml/
%endif
%if %{with python3}
%files -n python3-%{name}
%defattr(-,root,root)
%doc bindings/python/README
%{python3_sitelib}/%{name}/
%{python3_sitelib}/%{name}*egg-info
%endif
%if %{with emacs}
%files emacs
%defattr(-,root,root)
%{_datadir}/emacs/site-lisp/
%endif
%changelog