Skip to content

[Package Request]: Mullvad VPN loader #256463

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
1 task done
redactedscribe opened this issue May 14, 2025 · 14 comments
Closed
1 task done

[Package Request]: Mullvad VPN loader #256463

redactedscribe opened this issue May 14, 2025 · 14 comments
Labels
Help-Wanted This is a good candidate work item from the community. Package-Request This is a request for a package (new or updated version)

Comments

@redactedscribe
Copy link

redactedscribe commented May 14, 2025

How can we help?

The manifests are below, feel free to submit them without my help.

Please read and ensure the following

  • The installer meets the above requirements

Please provide the following information

I generated the following manifests for the initial release of Mullvad VPN loader using wingetcreate (running loader doesn't install itself anywhere which is why I answered 'y' to whether it is portable):

Manifest:

# Created using wingetcreate 1.9.4.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.9.0.schema.json

PackageIdentifier: MullvadVPN.MullvadVPNloader
PackageVersion: 1.0.0
DefaultLocale: en-US
ManifestType: version
ManifestVersion: 1.9.0

Installer manifest:

# Created using wingetcreate 1.9.4.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.9.0.schema.json

PackageIdentifier: MullvadVPN.MullvadVPNloader
PackageVersion: 1.0.0
InstallerType: portable
Commands:
- mullvad-loader
Installers:
- Architecture: x64
  InstallerUrl: https://github.com/mullvad/mullvadvpn-app/releases/download/desktop%2Finstaller-downloader%2F1.0.0/Install.Mullvad.VPN.exe
  InstallerSha256: 4B030A4010F15BC078D3F3CC26EDEE079A764FB197B280891D3DE2AE2E8B1BDF
ManifestType: installer
ManifestVersion: 1.9.0

Locale manifest:

# Created using wingetcreate 1.9.4.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.9.0.schema.json

PackageIdentifier: MullvadVPN.MullvadVPNloader
PackageVersion: 1.0.0
PackageLocale: en-US
Publisher: Mullvad VPN
PublisherUrl: https://mullvad.net/
PublisherSupportUrl: https://mullvad.net/help
PrivacyUrl: https://mullvad.net/en/help/privacy-policy
Author: Mullvad VPN
PackageName: Mullvad VPN loader
PackageUrl: https://github.com/mullvad/mullvadvpn-app/tree/HEAD/installer-downloader
License: GPL-3.0
LicenseUrl: https://github.com/mullvad/mullvadvpn-app/blob/HEAD/LICENSE.md
Copyright: Copyright (C) 2025 Mullvad VPN AB
CopyrightUrl: https://github.com/mullvad/mullvadvpn-app/blob/HEAD/README.md
ShortDescription: Tool for downloading and installing the latest Mullvad VPN app release.
Description: Mullvad VPN loader is available for Windows and macOS, and can install both the latest stable app release as well as the latest beta release. Mullvad VPN loader can be used to update Mullvad VPN whenever a new release is available.
Tags:
- vpn
- installer
- downloader
- open-source
ReleaseNotes: |-
  - Use default font instead of Segoe Fluent Icons for back arrow.
ReleaseNotesUrl: https://github.com/mullvad/mullvadvpn-app/releases/tag/desktop%2Finstaller-downloader%2F1.0.0
ManifestType: defaultLocale
ManifestVersion: 1.9.0
@redactedscribe redactedscribe added Help-Wanted This is a good candidate work item from the community. Package-Request This is a request for a package (new or updated version) labels May 14, 2025
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage This work item needs to be triaged by a member of the core team. label May 14, 2025
@Dragon1573
Copy link
Contributor

Hi @redactedscribe, 👋🏼

there's already Mullvad VPN and its beta versions available in the source. Could you please explain its use case?

00:11:40 D:\...\winget-pkgs  [master ≡] 1ms pwsh
$ winget search -s winget Mullvad
名称            ID                         版本
-------------------------------------------------------
Mullvad Browser MullvadVPN.MullvadBrowser  14.5.1
Mullvad VPN     MullvadVPN.MullvadVPN      2025.5
Mullvad VPN     MullvadVPN.MullvadVPN.beta 2025.6-beta2

@redactedscribe
Copy link
Author

redactedscribe commented May 14, 2025

Hi @Dragon1573. This is not for Mullvad's VPN, it's for Mullvad's VPN downloader and installer tool to help keep the VPN client up-to-date.

@Dragon1573
Copy link
Contributor

  1. It seems this "downloader & install tool" DOES NOT support silent installation.
  2. You can install it as a portable executable, but winget.exe will write its version info to Windows Registry, which might be incorrect.
  3. winget.exe itself have the ability to check for updates if there's a manifest of new version, but it might not catch up with the official team since manifests should be manually reviewed before merged to the repo. If you intend to check update using this "downloader & install tool", it's recommended winget pin add Mullvad VPN and ONLY use its updater.

@redactedscribe
Copy link
Author

I'm new to submitting manifests for WinGet.

  1. Is this a problem?
  2. Hmm. Any suggestion?
  3. I agree, only using the updater would be the way to go if choosing to install it instead of the Mullvad VPN client via WinGet. The good thing about the updater is that updates to its manifest would likely be much less common than to that of the VPN client's.

@Dragon1573
Copy link
Contributor

  1. Yes. It will block the validation pipeline and can't be accepted to the repository.
  2. I think there's none ...

@redactedscribe
Copy link
Author

  1. The tool is a simple executable which runs from any directory, it doesn't need to be installed. I thought WinGet would just have to handle downloading and moving of it to "%LOCALAPPDATA%/Microsoft/WinGet/Packages/MullvadVPN.MullvadVPNloader"(?) for it to be "installed" and managed by WinGet. As far as I can tell WinGet supports portable apps.
  2. The manifest already defines this package as portable if I'm not mistaken.

@Dragon1573
Copy link
Contributor

Manual validation

Image
Screen Record

@mahtaran
Copy link
Contributor

Hi @redactedscribe! Good news: I submitted a manifest for this a scant few hours before you made this issue, and it has already been merged (#256434)! You can get the loader at ID MullvadVPN.MullvadVPNLoader. I do believe our manifests ended up being quite similar, though I chose not to rename the executable (the command is thus Install.Mullvad.VPN)

@ItzLevvie
Copy link
Contributor

Close with reason: Resolved;

@microsoft-github-policy-service microsoft-github-policy-service bot removed the Needs-Triage This work item needs to be triaged by a member of the core team. label May 20, 2025
@redactedscribe
Copy link
Author

Thanks @mahtaran!

@redactedscribe
Copy link
Author

@mahtaran I was hoping I'd be able to run this just like any other installed GUI software via the Start Menu but it appears that it can only be run via a command. Not sure if my manifest would've done so as I did not test it (unsure how). Could this be added?

@ItzLevvie
Copy link
Contributor

It is currently not possible because microsoft/winget-cli#2299 has not been implemented into WinGet yet.

@mahtaran
Copy link
Contributor

mahtaran commented May 20, 2025

[Scratching my whole bumbling explanation and thanks @ItzLevvie for linking the proper issue]

What you could do, however, is:

  1. Navigate to the loader package directory. Assuming you installed it with the user scope, it should be something like C:\Users\[username]\AppData\Local\Microsoft\WinGet\Packages\MullvadVPN.MullvadVPNLoader_[…].
  2. Right-click the Install.Mullvad.VPN.exe and create a shortcut, name it however you like (for example "Mullvad VPN Loader").
  3. Move that shortcut to C:\Users\[username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\.

And then you should be able to find and run it from the start menu.

(Though I'm decently convinced this shortcut will break whenever the package is updated 😞)

@redactedscribe
Copy link
Author

Thanks for the info. The shortcut may break but I do have another portable program installed which ends with the same string of numbers and letters so perhaps this path will remain stable, especially because the loader's folder doesn't contains a versioned subfolder or the version within the executable's name.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Help-Wanted This is a good candidate work item from the community. Package-Request This is a request for a package (new or updated version)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants