aboutsummaryrefslogtreecommitdiffstats
path: root/community/borgbackup/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/borgbackup/APKBUILD')
-rw-r--r--community/borgbackup/APKBUILD112
1 files changed, 95 insertions, 17 deletions
diff --git a/community/borgbackup/APKBUILD b/community/borgbackup/APKBUILD
index 468347bff30..b2ffc235fa0 100644
--- a/community/borgbackup/APKBUILD
+++ b/community/borgbackup/APKBUILD
@@ -3,45 +3,101 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=borgbackup
_pkgname=borg
-pkgver=1.2.0
-pkgrel=0
+pkgver=1.2.8
+pkgrel=1
pkgdesc="Deduplicating backup program"
url="https://www.borgbackup.org/"
arch="all"
license="BSD-3-Clause"
-depends="python3 py3-packaging py3-pyzmq py3-msgpack"
-makedepends="python3-dev lz4-dev acl-dev attr-dev openssl1.1-compat-dev linux-headers
- py3-setuptools py3-setuptools_scm"
-checkdepends="py3-pytest py3-pytest-benchmark py3-dateutil"
+depends="
+ py3-msgpack
+ py3-packaging
+ python3
+ "
+makedepends="
+ acl-dev
+ attr-dev
+ linux-headers
+ lz4-dev
+ openssl-dev>3
+ py3-setuptools
+ py3-setuptools_scm
+ python3-dev
+ xxhash-dev
+ zstd-dev
+ "
+checkdepends="
+ cmd:fusermount3
+ py3-dateutil
+ py3-pytest
+ py3-pytest-benchmark
+ py3-pytest-xdist
+ "
subpackages="
+ $pkgname-pyc
$pkgname-doc
$pkgname-bash-completion
$pkgname-fish-completion
$pkgname-zsh-completion
"
-source="https://github.com/borgbackup/borg/releases/download/$pkgver/borgbackup-$pkgver.tar.gz"
+source="https://github.com/borgbackup/borg/releases/download/$pkgver/borgbackup-$pkgver.tar.gz
+ test-fusermount3.patch
+ "
+
+# secfixes:
+# 1.2.6-r0:
+# - CVE-2023-36811
-# https://gitlab.alpinelinux.org/alpine/aports/-/issues/11644
case "$CARCH" in
- armhf) ;;
- *) makedepends="$makedepends zstd-dev" ;;
+ armhf | armv7 | x86) ;; # blocked by py3-pyfuse3
+ *) makedepends="$makedepends py3-pyfuse3"
+ subpackages="$subpackages $pkgname-fuse::noarch";;
esac
+export BORG_LIBLZ4_PREFIX="/usr/include"
+export BORG_LIBXXHASH_PREFIX="/usr/include"
+export BORG_LIBZSTD_PREFIX="/usr/include"
export BORG_OPENSSL_PREFIX="/usr/include/openssl"
+prepare() {
+ default_prepare
+
+ # Remove bundled libs to ensure these don't end up in our binaries.
+ cd src/borg/algorithms/
+ rm -rf lz4 xxh64 zstd
+}
+
build() {
- # https://github.com/borgbackup/borg/issues/4891#issuecomment-615838317
- CFLAGS="$CFLAGS -DXXH_FORCE_MEMORY_ACCESS=1" \
+ # CYTHON_FORCE_REGEN - don't use precompiled Cython code, always regenerate.
+ CYTHON_FORCE_REGEN=1 \
python3 setup.py build
}
check() {
- PYTHONPATH="$(echo "$builddir"/build/lib.linux-*)" pytest -v \
- --benchmark-skip --pyargs borg.testsuite
+ [ -e /dev/fuse ] || export BORG_FUSE_IMPL='none'
+
+ PYTHONPATH="$(echo "$builddir"/build/lib.linux-*)" pytest -v -n auto \
+ --benchmark-skip --pyargs borg.testsuite
+
+ _delete_testsuite
+
+ # Run selftest to ensure that we haven't deleted some testsuite module that
+ # is needed for selftest. Note that borg runs selftest automatically before
+ # every operation, so it's crucial.
+ PYTHONPATH="$(echo build/lib.linux-*)" python3 -B <<-PYTHON
+ from borg.selftest import selftest
+ import logging
+
+ logging.basicConfig(level=logging.DEBUG)
+ selftest(logging)
+ PYTHON
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ # Run it again for the case we skipped check.
+ _delete_testsuite
+
+ python3 setup.py install --skip-build --root="$pkgdir"
install -Dm644 -t "$pkgdir"/usr/share/man/man1 docs/man/*.1
@@ -49,7 +105,7 @@ package() {
"$pkgdir"/usr/share/bash-completion/completions/$_pkgname
install -Dm644 scripts/shell_completions/fish/$_pkgname.fish \
- "$pkgdir"/usr/share/fish/completions/$_pkgname.fish
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$_pkgname.fish
install -Dm644 scripts/shell_completions/zsh/_$_pkgname \
"$pkgdir"/usr/share/zsh/site-functions/_$_pkgname
@@ -59,6 +115,28 @@ package() {
find . -name '*.h' -delete -o -name '*.c' -delete -o -name '*.pyx' -delete
}
+fuse() {
+ pkgdesc="$pkgdesc (FUSE support)"
+ depends="$pkgname=$pkgver-r$pkgrel py3-pyfuse3"
+
+ mkdir -p "$subpkgdir"
+}
+
+# Delete testsuite but keep modules required for selftest (see src/borg/selftest.py).
+_delete_testsuite() {
+ cd build/lib.linux-*
+
+ find borg/testsuite/ -type f ! \( \
+ -name '__init__.*' -or \
+ -name 'crypto.*' -or \
+ -name 'chunker.*' -or \
+ -name 'hashindex.*' \) -delete
+ rm -f borg/testsuite/__pycache__/*-pytest-*.pyc
+
+ cd - >/dev/null
+}
+
sha512sums="
-c06a797439078118fc57418be2a9af64e84248659ba25cfc04dff7c67f9f52a033a11cd1e830410be390ae59dcacd2474f97d8b5886db7d4910486d0ad9b7c51 borgbackup-1.2.0.tar.gz
+9a62e5eec894ebffe928a08c9a0cceebde084f16524d363a3c3be01d908a7eceaea8fa11eac422acc0fdb2534d79d1ee5ec5d9167e1086f334af6a28887616d5 borgbackup-1.2.8.tar.gz
+d5aea79b8ff663ca87b845680a31ba75235f734f95a5cfa444e49813916e530754b98269bfbccfda800fbf102652ee4ed47bdb71f6cda831e76f0fae3b5433d8 test-fusermount3.patch
"