106 lines
2.6 KiB
Plaintext
106 lines
2.6 KiB
Plaintext
# 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
|
|
$pkgname-systemd.post-install
|
|
$pkgname-systemd.post-upgrade
|
|
"
|
|
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.
|
|
|
|
# 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() {
|
|
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
|
|
|
|
# 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() {
|
|
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
|
|
}
|