# Maintainer: Kyle De'Vir (QuartzDragon) <kyle.devir.mykolab.com>

pkgname=bcachefs-tools-git
_pkgname=${pkgname%-git}
pkgver=1.39.0.r61.g5632c0b
pkgrel=1
epoch=1
pkgdesc="BCacheFS filesystem utilities"
url="https://bcachefs.org/"
arch=('x86_64' 'aarch64')
license=("GPL-2.0-only")
conflicts=("${_pkgname}")
provides=("${_pkgname}")
depends=(
	fuse3
	libaio.so libaio
	libblkid.so libuuid.so util-linux-libs
	libkeyutils.so keyutils
	libsodium.so libsodium
	libunwind
	liburcu
	libz.so zlib
	libzstd.so zstd
	lz4
	libudev.so
	udev
)
makedepends=(
	git
	cargo
	clang
	llvm
	pkgconf
	rust-bindgen
	valgrind
)
source=("git+https://github.com/koverstreet/${_pkgname}.git")
sha512sums=('SKIP')
options=('!lto')

pkgver() {
	cd "${_pkgname}/"
	git describe --long --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/v//'
}

prepare() {
	sed -i "/^VERSION/c\VERSION=${pkgver}" "${_pkgname}/Makefile"
}

build() {
	cd "${_pkgname}/"
	export CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
	export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"

	make LIBEXECDIR=/usr/lib \
		DESTDIR="${pkgdir}" \
		ROOT_SBINDIR="/usr/bin" \
		INITRAMFS_DIR="/etc/initcpio"
}

package() {
	cd "${_pkgname}/"

	# this uses malloc_usable_size, which is incompatible with fortification level 3
	export CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
	export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"

	make PREFIX="/usr" \
		LIBEXECDIR=/usr/lib \
		DESTDIR="${pkgdir}" \
		ROOT_SBINDIR="/usr/bin" \
		INITRAMFS_DIR="/etc/initcpio" \
		install

	# remove initcpio hooks that seems incompatible with mkinitcpio
	rm -rf "${pkgdir}/etc/"

	# package completions
	cd "${pkgdir}/usr/bin/"
	./bcachefs completions bash | install -Dm644 /dev/stdin "${pkgdir}/usr/share/bash-completion/completions/bcachefs"
	./bcachefs completions fish | install -Dm644 /dev/stdin "${pkgdir}/usr/share/fish/vendor_completions.d/bcachefs.fish"
	./bcachefs completions zsh | install -Dm644 /dev/stdin "${pkgdir}/usr/share/zsh/site-functions/_bcachefs"
}
