diff options
7 files changed, 164 insertions, 4 deletions
diff --git a/installer-downloader/src/controller.rs b/installer-downloader/src/controller.rs index 2dad0d0c90..c96c20006f 100644 --- a/installer-downloader/src/controller.rs +++ b/installer-downloader/src/controller.rs @@ -214,7 +214,7 @@ where let version_params = VersionParameters { architecture, // For the downloader, the rollout version is always preferred - rollout: mullvad_update::version::IGNORE, + rollout: mullvad_update::version::SUPPORTED_VERSION, allow_empty: false, // The downloader allows any version lowest_metadata_version: mullvad_update::version::MIN_VERIFY_METADATA_VERSION, diff --git a/mullvad-daemon/src/version/check.rs b/mullvad-daemon/src/version/check.rs index 04ed049bae..82cfe035be 100644 --- a/mullvad-daemon/src/version/check.rs +++ b/mullvad-daemon/src/version/check.rs @@ -410,7 +410,7 @@ fn version_check_inner( let v2_endpoint = api.version_proxy.version_check_2( PLATFORM, architecture, - mullvad_update::version::IGNORE, + mullvad_update::version::SUPPORTED_VERSION, min_metadata_version, ); async move { diff --git a/mullvad-update/src/client/snapshots/mullvad_update__client__api__test__http_version_provider.snap b/mullvad-update/src/client/snapshots/mullvad_update__client__api__test__http_version_provider.snap index 0ab318fa1f..7f8ba8c98c 100644 --- a/mullvad-update/src/client/snapshots/mullvad_update__client__api__test__http_version_provider.snap +++ b/mullvad-update/src/client/snapshots/mullvad_update__client__api__test__http_version_provider.snap @@ -6,7 +6,7 @@ snapshot_kind: text signatures: - keytype: ed25519 keyid: bb4ef63ffdcc6bd5a19c30cd23b9de03099407a04463418f17ae338b98aa09d4 - sig: fb0f0d608f82101ca294c9150ce268c29bdaf99d4a726541e59523ef00b0d534d65cac277f1355e2838f5ac1b1f1e7013411da70049ba19a208515c67a97de06 + sig: 4e13871919863cdc671439409dc2d08cce8cea39640eda338d180fa081a0f5675894b8a4408ce3c43115f098c1494406c96c7c326f981d1303a28720d55c310d signed: metadata_version: 0 metadata_expiry: "2025-10-02T15:33:00Z" @@ -67,3 +67,17 @@ signed: - version: "2026.10" changelog: "" installers: [] + - version: "2030.3" + changelog: "[macos] Everything has been fixed" + installers: + - architecture: x86 + urls: + - "https://releases.mullvad.net/desktop/releases/2025.3-beta1/MullvadVPN-2025.3-beta1_x64.exe" + size: 106297504 + sha256: 0c569aa0912eb93605a85073447d42ba0ca612361bef78ef04ef038e80b15403 + - architecture: arm64 + urls: + - "https://releases.mullvad.net/desktop/releases/2025.3-beta1/MullvadVPN-2025.3-beta1_arm64.exe" + size: 111488248 + sha256: 82948D3DB5B869EE5F0D246DB557A81B72B68DFDDD2267872B7B8A5B19A05444 + rollout: 0 diff --git a/mullvad-update/src/snapshots/mullvad_update__version__test__version_unsupported_filtering-2.snap b/mullvad-update/src/snapshots/mullvad_update__version__test__version_unsupported_filtering-2.snap new file mode 100644 index 0000000000..207c377c52 --- /dev/null +++ b/mullvad-update/src/snapshots/mullvad_update__version__test__version_unsupported_filtering-2.snap @@ -0,0 +1,45 @@ +--- +source: mullvad-update/src/version.rs +expression: info +snapshot_kind: text +--- +stable: + version: "2030.3" + urls: + - "https://releases.mullvad.net/desktop/releases/2025.3-beta1/MullvadVPN-2025.3-beta1_x64.exe" + size: 106297504 + changelog: "[macos] Everything has been fixed" + sha256: + - 12 + - 86 + - 154 + - 160 + - 145 + - 46 + - 185 + - 54 + - 5 + - 168 + - 80 + - 115 + - 68 + - 125 + - 66 + - 186 + - 12 + - 166 + - 18 + - 54 + - 27 + - 239 + - 120 + - 239 + - 4 + - 239 + - 3 + - 142 + - 128 + - 177 + - 84 + - 3 +beta: ~ diff --git a/mullvad-update/src/snapshots/mullvad_update__version__test__version_unsupported_filtering.snap b/mullvad-update/src/snapshots/mullvad_update__version__test__version_unsupported_filtering.snap new file mode 100644 index 0000000000..6c5a8fc498 --- /dev/null +++ b/mullvad-update/src/snapshots/mullvad_update__version__test__version_unsupported_filtering.snap @@ -0,0 +1,44 @@ +--- +source: mullvad-update/src/version.rs +expression: info +snapshot_kind: text +--- +stable: + version: "2026.10" + urls: [] + size: 0 + changelog: "" + sha256: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +beta: ~ diff --git a/mullvad-update/src/version.rs b/mullvad-update/src/version.rs index c37c2a2d7b..13da1ec82d 100644 --- a/mullvad-update/src/version.rs +++ b/mullvad-update/src/version.rs @@ -216,4 +216,38 @@ mod test { Ok(()) } + + /// Test whether [SUPPORTED_VERSION] ignores unsupported versions (where rollout = 0.0) + #[test] + fn test_version_unsupported_filtering() -> anyhow::Result<()> { + let response = format::SignedResponse::deserialize_insecure(include_bytes!( + "../test-version-response.json" + ))?; + + let params = VersionParameters { + architecture: VersionArchitecture::X86, + rollout: SUPPORTED_VERSION, + allow_empty: true, + lowest_metadata_version: 0, + }; + + let info = VersionInfo::try_from_response(¶ms, response.signed.clone())?; + + // Expect: The available latest versions for x86, where the rollout is non-zero. + assert_yaml_snapshot!(info); + + let params = VersionParameters { + architecture: VersionArchitecture::X86, + rollout: IGNORE, + allow_empty: true, + lowest_metadata_version: 0, + }; + + let info = VersionInfo::try_from_response(¶ms, response.signed)?; + + // Expect: There is an even higher version where the rollout is zero. + assert_yaml_snapshot!(info); + + Ok(()) + } } diff --git a/mullvad-update/test-version-response.json b/mullvad-update/test-version-response.json index 17e3c57aba..202cb63809 100644 --- a/mullvad-update/test-version-response.json +++ b/mullvad-update/test-version-response.json @@ -3,7 +3,7 @@ { "keytype": "ed25519", "keyid": "bb4ef63ffdcc6bd5a19c30cd23b9de03099407a04463418f17ae338b98aa09d4", - "sig": "fb0f0d608f82101ca294c9150ce268c29bdaf99d4a726541e59523ef00b0d534d65cac277f1355e2838f5ac1b1f1e7013411da70049ba19a208515c67a97de06" + "sig": "4e13871919863cdc671439409dc2d08cce8cea39640eda338d180fa081a0f5675894b8a4408ce3c43115f098c1494406c96c7c326f981d1303a28720d55c310d" } ], "signed": { @@ -103,6 +103,29 @@ "version": "2026.10", "changelog": "", "installers": [] + }, + { + "version": "2030.3", + "changelog": "[macos] Everything has been fixed", + "installers": [ + { + "architecture": "x86", + "urls": [ + "https://releases.mullvad.net/desktop/releases/2025.3-beta1/MullvadVPN-2025.3-beta1_x64.exe" + ], + "size": 106297504, + "sha256": "0c569aa0912eb93605a85073447d42ba0ca612361bef78ef04ef038e80b15403" + }, + { + "architecture": "arm64", + "urls": [ + "https://releases.mullvad.net/desktop/releases/2025.3-beta1/MullvadVPN-2025.3-beta1_arm64.exe" + ], + "size": 111488248, + "sha256": "82948D3DB5B869EE5F0D246DB557A81B72B68DFDDD2267872B7B8A5B19A05444" + } + ], + "rollout": 0.0 } ] } |
