summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Vaněk <arkamar@gentoo.org>2024-07-03 16:40:40 +0200
committerPetr Vaněk <arkamar@gentoo.org>2024-07-03 16:47:12 +0200
commit77d6f53f807e6dc56c885c9829a5a6a3612127d6 (patch)
treee1bbcfa8ea944bd47a80754cf09e838fab320588 /app-backup
parentmedia-video/vlc: add 3.0.21, modern C fix (diff)
downloadgentoo-77d6f53f807e6dc56c885c9829a5a6a3612127d6.tar.gz
gentoo-77d6f53f807e6dc56c885c9829a5a6a3612127d6.tar.bz2
gentoo-77d6f53f807e6dc56c885c9829a5a6a3612127d6.zip
app-backup/borgmatic: add 1.8.12, enable py3.13
Signed-off-by: Petr Vaněk <arkamar@gentoo.org>
Diffstat (limited to 'app-backup')
-rw-r--r--app-backup/borgmatic/Manifest1
-rw-r--r--app-backup/borgmatic/borgmatic-1.8.12.ebuild81
-rw-r--r--app-backup/borgmatic/files/borgmatic-1.8.12-datetime-utc.patch20
3 files changed, 102 insertions, 0 deletions
diff --git a/app-backup/borgmatic/Manifest b/app-backup/borgmatic/Manifest
index 4e03e8260e60..a4e887164116 100644
--- a/app-backup/borgmatic/Manifest
+++ b/app-backup/borgmatic/Manifest
@@ -1,4 +1,5 @@
DIST borgmatic-1.8.10.tar.gz 599453 BLAKE2B 1ae994d452d29139d23940500d7c9f01e7fc1ddbd36254bf0c36d7f56064ccba7fb8434741dd0114d42271eb241098a12f8a07b83046447ae2225f7cd2ab12ae SHA512 10f5d962f6d25ef42ba4d076e238e1986dcfcd9832b3eea08560f367524824fdb0f80f42962ea6a471d711c6a0e293669b85abdc160475c20eed851ce7ad7f42
DIST borgmatic-1.8.11.tar.gz 600265 BLAKE2B 04c5e419de892e636e644185681c3e9ce0ca2dd9b62a043dfdabd38a32ca2f101f6a845fd1ebc68a025625066ea9c53aff9ab1e831a2aeaa566bccb7ec4827c7 SHA512 da19a341713302378409c0e90395a0e5ac4759b1ef593fe53a50113a0c90f130af060d38f49dae80018b8d8605da87415b841fedfc2d2778eee4a690aa5cc311
+DIST borgmatic-1.8.12.tar.gz 602369 BLAKE2B 79589e1510be9065d70b48ac5b8ce83a8d82776040cfe0ec833e7c9cbc33e4d285a2292870e2237902900ebb03204c6aafd702a2729b8860aec234429ec00921 SHA512 9cb91a4e7047da4effff69dfaea2358bd0d0897197d306775a3e9e260a2da6cc183c7675e02885fcd3d853c185171372371638b482b3e8b2f1bfcbcb2a14e4b7
DIST borgmatic-1.8.8.tar.gz 589575 BLAKE2B 09a3ca616bd1cf5fcc6c773d8066357d764b44230d691b7afa90bb1fdbce3aa3bfaac509e921adaa9086ba60310b24d1f2ba186849853c8f04e2a85c4b0ec94f SHA512 3984f6e34f8aed5c57df22799e60724903bfcec833e5c3215ad731977b7d376f36129fabd489c166f945d7103f272bcc132a9ea49010552001794b57f27fb5d5
DIST borgmatic-1.8.9.tar.gz 592715 BLAKE2B 3586404985b8cc0d5575f570ba6679c406e95b83453a7c2414872049067b1736010b9f8498fa92e91d281b1cdf75882bc09e40d6d9e443bff33c399ee1392ff9 SHA512 05386f6321d78e304030ebb78c495aee53a1b6f17241f101e73a097aa4208ac641d6105b1e8161cf714b2eab7c34fe682e082e9e997dc4ac6a6a4207253e8421
diff --git a/app-backup/borgmatic/borgmatic-1.8.12.ebuild b/app-backup/borgmatic/borgmatic-1.8.12.ebuild
new file mode 100644
index 000000000000..cac1b9a834e8
--- /dev/null
+++ b/app-backup/borgmatic/borgmatic-1.8.12.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 systemd pypi
+
+DESCRIPTION="Automatically create, prune and verify backups with borgbackup"
+HOMEPAGE="https://torsion.org/borgmatic/"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv"
+IUSE="apprise"
+
+REQUIRED_USE="test? ( apprise )"
+
+# borg is called as an external tool, hence no pythonic stuff
+RDEPEND="app-backup/borgbackup
+ $(python_gen_cond_dep '
+ <dev-python/colorama-0.5[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ ')
+ apprise? ( $(python_gen_cond_dep '
+ dev-python/apprise[${PYTHON_USEDEP}]
+ ') )"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/flexmock-0.10.10[${PYTHON_USEDEP}]
+ ')
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.13-no_test_coverage.patch
+ "${FILESDIR}"/${PN}-1.7.14-systemd_service_bin_path.patch
+ # fix for py3.10
+ "${FILESDIR}"/${PN}-1.8.12-datetime-utc.patch
+)
+
+# A fragile test whose only purpose is to make sure the NEWS file
+# has been updated for the current version.
+EPYTEST_DESELECT=(
+ tests/integration/commands/test_borgmatic.py::test_borgmatic_version_matches_news_version
+)
+
+distutils_enable_tests pytest
+
+src_install() {
+ distutils-r1_src_install
+ systemd_dounit sample/systemd/borgmatic.{service,timer}
+ keepdir /etc/borgmatic
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ elog "To generate a sample configuration file, run:"
+ elog " ${PN} config generate"
+ else
+ local oldver
+ for oldver in ${REPLACING_VERSIONS}; do
+ if ver_test "${oldver}" -lt 1.8.0; then
+ ewarn "Please be warned that ${PN}-1.8.0 has introduced several breaking changes."
+ ewarn "For details, please see"
+ ewarn
+ ewarn " https://github.com/borgmatic-collective/borgmatic/releases/tag/1.8.0"
+ ewarn
+ break
+ fi
+ done
+ fi
+ elog
+ elog "Systemd users wishing to periodically run ${PN} can use the provided timer and service units."
+}
diff --git a/app-backup/borgmatic/files/borgmatic-1.8.12-datetime-utc.patch b/app-backup/borgmatic/files/borgmatic-1.8.12-datetime-utc.patch
new file mode 100644
index 000000000000..4a3505976f90
--- /dev/null
+++ b/app-backup/borgmatic/files/borgmatic-1.8.12-datetime-utc.patch
@@ -0,0 +1,20 @@
+From f5a1dd31c8e5807e52196ecfd337c22e0f197bf5 Mon Sep 17 00:00:00 2001
+From: Dan Helfman <witten@torsion.org>
+Date: Sun, 23 Jun 2024 18:28:41 -0700
+Subject: [PATCH] Fix PagerDuty hook traceback with Python < 3.10 (#886).
+
+https://github.com/borgmatic-collective/borgmatic/commit/f5a1dd31c8e5807e52196ecfd337c22e0f197bf5
+
+diff --git a/borgmatic/hooks/pagerduty.py b/borgmatic/hooks/pagerduty.py
+index 6ec1a6ef..e9e34da0 100644
+--- a/borgmatic/hooks/pagerduty.py
++++ b/borgmatic/hooks/pagerduty.py
+@@ -40,7 +40,7 @@ def ping_monitor(hook_config, config, config_filename, state, monitoring_log_lev
+ return
+
+ hostname = platform.node()
+- local_timestamp = datetime.datetime.now(datetime.UTC).astimezone().isoformat()
++ local_timestamp = datetime.datetime.now(datetime.timezone.utc).astimezone().isoformat()
+ payload = json.dumps(
+ {
+ 'routing_key': hook_config['integration_key'],