# # spec file for package btrfsmaintenance # # Copyright (c) 2022-2023 ZhuningOS # #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates %endif Name: btrfsmaintenance Version: 0.4.2 Release: 3.3.1 Summary: Scripts for btrfs periodic maintenance tasks License: GPL-2.0-only Group: System/Base Url: https://github.com/kdave/btrfsmaintenance Source0: %{name}-%{version}.tar.bz2 Source1: btrfs-defrag-plugin.sh Patch1: 0001-README-document-impact-of-balance-quota-groups.patch Patch2: 0002-sysconfig-reduce-default-balance-usage-thresholds-fa.patch Patch3: 0003-sysconfig-document-using-systemd.time-7-for-frequenc.patch Patch4: 0004-btrfsmaintenance-refresh-cron.sh-validate-periods-fo.patch Patch5: 0005-btrfs-defrag-plugin-remove-dependency-on-zypp-plugin.patch Patch6: btrfsmaintenance.service-delete-install-section.patch BuildRequires: systemd Requires: btrfsprogs Requires: libzypp(plugin:commit) Supplements: btrfsprogs BuildArch: noarch %{?systemd_requires} %description Scripts for btrfs maintenance tasks like periodic scrub, balance, trim or defrag on selected mountpoints or directories. Hints for periodic snapshot tuning (eg. for snapper). %prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 cp %{SOURCE1} . %build %install # scripts install -m 755 -d %{buildroot}%{_datadir}/%{name} install -m 755 btrfs-defrag.sh %{buildroot}%{_datadir}/%{name} install -m 755 btrfs-balance.sh %{buildroot}%{_datadir}/%{name} install -m 755 btrfs-scrub.sh %{buildroot}%{_datadir}/%{name} install -m 755 btrfs-trim.sh %{buildroot}%{_datadir}/%{name} install -m 755 btrfsmaintenance-refresh-cron.sh %{buildroot}%{_datadir}/%{name} install -m 644 btrfsmaintenance-functions %{buildroot}%{_datadir}/%{name} # systemd services and timers install -m 755 -d %{buildroot}%{_unitdir} install -m 644 -D btrfsmaintenance-refresh.service %{buildroot}%{_unitdir} install -m 644 -D btrfsmaintenance-refresh.path %{buildroot}%{_unitdir} install -m 644 -D btrfs-balance.service %{buildroot}%{_unitdir} install -m 644 -D btrfs-defrag.service %{buildroot}%{_unitdir} install -m 644 -D btrfs-scrub.service %{buildroot}%{_unitdir} install -m 644 -D btrfs-trim.service %{buildroot}%{_unitdir} install -m 644 -D btrfs-balance.timer %{buildroot}%{_unitdir} install -m 644 -D btrfs-defrag.timer %{buildroot}%{_unitdir} install -m 644 -D btrfs-scrub.timer %{buildroot}%{_unitdir} install -m 644 -D btrfs-trim.timer %{buildroot}%{_unitdir} install -m 755 -d %{buildroot}%{_sbindir} ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcbtrfsmaintenance-refresh # zypp plugin install -m 755 -d %{buildroot}%{_libexecdir}/zypp/plugins/commit install -m 755 -D btrfs-defrag-plugin.sh %{buildroot}%{_libexecdir}/zypp/plugins/commit # config install -m 755 -d %{buildroot}%{_fillupdir} install -m 644 -D sysconfig.btrfsmaintenance %{buildroot}%{_fillupdir} %pre # if the new service files don't exist, we migrate from # old version with old script, remove cron symlinks [ ! -f %{_unitdir}/btrfs-balance.timer -a -f %{_datadir}/%{name}/btrfsmaintenance-refresh-cron.sh ] && %{_datadir}/%{name}/btrfsmaintenance-refresh-cron.sh uninstall %service_add_pre btrfsmaintenance-refresh.service btrfsmaintenance-refresh.path btrfs-balance.service btrfs-balance.timer btrfs-defrag.service btrfs-defrag.timer btrfs-scrub.service btrfs-scrub.timer btrfs-trim.service btrfs-trim.timer %post %service_add_post btrfsmaintenance-refresh.service btrfsmaintenance-refresh.path btrfs-balance.service btrfs-balance.timer btrfs-defrag.service btrfs-defrag.timer btrfs-scrub.service btrfs-scrub.timer btrfs-trim.service btrfs-trim.timer %{fillup_only btrfsmaintenance} %preun %service_del_preun btrfsmaintenance-refresh.service btrfsmaintenance-refresh.path btrfs-balance.service btrfs-balance.timer btrfs-defrag.service btrfs-defrag.timer btrfs-scrub.service btrfs-scrub.timer btrfs-trim.service btrfs-trim.timer %postun %service_del_postun btrfsmaintenance-refresh.service btrfsmaintenance-refresh.path btrfs-balance.service btrfs-balance.timer btrfs-defrag.service btrfs-defrag.timer btrfs-scrub.service btrfs-scrub.timer btrfs-trim.service btrfs-trim.timer %files %license COPYING %doc README.md %{_fillupdir}/sysconfig.btrfsmaintenance %dir %{_datadir}/%{name} %{_datadir}/%{name}/* %dir %{_libexecdir}/zypp/ %dir %{_libexecdir}/zypp/plugins %dir %{_libexecdir}/zypp/plugins/commit %{_libexecdir}/zypp/plugins/commit/btrfs-defrag-plugin.sh %{_unitdir}/btrfsmaintenance-refresh.path %{_unitdir}/btrfsmaintenance-refresh.service %{_unitdir}/btrfs-balance.service %{_unitdir}/btrfs-defrag.service %{_unitdir}/btrfs-scrub.service %{_unitdir}/btrfs-trim.service %{_unitdir}/btrfs-balance.timer %{_unitdir}/btrfs-defrag.timer %{_unitdir}/btrfs-scrub.timer %{_unitdir}/btrfs-trim.timer %{_sbindir}/rcbtrfsmaintenance-refresh %changelog