From 391c8876a4203c7c113f886a4d19ba808dc6d075 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Wed, 1 Apr 2026 13:54:26 +0100 Subject: [PATCH 1/2] Sort & de-duplicate deps using workspace features --- Cargo.lock | 24 ++++++++++++------------ Cargo.toml | 22 ++++++++++++++++------ cli/Cargo.toml | 12 ++++++------ client/Cargo.toml | 26 +++++++++++++------------- kwallet/cli/Cargo.toml | 8 ++++---- kwallet/parser/Cargo.toml | 18 +++++++++--------- macros/Cargo.toml | 4 ++-- pam/Cargo.toml | 16 ++++++++-------- python/Cargo.toml | 2 +- server/Cargo.toml | 26 +++++++++++++------------- 10 files changed, 84 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c947c990f..b6bfc1f58 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -819,9 +819,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.93" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "797146bb2677299a1eb6b7b50a890f4c361b29ef967addf5b2fa45dae1bb6d7d" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ "once_cell", "wasm-bindgen", @@ -873,9 +873,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] name = "libm" @@ -2137,9 +2137,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dc0882f7b5bb01ae8c5215a1230832694481c1a4be062fd410e12ea3da5b631" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ "cfg-if", "once_cell", @@ -2150,9 +2150,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75973d3066e01d035dbedaad2864c398df42f8dd7b1ea057c35b8407c015b537" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2160,9 +2160,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91af5e4be765819e0bcfee7322c14374dc821e35e72fa663a830bbc7dc199eac" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ "bumpalo", "proc-macro2", @@ -2173,9 +2173,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9bf0406a78f02f336bf1e451799cca198e8acde4ffa278f0fb20487b150a633" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] diff --git a/Cargo.toml b/Cargo.toml index 12685da25..dc7402773 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,22 +27,32 @@ rust-version = "1.88" exclude = ["org.freedesktop.Secrets.xml"] [workspace.dependencies] -zvariant = { version = "5.8", default-features = false, features = ["gvariant", "serde_bytes"]} -ashpd = {version = "0.13", default-features = false} +ashpd = { version = "0.13", default-features = false } base64 = "0.22" +cbc = "0.1" +clap = { version = "4.5", features = ["cargo", "derive"] } endi = "1.1" -clap = { version = "4.5", features = [ "cargo", "derive" ] } futures-channel = "0.3" futures-lite = "2.6" futures-util = "0.3" +hkdf = "0.12" +libc = "0.2" +md-5 = "0.10" +num = "0.4.0" num-bigint-dig = { version = "0.9", features = ["zeroize"] } -oo7 = { path = "client", version = "0.6.0-alpha", default-features = false, features = ["unstable", "tracing"]} +oo7 = { path = "client", version = "0.6.0-alpha", default-features = false, features = ["unstable", "tracing"] } +openssl = "0.10" +pbkdf2 = { version = "0.12", default-features = false } +rpassword = "7.4" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -tokio = { version = "1.50", default-features = false } +serde_repr = "0.1" +sha2 = "0.10" tempfile = "3.26" +tokio = { version = "1.50", default-features = false } tracing = "0.1" tracing-subscriber = "0.3" zbus = { version = "5.14.0", default-features = false } -zbus_macros = {version = "5.11", features = ["gvariant"]} +zbus_macros = { version = "5.11", features = ["gvariant"] } zeroize = { version = "1", features = ["zeroize_derive"] } +zvariant = { version = "5.8", default-features = false, features = ["gvariant", "serde_bytes"] } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index e37cf1b9e..175e64c47 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -13,15 +13,15 @@ rust-version.workspace = true version.workspace = true [dependencies] -anstyle = "1.0.13" -time = { version = "0.3", default-features = false, features = ["alloc", "formatting", "local-offset"] } +anstyle = "1.0" clap.workspace = true hex = "0.4" oo7 = { workspace = true, features = ["tokio"] } -rpassword = "7.4.0" -tokio = { workspace = true, features = [ "macros", "rt"] } -serde_json = { workspace = true } -serde = { workspace = true } +rpassword.workspace = true +serde.workspace = true +serde_json.workspace = true +time = { version = "0.3", default-features = false, features = ["alloc", "formatting", "local-offset"] } +tokio = { workspace = true, features = ["macros", "rt"] } [features] default = ["native_crypto"] diff --git a/client/Cargo.toml b/client/Cargo.toml index 60f81b3f7..c55072467 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -15,25 +15,25 @@ version.workspace = true [dependencies] aes = { version = "0.8", features = ["zeroize"], optional = true } ashpd = { workspace = true, features = ["secret"] } -async-fs = { version = "2.2.0", optional = true } -async-io = { version = "2.6.0", optional = true } -async-lock = { version = "3.4.2", optional = true } -blocking = { version = "1.5.1", optional = true } -cbc = { version = "0.1", features = ["zeroize"], optional = true } +async-fs = { version = "2.2", optional = true } +async-io = { version = "2.6", optional = true } +async-lock = { version = "3.4", optional = true } +blocking = { version = "1.5", optional = true } +cbc = { workspace = true, features = ["zeroize"], optional = true } endi.workspace = true futures-lite = { workspace = true, optional = true } futures-util.workspace = true getrandom = "0.4" -oo7-macros = { path = "../macros", version = "0.6.0-alpha", optional = true } -hkdf = { version = "0.12", optional = true } -md-5 = { version = "0.10", optional = true } -num = "0.4.0" +hkdf = { workspace = true, optional = true } +md-5 = { workspace = true, optional = true } +num.workspace = true num-bigint-dig.workspace = true -openssl = { version = "0.10", optional = true } -pbkdf2 = { version = "0.12", optional = true } +oo7-macros = { path = "../macros", version = "0.6.0-alpha", optional = true } +openssl = { workspace = true, optional = true } +pbkdf2 = { workspace = true, optional = true, features = ["hmac"] } serde.workspace = true serde_bytes = "0.11" -sha2 = { version = "0.10", optional = true } +sha2 = { workspace = true, optional = true } subtle = { version = "2.5", optional = true } tokio = { workspace = true, features = [ "sync", @@ -50,7 +50,7 @@ zeroize.workspace = true oo7-daemon = { path = "../server", features = ["test-util"], default-features = false, version = "0.6.0-alpha" } tempfile.workspace = true tokio = { workspace = true, features = ["macros", "rt-multi-thread", "time"] } -tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } +tracing-subscriber = { workspace = true, features = ["env-filter", "fmt"] } [features] default = ["tokio", "native_crypto"] diff --git a/kwallet/cli/Cargo.toml b/kwallet/cli/Cargo.toml index ae33ab410..853e2f9f1 100644 --- a/kwallet/cli/Cargo.toml +++ b/kwallet/cli/Cargo.toml @@ -10,10 +10,10 @@ license.workspace = true rust-version.workspace = true [dependencies] +clap.workspace = true kwallet-parser = { version = "0.6.0-alpha", path = "../parser" } oo7 = { workspace = true, features = ["tokio", "native_crypto"] } -clap = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -rpassword = "7.3" +rpassword.workspace = true +serde.workspace = true +serde_json.workspace = true tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } diff --git a/kwallet/parser/Cargo.toml b/kwallet/parser/Cargo.toml index 38b9d5a56..f283fcb50 100644 --- a/kwallet/parser/Cargo.toml +++ b/kwallet/parser/Cargo.toml @@ -13,18 +13,18 @@ rust-version.workspace = true exclude.workspace = true [dependencies] +base64.workspace = true blowfish = "0.9" -cbc = "0.1" +cbc.workspace = true +cipher = { version = "0.4", features = ["block-padding"] } ecb = "0.1" -md-5 = "0.10" +md-5.workspace = true +pbkdf2 = { workspace = true, default-features = false, features = ["simple"] } +serde.workspace = true +serde_json.workspace = true sha1 = "0.10" -sha2 = "0.10" -pbkdf2 = { version = "0.12", default-features = false, features = ["simple"] } -cipher = { version = "0.4", features = ["block-padding"] } -zeroize = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -base64 = { workspace = true } +sha2.workspace = true +zeroize.workspace = true [dev-dependencies] hex = "0.4" diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 18ba07679..2ca4d8701 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -15,6 +15,6 @@ version.workspace = true proc-macro = true [dependencies] -syn = { version = "2.0", features = ["full"] } -quote = "1.0" proc-macro2 = "1.0" +quote = "1.0" +syn = { version = "2.0", features = ["full"] } diff --git a/pam/Cargo.toml b/pam/Cargo.toml index 703d722c4..7126918e0 100644 --- a/pam/Cargo.toml +++ b/pam/Cargo.toml @@ -14,16 +14,16 @@ name = "pam_oo7" crate-type = ["cdylib"] [dependencies] -libc = "0.2" +libc.workspace = true +serde.workspace = true +serde_repr.workspace = true tokio = { workspace = true, features = ["rt", "rt-multi-thread", "net", "io-util", "sync", "time"] } -serde = { workspace = true } -serde_repr = "0.1" -zvariant = { workspace = true } -tracing = { workspace = true } -tracing-subscriber = { workspace = true, features = ["env-filter"] } +tracing.workspace = true tracing-journald = "0.3" -zeroize = { workspace = true } +tracing-subscriber = { workspace = true, features = ["env-filter"] } +zeroize.workspace = true +zvariant.workspace = true [dev-dependencies] -tempfile = { workspace = true } +tempfile.workspace = true tokio = { workspace = true, features = ["rt", "rt-multi-thread", "net", "io-util", "sync", "time", "macros"] } diff --git a/python/Cargo.toml b/python/Cargo.toml index 5e023a224..7a1050ded 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -19,4 +19,4 @@ crate-type = ["cdylib"] oo7_rs = { package = "oo7", path = "../client", version = "0.6.0-alpha" } pyo3 = { version = "0.28", features = ["extension-module", "abi3-py38"] } pyo3-async-runtimes = { version = "0.28", features = ["tokio-runtime"] } -tokio = { version = "1", features = ["rt-multi-thread"] } +tokio = { workspace = true, features = ["rt-multi-thread"] } diff --git a/server/Cargo.toml b/server/Cargo.toml index 3e6ec8094..3edaf9a79 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -20,31 +20,31 @@ path = "src/lib.rs" test = false [dependencies] -ashpd = {workspace = true, features = ["backend", "secret", "tracing"]} -base64 = {version = "0.22", optional = true} +ashpd = { workspace = true, features = ["backend", "secret", "tracing"] } +base64 = { version = "0.22", optional = true } clap.workspace = true enumflags2 = "0.7" formatx = "0.2" -gettext-rs = {version = "0.7", features = ["gettext-system"]} -hkdf = { version = "0.12", optional = true } +gettext-rs = { version = "0.7", features = ["gettext-system"] } +hkdf = { workspace = true, optional = true } kwallet-parser = { version = "0.6.0-alpha", path = "../kwallet/parser", optional = true } -libc = "0.2" -rustix = { version = "1.1", default-features = false, features = ["process", "std", "thread", "mm"] } -num = "0.4.0" +libc.workspace = true +num.workspace = true num-bigint-dig.workspace = true -openssl = { version = "0.10", optional = true } oo7 = { workspace = true, features = ["tokio"] } -rpassword = "7.4" +openssl = { workspace = true, optional = true } +rpassword.workspace = true +rustix = { version = "1.1", default-features = false, features = ["process", "std", "thread", "mm"] } serde.workspace = true -serde_repr = "0.1" -sha2 = { version = "0.10", optional = true } +serde_repr.workspace = true +sha2 = { workspace = true, optional = true } +tempfile = { workspace = true, optional = true } tokio = { workspace = true, features = ["full"] } tokio-stream = "0.1" -tracing = "0.1" +tracing.workspace = true tracing-subscriber.workspace = true zbus = { workspace = true, features = ["p2p"] } zeroize.workspace = true -tempfile = { workspace = true, optional = true } [features] test-util = ["dep:tempfile"] From d9c7b918467189b691b185e3fd8a9c74db23e2f1 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Wed, 1 Apr 2026 13:56:15 +0100 Subject: [PATCH 2/2] Symlink license in all the crates --- cargo-credential/LICENSE | 1 + kwallet/cli/LICENSE | 1 + kwallet/parser/LICENSE | 1 + macros/LICENSE | 1 + pam/LICENSE | 1 + python/LICENSE | 1 + server/LICENSE | 0 7 files changed, 6 insertions(+) create mode 120000 cargo-credential/LICENSE create mode 120000 kwallet/cli/LICENSE create mode 120000 kwallet/parser/LICENSE create mode 120000 macros/LICENSE create mode 120000 pam/LICENSE create mode 120000 python/LICENSE mode change 100644 => 120000 server/LICENSE diff --git a/cargo-credential/LICENSE b/cargo-credential/LICENSE new file mode 120000 index 000000000..ea5b60640 --- /dev/null +++ b/cargo-credential/LICENSE @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/kwallet/cli/LICENSE b/kwallet/cli/LICENSE new file mode 120000 index 000000000..30cff7403 --- /dev/null +++ b/kwallet/cli/LICENSE @@ -0,0 +1 @@ +../../LICENSE \ No newline at end of file diff --git a/kwallet/parser/LICENSE b/kwallet/parser/LICENSE new file mode 120000 index 000000000..30cff7403 --- /dev/null +++ b/kwallet/parser/LICENSE @@ -0,0 +1 @@ +../../LICENSE \ No newline at end of file diff --git a/macros/LICENSE b/macros/LICENSE new file mode 120000 index 000000000..ea5b60640 --- /dev/null +++ b/macros/LICENSE @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/pam/LICENSE b/pam/LICENSE new file mode 120000 index 000000000..ea5b60640 --- /dev/null +++ b/pam/LICENSE @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/python/LICENSE b/python/LICENSE new file mode 120000 index 000000000..ea5b60640 --- /dev/null +++ b/python/LICENSE @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/server/LICENSE b/server/LICENSE deleted file mode 100644 index ea5b60640..000000000 --- a/server/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../LICENSE \ No newline at end of file diff --git a/server/LICENSE b/server/LICENSE new file mode 120000 index 000000000..ea5b60640 --- /dev/null +++ b/server/LICENSE @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file