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
openSUSE Build Service is sponsored by