From c5383fd2c90c6c58097c7ce14e5c856440ef5810 Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Thu, 9 Apr 2026 21:15:52 +0200 Subject: [PATCH] Work on making daemon APKBUILD follow best practices --- Dockerfile | 12 ++++----- mullvad-vpn-daemon/APKBUILD | 52 +++++++++++++++++++++---------------- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7d92839..174aefd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,17 +6,15 @@ RUN apk update && apk add \ build-base \ abuild \ git \ - rustup \ - musl-dev \ + rust \ + cargo-auditable \ pkgconfig \ protobuf-dev \ protobuf-dev \ - libmnl-dev \ - libnftnl-dev \ - dbus-dev \ + libmnl libmnl-dev \ + libnftnl libnftnl-dev \ + dbus dbus-dev \ fontconfig-dev - -RUN rustup-init -y --default-toolchain stable # Set pkg-config to use static libraries ENV PKG_CONFIG_ALLOW_STATIC=1 diff --git a/mullvad-vpn-daemon/APKBUILD b/mullvad-vpn-daemon/APKBUILD index da57cf0..2c59bbc 100644 --- a/mullvad-vpn-daemon/APKBUILD +++ b/mullvad-vpn-daemon/APKBUILD @@ -8,17 +8,20 @@ url="https://mullvad.net/" arch="$(uname -m)" license="GPL-3-or-later" depends=" + dbus + libmnl + libnftnl " makedepends=" - build-base - rustup - musl-dev - pkgconfig - git - protobuf-dev - libmnl-dev - libnftnl-dev - dbus-dev + build-base + cargo-auditable + rust + pkgconfig + git + protobuf-dev + dbus-dev + libmnl-dev + libnftnl-dev " checkdepends="" # TODO: pre/post(de)install-scripts @@ -27,43 +30,48 @@ install="" subpackages="$pkgname-systemd" source="" builddir="$srcdir/" -options="net !check suid" +options="net suid" _cargo_target_dir="${CARGO_TARGET_DIR:-$startdir/mullvadvpn-app/target}" -build() { - # rustup-init -y --default-toolchain stable - source "$HOME/.cargo/env" +prepare() { + default_prepare cd "$startdir/mullvadvpn-app" + cargo fetch --target "$CHOST" --locked +} - local target="$(rustup +stable show active-toolchain | sed 's/^[^-]*-//' | grep -o "^[^ ]*")" +build() { + cd "$startdir/mullvadvpn-app" # * Force the `stable` toolchain since it's installed in the container. # We don't wan't to needlessly download rust while building. # * Specify `--target` so that the final binary ends up in target//release. - cargo +stable build --release --locked \ - --target "$target" \ + cargo auditable build --release --locked \ + --target "$CHOST" \ -p mullvad-daemon \ -p mullvad-cli \ -p mullvad-exclude \ -p mullvad-problem-report } -package() { - local target="$(rustup +stable show active-toolchain | sed 's/^[^-]*-//' | grep -o "^[^ ]*")" +check() { + cd "$startdir/mullvadvpn-app" + cargo test --frozen +} - install -m755 -D "$_cargo_target_dir/$target/release/mullvad-daemon" \ +package() { + install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad-daemon" \ "$pkgdir"/usr/bin/mullvad-daemon - install -m755 -D "$_cargo_target_dir/$target/release/mullvad" \ + install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad" \ "$pkgdir"/usr/bin/mullvad - install -m755 -D "$_cargo_target_dir/$target/release/mullvad-exclude" \ + install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad-exclude" \ "$pkgdir"/usr/bin/mullvad-exclude chmod u+s "$pkgdir"/usr/bin/mullvad-exclude - install -m755 -D "$_cargo_target_dir/$target/release/mullvad-problem-report" \ + install -m755 -D "$_cargo_target_dir/$CHOST/release/mullvad-problem-report" \ "$pkgdir"/usr/bin/mullvad-problem-report }