# Contributor:
# Maintainer: Joakim Hulthe <joakim@hulthe.net>
pkgname=mullvad-vpn-daemon
pkgver=2026.1_git
pkgrel=4
pkgdesc="Mullvad VPN system service"
url="https://mullvad.net/"
arch="all"
license="GPL-3-or-later"
depends="
	dbus
	libmnl
	libnftnl
"
makedepends="
	build-base
	cargo-auditable
	rust
	pkgconfig
	git
	protobuf-dev
	dbus-dev
	libmnl-dev
	libnftnl-dev
"
checkdepends=""
install="$pkgname.post-install $pkgname.pre-upgrade $pkgname.post-upgrade $pkgname.pre-deinstall $pkgname.post-deinstall"
subpackages="$pkgname-systemd"
source=""
builddir="$srcdir/"
options="net suid"

_cargo_target_dir="${CARGO_TARGET_DIR:-$startdir/mullvadvpn-app/target}"

prepare() {
	default_prepare

	cd "$startdir/mullvadvpn-app"
	cargo fetch --target "$CHOST" --locked
}

build() {
	cd "$startdir/mullvadvpn-app"

	# Specify `--target` so that the build artifacts ends up in target/<target>/release to
	# avoid clashes with host system when running in a container with a mounted target folder.
	cargo auditable build --release --locked \
	    --target "$CHOST" \
	    -p mullvad-cli \
	    -p mullvad-daemon \
	    -p mullvad-exclude \
	    -p mullvad-problem-report \
	    -p mullvad-setup
}

check() {
	cd "$startdir/mullvadvpn-app"
	cargo test --target "$CHOST" --frozen
}

package() {
	install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad" \
		"$pkgdir"/usr/bin/mullvad

	install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad-daemon" \
		"$pkgdir"/usr/bin/mullvad-daemon

	# mullvad-exclude requires setuid
	install -m4755 -D "$_cargo_target_dir/$CHOST/release/mullvad-exclude" \
		"$pkgdir"/usr/bin/mullvad-exclude

	install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad-problem-report" \
		"$pkgdir"/usr/bin/mullvad-problem-report

	install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad-setup" \
		"$pkgdir"/usr/bin/mullvad-setup
}

systemd() {
	install -m755 -D "$startdir/mullvadvpn-app/dist-assets/linux/mullvad-daemon.service" \
		"$subpkgdir"/usr/lib/systemd/system/mullvad-daemon.service

	install -m755 -D "$startdir/mullvadvpn-app/dist-assets/linux/mullvad-early-boot-blocking.service" \
		"$subpkgdir"/usr/lib/systemd/system/mullvad-early-boot-blocking.service
}
