File snapper.spec of Package snapper

Name:           snapper
Version:        0.13.0
Release:        1%{?dist}
Summary:        Tool for filesystem snapshot management
License:        GPL-2.0-or-later
URL:            http://snapper.io
Source0:        snapper-%{version}.tar.gz

BuildRequires:  gcc-c++
BuildRequires:  boost-devel >= 1.33.0
BuildRequires:  dbus-devel
BuildRequires:  libxml2-devel
BuildRequires:  libmount-devel
BuildRequires:  libacl-devel
BuildRequires:  btrfs-progs-devel
BuildRequires:  json-c-devel
BuildRequires:  ncurses-devel
BuildRequires:  pam-devel
BuildRequires:  gettext-devel
BuildRequires:  docbook-style-xsl
BuildRequires:  libxslt
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool
BuildRequires:  make
BuildRequires:  systemd-rpm-macros
BuildRequires:  pkgconfig
BuildRequires:  e2fsprogs-devel

Requires:       btrfs-progs
Requires:       dbus
Requires:       diffutils

%description
Snapper is a tool for filesystem snapshot management. It can create, delete,
and compare snapshots and undo changes done between snapshots. Snapper works
with btrfs and thin-provisioned LVM volumes.

%package devel
Summary:        Development files for snapper
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description devel
Development files for snapper.

%prep
%autosetup -n snapper-%{version}

%build
autoreconf -fiv
%configure \
    --prefix=%{_prefix} \
    --sysconfdir=%{_sysconfdir} \
    --disable-silent-rules \
    --disable-ext4

%make_build

%install
%make_install

# Create config directories if needed
mkdir -p %{buildroot}%{_sysconfdir}/snapper/configs
mkdir -p %{buildroot}%{_sysconfdir}/snapper/filters

# Remove duplicate COPYING from doc dir (we use %license instead)
rm -f %{buildroot}%{_datadir}/doc/snapper/COPYING

# Rename cron script from openSUSE naming to standard naming
mv %{buildroot}%{_sysconfdir}/cron.hourly/suse.de-snapper \
   %{buildroot}%{_sysconfdir}/cron.hourly/snapper

%post
%systemd_post snapper-timeline.timer snapper-cleanup.timer snapper-boot.timer

%preun
%systemd_preun snapper-timeline.timer snapper-cleanup.timer snapper-boot.timer

%postun
%systemd_postun_with_restart snapper-timeline.timer snapper-cleanup.timer snapper-boot.timer

%files
%license COPYING
%doc AUTHORS README.md
%{_bindir}/snapper
%{_sbindir}/snapperd
%{_sbindir}/mksubvolume
%{_sbindir}/snbk
%dir %{_sysconfdir}/snapper
%dir %{_sysconfdir}/snapper/configs
%dir %{_sysconfdir}/snapper/filters
%{_sysconfdir}/cron.hourly/snapper
%{_sysconfdir}/logrotate.d/snapper
%{_datadir}/dbus-1/system.d/org.opensuse.Snapper.conf
%{_unitdir}/snapper-*.timer
%{_unitdir}/snapper-*.service
%{_unitdir}/snapperd.service
%{_libdir}/libsnapper.so.*
%{_libdir}/security/pam_snapper.so
%{_libdir}/snapper/
%{_prefix}/lib/pam_snapper/
%{_prefix}/lib/snapper/
%{_prefix}/lib/zypp/
%{_mandir}/man?/*
%{_datadir}/snapper/
%{_datadir}/dbus-1/system-services/org.opensuse.Snapper.service
%{_datadir}/locale/*/LC_MESSAGES/snapper.mo
%{_datadir}/bash-completion/completions/snapper
%{_datadir}/bash-completion/completions/snbk
%{_datadir}/zsh/site-functions/_snapper

%files devel
%{_includedir}/snapper/
%{_libdir}/libsnapper.so

%changelog
* Sun Jan 26 2025 Andrey <hactarr@obs> - 0.11.2-1
- Initial package for AlmaLinux 10
openSUSE Build Service is sponsored by