From e11ee801eeae252e8e9df56438bf6a7d27e4bbaa Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Thu, 23 Apr 2026 11:25:01 +0200 Subject: [PATCH] more work on install scripts --- mullvad-vpn-daemon/APKBUILD | 22 ++++++++++++++++++- .../mullvad-vpn-daemon-systemd.post-upgrade | 12 ++++++++++ .../mullvad-vpn-daemon.post-install | 9 ++++++++ .../mullvad-vpn-daemon.post-upgrade | 8 +++++++ .../mullvad-vpn-daemon.pre-upgrade | 2 +- 5 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 mullvad-vpn-daemon/mullvad-vpn-daemon.post-install create mode 100644 mullvad-vpn-daemon/mullvad-vpn-daemon.post-upgrade diff --git a/mullvad-vpn-daemon/APKBUILD b/mullvad-vpn-daemon/APKBUILD index 4116801..ef2a113 100644 --- a/mullvad-vpn-daemon/APKBUILD +++ b/mullvad-vpn-daemon/APKBUILD @@ -24,7 +24,15 @@ makedepends=" libnftnl-dev " checkdepends="" -install="$pkgname-systemd.post-install $pkgname.pre-upgrade $pkgname-systemd.post-upgrade $pkgname.pre-deinstall $pkgname.post-deinstall" +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/" @@ -44,6 +52,8 @@ 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 \ @@ -51,6 +61,12 @@ build() { -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() { @@ -74,6 +90,10 @@ package() { 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() { diff --git a/mullvad-vpn-daemon/mullvad-vpn-daemon-systemd.post-upgrade b/mullvad-vpn-daemon/mullvad-vpn-daemon-systemd.post-upgrade index 0979ba0..a6215b7 100644 --- a/mullvad-vpn-daemon/mullvad-vpn-daemon-systemd.post-upgrade +++ b/mullvad-vpn-daemon/mullvad-vpn-daemon-systemd.post-upgrade @@ -4,10 +4,22 @@ set -eu echo "mullvad-systemd post-upgrade" # Are we running systemd? if which systemctl &> /dev/null && systemctl is-system-running | grep -vq offline &> /dev/null; then + echo "systemctl exists and is running" # Does `mullvad-daemon.service` exist? if systemctl list-unit-files mullvad-daemon.service &> /dev/null; then + echo "enable mullvad-daemon" systemctl enable "/usr/lib/systemd/system/mullvad-daemon.service" + echo "start mullvad-daemon" systemctl start mullvad-daemon.service || echo "Failed to start mullvad-daemon.service" + echo "enable mullvad-early-boot-blocking" systemctl enable "/usr/lib/systemd/system/mullvad-early-boot-blocking.service" + else + echo "mullvad-daemon.service does not exist!!" + systemctl list-unit-files mullvad-daemon.service fi +else + echo "systemctl does not exit!" fi + +echo "sleep 5" +sleep 5 diff --git a/mullvad-vpn-daemon/mullvad-vpn-daemon.post-install b/mullvad-vpn-daemon/mullvad-vpn-daemon.post-install new file mode 100644 index 0000000..e100adb --- /dev/null +++ b/mullvad-vpn-daemon/mullvad-vpn-daemon.post-install @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -eu + +echo "mullvad post-install" + +# Overwrite the cached relay list with the one embedded in the package. +mkdir -p /var/cache/mullvad-vpn \ + && cp /usr/share/mullvad-vpn/relays.json /var/cache/mullvad-vpn/relays.json \ + || echo "failed to install /var/cache/mullvad-vpn/relays.json" diff --git a/mullvad-vpn-daemon/mullvad-vpn-daemon.post-upgrade b/mullvad-vpn-daemon/mullvad-vpn-daemon.post-upgrade new file mode 100644 index 0000000..4d506ec --- /dev/null +++ b/mullvad-vpn-daemon/mullvad-vpn-daemon.post-upgrade @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -eu + +echo "mullvad post-upgrade" + +# Overwrite the cached relay list with the one embedded in the package. +mkdir /var/cache/mullvad-vpn +cp /usr/share/mullvad-vpn/relays.json /var/cache/mullvad-vpn/relays.json diff --git a/mullvad-vpn-daemon/mullvad-vpn-daemon.pre-upgrade b/mullvad-vpn-daemon/mullvad-vpn-daemon.pre-upgrade index d79c5c5..c12c3a2 100644 --- a/mullvad-vpn-daemon/mullvad-vpn-daemon.pre-upgrade +++ b/mullvad-vpn-daemon/mullvad-vpn-daemon.pre-upgrade @@ -15,5 +15,5 @@ if which systemctl &> /dev/null && systemctl is-system-running | grep -vq offlin fi fi -rm -f /var/cache/mullvad-vpn/relays.json +# Since we are upgrading mullvad-daemon, it will probably have current IP baked into itself. rm -f /var/cache/mullvad-vpn/api-ip-address.txt