diff --git a/Cargo.lock b/Cargo.lock index da1743dfab8..27c46f22775 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,7 +124,7 @@ dependencies = [ "asn1-rs-derive 0.4.0", "asn1-rs-impl 0.1.0", "displaydoc", - "nom", + "nom 7.1.3", "num-traits", "rusticata-macros", "thiserror 1.0.69", @@ -140,7 +140,7 @@ dependencies = [ "asn1-rs-derive 0.6.0", "asn1-rs-impl 0.2.0", "displaydoc", - "nom", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -298,9 +298,9 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.28.2" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c348fb0b6d132c596eca3dcd941df48fb597aafcb07a738ec41c004b087dc99" +checksum = "ef0f7efedeac57d9b26170f72965ecfd31473ca52ca7a64e925b0b6f5f079886" dependencies = [ "atomic-waker", "futures-core", @@ -313,7 +313,7 @@ dependencies = [ "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", - "tungstenite 0.24.0", + "tungstenite 0.26.2", ] [[package]] @@ -710,7 +710,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d988fcc40055ceaa85edc55875a08f8abd29018582647fd82ad6128dba14a5f0" dependencies = [ "bitvec", - "nom", + "nom 7.1.3", ] [[package]] @@ -783,7 +783,7 @@ version = "1.6.1" dependencies = [ "async-compat", "async-http-proxy", - "async-tungstenite 0.28.2", + "async-tungstenite 0.29.1", "axum 0.8.7", "base64 0.22.1", "bytes", @@ -807,7 +807,7 @@ dependencies = [ "tokio", "tokio-rustls 0.26.2", "url", - "ws_stream_tungstenite 0.14.0", + "ws_stream_tungstenite 0.15.0", ] [[package]] @@ -1141,7 +1141,7 @@ dependencies = [ "async-trait", "convert_case 0.6.0", "json5", - "nom", + "nom 7.1.3", "pathdiff", "ron 0.8.1", "rust-ini", @@ -1235,15 +1235,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-epoch" version = "0.9.18" @@ -1414,7 +1405,7 @@ checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ "asn1-rs 0.5.2", "displaydoc", - "nom", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -1428,7 +1419,7 @@ checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ "asn1-rs 0.7.1", "displaydoc", - "nom", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -1672,11 +1663,11 @@ dependencies = [ [[package]] name = "file-id" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bc904b9bbefcadbd8e3a9fb0d464a9b979de6324c03b3c663e8994f46a5be36" +checksum = "e1fc6a637b6dc58414714eddd9170ff187ecb0933d4c7024d1abbd23a3cc26e9" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -1773,12 +1764,12 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "freedesktop_entry_parser" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db9c27b72f19a99a895f8ca89e2d26e4ef31013376e56fdafef697627306c3e4" +checksum = "2b368437186ec63ceb50d0832ee1ebcb5878037fe16ead1c68081d4aee0d140a" dependencies = [ - "nom", - "thiserror 1.0.69", + "indexmap", + "nom 8.0.0", ] [[package]] @@ -2357,11 +2348,11 @@ checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" [[package]] name = "inotify" -version = "0.9.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", "inotify-sys", "libc", ] @@ -2541,7 +2532,7 @@ version = "0.8.8" source = "git+https://github.com/Bravo555/rust_libloading.git?branch=0.8.8#d000ffa239652d21152e5a3460095a27d5883113" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.53.5", ] [[package]] @@ -2740,18 +2731,6 @@ dependencies = [ "adler2", ] -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - [[package]] name = "mio" version = "1.0.3" @@ -2759,6 +2738,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", + "log", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -2894,6 +2874,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -2902,36 +2891,41 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "notify" -version = "6.1.1" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ "bitflags 2.9.0", - "crossbeam-channel", - "filetime", "fsevent-sys", "inotify", "kqueue", "libc", "log", - "mio 0.8.11", + "mio", + "notify-types", "walkdir", - "windows-sys 0.48.0", + "windows-sys 0.60.2", ] [[package]] name = "notify-debouncer-full" -version = "0.3.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7fd166739789c9ff169e654dc1501373db9d80a4c3f972817c8a4d7cf8f34e" +checksum = "375bd3a138be7bfeff3480e4a623df4cbfb55b79df617c055cd810ba466fa078" dependencies = [ "file-id", "log", "notify", - "parking_lot", + "notify-types", "walkdir", ] +[[package]] +name = "notify-types" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" + [[package]] name = "nu-ansi-term" version = "0.50.1" @@ -3637,7 +3631,7 @@ dependencies = [ "bytes", "chrono", "either", - "nom", + "nom 7.1.3", "num-bigint", "num-integer", "num-traits", @@ -3856,12 +3850,13 @@ dependencies = [ [[package]] name = "rpassword" -version = "5.0.1" +version = "7.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" dependencies = [ "libc", - "winapi", + "rtoolbox", + "windows-sys 0.59.0", ] [[package]] @@ -3957,6 +3952,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "rtoolbox" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "rumqttc" version = "0.25.1" @@ -4050,7 +4055,7 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "nom", + "nom 7.1.3", ] [[package]] @@ -5479,7 +5484,7 @@ dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.3", + "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", @@ -5778,21 +5783,20 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.24.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ - "byteorder", "bytes", "data-encoding", "http 1.3.1", "httparse", "log", - "rand 0.8.5", + "rand 0.9.1", "rustls 0.23.27", "rustls-pki-types", "sha1", - "thiserror 1.0.69", + "thiserror 2.0.12", "utf-8", ] @@ -6227,15 +6231,6 @@ dependencies = [ "windows-link 0.1.1", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -6263,21 +6258,6 @@ dependencies = [ "windows-targets 0.53.5", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -6311,12 +6291,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -6329,12 +6303,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -6347,12 +6315,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -6377,12 +6339,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -6395,12 +6351,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -6413,12 +6363,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -6431,12 +6375,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -6501,11 +6439,11 @@ dependencies = [ [[package]] name = "ws_stream_tungstenite" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed39ff9f8b2eda91bf6390f9f49eee93d655489e15708e3bb638c1c4f07cecb4" +checksum = "c3c9c55940d22313a53398bfeb9438c5f519de475fa37ed7ff068f8c1ca8eb45" dependencies = [ - "async-tungstenite 0.28.2", + "async-tungstenite 0.29.1", "async_io_stream", "bitflags 2.9.0", "futures-core", @@ -6515,7 +6453,7 @@ dependencies = [ "pharos", "rustc_version", "tracing", - "tungstenite 0.24.0", + "tungstenite 0.26.2", ] [[package]] @@ -6537,7 +6475,7 @@ dependencies = [ "data-encoding", "der-parser 8.2.0", "lazy_static", - "nom", + "nom 7.1.3", "oid-registry 0.6.1", "rusticata-macros", "thiserror 1.0.69", @@ -6554,7 +6492,7 @@ dependencies = [ "data-encoding", "der-parser 10.0.0", "lazy_static", - "nom", + "nom 7.1.3", "oid-registry 0.8.1", "rusticata-macros", "thiserror 2.0.12", diff --git a/Cargo.toml b/Cargo.toml index ed1e57ce651..dc86a7269fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -84,7 +84,7 @@ async-compat = "0.2.1" async-http-proxy = "1.2" async-tempfile = "0.7" async-trait = "0.1" -async-tungstenite = { version = "0.28", features = [ +async-tungstenite = { version = "0.29.1", features = [ "tokio-runtime", "tokio-rustls-native-certs", ] } @@ -114,7 +114,7 @@ fastrand = "2.0" figment = { version = "0.10" } filetime = "0.2" flate2 = "1.1.1" -freedesktop_entry_parser = "1.3.0" +freedesktop_entry_parser = "2.0.1" futures = "0.3" futures-util = "0.3.25" glob = "0.3" @@ -145,8 +145,8 @@ mqttbytes = "0.6" mutants = "0.0.3" nanoid = "0.4" nix = "0.26" -notify = { version = "6.1.1", default-features = false } -notify-debouncer-full = { version = "0.3.1", default-features = false } +notify = { version = "8.2.0", default-features = false } +notify-debouncer-full = { version = "0.6.0", default-features = false } once_cell = "1.8" pad = "0.1" path-clean = "1.0" @@ -167,7 +167,7 @@ rcgen = { version = "0.14", features = ["pem", "zeroize"] } regex = "1.4" reqwest = { version = "0.12", default-features = false } ron = "0.12" -rpassword = "5.0" +rpassword = "7.4" rsa = "0.9.8" rstest = "0.26" rumqttc = { version = "0.25.1", default-features = false, features = [ @@ -211,7 +211,7 @@ uzers = "0.12" walkdir = "2" which = "8.0" whoami = "1.5.0" -ws_stream_tungstenite = "0.14" +ws_stream_tungstenite = "0.15.0" x509-parser = "0.18" yansi = { version = "1.0.1", default-features = false, features = [ "detect-env", diff --git a/crates/common/tedge_utils/src/notify.rs b/crates/common/tedge_utils/src/notify.rs index ad39d80fd88..0a073e07d63 100644 --- a/crates/common/tedge_utils/src/notify.rs +++ b/crates/common/tedge_utils/src/notify.rs @@ -6,7 +6,6 @@ use notify::event::RemoveKind; use notify::EventKind; use notify::RecommendedWatcher; use notify::RecursiveMode; -use notify::Watcher; use notify_debouncer_full as debouncer; use std::hash::Hash; use std::path::Path; @@ -146,9 +145,7 @@ impl NotifyStream { pub fn add_watcher(&mut self, dir_path: &Path) -> Result<(), NotifyStreamError> { // Try to use canonical paths to avoid false negatives when dealing with symlinks let dir_path = dir_path.canonicalize()?; - self.debouncer - .watcher() - .watch(&dir_path, RecursiveMode::Recursive)?; + self.debouncer.watch(&dir_path, RecursiveMode::Recursive)?; Ok(()) } diff --git a/crates/core/tedge/src/cli/certificate/c8y/download.rs b/crates/core/tedge/src/cli/certificate/c8y/download.rs index 55b2b5f0cc3..b225c0c5ee7 100644 --- a/crates/core/tedge/src/cli/certificate/c8y/download.rs +++ b/crates/core/tedge/src/cli/certificate/c8y/download.rs @@ -153,7 +153,7 @@ impl DownloadCertCmd { // Read the security token from /dev/tty let one_time_password = if self_one_time_password.is_empty() { - rpassword::read_password_from_tty(Some("Enter one-time password: "))? + rpassword::prompt_password("Enter one-time password: ")? } else { self_one_time_password }; diff --git a/crates/core/tedge/src/cli/certificate/c8y/upload.rs b/crates/core/tedge/src/cli/certificate/c8y/upload.rs index dec34a3e0d2..2fb51233d2a 100644 --- a/crates/core/tedge/src/cli/certificate/c8y/upload.rs +++ b/crates/core/tedge/src/cli/certificate/c8y/upload.rs @@ -88,7 +88,7 @@ impl UploadCertCmd { // Read the password from /dev/tty let password = if password_arg.is_empty() { - rpassword::read_password_from_tty(Some("Enter password: "))? + rpassword::prompt_password("Enter password: ")? } else { password_arg }; diff --git a/crates/core/tedge_watchdog/src/systemd_watchdog.rs b/crates/core/tedge_watchdog/src/systemd_watchdog.rs index 9b9b979de34..23db8440c5b 100644 --- a/crates/core/tedge_watchdog/src/systemd_watchdog.rs +++ b/crates/core/tedge_watchdog/src/systemd_watchdog.rs @@ -287,16 +287,22 @@ fn notify_systemd(pid: u32, status: &str) -> Result { fn get_watchdog_sec(service_file: &str) -> Result { let entry = parse_entry(service_file)?; - if let Some(interval) = entry.section("Service").attr("WatchdogSec") { - match interval.parse::() { - Ok(i) => Ok(i), - Err(e) => { - error!( - "Failed to parse the to WatchdogSec to integer from {}", - service_file - ); - Err(WatchdogError::ParseWatchdogSecToInt(e)) + if let Some(service_section) = entry.section("Service") { + if let Some(interval) = service_section.attr("WatchdogSec").get(0) { + match interval.parse::() { + Ok(i) => Ok(i), + Err(e) => { + error!( + "Failed to parse the to WatchdogSec to integer from {}", + service_file + ); + Err(WatchdogError::ParseWatchdogSecToInt(e)) + } } + } else { + Err(WatchdogError::NoWatchdogSec { + file: service_file.to_string(), + }) } } else { Err(WatchdogError::NoWatchdogSec {