From cf6a072724bccab388b9c8a257625560de4746a8 Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Mon, 30 Mar 2026 10:19:22 +0200 Subject: [PATCH] Add APKBUILD for mullvad-vpn-daemon --- Dockerfile | 5 +++ docker-build.sh | 0 mullvad-vpn-daemon/APKBUILD | 75 +++++++++++++++++++++++++++++++++++++ podman-build.sh | 0 4 files changed, 80 insertions(+) mode change 100644 => 100755 docker-build.sh create mode 100644 mullvad-vpn-daemon/APKBUILD mode change 100644 => 100755 podman-build.sh diff --git a/Dockerfile b/Dockerfile index e6fb20b..7d92839 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,10 +5,15 @@ FROM alpine:edge RUN apk update && apk add \ build-base \ abuild \ + git \ rustup \ musl-dev \ pkgconfig \ protobuf-dev \ + protobuf-dev \ + libmnl-dev \ + libnftnl-dev \ + dbus-dev \ fontconfig-dev RUN rustup-init -y --default-toolchain stable diff --git a/docker-build.sh b/docker-build.sh old mode 100644 new mode 100755 diff --git a/mullvad-vpn-daemon/APKBUILD b/mullvad-vpn-daemon/APKBUILD new file mode 100644 index 0000000..9710ea3 --- /dev/null +++ b/mullvad-vpn-daemon/APKBUILD @@ -0,0 +1,75 @@ +# Contributor: +# Maintainer: Joakim Hulthe +pkgname=mullvad-vpn-daemon +pkgver=2026.1_git +pkgrel=0 +pkgdesc="Mullvad VPN GUI" +url="https://mullvad.net/" +arch="$(uname -m)" +license="GPL-3-or-later" +depends=" +" +# TODO: dbus-dev? also Dockerfile +# TODO: libmnl-dev? also Dockerfile +# TODO: libnftnl-dev? also Dockerfile +# TODO: git? also Dockerfile +makedepends=" + build-base + rustup + musl-dev + pkgconfig + git + protobuf-dev + libmnl-dev + libnftnl-dev + dbus-dev +" +checkdepends="" +install="" +subpackages="" +source="" +builddir="$srcdir/" +options="net !check suid" + +_cargo_target_dir="${CARGO_TARGET_DIR:-$startdir/mullvadvpn-app/target}" + +build() { + # rustup-init -y --default-toolchain stable + source "$HOME/.cargo/env" + + cd "$startdir/mullvadvpn-app" + + local target="$(rustup +stable show active-toolchain | sed 's/^[^-]*-//' | grep -o "^[^ ]*")" + + # * 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" \ + -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 "^[^ ]*")" + + install -m755 -D "$_cargo_target_dir/$target/release/mullvad-daemon" \ + "$pkgdir"/usr/bin/mullvad-daemon + + install -m755 -D "$_cargo_target_dir/$target/release/mullvad" \ + "$pkgdir"/usr/bin/mullvad + + # TODO: setuid + install -m755 -D "$_cargo_target_dir/$target/release/mullvad-exclude" \ + "$pkgdir"/usr/bin/mullvad-exclude + + install -m755 -D "$_cargo_target_dir/$target/release/mullvad-problem-report" \ + "$pkgdir"/usr/bin/mullvad-problem-report + chmod u+s "$pkgdir"/usr/bin/mullvad-problem-report + + # TODO: systemd services + # TODO: pre/post(de)install-scripts +} + diff --git a/podman-build.sh b/podman-build.sh old mode 100644 new mode 100755