# Contributor: # Maintainer: Joakim Hulthe pkgname=mullvad-vpn-daemon pkgver=2026.2_beta1 pkgrel=1 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 $pkgname-systemd.post-install $pkgname-systemd.post-upgrade " subpackages=" $pkgname-systemd $pkgname-suid " source=" https://github.com/mullvad/mullvadvpn-app/archive/refs/tags/2026.2-beta1.tar.gz " builddir="$srcdir/mullvadvpn-app-2026.2-beta1/" 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 the build artifacts ends up in target//release to # avoid clashes with host system when running in a container with a mounted target folder. # Compile all binaries cargo auditable build --release --locked \ --target "$CHOST" \ -p mullvad-cli \ -p mullvad-daemon \ -p mullvad-exclude \ -p mullvad-problem-report \ -p mullvad-setup # Generate vendored relay list cargo run --release --locked \ -p mullvad-api --bin relay_list \ --target "$CHOST" \ > "$builddir/relays.json" } check() { cargo test --target "$CHOST" --frozen } package() { install -m755 -D "$_cargo_release_dir/mullvad" \ "$pkgdir/usr/bin/mullvad" install -m755 -D "$_cargo_release_dir/mullvad-daemon" \ "$pkgdir/usr/bin/mullvad-daemon" install -m755 -D "$_cargo_release_dir/mullvad-problem-report" \ "$pkgdir/usr/bin/mullvad-problem-report" install -m755 -D "$_cargo_release_dir/mullvad-setup" \ "$pkgdir/usr/bin/mullvad-setup" # Bundle the vendored relay list. It's copied to /var/cache/mullvad-vpn/ by the post-* scripts. install -m644 -D "$builddir/relays.json" \ "$pkgdir/usr/share/mullvad-vpn/relays.json" } systemd() { pkgdesc="systemd service files for Mullvad VPN" depends="$pkgname=$pkgver-r$pkgrel" 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" } suid() { pkgdesc="mullvad-exclude cli for split tunneling" depends="$pkgname=$pkgver-r$pkgrel" install -m4755 -D "$_cargo_release_dir/mullvad-exclude" \ "$subpkgdir/usr/bin/mullvad-exclude" } sha512sums=" 9af0c263f0e5985d7842099f50a5070da0b23691f08ffe57c3b6d239d2c1c9acea89c07890f31d89bd75448a2dd1fd3c878b85be458baba0bcd90760e714b032 2026.2-beta1.tar.gz "