2026-03-27 20:39:24 +01:00

142 lines
3.6 KiB
Plaintext

# Contributor: Olivier Mauras <olivier@mauras.ch>
# Contributor: Michał Polański <michal@polanski.me>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=borgbackup
_pkgname=borg
pkgver=1.4.4
pkgrel=1
pkgdesc="Deduplicating backup program"
url="https://www.borgbackup.org/"
arch="all"
license="BSD-3-Clause"
depends="
py3-msgpack
py3-packaging
python3
"
makedepends="
acl-dev
attr-dev
linux-headers
lz4-dev
openssl-dev>3
py3-gpep517
py3-pyfuse3
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
$pkgname-fuse::noarch
"
source="https://github.com/borgbackup/borg/releases/download/$pkgver/borgbackup-$pkgver.tar.gz
test-fusermount3.patch
big-endian.patch
"
# secfixes:
# 1.2.6-r0:
# - CVE-2023-36811
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"
export BORG_LIBACL_PREFIX="/usr/include"
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() {
# CYTHON_FORCE_REGEN - don't use precompiled Cython code, always regenerate.
CYTHON_FORCE_REGEN=1 \
gpep517 build-wheel \
--wheel-dir .dist \
--output-fd 3 3>&1 >&2
}
check() {
[ -e /dev/fuse ] || export BORG_FUSE_IMPL='none'
PYTHONPATH="$(echo "$builddir"/build/lib.linux-*)" pytest -v -n auto \
--benchmark-skip --pyargs borg.testsuite
cd build/lib.linux-*/borg
_delete_testsuite
cd - >/dev/null
# 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 -m installer -d "$pkgdir" \
.dist/*.whl
install -Dm644 -t "$pkgdir"/usr/share/man/man1 docs/man/*.1
install -Dm644 scripts/shell_completions/bash/$_pkgname \
"$pkgdir"/usr/share/bash-completion/completions/$_pkgname
install -Dm644 scripts/shell_completions/fish/$_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
# clean some useless files
cd "$pkgdir"/usr/lib/python*/site-packages/borg
find . -name '*.h' -delete -o -name '*.c' -delete -o -name '*.pyx' -delete
_delete_testsuite
}
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() {
find testsuite/ -type f ! \( \
-name '__init__.*' -or \
-name 'crypto.*' -or \
-name 'chunker.*' -or \
-name 'hashindex.*' \) -delete
rm -f testsuite/__pycache__/*-pytest-*.pyc
}
sha512sums="
a43dbfaaeb46764975bc9765731090b50e514a5a31add9236af7de6e99e7c67ac4bcf6b9869d648f9ce11c7f7d52318369f4fb7951cc1ef947aee64ac222150a borgbackup-1.4.4.tar.gz
b79f3ab4332f0606ef4fb3b1e76c2ffd88a839dfd6d42ca21ab08904c35a6b086ad4fc52daf6e5cecc4a7103d77154fcc878f26fb97d9054651af2591f9a441b test-fusermount3.patch
e2438059d9e704c3773c5437a1457428bfb0d44db7ae16796a4a240b1ae5ec880542a2dc7ead0ba0c8cae8c23baced085adbfc1f3df3d357651e8ba51e6ba0b2 big-endian.patch
"