From 548ecac37fabbc0c8724da0d6bee4f180d478f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20CORTIER?= Date: Thu, 1 Oct 2026 02:34:13 +0900 Subject: [PATCH 1/2] fix(rdpeudp,rdpemt): restore no_std builds broken by tracing defaults `ironrdp-rdpeudp` and `ironrdp-rdpemt` depended on `tracing` with its default features, which enable `std`. Their `--no-default-features` builds therefore failed on targets without `std`. Host-only feature checks could not catch this, since the host always provides `std`. Disable `tracing`'s default features and forward `tracing/std` from each crate's existing `std` feature. Also drop `tracing/log`: a library should not enable log interoperability for every consumer, and applications that need it can enable it themselves. Extend the xtask feature matrix so this is checked in CI: - `workspace/no-std-target` builds the no_std crates with default features disabled for `x86_64-unknown-none`, a target without `std` (installed by `cargo xtask check install`). - `workspace/powerset-multitransport` adds rdpeudp and rdpemt, which were not part of any powerset group. Also move an import only used by tests into the test module, fixing an unused-import warning in the rdpeudp no_std build. Co-Authored-By: Claude Opus 5.5 --- crates/ironrdp-rdpemt/Cargo.toml | 4 +- crates/ironrdp-rdpeudp/Cargo.toml | 4 +- crates/ironrdp-rdpeudp/src/pdu/v1_ack.rs | 5 ++- xtask/src/check.rs | 3 ++ xtask/src/features.rs | 53 ++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 6 deletions(-) diff --git a/crates/ironrdp-rdpemt/Cargo.toml b/crates/ironrdp-rdpemt/Cargo.toml index ce0fe666c3..57389ac9de 100644 --- a/crates/ironrdp-rdpemt/Cargo.toml +++ b/crates/ironrdp-rdpemt/Cargo.toml @@ -22,7 +22,7 @@ doctest = false # are owned buffers, so there is no useful build without it and no `alloc` # feature is offered. default = [] -std = ["ironrdp-core/std", "ironrdp-error/std"] +std = ["ironrdp-core/std", "ironrdp-error/std", "tracing/std"] # Structure-aware fuzzing support, mirroring `ironrdp-pdu`. # `arbitrary` needs the standard library, so structure-aware fuzzing implies `std`. arbitrary = ["dep:arbitrary", "std"] @@ -32,7 +32,7 @@ arbitrary = { version = "1", features = ["derive"], optional = true } ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] } # public ironrdp-error = { path = "../ironrdp-error", version = "0.2", features = ["alloc"] } # public subtle = { version = "2", default-features = false } -tracing = { version = "0.1", features = ["log"] } +tracing = { version = "0.1", default-features = false } [lints] workspace = true diff --git a/crates/ironrdp-rdpeudp/Cargo.toml b/crates/ironrdp-rdpeudp/Cargo.toml index 5d65112be5..e24c7e65f4 100644 --- a/crates/ironrdp-rdpeudp/Cargo.toml +++ b/crates/ironrdp-rdpeudp/Cargo.toml @@ -22,7 +22,7 @@ doctest = false # payloads this protocol carries are heap-allocated, so there is no useful build # without it and no `alloc` feature is offered. default = [] -std = ["ironrdp-core/std", "ironrdp-error/std"] +std = ["ironrdp-core/std", "ironrdp-error/std", "tracing/std"] # Structure-aware fuzzing support, mirroring `ironrdp-pdu`. # `arbitrary` needs the standard library, so structure-aware fuzzing implies `std`. arbitrary = ["dep:arbitrary", "std", "bitflags/arbitrary"] @@ -32,7 +32,7 @@ arbitrary = { version = "1", features = ["derive"], optional = true } ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] } # public ironrdp-error = { path = "../ironrdp-error", version = "0.2", features = ["alloc"] } # public bitflags = "2.11" # public -tracing = { version = "0.1", features = ["log"] } +tracing = { version = "0.1", default-features = false } [lints] workspace = true diff --git a/crates/ironrdp-rdpeudp/src/pdu/v1_ack.rs b/crates/ironrdp-rdpeudp/src/pdu/v1_ack.rs index 203da0c68c..7bdbad9947 100644 --- a/crates/ironrdp-rdpeudp/src/pdu/v1_ack.rs +++ b/crates/ironrdp-rdpeudp/src/pdu/v1_ack.rs @@ -3,8 +3,6 @@ //! `RDPUDP_ACK_VECTOR_HEADER` (MS-RDPEUDP Section 2.2.2.7) and //! `RDPUDP_ACK_OF_ACKVECTOR_HEADER` (MS-RDPEUDP Section 2.2.2.6). -#[cfg(not(feature = "std"))] -use alloc::vec; #[cfg(not(feature = "std"))] use alloc::vec::Vec; use ironrdp_core::{Decode, DecodeResult, Encode, EncodeResult, ReadCursor, WriteCursor}; @@ -289,6 +287,9 @@ impl Decode<'_> for CorrelationIdPayload { #[cfg(test)] mod tests { + #[cfg(not(feature = "std"))] + use alloc::vec; + use ironrdp_core::{decode, encode_vec}; use super::*; diff --git a/xtask/src/check.rs b/xtask/src/check.rs index 57df1b13c4..513eb5b2f3 100644 --- a/xtask/src/check.rs +++ b/xtask/src/check.rs @@ -230,6 +230,9 @@ pub fn install(sh: &Shell) -> anyhow::Result<()> { cargo_install(sh, &TYPOS_CLI)?; cargo_install(sh, &CARGO_HACK)?; + let no_std_target = crate::features::NO_STD_TARGET; + cmd!(sh, "rustup target add {no_std_target}").run()?; + Ok(()) } diff --git a/xtask/src/features.rs b/xtask/src/features.rs index f17c9fa6d4..21a34d39f0 100644 --- a/xtask/src/features.rs +++ b/xtask/src/features.rs @@ -35,8 +35,17 @@ pub enum Invocation { depth: u8, extra_args: &'static [&'static str], }, + /// `cargo check --no-default-features` for a package group against a target + /// that ships no `std` ([`NO_STD_TARGET`]). Checking on the host cannot catch a + /// dependency that silently enables `std` (for example `tracing`'s default + /// features), because the host always provides it; this target does not. + NoStdTarget { packages: &'static [&'static str] }, } +/// Bare-metal target used by [`Invocation::NoStdTarget`] cases. Installed by +/// `cargo xtask check install`. +pub const NO_STD_TARGET: &str = "x86_64-unknown-none"; + /// Features that the powerset should never enumerate. /// `__bench` and `__test` are private features that pull `visibility` for the /// testsuite; the existing lints job exercises them via `--features helper,__bench`. @@ -114,6 +123,28 @@ const CASES: &[FeatureCheckCase] = &[ features: &["arbitrary"], }, }, + // Crates that must build without `std` on a target that has none. + // FIXME: `ironrdp-pdu` and every crate on top of it (`ironrdp-svc`, `ironrdp-dvc`, + // `ironrdp-graphics`, `ironrdp-rdpecam`, `ironrdp-rdpel`, `ironrdp-rdpeusb`) do not + // pass yet: their dependency tree enables `std` (`der`, `num-traits`, `byteorder`, + // `thiserror`, ...). Add them here once fixed. + FeatureCheckCase { + name: "workspace/no-std-target", + invocation: Invocation::NoStdTarget { + packages: &[ + "ironrdp-core", + "ironrdp-error", + "ironrdp-str", + "ironrdp-bulk", + "ironrdp-propertyset", + "ironrdp-rail", + "ironrdp-rdpfile", + "ironrdp-usb", + "ironrdp-rdpeudp", + "ironrdp-rdpemt", + ], + }, + }, // Workspace powerset, partitioned by layer so each fan-out worker stays bounded. // Adding a new crate to a group means the powerset picks it up on the next run. FeatureCheckCase { @@ -151,6 +182,14 @@ const CASES: &[FeatureCheckCase] = &[ extra_args: &[], }, }, + FeatureCheckCase { + name: "workspace/powerset-multitransport", + invocation: Invocation::CargoHack { + packages: &["ironrdp-rdpeudp", "ironrdp-rdpemt"], + depth: 2, + extra_args: &[], + }, + }, FeatureCheckCase { name: "workspace/powerset-connector-session", invocation: Invocation::CargoHack { @@ -280,6 +319,20 @@ fn run_one(sh: &Shell, case: &FeatureCheckCase) -> anyhow::Result<()> { } cmd!(sh, "{CARGO}").args(&args).run()?; } + Invocation::NoStdTarget { packages } => { + let mut args: Vec = vec![ + "check".into(), + "--locked".into(), + "--no-default-features".into(), + "--target".into(), + NO_STD_TARGET.into(), + ]; + for pkg in *packages { + args.push("-p".into()); + args.push((*pkg).into()); + } + cmd!(sh, "{CARGO}").args(&args).run()?; + } } Ok(()) From 424d9c65e1d3834f2dd9201038b24ca6cae78c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20CORTIER?= Date: Thu, 1 Oct 2026 03:27:22 +0900 Subject: [PATCH 2/2] build: stop enabling tracing's log feature `features = ["log"]` on `tracing` entered the workspace dependency table incidentally in #193 and was then copied into every crate manifest. Libraries should not enable log interoperability for all their consumers, and no application in the workspace needs it: the viewer, the FFI, the web client, the daemon, the testsuite and the benches all install a `tracing-subscriber` subscriber. Drop the feature everywhere. For the `no_std` crates (`ironrdp-dvc`, `ironrdp-rdpecam`, `ironrdp-rdpel`), also disable `tracing`'s default features, and forward `tracing/std` from `ironrdp-dvc`'s existing `std` feature, matching `ironrdp-rdpeudp` and `ironrdp-rdpemt`. `tracing` no longer depends on `log` in either lock file; `log` itself drops out of `fuzz/Cargo.lock`. Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 1 - benches/Cargo.toml | 2 +- crates/iron-remote-desktop/Cargo.toml | 2 +- crates/ironrdp-acceptor/Cargo.toml | 2 +- crates/ironrdp-activex/Cargo.toml | 2 +- crates/ironrdp-async/Cargo.toml | 2 +- crates/ironrdp-blocking/Cargo.toml | 2 +- crates/ironrdp-client/Cargo.toml | 2 +- crates/ironrdp-cliprdr-native/Cargo.toml | 2 +- crates/ironrdp-cliprdr/Cargo.toml | 2 +- crates/ironrdp-connector/Cargo.toml | 2 +- crates/ironrdp-displaycontrol/Cargo.toml | 2 +- crates/ironrdp-dvc-com-plugin/Cargo.toml | 2 +- crates/ironrdp-dvc-pipe-proxy/Cargo.toml | 2 +- crates/ironrdp-dvc/Cargo.toml | 4 ++-- crates/ironrdp-echo/Cargo.toml | 2 +- crates/ironrdp-egfx/Cargo.toml | 2 +- crates/ironrdp-rdpdr-native/Cargo.toml | 4 ++-- crates/ironrdp-rdpdr/Cargo.toml | 2 +- crates/ironrdp-rdpeai/Cargo.toml | 2 +- crates/ironrdp-rdpecam/Cargo.toml | 2 +- crates/ironrdp-rdpei/Cargo.toml | 2 +- crates/ironrdp-rdpel/Cargo.toml | 2 +- crates/ironrdp-rdpeudp-tokio/Cargo.toml | 2 +- crates/ironrdp-rdpewa-native/Cargo.toml | 2 +- crates/ironrdp-rdpewa/Cargo.toml | 2 +- crates/ironrdp-rdpsnd-native/Cargo.toml | 2 +- crates/ironrdp-rdpsnd/Cargo.toml | 2 +- crates/ironrdp-server/Cargo.toml | 2 +- crates/ironrdp-session/Cargo.toml | 2 +- crates/ironrdp-testsuite-extra/Cargo.toml | 2 +- crates/ironrdp-viewer/Cargo.toml | 2 +- crates/ironrdp-vmconnect/Cargo.toml | 2 +- crates/ironrdp-web/Cargo.toml | 2 +- crates/ironrdp/Cargo.toml | 2 +- ffi/Cargo.toml | 2 +- fuzz/Cargo.lock | 7 ------- 37 files changed, 37 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 34406e9a1f..9bd09005dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6851,7 +6851,6 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", diff --git a/benches/Cargo.toml b/benches/Cargo.toml index 9d2302bcfe..a92a3e486d 100644 --- a/benches/Cargo.toml +++ b/benches/Cargo.toml @@ -26,7 +26,7 @@ ironrdp = { path = "../crates/ironrdp", features = [ pico-args = "0.5" tokio = { version = "1", features = ["sync", "fs", "time"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [lints] workspace = true diff --git a/crates/iron-remote-desktop/Cargo.toml b/crates/iron-remote-desktop/Cargo.toml index e3a155f04d..ff0caca4b5 100644 --- a/crates/iron-remote-desktop/Cargo.toml +++ b/crates/iron-remote-desktop/Cargo.toml @@ -28,7 +28,7 @@ tracing-web = "0.1" console_error_panic_hook = { version = "0.1", optional = true } # Logging -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["time"] } [lints] diff --git a/crates/ironrdp-acceptor/Cargo.toml b/crates/ironrdp-acceptor/Cargo.toml index 6f08e9661e..6b2d7f33cb 100644 --- a/crates/ironrdp-acceptor/Cargo.toml +++ b/crates/ironrdp-acceptor/Cargo.toml @@ -23,7 +23,7 @@ ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public ironrdp-connector = { path = "../ironrdp-connector", version = "0.10" } # public ironrdp-async = { path = "../ironrdp-async", version = "0.10" } # public rand = "0.9" -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [lints] workspace = true diff --git a/crates/ironrdp-activex/Cargo.toml b/crates/ironrdp-activex/Cargo.toml index 9e4a49cb0e..55438dd6c6 100644 --- a/crates/ironrdp-activex/Cargo.toml +++ b/crates/ironrdp-activex/Cargo.toml @@ -43,7 +43,7 @@ ironrdp-tls = { path = "../ironrdp-tls", version = "0.2" } png = "0.18" sha2 = "0.10" tokio = { version = "1", features = ["io-util", "macros", "rt-multi-thread", "sync"] } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" url = "2.5" windows = { version = "0.62", features = [ "Win32_Devices_DeviceAndDriverInstallation", diff --git a/crates/ironrdp-async/Cargo.toml b/crates/ironrdp-async/Cargo.toml index 5423515e3e..db2339fef5 100644 --- a/crates/ironrdp-async/Cargo.toml +++ b/crates/ironrdp-async/Cargo.toml @@ -20,7 +20,7 @@ test = false ironrdp-connector = { path = "../ironrdp-connector", version = "0.10" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" bytes = "1" # public web-time = "1.1" diff --git a/crates/ironrdp-blocking/Cargo.toml b/crates/ironrdp-blocking/Cargo.toml index 8ce213293c..e151d48daf 100644 --- a/crates/ironrdp-blocking/Cargo.toml +++ b/crates/ironrdp-blocking/Cargo.toml @@ -20,7 +20,7 @@ test = false ironrdp-connector = { path = "../ironrdp-connector", version = "0.10" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" bytes = "1" # public [lints] diff --git a/crates/ironrdp-client/Cargo.toml b/crates/ironrdp-client/Cargo.toml index d3b50eb465..39c36395bd 100644 --- a/crates/ironrdp-client/Cargo.toml +++ b/crates/ironrdp-client/Cargo.toml @@ -106,7 +106,7 @@ ironrdp-mstsgu = { path = "../ironrdp-mstsgu", version = "0.0.1", optional = tru ironrdp-dvc-pipe-proxy = { path = "../ironrdp-dvc-pipe-proxy", version = "0.5", optional = true } # Logging -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" # Async, futures tokio = { version = "1", features = ["macros", "net", "io-util", "sync", "rt", "time"] } diff --git a/crates/ironrdp-cliprdr-native/Cargo.toml b/crates/ironrdp-cliprdr-native/Cargo.toml index c4c55328ce..4e039b58d7 100644 --- a/crates/ironrdp-cliprdr-native/Cargo.toml +++ b/crates/ironrdp-cliprdr-native/Cargo.toml @@ -19,7 +19,7 @@ test = false [dependencies] ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.7" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.2" } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [target.'cfg(windows)'.dependencies] windows = { version = "0.62", features = [ diff --git a/crates/ironrdp-cliprdr/Cargo.toml b/crates/ironrdp-cliprdr/Cargo.toml index a4d4f6ad3d..ca92d478c6 100644 --- a/crates/ironrdp-cliprdr/Cargo.toml +++ b/crates/ironrdp-cliprdr/Cargo.toml @@ -25,7 +25,7 @@ __test = ["dep:visibility"] ironrdp-core = { path = "../ironrdp-core", version = "0.2" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" bitflags = "2.11" visibility = { version = "0.1", optional = true } diff --git a/crates/ironrdp-connector/Cargo.toml b/crates/ironrdp-connector/Cargo.toml index 5507ea81c1..37fb13b593 100644 --- a/crates/ironrdp-connector/Cargo.toml +++ b/crates/ironrdp-connector/Cargo.toml @@ -29,7 +29,7 @@ ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9", features = ["std"] } # sspi = { version = "0.21", features = ["scard"] } url = "2.5" # public rand = { version = "0.9", features = ["std"] } # TODO: dependency injection? -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" picky-asn1-der = "0.5" picky-asn1-x509 = "0.15" picky = "=7.0.0-rc.25" # FIXME: We are pinning with = because the candidate version number counts as the minor number by Cargo, and will be automatically bumped in the Cargo.lock. diff --git a/crates/ironrdp-displaycontrol/Cargo.toml b/crates/ironrdp-displaycontrol/Cargo.toml index f6370acc25..88b2dcea8f 100644 --- a/crates/ironrdp-displaycontrol/Cargo.toml +++ b/crates/ironrdp-displaycontrol/Cargo.toml @@ -21,7 +21,7 @@ ironrdp-core = { path = "../ironrdp-core", version = "0.2" } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [lints] workspace = true diff --git a/crates/ironrdp-dvc-com-plugin/Cargo.toml b/crates/ironrdp-dvc-com-plugin/Cargo.toml index aca7e69c18..d63e5432fc 100644 --- a/crates/ironrdp-dvc-com-plugin/Cargo.toml +++ b/crates/ironrdp-dvc-com-plugin/Cargo.toml @@ -23,7 +23,7 @@ ironrdp-core = { path = "../ironrdp-core", version = "0.2" } ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" windows = { version = "0.62", features = [ "Win32_Foundation", "Win32_System_Com", diff --git a/crates/ironrdp-dvc-pipe-proxy/Cargo.toml b/crates/ironrdp-dvc-pipe-proxy/Cargo.toml index a87a76f71e..2df161eb4b 100644 --- a/crates/ironrdp-dvc-pipe-proxy/Cargo.toml +++ b/crates/ironrdp-dvc-pipe-proxy/Cargo.toml @@ -22,7 +22,7 @@ ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public (PduResult t ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public (SvcMessage type) -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" tokio = { version = "1", features = ["net", "rt", "sync", "macros", "io-util", "fs"]} async-trait = "0.1" diff --git a/crates/ironrdp-dvc/Cargo.toml b/crates/ironrdp-dvc/Cargo.toml index 071bd0dc11..cad91b925d 100644 --- a/crates/ironrdp-dvc/Cargo.toml +++ b/crates/ironrdp-dvc/Cargo.toml @@ -18,13 +18,13 @@ test = false [features] default = [] -std = [] +std = ["tracing/std"] [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9", features = ["alloc"] } # public -tracing = { version = "0.1", features = ["log"] } +tracing = { version = "0.1", default-features = false } [lints] workspace = true diff --git a/crates/ironrdp-echo/Cargo.toml b/crates/ironrdp-echo/Cargo.toml index b7e7f525d1..9a1df14c3e 100644 --- a/crates/ironrdp-echo/Cargo.toml +++ b/crates/ironrdp-echo/Cargo.toml @@ -20,7 +20,7 @@ test = false ironrdp-core = { path = "../ironrdp-core", version = "0.2" } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [lints] workspace = true diff --git a/crates/ironrdp-egfx/Cargo.toml b/crates/ironrdp-egfx/Cargo.toml index 25006b8495..ce72461b46 100644 --- a/crates/ironrdp-egfx/Cargo.toml +++ b/crates/ironrdp-egfx/Cargo.toml @@ -24,7 +24,7 @@ ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } # public ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.9" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public openh264 = { version = "0.9", optional = true, default-features = false } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" yuv = { version = "0.8", default-features = false, optional = true } [features] diff --git a/crates/ironrdp-rdpdr-native/Cargo.toml b/crates/ironrdp-rdpdr-native/Cargo.toml index 79c7fb3be6..6cd4b83965 100644 --- a/crates/ironrdp-rdpdr-native/Cargo.toml +++ b/crates/ironrdp-rdpdr-native/Cargo.toml @@ -21,12 +21,12 @@ ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public ironrdp-rdpdr = { path = "../ironrdp-rdpdr", version = "0.7" } # public nix = { version = "0.31", features = ["fs", "dir"] } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [target.'cfg(windows)'.dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.2" } ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public ironrdp-rdpdr = { path = "../ironrdp-rdpdr", version = "0.7" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" windows = { version = "0.62", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Wdk_System_SystemServices", "Win32_Foundation", "Win32_Graphics_Gdi", "Win32_Graphics_Printing", "Win32_Security", "Win32_Security_Authorization", "Win32_Security_Credentials", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Threading"] } diff --git a/crates/ironrdp-rdpdr/Cargo.toml b/crates/ironrdp-rdpdr/Cargo.toml index db5b239e3a..9bc0b2621b 100644 --- a/crates/ironrdp-rdpdr/Cargo.toml +++ b/crates/ironrdp-rdpdr/Cargo.toml @@ -20,7 +20,7 @@ ironrdp-core = { path = "../ironrdp-core", version = "0.2" } # public ironrdp-error = { path = "../ironrdp-error", version = "0.2" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" bitflags = "2.11" getrandom = { version = "0.3", features = ["std"] } diff --git a/crates/ironrdp-rdpeai/Cargo.toml b/crates/ironrdp-rdpeai/Cargo.toml index 7a5b03bc78..bf78909d82 100644 --- a/crates/ironrdp-rdpeai/Cargo.toml +++ b/crates/ironrdp-rdpeai/Cargo.toml @@ -24,7 +24,7 @@ ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9", features = ["alloc"] } # public ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.9" } # public — shared AUDIO_FORMAT ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [lints] workspace = true diff --git a/crates/ironrdp-rdpecam/Cargo.toml b/crates/ironrdp-rdpecam/Cargo.toml index c44e108ae9..68ee25d6d8 100644 --- a/crates/ironrdp-rdpecam/Cargo.toml +++ b/crates/ironrdp-rdpecam/Cargo.toml @@ -22,7 +22,7 @@ ironrdp-core = { version = "0.2.1", path = "../ironrdp-core", features = ["alloc ironrdp-dvc = { version = "0.8.0", path = "../ironrdp-dvc" } # public ironrdp-pdu = { version = "0.9.0", path = "../ironrdp-pdu", features = ["alloc"] } # public ironrdp-svc = { version = "0.8.0", path = "../ironrdp-svc" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = { version = "0.1", default-features = false } [lints] workspace = true diff --git a/crates/ironrdp-rdpei/Cargo.toml b/crates/ironrdp-rdpei/Cargo.toml index ced700a76c..9f32d7aa5d 100644 --- a/crates/ironrdp-rdpei/Cargo.toml +++ b/crates/ironrdp-rdpei/Cargo.toml @@ -21,7 +21,7 @@ ironrdp-core = { path = "../ironrdp-core", version = "0.2" } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [lints] workspace = true diff --git a/crates/ironrdp-rdpel/Cargo.toml b/crates/ironrdp-rdpel/Cargo.toml index 59067241d6..532ce6f965 100644 --- a/crates/ironrdp-rdpel/Cargo.toml +++ b/crates/ironrdp-rdpel/Cargo.toml @@ -21,7 +21,7 @@ ironrdp-core = { version = "0.2.1", path = "../ironrdp-core", features = ["alloc ironrdp-dvc = { version = "0.8.0", path = "../ironrdp-dvc" } # public ironrdp-pdu = { version = "0.9.0", path = "../ironrdp-pdu", features = ["alloc"] } # public ironrdp-svc = { version = "0.8.0", path = "../ironrdp-svc" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = { version = "0.1", default-features = false } [lints] workspace = true diff --git a/crates/ironrdp-rdpeudp-tokio/Cargo.toml b/crates/ironrdp-rdpeudp-tokio/Cargo.toml index 9eedff4f5a..19b628dcb9 100644 --- a/crates/ironrdp-rdpeudp-tokio/Cargo.toml +++ b/crates/ironrdp-rdpeudp-tokio/Cargo.toml @@ -37,7 +37,7 @@ sha2 = "0.10" # than declared separately. The crypto provider is not bundled, so the process # default must be installed before connecting. tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "tls12"] } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [dev-dependencies] tokio = { version = "1", features = ["macros", "rt-multi-thread", "test-util"] } diff --git a/crates/ironrdp-rdpewa-native/Cargo.toml b/crates/ironrdp-rdpewa-native/Cargo.toml index 533b35f56b..d0c3f086fd 100644 --- a/crates/ironrdp-rdpewa-native/Cargo.toml +++ b/crates/ironrdp-rdpewa-native/Cargo.toml @@ -17,7 +17,7 @@ doctest = false [target.'cfg(windows)'.dependencies] ironrdp-rdpewa = { path = "../ironrdp-rdpewa", version = "0.1" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" windows = { version = "0.62", features = [ "Win32_Foundation", "Win32_Networking_WindowsWebServices", diff --git a/crates/ironrdp-rdpewa/Cargo.toml b/crates/ironrdp-rdpewa/Cargo.toml index 183fd46a9a..03e5430a7e 100644 --- a/crates/ironrdp-rdpewa/Cargo.toml +++ b/crates/ironrdp-rdpewa/Cargo.toml @@ -20,7 +20,7 @@ ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [lints] workspace = true diff --git a/crates/ironrdp-rdpsnd-native/Cargo.toml b/crates/ironrdp-rdpsnd-native/Cargo.toml index 77a7b9696f..87b11cfb77 100644 --- a/crates/ironrdp-rdpsnd-native/Cargo.toml +++ b/crates/ironrdp-rdpsnd-native/Cargo.toml @@ -29,7 +29,7 @@ ironrdp-rdpeai = { path = "../ironrdp-rdpeai", version = "0.1", optional = true ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.9" } # public opus2 = { version = "0.4", optional = true, features = ["bundled"] } ringbuf = "0.5" -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [dev-dependencies] anyhow = "1" diff --git a/crates/ironrdp-rdpsnd/Cargo.toml b/crates/ironrdp-rdpsnd/Cargo.toml index 11e2e29445..f284a85405 100644 --- a/crates/ironrdp-rdpsnd/Cargo.toml +++ b/crates/ironrdp-rdpsnd/Cargo.toml @@ -27,7 +27,7 @@ __test = ["dep:visibility"] [dependencies] bitflags = "2.11" -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] } ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9", features = ["alloc"] } # public diff --git a/crates/ironrdp-server/Cargo.toml b/crates/ironrdp-server/Cargo.toml index ae73ff2379..36185cd7ef 100644 --- a/crates/ironrdp-server/Cargo.toml +++ b/crates/ironrdp-server/Cargo.toml @@ -63,7 +63,7 @@ ironrdp-usb = { path = "../ironrdp-usb", version = "0.1", optional = true } ironrdp-rdpemt = { path = "../ironrdp-rdpemt", version = "0.1" } # public ironrdp-rdpeudp = { path = "../ironrdp-rdpeudp", version = "0.1" } # public ironrdp-rdpeudp-tokio = { path = "../ironrdp-rdpeudp-tokio", version = "0.1" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" x509-cert = { version = "0.3", optional = true } rustls-pemfile = { version = "2.2", optional = true } rayon = { version = "1.12", optional = true } diff --git a/crates/ironrdp-session/Cargo.toml b/crates/ironrdp-session/Cargo.toml index 3657cf87a8..db556bddfd 100644 --- a/crates/ironrdp-session/Cargo.toml +++ b/crates/ironrdp-session/Cargo.toml @@ -33,7 +33,7 @@ ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9", features = ["std"] } # ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.8" } ironrdp-egfx = { path = "../ironrdp-egfx", version = "0.3" } ironrdp-rdpei = { path = "../ironrdp-rdpei", version = "0.1" } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" qoicoubeh = { version = "0.5", optional = true } zstd-safe = { version = "7.2", optional = true, features = ["std"] } visibility = { version = "0.1", optional = true } diff --git a/crates/ironrdp-testsuite-extra/Cargo.toml b/crates/ironrdp-testsuite-extra/Cargo.toml index 3f5a348296..c875678aef 100644 --- a/crates/ironrdp-testsuite-extra/Cargo.toml +++ b/crates/ironrdp-testsuite-extra/Cargo.toml @@ -57,7 +57,7 @@ ironrdp-tls = { path = "../ironrdp-tls", features = ["rustls"] } ironrdp-vmconnect = { path = "../ironrdp-vmconnect", features = ["__test"] } rcgen = "0.14" semver = "1.0" -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tokio = { version = "1", features = ["sync", "time", "net", "rt", "rt-multi-thread", "macros", "io-util"] } # No provider feature here on purpose: `ironrdp-tls` already brings diff --git a/crates/ironrdp-viewer/Cargo.toml b/crates/ironrdp-viewer/Cargo.toml index 31d9462f26..a457347521 100644 --- a/crates/ironrdp-viewer/Cargo.toml +++ b/crates/ironrdp-viewer/Cargo.toml @@ -45,7 +45,7 @@ inquire = "0.9" proc-exit = "2" # Logging -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # Async, futures diff --git a/crates/ironrdp-vmconnect/Cargo.toml b/crates/ironrdp-vmconnect/Cargo.toml index b7fbd6c7c4..c87fed67f5 100644 --- a/crates/ironrdp-vmconnect/Cargo.toml +++ b/crates/ironrdp-vmconnect/Cargo.toml @@ -26,7 +26,7 @@ ironrdp-async = { path = "../ironrdp-async", version = "0.10" } # public ironrdp-connector = { path = "../ironrdp-connector", version = "0.10" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.2", features = ["alloc"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9" } # public -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" [target.'cfg(windows)'.dependencies] ironrdp-dvc = { version = "0.8.0", path = "../ironrdp-dvc" } # public diff --git a/crates/ironrdp-web/Cargo.toml b/crates/ironrdp-web/Cargo.toml index c964d7ce21..8941f0a3c6 100644 --- a/crates/ironrdp-web/Cargo.toml +++ b/crates/ironrdp-web/Cargo.toml @@ -81,7 +81,7 @@ futures-util = { version = "0.3", features = ["sink", "io"] } futures-channel = "0.3" # Logging -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" # Utils anyhow = "1" diff --git a/crates/ironrdp/Cargo.toml b/crates/ironrdp/Cargo.toml index c4595af206..01652dc00d 100644 --- a/crates/ironrdp/Cargo.toml +++ b/crates/ironrdp/Cargo.toml @@ -88,7 +88,7 @@ image = { version = "0.25", default-features = false, features = ["png"] } pico-args = "0.5" x509-cert = { version = "0.3", default-features = false, features = ["std"] } sspi = { version = "0.21", features = ["network_client"] } -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tokio = { version = "1", features = ["macros", "rt", "sync", "time"] } tokio-rustls = "0.26" diff --git a/ffi/Cargo.toml b/ffi/Cargo.toml index a791979fc6..1b8db3cf5d 100644 --- a/ffi/Cargo.toml +++ b/ffi/Cargo.toml @@ -22,7 +22,7 @@ ironrdp-vmconnect = { path = "../crates/ironrdp-vmconnect" } ironrdp-rdcleanpath.path = "../crates/ironrdp-rdcleanpath" sspi = { version = "0.21", features = ["network_client"] } thiserror = "2" -tracing = { version = "0.1", features = ["log"] } +tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } anyhow = "1.0" diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index 6f98c277a9..a6e8abadb6 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -623,12 +623,6 @@ dependencies = [ "cc", ] -[[package]] -name = "log" -version = "0.4.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" - [[package]] name = "md-5" version = "0.10.6" @@ -945,7 +939,6 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core",