summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-08-21 07:19:44 +0100
committerSam James <sam@gentoo.org>2023-08-21 07:19:44 +0100
commit2625c0b5703f010194069af66b96edbc5f6a799a (patch)
tree076212db0914aeda2e8e0b1e55ea866b19f43063 /app-backup
parentapp-backup/btrbk: master now supports+prefers asciidoc again (diff)
downloadgentoo-2625c0b5703f010194069af66b96edbc5f6a799a.tar.gz
gentoo-2625c0b5703f010194069af66b96edbc5f6a799a.tar.bz2
gentoo-2625c0b5703f010194069af66b96edbc5f6a799a.zip
app-backup/btrbk: backport asciidoc fix
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-backup')
-rw-r--r--app-backup/btrbk/btrbk-0.32.6-r2.ebuild93
-rw-r--r--app-backup/btrbk/files/btrbk-0.32.6-support-asciidoc.patch58
2 files changed, 151 insertions, 0 deletions
diff --git a/app-backup/btrbk/btrbk-0.32.6-r2.ebuild b/app-backup/btrbk/btrbk-0.32.6-r2.ebuild
new file mode 100644
index 000000000000..3d512852507b
--- /dev/null
+++ b/app-backup/btrbk/btrbk-0.32.6-r2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/digint/btrbk.git"
+ inherit git-r3
+ SRC_URI=""
+else
+ SRC_URI="https://digint.ch/download/btrbk/releases/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+fi
+
+DESCRIPTION="Tool for creating snapshots and remote backups of btrfs subvolumes"
+HOMEPAGE="https://digint.ch/btrbk/"
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="+mbuffer +doc +lsbtr"
+
+RDEPEND="
+ dev-lang/perl
+ >=sys-fs/btrfs-progs-4.12
+ virtual/openssh
+ mbuffer? ( >=sys-block/mbuffer-20180505 )
+"
+BDEPEND="
+ doc? (
+ || (
+ app-text/asciidoc
+ >=dev-ruby/asciidoctor-1.5.7
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-support-asciidoc.patch
+)
+
+src_compile() {
+ emake clean
+ use doc && emake -C doc
+}
+
+src_install() {
+ local targets="install-bin install-etc install-share install-systemd"
+ use doc && targets="${targets} install-man install-doc"
+ use lsbtr && targets="${targets} install-bin-links"
+ emake \
+ DESTDIR="${D}" \
+ DOCDIR="/usr/share/doc/${PF}" \
+ SYSTEMDDIR="$(systemd_get_systemunitdir)" \
+ ${targets}
+}
+
+pkg_preinst() {
+ if has_version "<${CATEGORY}/${PN}-0.26.0" ; then
+ upgrade_0_26_0_warning="1"
+ fi
+ if has_version "<${CATEGORY}/${PN}-0.27.0" ; then
+ upgrade_0_27_0_warning="1"
+ fi
+}
+
+pkg_postinst() {
+ if [[ "${upgrade_0_26_0_warning}" == "1" ]]; then
+ ewarn "If you are using raw targets, make sure to run the"
+ ewarn "\"raw_suffix2sidecar\" utility in each target directory."
+ fi
+ if [[ "${upgrade_0_27_0_warning}" == "1" ]]; then
+ ewarn 'Due to a bugfix in the scheduler [1] [2], previously preserved'
+ ewarn 'monthly/yearly backups could get deleted when upgrading to'
+ ewarn 'btrbk-0.27.0.'
+ ewarn ''
+ ewarn 'Before upgrading to btrbk-0.27.0, make sure to stop all cron jobs'
+ ewarn 'or systemd timers calling btrbk.'
+ ewarn ''
+ ewarn 'After upgrading, run "btrbk prune --dry-run --print-schedule" and'
+ ewarn 'check if any snapshots/backups would get deleted. If you want to'
+ ewarn 'forcibly preserve a snapshot/backup forever, rename it:'
+ ewarn ''
+ ewarn ' mv mysubvol.YYYYMMDD mysubvol.YYYYMMDD.keep_forever'
+ ewarn ''
+ ewarn 'Note that btrbk ignores subvolumes with unknown naming scheme, e.g.'
+ ewarn '(".keep_forever" suffix in the example above).'
+ ewarn ''
+ ewarn ' [1] https://github.com/digint/btrbk/issues/217'
+ ewarn ' [2] https://github.com/digint/btrbk/commit/719fb5f'
+ fi
+}
diff --git a/app-backup/btrbk/files/btrbk-0.32.6-support-asciidoc.patch b/app-backup/btrbk/files/btrbk-0.32.6-support-asciidoc.patch
new file mode 100644
index 000000000000..5de2a1168d9e
--- /dev/null
+++ b/app-backup/btrbk/files/btrbk-0.32.6-support-asciidoc.patch
@@ -0,0 +1,58 @@
+https://github.com/digint/btrbk/commit/9dfee7bc32f392a599164ae4c2a0c24d418751ef
+
+From 9dfee7bc32f392a599164ae4c2a0c24d418751ef Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 8 Jul 2023 23:44:53 +0100
+Subject: [PATCH] doc: allow asciidoc again
+
+This effectively reverts 0e63843195eb35c26386863d18a70a764a3efd04 and
+173319e7e1599ef9d08b985740e55020ebc2ea85.
+
+asciidoc has been revived (for a while now) and doesn't require Python 2. We
+still prefer asciidoctor and fallback to asciidoc/a2x if it's not available.
+
+Comparing the asciidoc and asciidoctor man pages, everything looks OK.
+
+Python tends to be available more readily in distribution build environments
+rather than the Ruby stack. Also, the pregenerated man pages are gone as of
+f132c94c655afa930a73423e6c1abf88d412f49d.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/doc/Makefile
++++ b/doc/Makefile
+@@ -18,8 +18,19 @@ ifeq ($(COMPRESS), yes)
+ endif
+
+ # convert using "asciidoctor": <https://asciidoctor.org>
+-ASCIIDOCTOR_MANPAGE = asciidoctor -d manpage -b manpage
+-ASCIIDOCTOR_HTML = asciidoctor -b html5 -d article
++# fallback to "a2x" from asciidoc package: <http://asciidoc.org>
++ifneq (, $(shell command -v asciidoctor 2> /dev/null))
++ ASCIIDOC_MANPAGE = asciidoctor -d manpage -b manpage
++ ASCIIDOC_HTML = asciidoctor -b html5 -d article
++else ifneq (, $(shell command -v a2x 2> /dev/null))
++ # NOTE: using -L (--no-xmllint), as xmllint is a separate package on many distros.
++ ASCIIDOC_MANPAGE = a2x -L -d manpage -f manpage
++ ASCIIDOC_HTML = asciidoc -b html -d article
++else
++ ASCIIDOC_ERR = $(error "please install either asciidoc or asciidoctor")
++ ASCIIDOC_MANPAGE = $(ASCIIDOC_ERR)
++ ASCIIDOC_HTML = $(ASCIIDOC_ERR)
++endif
+
+ # reproducible builds: reference date is ":date:" attribute from asciidoc source
+ date_attr = $(shell sed -rn 's/:date:\s*//p' $(1))
+@@ -50,10 +61,10 @@ clean:
+ gzip -9 -n -c $< > $@
+
+ %.1 : %.1.asciidoc
+- SOURCE_DATE_EPOCH=$(call source_date_epoch,$<) $(ASCIIDOCTOR_MANPAGE) -o $@ $<
++ SOURCE_DATE_EPOCH=$(call source_date_epoch,$<) $(ASCIIDOC_MANPAGE) $<
+
+ %.5 : %.5.asciidoc
+- SOURCE_DATE_EPOCH=$(call source_date_epoch,$<) $(ASCIIDOCTOR_MANPAGE) -o $@ $<
++ SOURCE_DATE_EPOCH=$(call source_date_epoch,$<) $(ASCIIDOC_MANPAGE) $<
+
+ %.html : %.asciidoc
+- SOURCE_DATE_EPOCH=$(call source_date_epoch,$<) $(ASCIIDOCTOR_HTML) -o $@ $<
++ SOURCE_DATE_EPOCH=$(call source_date_epoch,$<) $(ASCIIDOC_HTML) -o $@ $<