diff options
Diffstat (limited to 'community/borgbackup/APKBUILD')
-rw-r--r-- | community/borgbackup/APKBUILD | 114 |
1 files changed, 98 insertions, 16 deletions
diff --git a/community/borgbackup/APKBUILD b/community/borgbackup/APKBUILD index c71a57b9b66..b2ffc235fa0 100644 --- a/community/borgbackup/APKBUILD +++ b/community/borgbackup/APKBUILD @@ -3,41 +3,101 @@ # Maintainer: Jakub Jirutka <jakub@jirutka.cz> pkgname=borgbackup _pkgname=borg -pkgver=1.1.17 +pkgver=1.2.8 pkgrel=1 pkgdesc="Deduplicating backup program" url="https://www.borgbackup.org/" -arch="all !s390x !mips !mips64" # limited by py3-pyzmq +arch="all" license="BSD-3-Clause" -depends="python3 py3-pyzmq" -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" +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" python3 setup.py build + # 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 @@ -45,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 @@ -55,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=" -6170680efcca35341031a8fcfd9434d2dca530bb6f7fcabbf452e6af6a8df5a825b4991d342f3c97bd7378d56b9ee86e6118f9281a31ba51235f49818852f4bb borgbackup-1.1.17.tar.gz +9a62e5eec894ebffe928a08c9a0cceebde084f16524d363a3c3be01d908a7eceaea8fa11eac422acc0fdb2534d79d1ee5ec5d9167e1086f334af6a28887616d5 borgbackup-1.2.8.tar.gz +d5aea79b8ff663ca87b845680a31ba75235f734f95a5cfa444e49813916e530754b98269bfbccfda800fbf102652ee4ed47bdb71f6cda831e76f0fae3b5433d8 test-fusermount3.patch " |