From 7c3db7a3811fd4de3e71c78cfd00894fa51ab786 Mon Sep 17 00:00:00 2001 From: chip Date: Tue, 1 Feb 2022 18:30:52 -0800 Subject: [PATCH] cache current binary path much sooner (#45) * use ctor to cache starting executable * clean up symlink checking logic * changefile * use wrapper for the static, put it in tauri_utils * cargo +nightly fmt * add license header to `StartingBinary` * fix clippy warning * fix: test * simplify macOS dangerous flag detection * update restart test to allow expected failure on macOS * finish documentation Co-authored-by: Lucas Nogueira --- .changes/current-binary-caching.md | 6 + core/tauri-utils/Cargo.toml | 2 + core/tauri-utils/src/config.rs | 13 + core/tauri-utils/src/lib.rs | 7 +- core/tauri-utils/src/platform.rs | 80 +- .../src/platform/starting_binary.rs | 76 ++ core/tauri/Cargo.toml | 3 +- core/tauri/build.rs | 1 + core/tauri/src/api/process.rs | 83 +- core/tauri/src/scope/shell.rs | 16 +- core/tauri/tests/restart.rs | 36 +- core/tauri/tests/restart/Cargo.lock | 772 +++++++----------- tooling/cli.rs/Cargo.lock | 23 +- tooling/cli.rs/schema.json | 48 +- 14 files changed, 584 insertions(+), 582 deletions(-) create mode 100644 .changes/current-binary-caching.md create mode 100644 core/tauri-utils/src/platform/starting_binary.rs diff --git a/.changes/current-binary-caching.md b/.changes/current-binary-caching.md new file mode 100644 index 000000000..c404d6ac9 --- /dev/null +++ b/.changes/current-binary-caching.md @@ -0,0 +1,6 @@ +--- +tauri: patch +tauri-utils: patch +--- + +The path returned from `tauri::api::process::current_binary` is now cached when loading the binary. diff --git a/core/tauri-utils/Cargo.toml b/core/tauri-utils/Cargo.toml index 4cfbd0bcd..2303d4429 100644 --- a/core/tauri-utils/Cargo.toml +++ b/core/tauri-utils/Cargo.toml @@ -30,6 +30,7 @@ aes-gcm = { version = "0.9", optional = true } ring = { version = "0.16", optional = true, features = ["std"] } once_cell = { version = "1.8", optional = true } serialize-to-javascript = { git = "https://github.com/chippers/serialize-to-javascript" } +ctor = "0.1" [target."cfg(target_os = \"linux\")".dependencies] heck = "0.4" @@ -39,3 +40,4 @@ build = [ "proc-macro2", "quote" ] compression = [ "zstd" ] schema = ["schemars"] isolation = [ "aes-gcm", "ring", "once_cell" ] +process-relaunch-dangerous-allow-symlink-macos = [] diff --git a/core/tauri-utils/src/config.rs b/core/tauri-utils/src/config.rs index f25d92696..257ca51ea 100644 --- a/core/tauri-utils/src/config.rs +++ b/core/tauri-utils/src/config.rs @@ -1260,6 +1260,12 @@ pub struct ProcessAllowlistConfig { /// Enables the relaunch API. #[serde(default)] pub relaunch: bool, + /// Dangerous option that allows macOS to relaunch even if the binary contains a symlink. + /// + /// This is due to macOS having less symlink protection. Highly recommended to not set this flag + /// unless you have a very specific reason too, and understand the implications of it. + #[serde(default)] + pub relaunch_dangerous_allow_symlink_macos: bool, /// Enables the exit API. #[serde(default)] pub exit: bool, @@ -1270,6 +1276,7 @@ impl Allowlist for ProcessAllowlistConfig { let allowlist = Self { all: false, relaunch: true, + relaunch_dangerous_allow_symlink_macos: false, exit: true, }; let mut features = allowlist.to_features(); @@ -1283,6 +1290,12 @@ impl Allowlist for ProcessAllowlistConfig { } else { let mut features = Vec::new(); check_feature!(self, features, relaunch, "process-relaunch"); + check_feature!( + self, + features, + relaunch_dangerous_allow_symlink_macos, + "process-relaunch-dangerous-allow-symlink-macos" + ); check_feature!(self, features, exit, "process-exit"); features } diff --git a/core/tauri-utils/src/lib.rs b/core/tauri-utils/src/lib.rs index 8486091fc..37fa8d808 100644 --- a/core/tauri-utils/src/lib.rs +++ b/core/tauri-utils/src/lib.rs @@ -68,14 +68,15 @@ impl Default for Env { // an AppImage is mounted to `/$TEMPDIR/.mount_${appPrefix}${hash}` // see https://github.com/AppImage/AppImageKit/blob/1681fd84dbe09c7d9b22e13cdb16ea601aa0ec47/src/runtime.c#L501 // note that it is safe to use `std::env::current_exe` here since we just loaded an AppImage. - if !std::env::current_exe() + let is_temp = std::env::current_exe() .map(|p| { p.display() .to_string() .starts_with(&format!("{}/.mount_", std::env::temp_dir().display())) }) - .unwrap_or(true) - { + .unwrap_or(true); + + if !is_temp { panic!("`APPDIR` or `APPIMAGE` environment variable found but this application was not detected as an AppImage; this might be a security issue."); } } diff --git a/core/tauri-utils/src/platform.rs b/core/tauri-utils/src/platform.rs index 217271d76..cabe9a99b 100644 --- a/core/tauri-utils/src/platform.rs +++ b/core/tauri-utils/src/platform.rs @@ -8,16 +8,82 @@ use std::path::{PathBuf, MAIN_SEPARATOR}; use crate::{Env, PackageInfo}; -/// Gets the path to the current executable, resolving symbolic links for security reasons. +mod starting_binary; + +/// Retrieves the currently running binary's path, taking into account security considerations. /// -/// See https://doc.rust-lang.org/std/env/fn.current_exe.html#security for -/// an example of what to be careful of when using `current_exe` output. +/// The path is cached as soon as possible (before even `main` runs) and that value is returned +/// repeatedly instead of fetching the path every time. It is possible for the path to not be found, +/// or explicitly disabled (see following macOS specific behavior). /// -/// We canonicalize the path we received from `current_exe` to resolve any -/// soft links. it avoids the usual issue of needing the file to exist at -/// the passed path because a valid `current_exe` result should always exist. +/// # Platform-specific behavior +/// +/// On `macOS`, this function will return an error if the original path contained any symlinks +/// due to less protection on macOS regarding symlinks. This behavior can be disabled by setting the +/// `process-relaunch-dangerous-allow-symlink-macos` feature, although it is *highly discouraged*. +/// +/// # Security +/// +/// If the above platform-specific behavior does **not** take place, this function uses the +/// following resolution. +/// +/// We canonicalize the path we received from [`std::env::current_exe`] to resolve any soft links. +/// This avoids the usual issue of needing the file to exist at the passed path because a valid +/// current executable result for our purpose should always exist. Notably, +/// [`std::env::current_exe`] also has a security section that goes over a theoretical attack using +/// hard links. Let's cover some specific topics that relate to different ways an attacker might +/// try to trick this function into returning the wrong binary path. +/// +/// ## Symlinks ("Soft Links") +/// +/// [`std::path::Path::canonicalize`] is used to resolve symbolic links to the original path, +/// including nested symbolic links (`link2 -> link1 -> bin`). On macOS, any results that include +/// a symlink are rejected by default due to lesser symlink protections. This can be disabled, +/// **although discouraged**, with the `process-relaunch-dangerous-allow-symlink-macos` feature. +/// +/// ## Hard Links +/// +/// A [Hard Link] is a named entry that points to a file in the file system. +/// On most systems, this is what you would think of as a "file". The term is +/// used on filesystems that allow multiple entries to point to the same file. +/// The linked [Hard Link] Wikipedia page provides a decent overview. +/// +/// In short, unless the attacker was able to create the link with elevated +/// permissions, it should generally not be possible for them to hard link +/// to a file they do not have permissions to - with exception to possible +/// operating system exploits. +/// +/// There are also some platform-specific information about this below. +/// +/// ### Windows +/// +/// Windows requires a permission to be set for the user to create a symlink +/// or a hard link, regardless of ownership status of the target. Elevated +/// permissions users have the ability to create them. +/// +/// ### macOS +/// +/// macOS allows for the creation of symlinks and hard links to any file. +/// Accessing through those links will fail if the user who owns the links +/// does not have the proper permissions on the original file. +/// +/// ### Linux +/// +/// Linux allows for the creation of symlinks to any file. Accessing the +/// symlink will fail if the user who owns the symlink does not have the +/// proper permissions on the original file. +/// +/// Linux additionally provides a kernel hardening feature since version +/// 3.6 (30 September 2012). Most distributions since then have enabled +/// the protection (setting `fs.protected_hardlinks = 1`) by default, which +/// means that a vast majority of desktop Linux users should have it enabled. +/// **The feature prevents the creation of hardlinks that the user does not own +/// or have read/write access to.** [See the patch that enabled this]. +/// +/// [Hard Link]: https://en.wikipedia.org/wiki/Hard_link +/// [See the patch that enabled this]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=800179c9b8a1e796e441674776d11cd4c05d61d7 pub fn current_exe() -> std::io::Result { - std::env::current_exe().and_then(|path| path.canonicalize()) + self::starting_binary::STARTING_BINARY.cloned() } /// Try to determine the current target triple. diff --git a/core/tauri-utils/src/platform/starting_binary.rs b/core/tauri-utils/src/platform/starting_binary.rs new file mode 100644 index 000000000..3b06968dc --- /dev/null +++ b/core/tauri-utils/src/platform/starting_binary.rs @@ -0,0 +1,76 @@ +// Copyright 2019-2021 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use ctor::ctor; +use std::{ + io::{Error, ErrorKind, Result}, + path::{Path, PathBuf}, +}; + +/// A cached version of the current binary using [`ctor`] to cache it before even `main` runs. +#[ctor] +#[used] +pub(super) static STARTING_BINARY: StartingBinary = StartingBinary::new(); + +/// Represents a binary path that was cached when the program was loaded. +pub(super) struct StartingBinary(std::io::Result); + +impl StartingBinary { + /// Find the starting executable as safely as possible. + fn new() -> Self { + // see notes on current_exe() for security implications + let dangerous_path = match std::env::current_exe() { + Ok(dangerous_path) => dangerous_path, + error @ Err(_) => return Self(error), + }; + + // note: this only checks symlinks on problematic platforms, see implementation below + if let Some(symlink) = Self::has_symlink(&dangerous_path) { + return Self(Err(Error::new( + ErrorKind::InvalidData, + format!("StartingBinary found current_exe() that contains a symlink on a non-allowed platform: {}", symlink.display()), + ))); + } + + // we canonicalize the path to resolve any symlinks to the real exe path + Self(dangerous_path.canonicalize()) + } + + /// A clone of the [`PathBuf`] found to be the starting path. + /// + /// Because [`Error`] is not clone-able, it is recreated instead. + pub(super) fn cloned(&self) -> Result { + self + .0 + .as_ref() + .map(Clone::clone) + .map_err(|e| Error::new(e.kind(), e.to_string())) + } + + /// We only care about checking this on macOS currently, as it has the least symlink protections. + #[cfg(any( + not(target_os = "macos"), + feature = "process-relaunch-dangerous-allow-symlink-macos" + ))] + fn has_symlink(_: &Path) -> Option<&Path> { + None + } + + /// We only care about checking this on macOS currently, as it has the least symlink protections. + #[cfg(all( + target_os = "macos", + not(feature = "process-relaunch-dangerous-allow-symlink-macos") + ))] + fn has_symlink(path: &Path) -> Option<&Path> { + path.ancestors().find(|ancestor| { + matches!( + ancestor + .symlink_metadata() + .as_ref() + .map(std::fs::Metadata::is_symlink), + Ok(true) + ) + }) + } +} diff --git a/core/tauri/Cargo.toml b/core/tauri/Cargo.toml index 48b2e7f5b..b4a492cf8 100644 --- a/core/tauri/Cargo.toml +++ b/core/tauri/Cargo.toml @@ -101,7 +101,7 @@ tokio-test = "0.4.2" tokio = { version = "1.15", features = [ "full" ] } [target."cfg(windows)".dev-dependencies.windows] -version = "0.29.0" +version = "0.30.0" features = [ "Win32_Foundation", ] @@ -172,6 +172,7 @@ path-all = [] process-all = ["process-relaunch", "process-exit"] process-exit = [] process-relaunch = [] +process-relaunch-dangerous-allow-symlink-macos = ["tauri-utils/process-relaunch-dangerous-allow-symlink-macos"] protocol-all = ["protocol-asset"] protocol-asset = [] shell-all = ["shell-execute", "shell-sidecar", "shell-open"] diff --git a/core/tauri/build.rs b/core/tauri/build.rs index f1442089b..731e10b9c 100644 --- a/core/tauri/build.rs +++ b/core/tauri/build.rs @@ -90,6 +90,7 @@ fn main() { // process process_all: { any(api_all, feature = "process-all") }, process_relaunch: { any(protocol_all, feature = "process-relaunch") }, + process_relaunch_dangerous_allow_symlink_macos: { feature = "process-relaunch-dangerous-allow-symlink-macos" }, process_exit: { any(protocol_all, feature = "process-exit") }, // clipboard diff --git a/core/tauri/src/api/process.rs b/core/tauri/src/api/process.rs index 575ee9b4c..72544ea77 100644 --- a/core/tauri/src/api/process.rs +++ b/core/tauri/src/api/process.rs @@ -17,83 +17,46 @@ pub use command::*; /// Finds the current running binary's path. /// +/// With exception to any following platform-specific behavior, the path is cached as soon as +/// possible, and then used repeatedly instead of querying for a new path every time this function +/// is called. +/// /// # Platform-specific behavior /// -/// On the `Linux` platform, this function will also **attempt** to detect if -/// it's currently running from a valid [AppImage] and use that path instead. +/// ## Linux +/// +/// On Linux, this function will **attempt** to detect if it's currently running from a +/// valid [AppImage] and use that path instead. +/// +/// ## macOS +/// +/// On `macOS`, this function will return an error if the original path contained any symlinks +/// due to less protection on macOS regarding symlinks. This behavior can be disabled by setting the +/// `process-relaunch-dangerous-allow-symlink-macos` feature, although it is *highly discouraged*. /// /// # Security /// -/// If the above Platform-specific behavior does not take place, this function -/// uses [`std::env::current_exe`]. Notably, it also has a security section -/// that goes over a theoretical attack using hard links. Let's cover some -/// specific topics that relate to different ways an attacker might try to -/// trick this function into returning the wrong binary path. -/// -/// ## Symlinks ("Soft Links") -/// -/// [`std::path::Path::canonicalize`] is used to resolve symbolic links to the -/// original path, including nested symbolic links (`link2 -> link1 -> bin`). -/// -/// ## Hard Links -/// -/// A [Hard Link] is a named entry that points to a file in the file system. -/// On most systems, this is what you would think of as a "file". The term is -/// used on filesystems that allow multiple entries to point to the same file. -/// The linked [Hard Link] Wikipedia page provides a decent overview. -/// -/// In short, unless the attacker was able to create the link with elevated -/// permissions, it should generally not be possible for them to hard link -/// to a file they do not have permissions to - with exception to possible -/// operating system exploits. -/// -/// There are also some platform-specific information about this below. -/// -/// ### Windows -/// -/// Windows requires a permission to be set for the user to create a symlink -/// or a hard link, regardless of ownership status of the target. Elevated -/// permissions users have the ability to create them. -/// -/// ### macOS -/// -/// macOS allows for the creation of symlinks and hard links to any file. -/// Accessing through those links will fail if the user who owns the links -/// does not have the proper permissions on the original file. -/// -/// ### Linux -/// -/// Linux allows for the creation of symlinks to any file. Accessing the -/// symlink will fail if the user who owns the symlink does not have the -/// proper permissions on the original file. -/// -/// Linux additionally provides a kernel hardening feature since version -/// 3.6 (30 September 2012). Most distributions since then have enabled -/// the protection (setting `fs.protected_hardlinks = 1`) by default, which -/// means that a vast majority of desktop Linux users should have it enabled. -/// **The feature prevents the creation of hardlinks that the user does not own -/// or have read/write access to.** [See the patch that enabled this.](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=800179c9b8a1e796e441674776d11cd4c05d61d7) +/// See [`tauri_utils::platform::current_exe`] for possible security implications. /// /// [AppImage]: https://appimage.org/ -/// [Hard Link]: https://en.wikipedia.org/wiki/Hard_link -#[allow(unused_variables)] -pub fn current_binary(env: &Env) -> Option { +pub fn current_binary(_env: &Env) -> std::io::Result { // if we are running from an AppImage, we ONLY want the set AppImage path #[cfg(target_os = "linux")] - if let Some(app_image_path) = &env.appimage { - return Some(PathBuf::from(app_image_path)); + if let Some(app_image_path) = &_env.appimage { + return Ok(PathBuf::from(app_image_path)); } - tauri_utils::platform::current_exe().ok() + tauri_utils::platform::current_exe() } -/// Restarts the process. +/// Restarts the currently running binary. /// -/// See [`current_binary`] for the possible security implications. +/// See [`current_binary`] for platform specific behavior, and +/// [`tauri_utils::platform::current_exe`] for possible security implications. pub fn restart(env: &Env) { use std::process::{exit, Command}; - if let Some(path) = current_binary(env) { + if let Ok(path) = current_binary(env) { Command::new(path) .spawn() .expect("application failed to start"); diff --git a/core/tauri/src/scope/shell.rs b/core/tauri/src/scope/shell.rs index 9a9529a59..5c016f043 100644 --- a/core/tauri/src/scope/shell.rs +++ b/core/tauri/src/scope/shell.rs @@ -146,13 +146,15 @@ impl Scope { } }) .collect(), - (Some(list), arg) if arg.is_empty() && list.iter().all(ShellScopeAllowedArg::is_fixed) => list - .iter() - .map(|arg| match arg { - ShellScopeAllowedArg::Fixed(fixed) => Ok(fixed.to_string()), - _ => unreachable!(), - }) - .collect(), + (Some(list), arg) if arg.is_empty() && list.iter().all(ShellScopeAllowedArg::is_fixed) => { + list + .iter() + .map(|arg| match arg { + ShellScopeAllowedArg::Fixed(fixed) => Ok(fixed.to_string()), + _ => unreachable!(), + }) + .collect() + } (Some(list), _) if list.is_empty() => Err(ScopeError::InvalidInput(command_name.into())), (Some(_), _) => Err(ScopeError::InvalidInput(command_name.into())), }?; diff --git a/core/tauri/tests/restart.rs b/core/tauri/tests/restart.rs index 5e9d60738..464659444 100644 --- a/core/tauri/tests/restart.rs +++ b/core/tauri/tests/restart.rs @@ -37,6 +37,14 @@ fn compile_restart_test_binary() -> io::Result { cargo.arg("--manifest-path"); cargo.arg(project.join("Cargo.toml")); + // enable the dangerous macos flag on tauri if the test runner has the feature enabled + if cfg!(feature = "process-relaunch-dangerous-allow-symlink-macos") { + cargo.args([ + "--features", + "tauri/process-relaunch-dangerous-allow-symlink-macos", + ]); + } + let status = cargo.status()?; if !status.success() { return Err(io::Error::new( @@ -81,14 +89,32 @@ fn symlink_runner(create_symlinks: impl Fn(&Path) -> io::Result) -> Res // add the restart parameter so that the invocation will call tauri::api::process::restart cmd.arg("restart"); - // gather the output into a string - let output = String::from_utf8(cmd.output()?.stdout)?; + let output = cmd.output()?; - // run destructors to prevent resource leaking if the assertion fails + // run `TempDir` destructors to prevent resource leaking if the assertion fails drop(temp); - // we expect the output to be the bin path, twice - assert_eq!(output, format!("{bin}\n{bin}\n", bin = bin.display())); + if output.status.success() { + // gather the output into a string + let stdout = String::from_utf8(output.stdout)?; + + // we expect the output to be the bin path, twice + assert_eq!(stdout, format!("{bin}\n{bin}\n", bin = bin.display())); + } else if cfg!(all( + target_os = "macos", + not(feature = "process-relaunch-dangerous-allow-symlink-macos") + )) { + // we expect this to fail on macOS without the dangerous symlink flag set + let stderr = String::from_utf8(output.stderr)?; + + // make sure it's the error that we expect + assert!(stderr.contains( + "StartingBinary found current_exe() that contains a symlink on a non-allowed platform" + )); + } else { + // we didn't expect the program to fail in this configuration, just panic + panic!("restart integration test runner failed for unknown reason"); + } } Ok(()) diff --git a/core/tauri/tests/restart/Cargo.lock b/core/tauri/tests/restart/Cargo.lock index bb77cfff0..02943f2b7 100644 --- a/core/tauri/tests/restart/Cargo.lock +++ b/core/tauri/tests/restart/Cargo.lock @@ -34,9 +34,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.51" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b26702f315f53b6071259e15dd9d64528213b44d61de1ec926eca7715d62203" +checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" [[package]] name = "arrayref" @@ -68,8 +68,8 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "badcf670157c84bb8b1cf6b5f70b650fed78da2033c9eed84c4e49b11cbe83ea" dependencies = [ - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "glib-sys", + "gobject-sys", "libc", "system-deps 3.2.0", ] @@ -103,16 +103,16 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "blake3" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "526c210b4520e416420759af363083471656e819a75e831b8d2c9d5a584f2413" +checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", "arrayvec", "cc", - "cfg-if 1.0.0", + "cfg-if", "constant_time_eq", - "digest", + "digest 0.10.1", "rayon", ] @@ -131,6 +131,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95" +dependencies = [ + "generic-array", +] + [[package]] name = "bstr" version = "0.2.17" @@ -192,7 +201,7 @@ version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570" dependencies = [ - "glib-sys 0.14.0", + "glib-sys", "libc", "system-deps 3.2.0", ] @@ -227,19 +236,13 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edae0b9625d1fce32f7d64b71784d9b1bf8469ec1a9c417e44aaf16a9cbd7571" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" dependencies = [ "smallvec", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -261,8 +264,8 @@ dependencies = [ "bitflags", "block", "cocoa-foundation", - "core-foundation 0.9.2", - "core-graphics 0.22.3", + "core-foundation", + "core-graphics", "foreign-types", "libc", "objc", @@ -276,7 +279,7 @@ checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" dependencies = [ "bitflags", "block", - "core-foundation 0.9.2", + "core-foundation", "core-graphics-types", "foreign-types", "libc", @@ -295,50 +298,22 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "core-foundation" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", -] - [[package]] name = "core-foundation" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" dependencies = [ - "core-foundation-sys 0.8.3", + "core-foundation-sys", "libc", ] -[[package]] -name = "core-foundation-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" - [[package]] name = "core-foundation-sys" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" -[[package]] -name = "core-graphics" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" -dependencies = [ - "bitflags", - "core-foundation 0.7.0", - "foreign-types", - "libc", -] - [[package]] name = "core-graphics" version = "0.22.3" @@ -346,7 +321,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ "bitflags", - "core-foundation 0.9.2", + "core-foundation", "core-graphics-types", "foreign-types", "libc", @@ -359,24 +334,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" dependencies = [ "bitflags", - "core-foundation 0.9.2", + "core-foundation", "foreign-types", "libc", ] -[[package]] -name = "core-video-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828" -dependencies = [ - "cfg-if 0.1.10", - "core-foundation-sys 0.7.0", - "core-graphics 0.19.2", - "libc", - "objc", -] - [[package]] name = "cpufeatures" version = "0.2.1" @@ -388,20 +350,20 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" +checksum = "a2209c310e29876f7f0b2721e7e26b84aff178aa3da5d091f9bfbf47669e60e3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] name = "crossbeam-channel" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" +checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] @@ -411,18 +373,18 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" +checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", "lazy_static", "memoffset", @@ -431,14 +393,23 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "lazy_static", ] +[[package]] +name = "crypto-common" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d6b536309245c849479fba3da410962a43ed8e51c26b729208ec0ac2798d0" +dependencies = [ + "generic-array", +] + [[package]] name = "cssparser" version = "0.27.2" @@ -466,6 +437,16 @@ dependencies = [ "syn", ] +[[package]] +name = "ctor" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "cty" version = "0.2.2" @@ -571,17 +552,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "derive_more" version = "0.99.17" @@ -604,13 +574,25 @@ dependencies = [ "generic-array", ] +[[package]] +name = "digest" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b697d66081d42af4fba142d56918a3cb21dc8eb63372c6b85d14f44fb9c5979b" +dependencies = [ + "block-buffer 0.10.0", + "crypto-common", + "generic-array", + "subtle", +] + [[package]] name = "dirs-next" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "dirs-sys-next", ] @@ -654,15 +636,15 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "embed_plist" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53dd2e43a7d32952a6054141ee0d75183958620e84e5eab045de362dff13dc99" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" [[package]] name = "fastrand" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" dependencies = [ "instant", ] @@ -683,7 +665,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall", "winapi", @@ -695,7 +677,7 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crc32fast", "libc", "miniz_oxide 0.4.4", @@ -889,9 +871,9 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590" dependencies = [ - "gio-sys 0.14.0", - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "system-deps 3.2.0", ] @@ -904,15 +886,28 @@ checksum = "0e091b3d3d6696949ac3b3fb3c62090e5bfd7bd6850bef5c3c5ea701de1b1f1e" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys 0.14.0", - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", "pkg-config", "system-deps 3.2.0", ] +[[package]] +name = "gdkx11-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38cefbc8ac7be19c9b51f54fbd7cef48b70495a4cb23a812e2137e75b484b29d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 3.2.0", + "x11", +] + [[package]] name = "generator" version = "0.7.0" @@ -928,9 +923,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.4" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" dependencies = [ "typenum", "version_check", @@ -942,18 +937,18 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.10.2+wasi-snapshot-preview1", ] @@ -968,34 +963,21 @@ dependencies = [ "futures-channel", "futures-core", "futures-io", - "gio-sys 0.14.0", + "gio-sys", "glib", "libc", "once_cell", "thiserror", ] -[[package]] -name = "gio-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e24fb752f8f5d2cf6bbc2c606fd2bc989c81c5e2fe321ab974d54f8b6344eac" -dependencies = [ - "glib-sys 0.10.1", - "gobject-sys 0.10.0", - "libc", - "system-deps 1.3.2", - "winapi", -] - [[package]] name = "gio-sys" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa" dependencies = [ - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "glib-sys", + "gobject-sys", "libc", "system-deps 3.2.0", "winapi", @@ -1013,8 +995,8 @@ dependencies = [ "futures-executor", "futures-task", "glib-macros", - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "glib-sys", + "gobject-sys", "libc", "once_cell", "smallvec", @@ -1027,7 +1009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518" dependencies = [ "anyhow", - "heck 0.3.3", + "heck", "proc-macro-crate 1.1.0", "proc-macro-error", "proc-macro2", @@ -1035,16 +1017,6 @@ dependencies = [ "syn", ] -[[package]] -name = "glib-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1" -dependencies = [ - "libc", - "system-deps 1.3.2", -] - [[package]] name = "glib-sys" version = "0.14.0" @@ -1074,24 +1046,13 @@ dependencies = [ "regex", ] -[[package]] -name = "gobject-sys" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c" -dependencies = [ - "glib-sys 0.10.1", - "libc", - "system-deps 1.3.2", -] - [[package]] name = "gobject-sys" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5" dependencies = [ - "glib-sys 0.14.0", + "glib-sys", "libc", "system-deps 3.2.0", ] @@ -1129,9 +1090,9 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", - "gio-sys 0.14.0", - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", "system-deps 3.2.0", @@ -1144,7 +1105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21de1da96dc117443fb03c2e270b2d34b7de98d0a79a19bbb689476173745b79" dependencies = [ "anyhow", - "heck 0.3.3", + "heck", "proc-macro-crate 1.1.0", "proc-macro-error", "proc-macro2", @@ -1161,12 +1122,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - [[package]] name = "hermit-abi" version = "0.1.19" @@ -1192,13 +1147,13 @@ dependencies = [ [[package]] name = "http" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" +checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" dependencies = [ "bytes", "fnv", - "itoa 0.4.8", + "itoa 1.0.1", ] [[package]] @@ -1276,7 +1231,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1317,8 +1272,8 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2adf2de824b178d76c6017da59f4e7e95de49a766b584c59d47821a6c3dce9e2" dependencies = [ - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "glib-sys", + "gobject-sys", "libc", "system-deps 5.0.0", ] @@ -1358,15 +1313,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.112" +version = "0.2.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" +checksum = "565dbd88872dbe4cc8a46e527f26483c1d1f7afa6b884a3bd6cd893d4f98da74" [[package]] name = "lock_api" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" dependencies = [ "scopeguard", ] @@ -1377,7 +1332,7 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1386,7 +1341,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edc5c7d328e32cc4954e8e01193d7f0ef5ab257b5090b70a964e099a36034309" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "generator", "scoped-tls", "serde", @@ -1573,19 +1528,18 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "085fe377a4b2805c0fbc09484415ec261174614b7f080b0e0d520456ac421a67" +checksum = "720d3ea1055e4e4574c0c0b0f8c3fd4f24c4cdaf465948206dea090b57b526ad" dependencies = [ - "derivative", "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5249369707a1e07b39f78d98c8f34e00aca7dcb053812fdbb5ad7be82c1bba38" +checksum = "0d992b768490d7fe0d8586d9b5745f6c49f557da6d81dc982b1d167ad4edbb21" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1652,8 +1606,8 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe" dependencies = [ - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "glib-sys", + "gobject-sys", "libc", "system-deps 3.2.0", ] @@ -1681,7 +1635,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "instant", "libc", "redox_syscall", @@ -1804,9 +1758,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" +checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" [[package]] name = "pin-utils" @@ -1846,9 +1800,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" [[package]] name = "precomputed-hash" @@ -1907,18 +1861,18 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.34" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f84e92c0f7c9d58328b85a78557813e4bd845130db68d7184635344399423b1" +checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" dependencies = [ "unicode-xid", ] [[package]] name = "quote" -version = "1.0.10" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" dependencies = [ "proc-macro2", ] @@ -1984,7 +1938,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.3", + "getrandom 0.2.4", ] [[package]] @@ -2073,7 +2027,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ - "getrandom 0.2.3", + "getrandom 0.2.4", "redox_syscall", ] @@ -2216,18 +2170,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.132" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9875c23cf305cd1fd7eb77234cbb705f21ea6a72c637a5c6db5fe4b8e7f008" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.132" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc0db5cb2556c0e558887d9bbdcf6ac4471e83ff66cf696e5419024d1606276" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -2236,9 +2190,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.73" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbd0344bc6533bc7ec56df11d42fb70f1b912351c0825ccb7211b59d8af7cf5" +checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" dependencies = [ "itoa 1.0.1", "ryu", @@ -2311,14 +2265,14 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ - "block-buffer", - "cfg-if 1.0.0", + "block-buffer 0.9.0", + "cfg-if", "cpufeatures", - "digest", + "digest 0.9.0", "opaque-debug", ] @@ -2333,9 +2287,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b" +checksum = "a86232ab60fa71287d7f2ddae4a7073f6b7aac33631c3015abb556f08c6d0a3e" [[package]] name = "slab" @@ -2345,23 +2299,22 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" [[package]] -name = "soup-sys" -version = "0.10.0" +name = "soup2-sys" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7adf08565630bbb71f955f11f8a68464817ded2703a3549747c235b58a13e" +checksum = "9f056675eda9a7417163e5f742bb119e8e1d385edd2ada8f7031a7230a3ec10a" dependencies = [ "bitflags", - "gio-sys 0.10.1", - "glib-sys 0.10.1", - "gobject-sys 0.10.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", - "pkg-config", - "system-deps 1.3.2", + "system-deps 5.0.0", ] [[package]] @@ -2417,47 +2370,35 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strum" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" - [[package]] name = "strum" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" -[[package]] -name = "strum_macros" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" -dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "strum_macros" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" dependencies = [ - "heck 0.3.3", + "heck", "proc-macro2", "quote", "syn", ] [[package]] -name = "syn" -version = "1.0.82" +name = "subtle" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" dependencies = [ "proc-macro2", "quote", @@ -2465,18 +2406,13 @@ dependencies = [ ] [[package]] -name = "system-deps" -version = "1.3.2" +name = "sys-info" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b" +checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" dependencies = [ - "heck 0.3.3", - "pkg-config", - "strum 0.18.0", - "strum_macros 0.18.0", - "thiserror", - "toml", - "version-compare 0.0.10", + "cc", + "libc", ] [[package]] @@ -2487,14 +2423,14 @@ checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" dependencies = [ "anyhow", "cfg-expr 0.8.1", - "heck 0.3.3", + "heck", "itertools", "pkg-config", - "strum 0.21.0", - "strum_macros 0.21.1", + "strum", + "strum_macros", "thiserror", "toml", - "version-compare 0.0.11", + "version-compare", ] [[package]] @@ -2503,33 +2439,33 @@ version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" dependencies = [ - "cfg-expr 0.9.0", - "heck 0.3.3", + "cfg-expr 0.9.1", + "heck", "pkg-config", "toml", - "version-compare 0.0.11", + "version-compare", ] [[package]] name = "tao" version = "0.5.2" -source = "git+https://github.com/tauri-apps/tao?branch=next#9f699a345788fbb08bc483a3f335ca4a94339676" +source = "git+https://github.com/tauri-apps/tao?branch=next#7811284e464f983485977b06010b6d1db134ca4e" dependencies = [ "bitflags", "cairo-rs", "cc", "cocoa", - "core-foundation 0.9.2", - "core-graphics 0.22.3", - "core-video-sys", + "core-foundation", + "core-graphics", "crossbeam-channel", "dispatch", "gdk", "gdk-pixbuf", "gdk-sys", + "gdkx11-sys", "gio", "glib", - "glib-sys 0.14.0", + "glib-sys", "gtk", "instant", "lazy_static", @@ -2540,14 +2476,28 @@ dependencies = [ "ndk-sys", "objc", "parking_lot", - "raw-window-handle 0.3.4", + "raw-window-handle 0.4.2", "scopeguard", "serde", + "tao-core-video-sys", "unicode-segmentation", - "windows 0.25.0", + "windows", + "windows_macros", "x11-dl", ] +[[package]] +name = "tao-core-video-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271450eb289cb4d8d0720c6ce70c72c8c858c93dd61fc625881616752e6b98f6" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "objc", +] + [[package]] name = "tar" version = "0.4.38" @@ -2580,7 +2530,7 @@ dependencies = [ "once_cell", "percent-encoding", "rand 0.8.4", - "raw-window-handle 0.4.2", + "raw-window-handle 0.3.4", "regex", "semver 1.0.4", "serde", @@ -2624,7 +2574,7 @@ dependencies = [ name = "tauri-macros" version = "1.0.0-beta.5" dependencies = [ - "heck 0.3.3", + "heck", "proc-macro2", "quote", "syn", @@ -2644,8 +2594,8 @@ dependencies = [ "tauri-utils", "thiserror", "uuid", - "webview2-com 0.9.0", - "windows 0.29.0", + "webview2-com", + "windows", ] [[package]] @@ -2659,8 +2609,8 @@ dependencies = [ "tauri-runtime", "tauri-utils", "uuid", - "webview2-com 0.9.0", - "windows 0.29.0", + "webview2-com", + "windows", "wry", ] @@ -2669,7 +2619,8 @@ name = "tauri-utils" version = "1.0.0-beta.3" dependencies = [ "base64", - "heck 0.4.0", + "ctor", + "heck", "html5ever", "kuchiki", "phf 0.10.1", @@ -2687,13 +2638,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "fastrand", "libc", - "rand 0.8.4", "redox_syscall", "remove_dir_all", "winapi", @@ -2738,9 +2689,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" dependencies = [ "once_cell", ] @@ -2772,9 +2723,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.15.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" +checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" dependencies = [ "bytes", "memchr", @@ -2797,7 +2748,7 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2836,9 +2787,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.3" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245da694cc7fc4729f3f418b304cb57789f1bed2a78c575407ab8a23f53cb4d3" +checksum = "5312f325fe3588e277415f5a6cca1f4ccad0f248c4cd5a4bd33032d7286abc22" dependencies = [ "ansi_term", "lazy_static", @@ -2854,9 +2805,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" @@ -2916,15 +2867,9 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.3", + "getrandom 0.2.4", ] -[[package]] -name = "version-compare" -version = "0.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1" - [[package]] name = "version-compare" version = "0.0.11" @@ -2933,9 +2878,9 @@ checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" [[package]] name = "version_check" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "waker-fn" @@ -2968,19 +2913,19 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "webkit2gtk" -version = "0.15.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5725e8ede878b7c00419066868085b83fb7d01eea904c1a0bd0159ad3ce0ba3" +checksum = "07654baccd8874fc7c99cc33c27052fb02804276102dff0f78f981669316e0e9" dependencies = [ "bitflags", "cairo-rs", "gdk", "gdk-sys", "gio", - "gio-sys 0.14.0", + "gio-sys", "glib", - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "glib-sys", + "gobject-sys", "gtk", "gtk-sys", "javascriptcore-rs", @@ -2991,59 +2936,37 @@ dependencies = [ [[package]] name = "webkit2gtk-sys" -version = "0.15.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34314407e381b88a72610d0f4eeff1552cbf8ee5420dbe84749fa26aa11b4e3" +checksum = "854a0cbf3570541bf13df70aac23826da7cd88f27a722b7b2043f32637373113" dependencies = [ "atk-sys", "bitflags", "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", - "gio-sys 0.14.0", - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "gio-sys", + "glib-sys", + "gobject-sys", "gtk-sys", "javascriptcore-rs-sys", "libc", "pango-sys", "pkg-config", - "soup-sys", + "soup2-sys", "system-deps 5.0.0", ] [[package]] name = "webview2-com" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abdc9ca7cebd96a1005d5ba1e9d70c61c0f6c276a41cddaeecb7842d436ab3bc" +checksum = "381febeeb86214fd262941a2b26322c33c38bf8b565b0ddfd4a7a8d4003053a9" dependencies = [ - "webview2-com-macros 0.4.0", - "webview2-com-sys 0.7.0", - "windows 0.25.0", -] - -[[package]] -name = "webview2-com" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0f21eed16a0078ef52de94d15d6e3a22f9998cf45bdabaf9ef4a235ae235ac" -dependencies = [ - "webview2-com-macros 0.5.0", - "webview2-com-sys 0.9.0", - "windows 0.29.0", - "windows_macros 0.29.0", -] - -[[package]] -name = "webview2-com-macros" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bca4b354035275764ea4ca8d6bfa74cc5b0e8126e7cd675ee327574b59e13d" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows_macros", ] [[package]] @@ -3059,28 +2982,15 @@ dependencies = [ [[package]] name = "webview2-com-sys" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73472d7f0e9038b58204cb3f582ee138a8c181719dc6825ea03371ad085c6058" +checksum = "a2e3542bb16fe61e951f87c9146571344f1e773327498efa65704a4cff472662" dependencies = [ "regex", "serde", "serde_json", "thiserror", - "windows 0.25.0", -] - -[[package]] -name = "webview2-com-sys" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56fe9356e3729233bed63e7c002c0f5064f5d2148f169ce77eec8932a98c4c0" -dependencies = [ - "regex", - "serde", - "serde_json", - "thiserror", - "windows 0.29.0", + "windows", "windows-bindgen", ] @@ -3117,178 +3027,98 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e46c474738425c090573ecf5472d54ee5f78132e6195d0bbfcc2aabc0ed29f37" +checksum = "b749ebd2304aa012c5992d11a25d07b406bdbe5f79d371cb7a918ce501a19eb0" dependencies = [ - "windows_aarch64_msvc 0.25.0", - "windows_gen 0.25.0", - "windows_i686_gnu 0.25.0", - "windows_i686_msvc 0.25.0", - "windows_macros 0.25.0", - "windows_reader 0.25.0", - "windows_x86_64_gnu 0.25.0", - "windows_x86_64_msvc 0.25.0", -] - -[[package]] -name = "windows" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac7fef12f4b59cd0a29339406cc9203ab44e440ddff6b3f5a41455349fa9cf3" -dependencies = [ - "windows_aarch64_msvc 0.29.0", - "windows_i686_gnu 0.29.0", - "windows_i686_msvc 0.29.0", - "windows_x86_64_gnu 0.29.0", - "windows_x86_64_msvc 0.29.0", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", ] [[package]] name = "windows-bindgen" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01138bf46333583966ea4b86fd4f61a9b524c0f5f88bc3c18768d6b66cb6c4e" +checksum = "944c545fcae9dd66488308f8b69aa3ba34f53714416ecfcdcbbfa4b6821e27c6" dependencies = [ - "windows_quote 0.29.0", - "windows_reader 0.29.0", + "windows_quote", + "windows_reader", ] [[package]] name = "windows_aarch64_msvc" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3022d174000fcaeb6f95933fb04171ea0e21b9289ac57fe4400bfa148e41df79" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d027175d00b01e0cbeb97d6ab6ebe03b12330a35786cbaca5252b1c4bf5d9b" +checksum = "29277a4435d642f775f63c7d1faeb927adba532886ce0287bd985bffb16b6bca" [[package]] name = "windows_gen" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e0f0e40e950724f92de0f714817c7030a88161738b9b1c58d62c817246fe1c" +checksum = "30dff4d91d22520628bb94b66f2bb313cb16a09a515a32320a84a1b449bc94c0" dependencies = [ - "windows_quote 0.25.0", - "windows_reader 0.25.0", -] - -[[package]] -name = "windows_gen" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e59eb69ef41a029911bb604a850f70ec1f58c8587511bc10ed84a3465931df0b" -dependencies = [ - "windows_quote 0.29.0", - "windows_reader 0.29.0", + "windows_quote", + "windows_reader", ] [[package]] name = "windows_i686_gnu" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b1584eebf06654708eab4301152032c13c1e47f4a754ffc93c733f10993e85" - -[[package]] -name = "windows_i686_gnu" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8793f59f7b8e8b01eda1a652b2697d87b93097198ae85f823b969ca5b89bba58" +checksum = "1145e1989da93956c68d1864f32fb97c8f561a8f89a5125f6a2b7ea75524e4b8" [[package]] name = "windows_i686_msvc" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49df16591e9ad429997ec57d462b0cc45168f639d03489e8c2e933ea9c389d7" - -[[package]] -name = "windows_i686_msvc" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8602f6c418b67024be2996c512f5f995de3ba417f4c75af68401ab8756796ae4" +checksum = "d4a09e3a0d4753b73019db171c1339cd4362c8c44baf1bcea336235e955954a6" [[package]] name = "windows_macros" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6103bcf1a7396d66f6f08a2d67d8a2ab34efaf4b1d7567301af2c002507c8c3b" +checksum = "62ae44ab917e9005fe710d99d52d227ca0164b10a09be90649142cc3fab825d3" dependencies = [ "syn", - "windows_gen 0.25.0", - "windows_quote 0.25.0", - "windows_reader 0.25.0", -] - -[[package]] -name = "windows_macros" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f6443f71f760ce91f4cc7fc81ee78f680dccb8ec110c52a92ec857a7def39a3" -dependencies = [ - "syn", - "windows_gen 0.29.0", - "windows_quote 0.29.0", - "windows_reader 0.29.0", + "windows_gen", + "windows_quote", + "windows_reader", ] [[package]] name = "windows_quote" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e414df8d5dd2013f2317fdc414d3ad035effcb7aef1f16bf508ac5743154835a" - -[[package]] -name = "windows_quote" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd83f20d7c391dc3b115a7e8a0851b71d0a9c356be2791571e858063b5f823c" +checksum = "71f02c51a77e6248c1206aaa920802c32d50a05205e229b118d7f3afd3036667" [[package]] name = "windows_reader" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8132c9fb77903d852ea20053af816bd15c088a6e8d283b8283e80353347bb6b9" - -[[package]] -name = "windows_reader" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87b34c04457bad3c5436ffe1ed262c908228bb634e3bda34f4ce2c252495787" +checksum = "e44e6df0da993cda589c5ac852272fbb2a0ead67a031a017dd3eac11528a2d72" [[package]] name = "windows_x86_64_gnu" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb06177184100374f97d5e7261ee0b6adefa8ee32e38f87518ca22b519bb80e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d615f419543e0bd7d2b3323af0d86ff19cbc4f816e6453f36a2c2ce889c354" +checksum = "8ca64fcb0220d58db4c119e050e7af03c69e6f4f415ef69ec1773d9aab422d5a" [[package]] name = "windows_x86_64_msvc" -version = "0.25.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c27bcbb33ddbed3569e36c14775c99f72b97c72ce49f81d128637fb48a061f" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d95421d9ed3672c280884da53201a5c46b7b2765ca6faf34b0d71cf34a3561" +checksum = "08cabc9f0066848fef4bc6a1c1668e6efce38b661d2aeec75d18d8617eebb5f1" [[package]] name = "wry" version = "0.12.2" -source = "git+ssh://git@github.com/tauri-sec/wry?branch=next#c60bb8f49e971237a1e9ed73fad2cec38dc7c9db" +source = "git+ssh://git@github.com/tauri-sec/wry?branch=next#3a0076eb06aa249d9ef32dac993e3683a769165e" dependencies = [ "cocoa", - "core-graphics 0.22.3", + "core-graphics", "gdk", "gio", "glib", @@ -3301,13 +3131,25 @@ dependencies = [ "once_cell", "serde", "serde_json", + "sys-info", "tao", "thiserror", "url", "webkit2gtk", "webkit2gtk-sys", - "webview2-com 0.7.0", - "windows 0.25.0", + "webview2-com", + "windows", + "windows_macros", +] + +[[package]] +name = "x11" +version = "2.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd0565fa8bfba8c5efe02725b14dff114c866724eff2cfd44d76cea74bcd87a" +dependencies = [ + "libc", + "pkg-config", ] [[package]] @@ -3346,18 +3188,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.9.0+zstd.1.5.0" +version = "0.9.2+zstd.1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd" +checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.1+zstd.1.5.0" +version = "4.1.3+zstd.1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079" +checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79" dependencies = [ "libc", "zstd-sys", @@ -3365,9 +3207,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.1+zstd.1.5.0" +version = "1.6.2+zstd.1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33" +checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f" dependencies = [ "cc", "libc", diff --git a/tooling/cli.rs/Cargo.lock b/tooling/cli.rs/Cargo.lock index 0f775d913..939a988ad 100644 --- a/tooling/cli.rs/Cargo.lock +++ b/tooling/cli.rs/Cargo.lock @@ -20,7 +20,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.4", ] [[package]] @@ -153,7 +153,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.4", ] [[package]] @@ -454,6 +454,16 @@ dependencies = [ "syn", ] +[[package]] +name = "ctor" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "ctr" version = "0.8.0" @@ -548,7 +558,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.4", ] [[package]] @@ -559,7 +569,7 @@ checksum = "b697d66081d42af4fba142d56918a3cb21dc8eb63372c6b85d14f44fb9c5979b" dependencies = [ "block-buffer 0.10.0", "crypto-common", - "generic-array 0.14.5", + "generic-array 0.14.4", "subtle", ] @@ -2384,7 +2394,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha2 0.10.1", + "sha2 0.9.9", "strsim", "tar", "tempfile", @@ -2445,6 +2455,7 @@ version = "1.0.0-beta.3" dependencies = [ "aes-gcm", "base64", + "ctor", "heck", "html5ever", "kuchiki", @@ -2657,7 +2668,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.4", "subtle", ] diff --git a/tooling/cli.rs/schema.json b/tooling/cli.rs/schema.json index 1fa93f122..9d63d0a29 100644 --- a/tooling/cli.rs/schema.json +++ b/tooling/cli.rs/schema.json @@ -65,9 +65,7 @@ "removeDir": false, "removeFile": false, "renameFile": false, - "scope": [ - "$APP/**" - ], + "scope": [], "writeFile": false }, "globalShortcut": { @@ -90,14 +88,13 @@ "process": { "all": false, "exit": false, - "relaunch": false + "relaunch": false, + "relaunchDangerousAllowSymlinkMacos": false }, "protocol": { "all": false, "asset": false, - "assetScope": [ - "$APP/**" - ] + "assetScope": [] }, "shell": { "all": false, @@ -244,9 +241,7 @@ "removeDir": false, "removeFile": false, "renameFile": false, - "scope": [ - "$APP/**" - ], + "scope": [], "writeFile": false }, "allOf": [ @@ -317,7 +312,8 @@ "default": { "all": false, "exit": false, - "relaunch": false + "relaunch": false, + "relaunchDangerousAllowSymlinkMacos": false }, "allOf": [ { @@ -330,9 +326,7 @@ "default": { "all": false, "asset": false, - "assetScope": [ - "$APP/**" - ] + "assetScope": [] }, "allOf": [ { @@ -1003,9 +997,7 @@ }, "scope": { "description": "The access scope for the filesystem APIs.", - "default": [ - "$APP/**" - ], + "default": [], "allOf": [ { "$ref": "#/definitions/FsAllowlistScope" @@ -1066,7 +1058,7 @@ "additionalProperties": false }, "HttpAllowlistScope": { - "description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs.", + "description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs. The URL path is matched against the request URL using a glob pattern.", "type": "array", "items": { "type": "string", @@ -1259,6 +1251,11 @@ "description": "Enables the relaunch API.", "default": false, "type": "boolean" + }, + "relaunchDangerousAllowSymlinkMacos": { + "description": "Dangerous option that allows macOS to relaunch even if the binary contains a symlink.\n\nThis is due to macOS having less symlink protection. Highly recommended to not set this flag unless you have a very specific reason too, and understand the implications of it.", + "default": false, + "type": "boolean" } }, "additionalProperties": false @@ -1279,9 +1276,7 @@ }, "assetScope": { "description": "The access scope for the asset protocol.", - "default": [ - "$APP/**" - ], + "default": [], "allOf": [ { "$ref": "#/definitions/FsAllowlistScope" @@ -1505,9 +1500,7 @@ "removeDir": false, "removeFile": false, "renameFile": false, - "scope": [ - "$APP/**" - ], + "scope": [], "writeFile": false }, "globalShortcut": { @@ -1530,14 +1523,13 @@ "process": { "all": false, "exit": false, - "relaunch": false + "relaunch": false, + "relaunchDangerousAllowSymlinkMacos": false }, "protocol": { "all": false, "asset": false, - "assetScope": [ - "$APP/**" - ] + "assetScope": [] }, "shell": { "all": false,