%if 0%{!?mkrel:1} %define mkrel(c) %{1}%{?dist} %endif %if 0%{!?_userunitdir:1} %define _userunitdir %{_prefix}/lib/systemd/user %endif %if 0%{?python_subpackages:1} %python_subpackages %endif # Use the deprecated py3_build/py3_install if pyproject_wheel/pyproject_install aren't available. %if 0%{!?pyproject_wheel:1} %global pyproject_wheel %{py3_build} %endif %if 0%{!?pyproject_install:1} %global pyproject_install %{py3_install} %endif Name: imapmirror Version: 8.0.4 Release: %mkrel 1 Summary: IMAP email synchronisation tool, fork and drop-in replacement for offlineimap3 License: GPLv2+ URL: https://github.com/IMAPMirror/imapmirror Source0: https://github.com/IMAPMirror/imapmirror/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz %global min_python_version 3.8 %global oname offlineimap # Unmerged patches from offlineimap Patch5: offlineimap-find-cacerts.diff Patch6: imapmirror-remove-distro.diff Patch7: offlineimap-doc.diff # For some reason, imapmirror requires gssapi[kerberos], portalocker, and # portalocker[cygwin] when not patched but offlineimap doesn't. Patch9: imapmirror-loosen-requirements.diff BuildArch: noarch BuildRequires: pkgconfig(python3) >= %{min_python_version} BuildRequires: python3dist(imaplib2) >= 3.5 BuildRequires: python3dist(pip) BuildRequires: python3dist(setuptools) >= 51 BuildRequires: python3dist(wheel) BuildRequires: python3dist(rfc6555) # Documentation support: BuildRequires: (a2x or asciidoc or %{_bindir}/a2x) BuildRequires: make BuildRequires: gzip BuildRequires: python3dist(sphinx) Requires: python3 >= %{min_python_version} Requires: python3dist(imaplib2) >= 3.5 Requires: python3dist(urllib3) Requires: python3dist(rfc6555) Recommends: python3dist(gssapi) Recommends: python3dist(portalocker) Recommends: python3dist(keyring) Provides: offlineimap = %{version}-%{release} Provides: offlineimap3 = %{version}-%{release} Conflicts: offlineimap3 < %{version} %if 0%{?pyproject_buildrequires:1} %generate_buildrequires %pyproject_buildrequires %endif %description IMAPMirror is software that downloads your email mailbox(es) as local Maildirs. IMAPMirror will synchronize both sides via IMAP. It is a fork of OfflineIMAP3. %prep %autosetup -p1 %build %pyproject_wheel # 'make docs' builds the man pages and the api documentation. make -C docs SPHINXBUILD='%{__python3} -msphinx' %install %pyproject_install pushd %{buildroot}%{_bindir} mv %{oname}.py %{oname} %if 0%{?py3_shebang_fix:1} # Fix python shebang in the offlineimap program. %py3_shebang_fix %{buildroot}/%{_bindir}/%{oname} %endif ln -s %{oname} %{name} popd mkdir -p %{buildroot}/%{_mandir}/man1 mkdir -p %{buildroot}/%{_mandir}/man7 install -m644 -p docs/%{oname}.1 %{buildroot}/%{_mandir}/man1/ install -m644 -p docs/%{oname}ui.7 %{buildroot}/%{_mandir}/man7/ mkdir -p %{buildroot}/%{_userunitdir} install -m644 -p contrib/systemd/*.service contrib/systemd/*.timer %{buildroot}/%{_userunitdir} %check ./%{oname}.py -V %clean rm -f %{_builddir}/%{name}-%{version}*pyproject* rm -rf %{_buildir}/.pyproject-builddir %if 0%{?suse_version} >= 1600 %files %python_files %else %files %endif %license COPYING %doc %{oname}.conf* docs/html/*.html %{_bindir}/%{name} %{_bindir}/%{oname} %{python3_sitelib}/%{oname}/ %{python3_sitelib}/%{name}-*.*-info %{_mandir}/man1/%{oname}.1* %{_mandir}/man7/%{oname}ui.7* %{_userunitdir}/