maintainer="Joakim Hulthe <joakim@hulthe.net>"
pkgname=mullvad-vpn-daemon
pkgver=2026.3_beta1
pkgrel=1
pkgdesc="Mullvad VPN client (daemon and CLI)"
url="https://mullvad.net/"
# Mullvad depends on old versions of the `nix` library
# which are broken on on loongarch64 and s390x
arch="all !loongarch64 !s390x"
license="GPL-3.0-or-later"
makedepends="
	cargo-auditable
	git
	protobuf-dev
	dbus-dev
	libmnl-dev
	libnftnl-dev
"
install="
	$pkgname.post-install
	$pkgname.post-upgrade
	$pkgname.pre-upgrade
	$pkgname-systemd.post-install
	$pkgname-systemd.post-upgrade
"
subpackages="
	$pkgname-systemd
	$pkgname-suid
"
source="
	https://github.com/mullvad/mullvadvpn-app/archive/refs/tags/${pkgver//_/-}.tar.gz
"
builddir="$srcdir/mullvadvpn-app-${pkgver//_/-}/"
options="net suid"

_cargo_target_dir="${CARGO_TARGET_DIR:-$builddir/target}"
_cargo_release_dir="$_cargo_target_dir/$CHOST/release"

prepare() {
	default_prepare

	cargo fetch --target "$CHOST" --locked
}

build() {
	# Specify `--target` so that build artifacts will be in target/<target>/release
	# This avoids clashes with host system when building in a container.

	# Compile all binaries
	cargo auditable build --release --frozen \
		--target "$CHOST" \
		-p mullvad-cli \
		-p mullvad-daemon \
		-p mullvad-exclude \
		-p mullvad-problem-report \
		-p mullvad-setup
}

check() {
	cargo test --target "$CHOST" --frozen
}

package() {
	install -m755 -Dt "$pkgdir/usr/bin/" \
		"$_cargo_release_dir/mullvad" \
		"$_cargo_release_dir/mullvad-daemon" \
		"$_cargo_release_dir/mullvad-problem-report" \
		"$_cargo_release_dir/mullvad-setup"

	# Bundle the relay list.
	install -m644 -D "$builddir/dist-assets/relays/relays.json" \
		"$pkgdir/usr/share/mullvad-vpn/relays.json"

	# Files in /usr/lib/systemd/ are automatically put in systemd subpackage
	install -m755 -Dt "$pkgdir/usr/lib/systemd/system/" \
		"$builddir/dist-assets/linux/mullvad-daemon.service" \
		"$builddir/dist-assets/linux/mullvad-early-boot-blocking.service"
}

suid() {
	pkgdesc="mullvad-exclude cli for split tunneling"
	depends="$pkgname=$pkgver-r$pkgrel"

	install -m4755 -Dt "$subpkgdir/usr/bin/" \
		"$_cargo_release_dir/mullvad-exclude"
}

sha512sums="
7766ad0401cd42a43c272726bd600e70d29a95f4f9b5192cc906e6e7008139a403fb6128a00940ea1306c0446f8af4a43d2f3fd89c6cd81a730be9db8ae50f82  2026.3-beta1.tar.gz
"
