# Maintainer: Antoine Martin pkgname=git-annex pkgver=8.20211117 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" source="$pkgname-$pkgver.tar.gz" subpackages="$pkgname-doc" _giturl="https://git.joeyh.name/git/git-annex.git" _gittag="$pkgver" builddir="$srcdir/$pkgname" # Cabal Flags: # The git-annex assistant requires significantly more dependencies. # If you do not need the assistant or have build issues try: # _webapp=0 # Enable git-annex assistant and watch command _assistant=1 # Enable git-annex webapp _webapp=1 # Enable pairing _pairing=1 # slower build; faster binary _production=1 # 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 # Cabal flags _cabal_flags=" --force-reinstalls " # 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 _features="" _cabal_makedepends="c2hs cpphs" _cabal_libdepends="exceptions hslogger async tasty filepath-bytestring split unix-compat" 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 _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 } snapshot() { mkdir -p "$srcdir" cd "${SRCDEST:-$srcdir}" if ! [ -d $pkgname.git ]; then git clone --bare $_giturl $pkgname.git || return 1 cd $pkgname.git else cd $pkgname.git git fetch || return 1 fi git archive --prefix="$pkgname/" -o "$SRCDEST"/$pkgname-$pkgver.tar.gz $_gittag ln -s "$SRCDEST"/$pkgname-$pkgver.tar.gz "$startdir"/$pkgname-$pkgver.tar.gz } build() { 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} 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=" 336e2dc997b684f5ed92df1b287bd5651963adb6af7a8ad8f02298a37c859e183bc541a24f239388da7b4ba12bcad1b31511513562e679cc86a30e8d55cb83f9 git-annex-8.20211117.tar.gz "