# Maintainer: David Runge <dvzrv@archlinux.org>

pkgbase=erofs-utils
pkgname=(erofs-utils erofsfuse)
pkgver=1.8.10
pkgrel=1
pkgdesc="Userspace utilities for linux-erofs file system"
arch=(x86_64 aarch64)
url="https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git"
license=(
  Apache-2.0
  GPL-2.0-or-later
)
makedepends=(
  fuse2
  glibc
  libdeflate
  lz4
  util-linux
  xxhash
  xz
  zlib
  zstd
)
source=($url/snapshot/$pkgname-$pkgver.tar.gz)
sha512sums=('8c7afd3db55fd4c4f7aa9fbd7ed40fa40de0bfffcee601a3f5dce823d406a32b5e939e24cd6dc336e3033e940fb16ee93f8821f627f90b10e6137113949933dd')
b2sums=('9575258115192dc0ef7999dd1fa44f619f9f62c93cfe28e3e65fd5d9a601b09acdce293552c90f51c2f7b557d8830e856d6706af6ccd98fc157b05f819d136b4')

prepare() {
  cd $pkgname-$pkgver
  autoreconf -fiv
}

build() {
  local configure_options=(
    --prefix=/usr
    --enable-fuse
    --enable-lzma
    --with-libdeflate
    --enable-multithreading
  )

  cd $pkgname-$pkgver
  MAX_BLOCK_SIZE=65536 ./configure "${configure_options[@]}"
  # prevent excessive overlinking due to libtool
  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
  make
}

check() {
  make -k check -C $pkgname-$pkgver
}

_pick() {
  local p="$1" f d; shift
  for f; do
    d="$srcdir/$p/${f#$pkgdir/}"
    mkdir -vp "$(dirname "$d")"
    mv -v "$f" "$d"
    rmdir -vp --ignore-fail-on-non-empty "$(dirname "$f")"
  done
}

package_erofs-utils() {
  depends+=(
    glibc
    libdeflate libdeflate.so
    lz4 liblz4.so
    util-linux libuuid.so
    xxhash libxxhash.so
    xz liblzma.so
    zstd libzstd.so
    zlib libz.so
  )
  optdepends=(
    'erofsfuse: for FUSE file system client'
  )

  make DESTDIR="$pkgdir/" install -C $pkgname-$pkgver
  install -vDm 644 $pkgname-$pkgver/{AUTHORS,ChangeLog,README} -t "$pkgdir/usr/share/doc/$pkgname/"

  cd "$pkgdir"
  _pick erofsfuse usr/bin/erofsfuse
  _pick erofsfuse usr/share/man/man1/erofsfuse*
}

package_erofsfuse() {
  pkgdesc="FUSE file system client for erofs file system"
  depends+=(
    fuse2
    glibc
    libdeflate libdeflate.so
    lz4 liblz4.so
    xxhash libxxhash.so
    xz liblzma.so
    zstd libzstd.so
  )

  mv -v $pkgname/* "$pkgdir"
  install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,README} -t "$pkgdir/usr/share/doc/$pkgname/"
}
