# Contributor: omni <omni+alpine@hack.org>
# Maintainer: omni <omni+alpine@hack.org>
pkgname=oniux
pkgver=0.5.0
pkgrel=0
pkgdesc="Linux namespace Tor isolation for any program (except libcurl/c-ares dependants)"
url="https://gitlab.torproject.org/tpo/core/oniux"
license="Apache-2.0"
# s390x: merlin crate doesn't support big-endian targets
arch="all !s390x"
makedepends="cargo openssl-dev>3 sqlite-dev zstd-dev xz-dev cargo-auditable"
subpackages="$pkgname-doc"
source="https://gitlab.torproject.org/tpo/core/oniux/-/archive/v$pkgver/oniux-v$pkgver.tar.gz
	update-lockfile.patch
	"
builddir="$srcdir/$pkgname-v$pkgver"

case "$CARCH" in
arm*|loongarch64|ppc64le|riscv64|s390x|x86)
	# for aws-lc-sys
	makedepends="$makedepends cmake clang-dev"
	;;
esac

prepare() {
	default_prepare
	cargo fetch --target="$CTARGET" --locked

	# Rust target triple.
	local target=$(rustc -vV | sed -n 's/host: //p')

	# Build against system-provided libs
	mkdir -p .cargo
	cat >> .cargo/config.toml <<-EOF
		[target.$target]
		zstd = { rustc-link-lib = ["zstd"] }
	EOF
}

build() {
	cargo auditable build --release --frozen
}

check() {
	./target/release/"$pkgname" --help

	# when using oniux in CI:
	# Error: EPERM: Operation not permitted
}

package() {
	install -Dm755 -t "$pkgdir"/usr/bin/ target/release/oniux
	install -Dm755 -t "$pkgdir"/usr/share/doc/"$pkgname"/ README.md
}

sha512sums="
da92cd93c238b2822ee66f378cd5557c92f90e810a62ba3742f9274ec53ee296c9cb87ee52381746825c3d7f923b227eaa0060cb73c80201820d999d813799ed  oniux-v0.5.0.tar.gz
ba0f417278f62812dbffba6eedb180f771b00ba4983b6802c144f068b43fa18e2e9b9f48428f02697f0a4db82e5b490678c6ecf12cc0cb87c55d2357c672b8ca  update-lockfile.patch
"
