commit:     4a54b3c12b61c16a5ca2cafac5a165fa86f6f34d
Author:     Marc Schiffbauer <mschiff <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 17 15:02:55 2025 +0000
Commit:     Marc Schiffbauer <mschiff <AT> gentoo <DOT> org>
CommitDate: Fri Oct 17 15:03:46 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a54b3c1

sys-fs/sanoid: add 2.3.0-r2 to fix systemd prune unit

Signed-off-by: Marc Schiffbauer <mschiff <AT> gentoo.org>

 sys-fs/sanoid/sanoid-2.3.0-r2.ebuild | 117 +++++++++++++++++++++++++++++++++++
 1 file changed, 117 insertions(+)

diff --git a/sys-fs/sanoid/sanoid-2.3.0-r2.ebuild 
b/sys-fs/sanoid/sanoid-2.3.0-r2.ebuild
new file mode 100644
index 000000000000..e207528e8857
--- /dev/null
+++ b/sys-fs/sanoid/sanoid-2.3.0-r2.ebuild
@@ -0,0 +1,117 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd optfeature
+
+DESCRIPTION="Policy-driven snapshot management and replication tools for 
OpenZFS."
+HOMEPAGE="https://github.com/jimsalterjrs/sanoid";
+
+if [[ "${PV}" = *9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/jimsalterjrs/${PN^}.git";
+else
+       SRC_URI="https://github.com/jimsalterjrs/${PN^}/archive/v${PV}.tar.gz 
-> ${P}.gh.tar.gz"
+       KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="cron"
+
+BDEPEND="
+       dev-lang/perl
+       sys-apps/groff
+"
+
+RDEPEND="
+       dev-lang/perl
+       app-arch/gzip
+       app-arch/lz4
+       cron? ( virtual/cron )
+       dev-perl/Capture-Tiny
+       dev-perl/Config-IniFiles
+       sys-apps/pv
+       sys-block/mbuffer
+       sys-fs/zfs
+       virtual/perl-Data-Dumper
+       virtual/perl-Getopt-Long
+       virtual/ssh
+"
+
+DEPEND="${RDEPEND}"
+
+src_compile() {
+       perldoc -onroff -dsanoid.1 sanoid || die "Failed to compile sanoid.1"
+       perldoc -onroff -dsyncoid.1 syncoid || die "Failed to compile syncoid.1"
+}
+
+DOCS="CHANGELIST LICENSE README.md"
+
+src_prepare() {
+       default
+       sed -i 's|/usr/sbin|/usr/bin|g' \
+               "packages/debian/sanoid.timer" \
+               "packages/debian/sanoid.service" \
+               "packages/debian/sanoid.sanoid-prune.service" || die
+}
+
+src_install() {
+       dobin sanoid
+       dobin syncoid
+       doman sanoid.1 syncoid.1
+
+       # Documents
+       einstalldocs
+
+       # Configs
+       insinto /etc/sanoid
+       doins sanoid.defaults.conf
+       doins sanoid.conf
+
+       # Binaries
+       dobin sanoid syncoid findoid sleepymutex
+
+       # Cron?
+       if use cron; then
+               insinto /etc/cron.d
+               echo "#* * * * * root TZ=UTC /usr/bin/sanoid --cron" > 
"${PN}.cron" || die
+               newins "${PN}.cron" "${PN}"
+       fi
+
+       # Systemd units
+       systemd_dounit "packages/debian/sanoid.service"
+       systemd_dounit "packages/debian/sanoid.timer"
+       systemd_newunit "packages/debian/sanoid.sanoid-prune.service" 
"sanoid-prune.service"
+}
+
+pkg_postinst() {
+       optfeature "lzop compression support" app-arch/lzop
+       optfeature "pigz compression support" app-arch/pigz
+       optfeature "zstd compression support" app-arch/zstd
+
+       if [[ -z ${REPLACING_VERSIONS} ]]; then
+               elog "You will need to set up your 
${EROOT}/etc/sanoid/sanoid.conf file before"
+               elog "running sanoid for the first time. For details, please 
consult the"
+               elog "documentation on https://github.com/jimsalterjrs/sanoid.";
+               if systemd_is_booted; then
+                       elog ""
+                       elog "To enable sanoid via systemd timer, run:"
+                       elog "  systemctl enable --now sanoid.timer"
+                       if use cron; then
+                               elog ""
+                               elog "or"
+                               elog ""
+                       fi
+               fi
+               if use cron; then
+                       elog "To enable sanoid via cron, uncomment the cron job 
in /etc/cron.d/sanoid."
+               fi
+       else
+               elog "Removing old cache files (if any)"
+               [[ -f /var/cache/sanoidsnapshots.txt ]] && rm -v 
/var/cache/sanoidsnapshots.txt
+               [[ -f /var/cache/sanoid/snapshots.txt ]] && rm -v 
/var/cache/sanoid/snapshots.txt
+               [[ -f /var/cache/sanoid/datasets.txt ]] && rm -v 
/var/cache/sanoid/datasets.txt
+       fi
+}

Reply via email to