summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD152
1 files changed, 136 insertions, 16 deletions
diff --git a/PKGBUILD b/PKGBUILD
index dcc4ecfa71fa..2ca53d0782b6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,28 +1,148 @@
-# Maintainer: Felix Braun <hazzl@falix.de>
-pkgname=zbackup
-pkgver=1.4.3
+# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com
+# Contributor: aksr <aksr at t-com dot me>
+# Contributor: Isabelle COWAN-BERGMAN « izzi at izzette.com »
+# Contributor: Felix Braun <hazzl@falix.de>
+
+set -u
+_pkgname='zbackup'
+pkgname="${_pkgname}"
+#pkgname+='-git'
+pkgver=1.5
pkgrel=1
pkgdesc='A versatile deduplicating backup tool'
arch=('i686' 'x86_64')
url='http://zbackup.org'
+#_giturl='https://github.com/zbackup/zbackup'
+_giturl='https://github.com/davidbartonau/zbackup'
license=('GPL2')
depends=('xz' 'openssl' 'protobuf')
-makedepends=('cmake')
-source=(https://github.com/${pkgname}/${pkgname}/archive/${pkgver}.tar.gz)
-md5sums=('34faaba97084cadd90d4f1c62fa476fd')
+depends+=('lzo' 'gcc-libs' 'glibc' 'abseil-cpp' 'zlib')
+makedepends=('cmake' 'libunwind')
+checkdepends=('python')
+_srcdir="${_pkgname}-${pkgver}"
+source=(
+ #"${_srcdir}.tar.gz::${_giturl}/archive/${pkgver}.tar.gz"
+ "${_srcdir}.tar.gz::${_giturl}/archive/refs/tags/${pkgver}.tar.gz"
+ #'0000-PR-154.sed.patch::https://patch-diff.githubusercontent.com/raw/zbackup/zbackup/pull/154.patch'
+ #'0001-PR-158.sed.patch::https://github.com/zbackup/zbackup/pull/158.patch'
+ '0002-debian.remove_throw.patch::https://sources.debian.org/data/main/z/zbackup/1.5-2/debian/patches/remove_throw.patch'
+ '0003-debian.protobuf.patch::https://sources.debian.org/data/main/z/zbackup/1.5-2/debian/patches/protobuf.patch'
+ '0004-ObjectsIteratorComp_operator_const.patch' # https://stackoverflow.com/questions/67809226/getting-weird-compilation-error-in-defining-a-stdset-with-custom-compare-in-c
+)
+md5sums=('ad15fe626eefdb835ec81e0a2d38892c'
+ 'ab06602fa0ac5188a2bda2f171aabb8c'
+ '9f849b1dfd85ca352b87e357c8bb64c0'
+ '77837a55195b6c7cc0d69e4766021670')
+sha256sums=('344fed4491cb52b6712b03c1d8b1bcf994cfc578ad422cb644502e171585a8f7'
+ 'bc4e3a9a887880b0555bf457a4566e11c819e00246ff84f75e8fbd3b7a00a3a3'
+ '89c765f53db777a429b94a544b0d4bb66350804dace5cdb3cfa2b26d193acab0'
+ '12d77664b83fa3ce321797a691098bbe49440146b75042c29ef029c5136ab92d')
+
+if [ "${pkgname%-git}" != "${pkgname}" ]; then
+ _srcdir="${_pkgname}"
+ source[0]="git+${_giturl}.git"
+ makedepends+=('git')
+ md5sums[0]='SKIP'
+ sha256sums[0]='SKIP'
+ provides=("${_pkgname}=${pkgver%.r*}")
+ conflicts=("${_pkgname}")
+pkgver() {
+ set -u
+ cd "${_srcdir}"
+ git describe --tags | sed -E -e 's/([^-]*-g)/r\1/' -e 's/-/./g'
+ set +u
+}
+fi
+
+prepare() {
+ set -u
+ cd "${_srcdir}"
+ local _seds=(
+ -e '# PR-154'
+ -e '#/cmake_minimum_required/ s:2\.8\.3:2.8.2:g'
+ -e '#/a\/sptr.hh/,$ d'
+ -e '/ CMAKE_CXX_STANDARD / s:11:14:g'
+ -e '# PR-158'
+ -e '#/emitting chunks/,$ d'
+ )
+ local _f
+ for _f in "${source[@]}"; do
+ _f="${_f%%::*}"
+ _f="${_f##*/}"
+ if [[ "${_f}" = *.sed.patch ]]; then
+ set +u; msg2 "Patch ${_f}"; set -u
+ patch -Nup1 -i <(sed -E "${_seds[@]}" "${srcdir}/${_f}")
+ elif [[ "${_f}" = *.patch ]]; then
+ set +u; msg2 "Patch ${_f}"; set -u
+ patch -Nup1 -i "${srcdir}/${_f}"
+ fi
+ done
+ #cd '..'; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; cd "${_srcdir}"; false
+ # diff -pNaru5 'a' 'b' > '0000-new.patch'
+ set +u
+}
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- cmake . -DCMAKE_INSTALL_PREFIX=/usr
- make
- cd tartool
- cmake . -DCMAKE_INSTALL_PREFIX=/usr
- make
+ set -u
+ cd "${_srcdir}"
+ #export CC=clang
+ #export CXX=clang
+ #LDFLAGS+=',--copy-dt-needed-entries' # https://stackoverflow.com/questions/19901934/libpthread-so-0-error-adding-symbols-dso-missing-from-command-line
+ local _cmakeflags=(
+ -DCMAKE_INSTALL_PREFIX='/usr'
+ #-DCMAKE_CXX_STANDARD='11'
+ # PROTOBUF lib detection misses this one.
+ -DCMAKE_CXX_STANDARD_LIBRARIES='-labsl_spinlock_wait' # https://stackoverflow.com/questions/25243336/specifying-libraries-for-cmake-to-link-to-from-command-line
+ )
+ set +u; msg2 'Compile zbackup'; set -u
+ cmake . -B'build-zbackup' "${_cmakeflags[@]}"
+ make -C 'build-zbackup' # VERBOSE=1 # -j1
+ set +u; msg2 'Compile tartool'; set -u
+ cmake 'tools/tartool' -B'build-tartool' "${_cmakeflags[@]}"
+ make -C 'build-tartool' -j1
+ set +u
+}
+
+check() {
+ set -u
+ cd "${_srcdir}"
+
+ rm -rf 'Arch.test'
+ mkdir 'Arch.test'
+
+ # TODO: Run the other tests and run with encryption.
+ echo 'Running regression tests ...'
+ local _py=(
+ --zbackup 'build-zbackup/zbackup'
+ --tmp 'Arch.test'
+ --samples '.'
+ --seed '123'
+ --loops '1'
+ --add-per-loop '60'
+ --delete-per-loop '50'
+ --log-level '1'
+ )
+ set +u
+ # regression isn't in git
+ if [ ! -s 'tests/regression/regression.py' ]; then
+ printf '>> tests skipped <<\n'
+ elif python 'tests/regression/regression.py' "${_py[@]}"; then
+ printf '>> tests pass <<\n'
+ else
+ false
+ fi
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR="${pkgdir}" install
- cd tartool
- make DESTDIR="${pkgdir}" install
+ set -u
+ cd "${_srcdir}"
+ make -C 'build-zbackup' -j1 DESTDIR="${pkgdir}" install
+ install -Dpm644 'README.md' -t "${pkgdir}/usr/share/doc/${_pkgname}"
+
+ depends+=('tar')
+ make -C 'build-tartool' -j1 DESTDIR="${pkgdir}" install
+
+ install -Dpm644 licenses/* -t "${pkgdir}/usr/share/licenses/${_pkgname}"
+ set +u
}
+set +u