158 Commits
Author SHA1 Message Date
Markus Pettersson 1804b9a86c Run typos --write-changes 2026-09-15 14:25:53 +02:00
David Lönnhager a6ff69ee21 Sign Electron binaries packed into Windows installer
The Electron executable, native node modules and the NSIS
uninstaller were not signed. This could cause AV false positives.

Note that third-party NSIS plugins are still unsigned, so this may not
fully placate Smart App Control.
2026-08-25 10:25:57 +02:00
Linus c6350f6784 Build installer-downloader with a cargo profile instead of RUSTFLAGS
RUSTFLAGS and the `target.*.rustflags` keys in `.cargo/config.toml` are
mutually exclusive, so setting RUSTFLAGS here dropped the config's
Windows rustflags.

Move the settings that can be expressed as a profile into a new
`installer-downloader` profile in the workspace root Cargo.toml, and
drop RUSTFLAGS entirely. `.cargo/config.toml` is now the only place that
sets rustflags, so all three Windows flags apply again. `strip` and
`lto` come from the inherited `release` profile.

Binaries now land in `target/installer-downloader/` instead of
`target/release/`.
2026-07-28 16:43:42 +02:00
Linus 31c50d9ceb Replace winres with winresource to get deterministic resource ordering
winres is an abandoned crate. It also stores the version info string
properties in a HashMap and writes the StringFileInfo block by
iterating it directly. This results in every unique build having
these resources embedded in the resulting binary in a random order.

winresource is the maintained fork of winres. It stores the properties
in a BTreeMap, so the block is emitted in sorted key order.
2026-07-22 13:24:11 +02:00
David Lönnhager 7b510e4738 Use releases.mullvad.net when fetching metadata in mullvad-release
We have previously seen that `mullvad-release pull` replaces the
metadata just uploaded with stale metadata. This attempts to ameliorate
that by not fetching the metadata via the API.
2026-07-16 15:25:33 +02:00
David Lönnhager d13062f914 Bump installer loader version to 1.2.1 2026-06-09 12:57:04 +02:00
Markus Pettersson 190c3c0b9c Add logs on app download and installation for installer-downloader 2026-06-08 16:01:16 +02:00
Markus Pettersson 0df424b604 Allow printing of sensitive values in debug mode 2026-06-05 08:16:57 +02:00
Markus Pettersson 0778bc2728 Redact any fingerprintable info from installer-downloader logs 2026-06-05 08:16:55 +02:00
Markus Pettersson 8c5b0f1f32 Log to stdout when running installer-downloader in debug mode 2026-06-05 08:16:53 +02:00
Markus Pettersson 11cb82c505 Promote async-trait to a workspace dependency 2026-06-05 08:16:50 +02:00
Markus Pettersson 2e01b80a2c Stop formatting ANSI terminal escape codes in installer-downloader 2026-06-04 14:31:31 +02:00
Markus Pettersson 645d52e345 Fix logs not flusing properly in installer-downloader 2026-06-04 14:31:29 +02:00
Markus Pettersson 7642e38bf8 Store installer-downloader logs in a known directory
Write `installer-downloader` logs to
`mullvad_paths::logs::frontend_log_dir`, which is the same directory as
the Electron app uses.
2026-06-04 10:50:03 +02:00
David Lönnhager 67d8599b95 Replace some cfg!() chains with cfg_select!() 2026-04-20 18:09:22 +02:00
David Lönnhager 9ecf22e7e9 Fix lints and warnings 2026-03-06 16:36:31 +01:00
Markus Pettersson cd02b65ffe Update copyright year in project files and code 2026-02-06 09:46:50 +01:00
Sebastian Holmin 6cd822db94 Format Cargo.toml files using tombi 2026-01-23 15:05:36 +01:00
Linus Färnstrand e2e2fa7ef0 Change how we expose proptest generators in public API 2026-01-23 13:41:11 +01:00
Linus Färnstrand 0f7ddaf5c1 Remove unused chrono dependency 2026-01-15 16:01:41 +01:00
Linus Färnstrand 271ae82c8d Replace many #[allow] with #[expect] 2026-01-09 13:52:38 +01:00
Sebastian Holmin 67210eb6be Add mullvad logging listen 2026-01-09 11:01:46 +01:00
Sebastian Holmin e7f88568e6 Replace fern with tracing-subscriber 2026-01-09 11:01:43 +01:00
Linus Färnstrand 1aad3d5a44 Remove unused dependencies found with cargo-machete 2026-01-08 16:46:28 +01:00
Markus Pettersson eb2ee0e83c Split up mullvad_update::version module 2025-11-26 13:18:02 +01:00
Linus Färnstrand a9a7e6c829 Replace as _ casts with safer alternatives on Windows 2025-11-21 11:14:31 +01:00
Linus Färnstrand 35f0c8981b Fix clippy::borrow_as_ptr warnings on Windows 2025-11-20 13:55:30 +01:00
Markus Pettersson 4f47a7e55b Split mullvad_update::format into multiple modules 2025-11-13 16:24:56 +01:00
David Lönnhager 13f2bab900 Bump windows-sys version to latest
This also refactors and documents some code
2025-10-03 16:42:48 +02:00
David Lönnhager 726415ef83 Update changelog and version for installer loader 2025-10-01 10:23:23 +02:00
Markus Pettersson b74631d30c Upgrade rand to 0.9 in installer-downloader 2025-09-23 17:04:24 +02:00
David Lönnhager 5a976a0de4 Ignore versions with zero rollout in Mullvad loader and app 2025-09-03 13:54:52 +02:00
David Lönnhager 87f9305942 Add version parameter to allow latest version to be returned on Linux 2025-08-29 13:24:45 +02:00
Sebastian Holmin e679ad52b5 Update reqwest to resolve dependency conflict
Note that the new version increases the size of Mullvad loader
a bit, forcing us to bump the limit in the CI check. We should
consider replacing it with a smaller alternative, perhaps
`hyper_rustls`.
2025-08-26 15:32:04 +02:00
Sebastian Holmin 3fd1c56d39 Run cargo fmt 2025-07-10 09:37:00 +02:00
Linus Färnstrand 126ebffd7e Inline format arguments 2025-07-09 11:52:05 +02:00
Linus Färnstrand 64cd632e11 Ignore warning from unmaintained objc crate on msg_send macro 2025-07-08 09:34:57 +02:00
David Lönnhager 10c14ed1f2 Bump loader version to 1.1.0 2025-06-16 18:25:19 +02:00
David LönnhagerandMarkus Pettersson c958c1fac9 Skip incomplete installers for loader in offline mode
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
2025-06-16 18:14:10 +02:00
0ebf1499c5 Add offline mode for installer loader on Windows
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
Co-authored-by: Joakim Hulthe <joakim.hulthe@mullvad.net>
Co-authored-by: David Lönnhager <david.l@mullvad.net>
2025-06-16 11:04:06 +02:00
Sebastian Holmin 10dc35368c Add download timeout and retry logic (#8149)
* Add timeout to download

* Retry failed downloads on network errors

Previously, the download would either fail immediately or hang
indefinitely if when the user e.g. changed their tunnel state.

* Fix progress when resuming download

* Import thiserror on all platforms

* Add to installer downloader changelog
2025-05-28 13:25:34 +02:00
Sebastian Holmin 9ca3e74930 Add tests for in app upgrade tests in daemon (#8015)
Also add check for metadata version
2025-05-28 13:25:32 +02:00
Sebastian HolminandMarkus Pettersson 23e7acba0f Add in app upgrades to the daemon
---------

Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
2025-05-28 13:25:27 +02:00
David Lönnhager b217577a86 Update changelog 2025-05-26 17:41:55 +02:00
Bug Magnet 4c590fef8a Fix the installer on macOS12 by using PDF instead of SVG files 2025-05-26 17:41:55 +02:00
David Lönnhager dc82a1d4e3 Bump installer-downloader version to 1.0.0 2025-05-13 14:35:20 +02:00
David Lönnhager fec1477bed Fix incorrect error log in installer-downloader 2025-05-13 13:08:27 +02:00
David Lönnhager 55ac511db7 Update changelog for installer-downloader 2025-05-13 12:35:20 +02:00
David Lönnhager b51c01b195 Use default font instead Segoe Fluent Icons 2025-05-13 12:35:20 +02:00
Oskar d330133cdc Bump installer downloader to 0.3.0 2025-05-06 16:30:16 +02:00