summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO33
-rw-r--r--0004-ObjectsIteratorComp_operator_const.patch16
-rw-r--r--PKGBUILD152
3 files changed, 181 insertions, 20 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2059a714561f..4e8b6ce113c4 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,17 +1,42 @@
pkgbase = zbackup
pkgdesc = A versatile deduplicating backup tool
- pkgver = 1.4.3
+ pkgver = 1.5
pkgrel = 1
url = http://zbackup.org
arch = i686
arch = x86_64
license = GPL2
+ checkdepends = python
makedepends = cmake
+ makedepends = libunwind
depends = xz
depends = openssl
depends = protobuf
- source = https://github.com/zbackup/zbackup/archive/1.4.3.tar.gz
- md5sums = 34faaba97084cadd90d4f1c62fa476fd
+ depends = lzo
+ depends = gcc-libs
+ depends = glibc
+ depends = abseil-cpp
+ depends = zlib
+ source = zbackup-1.5.tar.gz::https://github.com/davidbartonau/zbackup/archive/refs/tags/1.5.tar.gz
+ source = 0002-debian.remove_throw.patch::https://sources.debian.org/data/main/z/zbackup/1.5-2/debian/patches/remove_throw.patch
+ source = 0003-debian.protobuf.patch::https://sources.debian.org/data/main/z/zbackup/1.5-2/debian/patches/protobuf.patch
+ source = 0004-ObjectsIteratorComp_operator_const.patch
+ md5sums = ad15fe626eefdb835ec81e0a2d38892c
+ md5sums = ab06602fa0ac5188a2bda2f171aabb8c
+ md5sums = 9f849b1dfd85ca352b87e357c8bb64c0
+ md5sums = 77837a55195b6c7cc0d69e4766021670
+ sha256sums = 344fed4491cb52b6712b03c1d8b1bcf994cfc578ad422cb644502e171585a8f7
+ sha256sums = bc4e3a9a887880b0555bf457a4566e11c819e00246ff84f75e8fbd3b7a00a3a3
+ sha256sums = 89c765f53db777a429b94a544b0d4bb66350804dace5cdb3cfa2b26d193acab0
+ sha256sums = 12d77664b83fa3ce321797a691098bbe49440146b75042c29ef029c5136ab92d
pkgname = zbackup
-
+ depends = xz
+ depends = openssl
+ depends = protobuf
+ depends = lzo
+ depends = gcc-libs
+ depends = glibc
+ depends = abseil-cpp
+ depends = zlib
+ depends = tar
diff --git a/0004-ObjectsIteratorComp_operator_const.patch b/0004-ObjectsIteratorComp_operator_const.patch
new file mode 100644
index 000000000000..7118838456a0
--- /dev/null
+++ b/0004-ObjectsIteratorComp_operator_const.patch
@@ -0,0 +1,16 @@
+diff -pNaru5 a/objectcache.hh b/objectcache.hh
+--- a/objectcache.hh 2020-06-07 11:35:57.000000000 -0400
++++ b/objectcache.hh 2024-01-01 23:03:39.196822579 -0500
+@@ -64,11 +64,11 @@ private:
+ };
+ typedef std::list< Object > Objects;
+
+ struct ObjectsIteratorComp
+ {
+- bool operator () ( Objects::iterator const & x, Objects::iterator const & y )
++ bool operator () ( Objects::iterator const & x, Objects::iterator const & y ) const
+ { return x->id < y->id; }
+ };
+
+ typedef std::set< Objects::iterator, ObjectsIteratorComp > ObjectMap;
+
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