Blob Blame History Raw
%bcond_without check

Name:           duplicity
Version:        0.8.23
Release:        %autorelease
Summary:        Encrypted bandwidth-efficient backup using rsync algorithm

License:        GPLv2+
URL:            http://www.nongnu.org/duplicity/
Source0:        https://launchpad.net/duplicity/0.8-series/%{version}/+download/duplicity-%{version}.tar.gz

Requires:       ca-certificates
Requires:       gnupg >= 1.0.6
Requires:       python3dist(lockfile)
Requires:       python3dist(pexpect)
Requires:       rsync

Recommends:     ncftp >= 3.1.9
Recommends:     openssh-clients
Recommends:     python3dist(PyDrive2)
Recommends:     python3dist(boto3)
Recommends:     python3dist(dropbox)
Recommends:     python3dist(paramiko)

BuildRequires:  gcc
BuildRequires:  gettext
BuildRequires:  python3-devel
BuildRequires:  pyproject-rpm-macros
BuildRequires:  librsync-devel >= 0.9.6
BuildRequires:  python3dist(wheel)
# dependencies for check
BuildRequires:  gnupg >= 1.0.6
BuildRequires:  python3dist(setuptools-scm)
BuildRequires:  python3dist(fasteners)
BuildRequires:  python3dist(future)
BuildRequires:  python3dist(mock)
BuildRequires:  python3dist(pexpect)
BuildRequires:  python3dist(pytest)
BuildRequires:  python3dist(pytest-runner)


%description
Duplicity incrementally backs up files and directory by encrypting
tar-format volumes with GnuPG and uploading them to a remote (or
local) file server. In theory many protocols for connecting to a
file server could be supported; so far ssh/scp, local file access,
rsync, ftp, HSI, WebDAV and Amazon S3 have been written.

Because duplicity uses librsync, the incremental archives are space
efficient and only record the parts of files that have changed since
the last backup. Currently duplicity supports deleted files, full
unix permissions, directories, symbolic links, fifos, device files,
but not hard links.

%prep
%autosetup -p1

%generate_buildrequires
%pyproject_buildrequires

%build
%py3_build

%install
%py3_install

mkdir -p %{buildroot}/%{_sysconfdir}/%{name}
ln -sf %{_sysconfdir}/pki/tls/cert.pem \
       %{buildroot}/%{_sysconfdir}/%{name}/cacert.pem

%find_lang %{name}

# drop documentation
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/AUTHORS
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/CHANGELOG.md
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/COPYING
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/README.md
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/README-LOG.md
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/README-TESTING.md
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/README-REPO.md
rm -rf    %{buildroot}%{_docdir}/duplicity-%{version}/CONTRIBUTING.md

%if %{with check}
%check
%pytest
%endif

%files -f %{name}.lang
%license COPYING
%doc CHANGELOG.md README.md CONTRIBUTING.md
%{_bindir}/rdiffdir
%{_bindir}/%{name}
%{_mandir}/man1/%{name}*
%{_mandir}/man1/rdiffdir*
%dir %{_sysconfdir}/%{name}
%{_sysconfdir}/%{name}/cacert.pem
%{python3_sitearch}/duplicity/
%{python3_sitearch}/duplicity-%{version}-py%{python3_version}.egg-info

%changelog
%autochangelog