# Contributor: # Maintainer: Joakim Hulthe pkgname=mullvad-vpn-daemon pkgver=2026.1_git pkgrel=3 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//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 }