* feat(updater): verify the version an update was signed for
The endpoint response is fetched over TLS but is not signed, and the signature
only covers the artifact, so a crafted response could pair an inflated version
with an older release's url and signature to force a downgrade to a genuine
but outdated build.
Read the version back from the signature's trusted comment and reject an
update whose announced version differs. Signatures carrying no version are
only rejected under the new requireSignedVersion option, since older CLIs did
not record one.
* fix tests
* feat(updater): option to not restart after install
* More platform cfg
* Add the same function for `UpdaterBuilder`
* Fix missing `#[cfg(windows)]`
* Mark `current_exe_args` cfg(windows)
* Mark `on_before_exit` cfg(windows)
* Mark `installer_args` cfg(windows)
* Note about `installer_arg` apply to both
* Remove current args and restart together
* Only build needed bundle on windows as well
* Remove `/NS` since it breaks the msi updater
* Add launch updater debug log
* Add a folder to test updates
* Remove unused `#[allow(unused)]`
* Format
* messed up git stage
* Add change file
* Clean up
* Disable NSIS compression for API example
* Bump wry for v1 test to pull in https://github.com/tauri-apps/wry/pull/1703
* format
* Make typescript happy
* Close new update on destroy
* fix: preserve file extension of updated package (fix: #3283)
Otherwise users may get confused when seing a sudo dialog
which suggests a `rpm` package is installed using `dpkg -i`
* pass on package extension more thoroughly
* add changes file
Update the updater package to preserve file extension, clarifying installation prompts for users.
* Apply suggestion from @hrzlgnm
* Apply suggestion from @hrzlgnm
* Apply suggestion from @Legend-Master
* More rpm and log `pkg_path` instead
---------
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
* docs(updater): installer args and `on_before_exit`
* Update plugins/updater/src/updater.rs
Co-authored-by: Fabian-Lars <github@fabianlars.de>
* Explicitly state there are internal args
* s
* fix(updater): format `Update.date` to RFC 3339
* Messed up on argument in #2572
* Format
* Update example
* Avoid extra to_string
* Deprecate `Update.available`
* WIP
* Fixed linting
* WIP
* Fixed linting
* use osakit to show actual app name on dialog
* sync versions
* lint
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* fix(updater): encode version when making requests
ref: https://github.com/tauri-apps/tauri/issues/10908
* Update .changes/updater-endpoint-version-encoded.md
* only skip `+`
* fmt
* use normal const
* fix(updater): linux not retaining AppImage permissions, enhance tests
- adds a test for migration from v1 to v2
- extends the existing integration test to actually verify if the app was updated
* remove test framework
* fix macos test
* fix windows
* wait on windows
* fix wix
* typo
* fmt
* install webkit2gtk-4.0 on ci
* fix npm command on windows
* fix test on windows
* ubuntu-22.04
---------
Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
* Use named tempfile on Windows
* append installer
* Add change file
* Fix ci
* Wrap in a folder
* Name temp dir for eaiser debugging
* format
* temp_dir
* target_os
* Document use updater_builder instead