# Maintainer: Antoine Martin # # Core APKBUILD variables # pkgname=git-annex pkgver=8.20211203 pkgrel=0 pkgdesc="Manage files with git, without checking their contents into git" url="http://git-annex.branchable.com" arch="i686 x86_64" license="GPL3" depends="git lsof rsync curl gmp zlib gnupg file gnutls libxml2 openssh util-linux libidn libgsasl" makedepends="cabal ghc zlib-dev file-dev gnutls-dev libxml2-dev libgsasl-dev ncurses-dev happy alex libffi-dev" _gittag=490689f122f4cce63cbd6aa29f5b59c6caf09d09 _giturl=https://git.joeyh.name/index.cgi/git-annex.git source=" $_giturl/snapshot/$pkgname-${_gittag}.tar.gz " subpackages="$pkgname-doc" builddir="$srcdir/$pkgname-$_gittag" # # Build feature flags # # Enable git-annex assistant and watch command _assistant=1 # Enable git-annex webapp (requires significantly more dependencies) _webapp=1 # Enable pairing _pairing=1 # slower build; faster binary _production=0 # Use haskell torrent library to parse torrent files _torrentparser=1 # Use libmagic to determine file MIME types _magicmime=1 # Enable benchmarking _benchmark=1 # Debug location of MVar/STM deadlocks _debuglocks=0 # Enable dbus support _dbus=1 # Build with network-3.0 which split out network-bsd _networkbsd=1 # Build with git-lfs library (rather than vendored copy) _gitlfs=1 # Build with http-client-restricted library (rather than vendored copy) _httpclientrestricted=1 # The man page is always built but, # building the rest of the documentation requires ikiwiki. # If you want to build the documentation turns this to 1. _build_docs=0 # # Build config flags # # Cabal flags _cabal_flags=" --force-reinstalls " _cabal_makedepends="c2hs cpphs" _cabal_libdepends="exceptions hslogger async tasty filepath-bytestring split unix-compat" # # Create features array for build # _features="" gitannexfeature() { case $1 in (0) _features="${_features} -f-$2";; (*) _features="${_features} -f$2";; esac } gitannexfeature $_assistant Assistant gitannexfeature $_webapp Webapp gitannexfeature $_pairing Pairing gitannexfeature $_production Production gitannexfeature $_torrentparser TorrentParser gitannexfeature $_magicmime MagicMime gitannexfeature $_benchmark Benchmark gitannexfeature $_debuglocks DebugLocks gitannexfeature $_dbus Dbus gitannexfeature $_networkbsd NetworkBSD gitannexfeature $_gitlfs GitLfs gitannexfeature $_httpclientrestricted HttpClientRestricted # # APKBUILD functions # _localize_home(){ ORIG_HOME="$HOME" ORIG_TMPDIR="$TMPDIR" export HOME="${srcdir}"/cabal export TMPDIR="${srcdir}"/cabal/tmp export PATH="$HOME/.cabal/bin:$PATH" } _restore_home(){ export HOME="$ORIG_HOME" export TMPDIR="$ORIG_TMPDIR" } pkgver() { cd "$srcdir/${pkgname%-git}" git describe --long | sed 's/^v//;s/-/_/g' } asking() { read -p "$@ (Y/n)" answer case "$answer" in n|N|no|NO|No|nO) false;; *) true;; esac } prepare() { default_prepare cd "$builddir" _localize_home mkdir -p "$HOME" "$TMPDIR" msg "Features: $_features" msg "Installing missing cabal dependencies..." cabal update cabal install ${_cabal_makedepends} cabal install --lib ${_cabal_libdepends} cabal install ${_cabal_flags} --user --only-dependencies ${_features} _restore_home } build() { cd "$builddir" _localize_home msg "Configuring..." cabal configure ${_features} msg "Starting build..." make _restore_home } check() { cd "$builddir" _localize_home make test || asking "Tests failed. Continue?" _restore_home } package() { cd "$builddir" _localize_home make DESTDIR="$pkgdir" install _restore_home } sha512sums=" 329cdb1acd54d33298c528297e6e102b6f02618ca8b132e45fa9c5007bf3fce9c1d0d336ff5135e8e1f1bd7f3fd6fea641a7da1a1658721d89681d0f1249706d git-annex-490689f122f4cce63cbd6aa29f5b59c6caf09d09.tar.gz "