File metaplicity.spec of Package metaplicity
#
# spec file for package metaplicity
#
# Copyright (c) 2025 Lars Marowsky-Brée <lars@marowsky-bree.eu>
#
Name: metaplicity
Version: 0.1.8
Release: 0
Summary: Kopia backup wrapper with btrfs snapshots and multi-target support
License: GPL-3.0-only
URL: https://codeberg.org/l_m_b/metaplicity
Source0: %{name}-%{version}.tar.gz
BuildRequires: python313-base
BuildRequires: python313-pip
BuildRequires: python313-setuptools
BuildRequires: python313-wheel
BuildRequires: systemd-rpm-macros
Requires: python313-base
Requires: kopia
Requires: ejson
Requires: btrfs-progs
Requires: rsync
Requires: util-linux
Requires: fuse
BuildArch: noarch
%description
Metaplicity is a backup orchestration tool built around Kopia.
Build for Lars' personal use. You'll probably hate it.
%prep
%autosetup -n %{name}-%{version}
%build
%python313_pyproject_wheel
%install
%python313_pyproject_install
# Install systemd units
install -D -m 0644 systemd/metaplicity@.service %{buildroot}%{_unitdir}/metaplicity@.service
install -D -m 0644 systemd/metaplicity@.timer %{buildroot}%{_unitdir}/metaplicity@.timer
# Install documentation
install -D -m 0644 README.md %{buildroot}%{_docdir}/%{name}/README.md
install -D -m 0644 systemd/README.systemd.md %{buildroot}%{_docdir}/%{name}/README.systemd.md
# Install example configurations
install -D -m 0644 config/global.toml %{buildroot}%{_docdir}/%{name}/examples/global.toml
install -D -m 0644 config/test-profile.toml %{buildroot}%{_docdir}/%{name}/examples/profile.toml
# Create config directory
install -d -m 0755 %{buildroot}%{_prefix}/etc/metaplicity
# Create log directory
install -d -m 0755 %{buildroot}%{_localstatedir}/log/metaplicity
%pre
%service_add_pre metaplicity@.service metaplicity@.timer
%post
%service_add_post metaplicity@.service metaplicity@.timer
%preun
%service_del_preun metaplicity@.service metaplicity@.timer
%postun
%service_del_postun metaplicity@.service metaplicity@.timer
%files
%license LICENSE
%doc %dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/README.md
%doc %{_docdir}/%{name}/README.systemd.md
%doc %{_docdir}/%{name}/examples/
%{python313_sitelib}/%{name}/
%{python313_sitelib}/%{name}-%{version}.dist-info/
%{_bindir}/%{name}
%{_unitdir}/metaplicity@.service
%{_unitdir}/metaplicity@.timer
%dir %{_prefix}/etc/metaplicity
%dir %attr(0755,root,root) %{_localstatedir}/log/metaplicity
%changelog