# Template file for 'incus'
pkgname=incus
version=6.3.0
revision=5
build_style=go
build_helper=qemu
go_import_path=github.com/lxc/incus/v6
go_build_tags="libsqlite3"
go_package="${go_import_path}/cmd/incus
 ${go_import_path}/cmd/incus-benchmark
 ${go_import_path}/cmd/incus-user
 ${go_import_path}/cmd/incusd
 ${go_import_path}/cmd/lxc-to-incus
 ${go_import_path}/cmd/fuidshift"
hostmakedepends="pkg-config"
makedepends="lxc-devel acl-devel cowsql-devel raft-devel
 libcap-devel libuv-devel sqlite-devel eudev-libudev-devel"
depends="lxc acl acl-progs rsync squashfs-tools xz dnsmasq iptables attr-progs"
short_desc="Powerful system container and virtual machine manager"
maintainer="dkwo <npiazza@disroot.org>"
license="Apache-2.0"
homepage="https://linuxcontainers.org/incus"
distfiles="https://github.com/lxc/incus/archive/refs/tags/v${version}.tar.gz"
checksum=7dfb4c17334480af18f2827538b58bedc54e885eab54d224364b973df3183f91
system_groups="_incus-admin _incus"
make_dirs="
 /var/lib/incus 0755 root root
 /var/log/incus 0755 root root"

export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
export GOFLAGS="-buildmode=pie"

post_build() {
	CGO_ENABLED=0 go install -p "${XBPS_MAKEJOBS}" -v -tags netgo -buildmode=default "${go_import_path}/cmd/incus-migrate"
	CGO_ENABLED=0 go install -p "${XBPS_MAKEJOBS}" -v -tags agent,netgo -buildmode=default "${go_import_path}/cmd/incus-agent"
	cd cmd/lxd-to-incus && go install -v ./
}

do_check() {
	go test -v -tags libsqlite3 -skip TestConvertNetworkConfig ./...
}

post_install() {
	vmkdir usr/libexec/incus
	for f in ${DESTDIR}/usr/bin/{incusd,incus-user}; do
		vinstall "${f}" 700 usr/libexec/incus && rm "${f}"
	done
	vsv incus
	# avoid conflict with lxd, lxd-lts
	mv ${DESTDIR}/usr/bin/{fuidshift,fuidshift-incus}

	# generate shell completions
	local incus=${DESTDIR}/usr/bin/incus
	for shell in bash fish zsh; do
		vtargetrun ${incus} completion ${shell} > scripts/${shell}-completion
	done

	vdoc "${FILESDIR}/README.voidlinux"
}

incus-client_package() {
	short_desc+=" - client"
	depends="${sourcepkg}>=${version}_${revision}"
	pkg_install() {
		vmove usr/bin/incus
		vsv incus-user
		for shell in bash fish zsh; do
			vcompletion scripts/${shell}-completion ${shell} incus
		done
	}
}

incus-tools_package() {
	short_desc+=" - tools"
	pkg_install() {
		for _tool in fuidshift-incus lxc-to-incus lxd-to-incus incus-benchmark incus-migrate; do
			vmove usr/bin/${_tool}
		done
	}
}
