@Bitals Of course they don't :)
What you said: "but for CIs not having that will force users to maintain their own fork."
What I was trying to say is that this change doesn't affect ANY user, CI or not. This publish action comes from electron-builder
, and only useful for publishing mullvad itself, not an AUR package. So this change from me, doesn't affect CIs, because they ship built package.
Search Criteria
Package Details: mullvad-vpn 2025.6-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/mullvad-vpn.git (read-only, click to copy) |
---|---|
Package Base: | mullvad-vpn |
Description: | The Mullvad VPN client app for desktop |
Upstream URL: | https://www.mullvad.net |
Licenses: | GPL-3.0-or-later |
Submitter: | gin078 |
Maintainer: | yochananmarqos |
Last Packager: | yochananmarqos |
Votes: | 154 |
Popularity: | 3.36 |
First Submitted: | 2018-10-24 17:33 (UTC) |
Last Updated: | 2025-05-20 16:38 (UTC) |
Dependencies (13)
- alsa-lib
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classicAUR, gtk3-classic-xfceAUR, gtk3-patched-filechooser-icon-viewAUR)
- iputils (iputils-gitAUR)
- libnftnl (libnftnl-fullconeAUR, libnftnl-gitAUR)
- libnotify (libnotify-gitAUR)
- nss (nss-hgAUR)
- cargo (rust-nightly-binAUR, rust-gitAUR, rust-beta-binAUR, rustup-stubAUR, rustup-gitAUR, rust, rustup) (make)
- git (git-gitAUR, git-glAUR) (make)
- go (go-gitAUR, gcc-go-gitAUR, gcc-go-snapshotAUR, gcc-go) (make)
- libxcrypt-compat (make)
- nvm (nvm-gitAUR) (make)
- protobuf (protobuf-gitAUR) (make)
- libappindicator-gtk3 (optional) – tray icon
Required by (3)
Sources (6)
yataro commented on 2024-05-16 15:30 (UTC) (edited on 2024-05-16 15:31 (UTC) by yataro)
Bitals commented on 2024-05-16 15:25 (UTC) (edited on 2024-05-16 15:25 (UTC) by Bitals)
@yataro sorry, I didn't get what you said.
I don't think Mullvad's own CI will use this repo.
My environment is a self-hosted Jenkins that builds packages and publishes them to a self-hosted repo. It does not use any Mullvad or some other vendor packaging and/or publishing scripts, it uses makepkg
, some pacman
built-in scripts like repo-add
and aurutils
.
yataro commented on 2024-05-16 15:18 (UTC)
@Bitals This change only affects the mullvad publish itself, CIs that publish their mullvad build should use the original repository and not the AUR package :) As for AUR CIs, they publish the built package as an artifact, so also avoid the downside of this change
Bitals commented on 2024-05-16 15:00 (UTC)
@yataro it does work. @yochananmarqos please add this patch, as I see no downsides for regular local builds, but for CIs not having that will force users to maintain their own fork.
yataro commented on 2024-05-16 12:07 (UTC)
That's strange, build for me was successful. Are you sure that patch is applied successfully? Try it with makepkg if you are using any AUR helper
JackStorm commented on 2024-05-16 12:03 (UTC)
Still the same error after patch, will use bin version for the time
yataro commented on 2024-05-16 10:22 (UTC)
@Bitals Can you try this?
diff --git a/.SRCINFO b/.SRCINFO
index a9d6c56..fb30f05 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = mullvad-vpn
pkgdesc = The Mullvad VPN client app for desktop
pkgver = 2024.3
- pkgrel = 1
+ pkgrel = 2
url = https://www.mullvad.net
install = mullvad-vpn.install
arch = x86_64
@@ -21,6 +21,7 @@ pkgbase = mullvad-vpn
source = git+https://github.com/mullvad/mullvadvpn-app.git#tag=2024.3
source = git+https://github.com/mullvad/mullvadvpn-app-binaries.git#commit=7db2c76522e29b4acd8f461fc87f794954c6df95?signed
source = no-rpm.diff
+ source = no-publish.diff
source = mullvad-vpn.sh
validpgpkeys = 225E40C8F1C8DEB7977ABF59F293063FECE2E8ED
validpgpkeys = 8339C7D2942EB854E3F27CE5AEE9DECFD582E984
@@ -28,6 +29,7 @@ pkgbase = mullvad-vpn
sha256sums = 8064e0181b1d30352f25eab563bade47b2fd157ca9646b97aff928241d9870ea
sha256sums = 76015a774788a2274d29e3fa1e06cb752a8488f24a973b5143d8659d5b290e9c
sha256sums = ea35edffea2cbbb05586abce19581fdd9f133801ed47e6af30fa64a29c5cf116
+ sha256sums = c67014063742378993bae24af3d80076f5f547a099f924b0d6341dbfbfe98f6f
sha256sums = 2262346cb57deb187fe32a88ccd873dab669598889269088e749197c6e88954f
pkgname = mullvad-vpn
diff --git a/.gitignore b/.gitignore
index c75f7f5..e6cdee2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@
!mullvad-vpn.install
!mullvad-vpn.sh
!no-rpm.diff
+!no-publish.diff
diff --git a/PKGBUILD b/PKGBUILD
index 098ca63..2e5ecd3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
# Contributor: Jeff Henson <jeff at henson dot io>
pkgname=mullvad-vpn
pkgver=2024.3
-pkgrel=1
+pkgrel=2
pkgdesc="The Mullvad VPN client app for desktop"
arch=('x86_64')
url="https://www.mullvad.net"
@@ -17,10 +17,12 @@ _commit=7db2c76522e29b4acd8f461fc87f794954c6df95
source=("git+https://github.com/mullvad/mullvadvpn-app.git#tag=$pkgver" # signed by Oskar Nyberg (raksooo), public key not uploaded yet
"git+https://github.com/mullvad/mullvadvpn-app-binaries.git#commit=${_commit}?signed"
'no-rpm.diff'
+ 'no-publish.diff'
"$pkgname.sh")
sha256sums=('8064e0181b1d30352f25eab563bade47b2fd157ca9646b97aff928241d9870ea'
'76015a774788a2274d29e3fa1e06cb752a8488f24a973b5143d8659d5b290e9c'
'ea35edffea2cbbb05586abce19581fdd9f133801ed47e6af30fa64a29c5cf116'
+ 'c67014063742378993bae24af3d80076f5f547a099f924b0d6341dbfbfe98f6f'
'2262346cb57deb187fe32a88ccd873dab669598889269088e749197c6e88954f')
validpgpkeys=('225E40C8F1C8DEB7977ABF59F293063FECE2E8ED' # Linus Färnstrand <linus@mullvad.net>
'8339C7D2942EB854E3F27CE5AEE9DECFD582E984' # David Lönnhager (code signing) <david.l@mullvad.net>
@@ -46,6 +48,7 @@ prepare() {
# Disable building rpm
patch --strip=1 gui/tasks/distribution.js < ../no-rpm.diff
+ patch --strip=1 gui/tasks/distribution.js < ../no-publish.diff
export CARGO_HOME="$srcdir/cargo-home"
export RUSTUP_TOOLCHAIN=stable
@@ -61,7 +64,8 @@ prepare() {
echo "Installing JavaScript dependencies..."
export npm_config_cache="$srcdir/npm_cache"
_ensure_local_nvm
- nvm install "${_nodeversion}"
+ nvm install --lts
+ nvm use --lts
npm ci
popd
}
diff --git a/no-publish.diff b/no-publish.diff
new file mode 100644
index 0000000..6a4c209
--- /dev/null
+++ b/no-publish.diff
@@ -0,0 +1,10 @@
+--- distribution.js.old 2024-05-16 10:13:58.328775776 +0000
++++ distribution.js.new 2024-05-16 10:13:32.759370789 +0000
+@@ -367,6 +367,7 @@
+ await fs.promises.rename(launcherScript, sourceExecutable);
+ },
+ },
++ publish: 'never',
+ });
+ }
+
Bitals commented on 2024-05-16 09:58 (UTC) (edited on 2024-05-16 09:59 (UTC) by Bitals)
It tries to publish my build on Github lol.
My guess would be it detects CI environment and does this. Usually this is configurable with an ENV var, but I gave up on navigating Mullvad Github Actions, so I have no idea what it is here, sorry.
09:43:40 [09:43:40] 'builder-linux' errored after 3.32 min
09:43:40 [09:43:40] Error: GitHub Personal Access Token is not set, neither programmatically, nor using env "GH_TOKEN"
09:43:40 at new GitHubPublisher (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/electron-publish/src/gitHubPublisher.ts:52:15)
09:43:40 at createPublisher (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/publish/PublishManager.ts:303:14)
09:43:40 at PublishManager.getOrCreatePublisher (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/publish/PublishManager.ts:222:19)
09:43:40 at PublishManager.scheduleUpload (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/publish/PublishManager.ts:152:28)
09:43:40 at EventEmitter.<anonymous> (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/publish/PublishManager.ts:132:14)
09:43:40 at EventEmitter.emit (node:events:532:35)
09:43:40 at EventEmitter.emit (node:domain:551:15)
09:43:40 at Packager.dispatchArtifactCreated (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/packager.ts:273:23)
09:43:40 at bluebird_lst_1.default.map.concurrency (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/publish/updateInfoBuilder.ts:232:16)
09:43:40 From previous event:
09:43:40 at processImmediate (node:internal/timers:478:21)
09:43:40 at process.topLevelDomainCallback (node:domain:160:15)
09:43:40 at process.callbackTrampoline (node:internal/async_hooks:128:24)
09:43:40 From previous event:
09:43:40 at writeUpdateInfoFiles (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/publish/updateInfoBuilder.ts:211:25)
09:43:40 at PublishManager.awaitTasks (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/app-builder-lib/src/publish/PublishManager.ts:243:31)
09:43:40 at executeFinally (/home/builder/.cache/aurutils/sync/mullvad-vpn/src/mullvadvpn-app/gui/node_modules/builder-util/src/promise.ts:23:3)
09:43:40 [09:43:40] 'pack-linux' errored after 4.28 min
09:43:40 ==> ERROR: A failure occurred in build().
09:43:40 Aborting...
yataro commented on 2024-05-16 08:11 (UTC)
@patlefort There is no npm in makedepends because nvm provides both node and npm
yataro commented on 2024-05-16 08:07 (UTC)
https://github.com/gulpjs/vinyl-fs/issues/350 https://github.com/nodejs/node/issues/52707
@yochananmarqos Can you use the LTS node for the build?
nvm install "${_nodeversion}"
Installs the latest one, cuz _nodeversion
is not defined anywhere.
Also, you're not calling nvm use
, not a big deal - nvm will use the latest installed version of node, but I'm sure it's better to do this explicitly.
@patlefort @JackStorm Can you try with this patch?
diff --git a/PKGBUILD b/PKGBUILD
index 098ca63..1bd3979 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -61,7 +61,8 @@ prepare() {
echo "Installing JavaScript dependencies..."
export npm_config_cache="$srcdir/npm_cache"
_ensure_local_nvm
- nvm install "${_nodeversion}"
+ nvm install --lts
+ nvm use --lts
npm ci
popd
}
Pinned Comments
yochananmarqos commented on 2022-11-11 19:31 (UTC) (edited on 2022-11-13 19:21 (UTC) by yochananmarqos)
PSA: Upstream does not support building natively for ARM64, only cross-compiling. You can use
mullvad-vpn-bin
instead.yochananmarqos commented on 2019-12-07 17:44 (UTC) (edited on 2024-06-06 22:09 (UTC) by yochananmarqos)
--> ALWAYS DO A CLEAN BUILD <--
This package will verify the signature of the git tag / commit. Developer keys are available here and instructions are here. See the PKGBUILD to determine which developer key you need.
Please do not create upstream issues about the AUR package, they do not support it.