From 7a4f481ea0dab40a8fd3feb477ce27bc3859dccb Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Fri, 4 Sep 2026 10:48:53 +0200 Subject: [PATCH 01/16] chore: fige Cargo.lock (reordonnancement patch.unused par cargo) --- Cargo.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 544ad68..06dcb62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1889,14 +1889,6 @@ dependencies = [ name = "cosmic-freedesktop-icons" version = "0.4.0" -[[patch.unused]] -name = "softbuffer" -version = "0.4.1" - -[[patch.unused]] -name = "smithay-clipboard" -version = "0.8.0" - [[patch.unused]] name = "dpi" version = "0.1.2" @@ -1944,3 +1936,11 @@ version = "0.31.0-beta.2" [[patch.unused]] name = "winit-x11" version = "0.31.0-beta.2" + +[[patch.unused]] +name = "smithay-clipboard" +version = "0.8.0" + +[[patch.unused]] +name = "softbuffer" +version = "0.4.1" From d02ced62971fcfe8c8eb785fcd0c3b2eab26348e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Vojinovi=C4=87?= <150025636+git-f0x@users.noreply.github.com> Date: Tue, 25 Aug 2026 12:55:16 +0200 Subject: [PATCH 02/16] feat: add version argument --- src/main.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main.rs b/src/main.rs index 0f2c00f..1db82d0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,6 +46,13 @@ const ENVIRONMENT_NAME: &'static str = "COSMIC"; #[tokio::main(flavor = "current_thread")] async fn main() -> Result<()> { + if let Some(arg) = env::args().nth(1) + && (arg == "--version" || arg == "-V") + { + println!("cosmic-session {}", env!("CARGO_PKG_VERSION")); + return Ok(()); + } + color_eyre::install().wrap_err("failed to install color_eyre error handler")?; let trace = tracing_subscriber::registry(); From 3ccf897693f2af81235fcfaf41456b7d031cfb4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Vojinovi=C4=87?= <150025636+git-f0x@users.noreply.github.com> Date: Fri, 4 Sep 2026 19:24:06 +0200 Subject: [PATCH 03/16] feat: set `COSMIC_VERSION` env var --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/main.rs | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c37f2ce..a9181bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -300,7 +300,7 @@ dependencies = [ [[package]] name = "cosmic-session" -version = "1.0.0" +version = "1.8.0" dependencies = [ "color-eyre", "cosmic-dbus-a11y", diff --git a/Cargo.toml b/Cargo.toml index 136af09..47f8dea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cosmic-session" description = "The session manager for the COSMIC desktop environment" -version = "1.0.0" +version = "1.8.0" license = "GPL-3.0-only" edition = "2024" rust-version = "1.93" diff --git a/src/main.rs b/src/main.rs index 1db82d0..6c26691 100644 --- a/src/main.rs +++ b/src/main.rs @@ -166,6 +166,13 @@ async fn start( env_vars.push(("XDG_SESSION_TYPE".to_string(), "wayland".to_string())); systemd::set_systemd_environment("XDG_SESSION_TYPE", "wayland").await; + // expose the session version + env_vars.push(( + "COSMIC_VERSION".to_string(), + env!("CARGO_PKG_VERSION").to_string(), + )); + systemd::set_systemd_environment("COSMIC_VERSION", env!("CARGO_PKG_VERSION")).await; + #[cfg(feature = "systemd")] let _inhibit_fd = if *is_systemd_used() { match get_systemd_env().await { From cd90a03e3fa525a4ff9442fdd341859c3ced2ebb Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Mon, 14 Sep 2026 17:54:49 +0200 Subject: [PATCH 04/16] Epoch 1.9.0 version update Generated by cosmic-epoch scripts/version-update.sh --- Cargo.lock | 564 ++++++++++++++++------------------------------- Cargo.toml | 2 +- debian/changelog | 6 + 3 files changed, 202 insertions(+), 370 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a9181bc..69e1a49 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,19 +19,13 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - [[package]] name = "async-broadcast" version = "0.7.2" @@ -125,7 +119,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -154,13 +148,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] @@ -171,9 +165,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "backtrace" @@ -192,9 +186,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.11.1" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "block" @@ -204,9 +198,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "blocking" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" dependencies = [ "async-channel", "async-task", @@ -217,32 +211,32 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f" dependencies = [ "memchr", "regex-automata", - "serde", + "serde_core", ] [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytes" -version = "1.11.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cc" -version = "1.2.61" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" dependencies = [ "find-msvc-tools", "shlex", @@ -293,14 +287,14 @@ dependencies = [ [[package]] name = "cosmic-dbus-a11y" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#507e342c21d3ce6ae41b1d4f3fa2f0ad5ee23e75" +source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "zbus", ] [[package]] name = "cosmic-session" -version = "1.8.0" +version = "1.9.0" dependencies = [ "color-eyre", "cosmic-dbus-a11y", @@ -326,9 +320,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "dirs" @@ -375,7 +369,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -396,11 +390,10 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.1" +version = "5.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" dependencies = [ - "concurrent-queue", "parking", "pin-project-lite", ] @@ -417,37 +410,32 @@ dependencies = [ [[package]] name = "eyre" -version = "0.6.12" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +checksum = "c08309dbcc659c5549a24ddb9b27027640641b282ef5768267c7e675558986a3" dependencies = [ + "autocfg", "indenter", "once_cell", ] [[package]] name = "fastrand" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" [[package]] name = "freedesktop-desktop-entry" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28273c5c6b97a5f07724f6652f064c0c7f637f9aa5e7c09c83bc3bc4ad4ea245" +checksum = "9cfa09933e03f1ced380ad639822d65cb59a1914217da6c72aa8db3563e94214" dependencies = [ "bstr", "gettext-rs", @@ -460,15 +448,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-io" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-lite" @@ -485,32 +473,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] name = "futures-sink" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-core", "futures-macro", @@ -544,22 +532,20 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", - "wasip2", - "wasip3", ] [[package]] name = "gettext-rs" -version = "0.7.7" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf" +checksum = "9df5e3fa8c077b15fdfa8ce130e2bc73d663b8aaa6d51b71421b8659980b1d80" dependencies = [ "gettext-sys", "locale_config", @@ -567,9 +553,9 @@ dependencies = [ [[package]] name = "gettext-sys" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9" +checksum = "4caa7e4460b196107cc1bb2629488e8b6dbb7f34f6683ea6753c4ac22f590785" dependencies = [ "cc", "temp-dir", @@ -583,30 +569,15 @@ checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash", -] - -[[package]] -name = "hashbrown" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" [[package]] name = "hex" @@ -614,12 +585,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "indenter" version = "0.3.4" @@ -628,14 +593,12 @@ checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" -version = "2.14.0" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", - "hashbrown 0.17.0", - "serde", - "serde_core", + "hashbrown", ] [[package]] @@ -646,11 +609,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.95" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -676,23 +640,17 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "libc" -version = "0.2.186" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a" dependencies = [ "libc", ] @@ -727,9 +685,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "log-panics" @@ -771,9 +729,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memoffset" @@ -795,9 +753,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.0" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" dependencies = [ "libc", "wasi", @@ -875,9 +833,9 @@ dependencies = [ [[package]] name = "owo-colors" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" +checksum = "13c45bb4a6ae1280ec0803b1ef9d3455eb50f01efbbe1447ab020f1d54fba9d8" [[package]] name = "parking" @@ -948,16 +906,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -969,18 +917,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -999,9 +947,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ "rand_chacha", "rand_core", @@ -1048,9 +996,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -1060,9 +1008,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -1071,15 +1019,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "rustc-demangle" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" [[package]] name = "rustix" @@ -1096,9 +1044,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "scopeguard" @@ -1106,17 +1054,11 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "semver" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" - [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -1124,29 +1066,29 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "itoa", "memchr", @@ -1157,13 +1099,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] @@ -1183,9 +1125,9 @@ checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signal-hook-registry" @@ -1214,15 +1156,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.1" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" dependencies = [ "libc", "windows-sys", @@ -1230,9 +1172,20 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" dependencies = [ "proc-macro2", "quote", @@ -1258,7 +1211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom 0.4.3", "once_cell", "rustix", "windows-sys", @@ -1266,38 +1219,38 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" dependencies = [ "cfg-if", ] [[package]] name = "tokio" -version = "1.52.1" +version = "1.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" dependencies = [ "bytes", "libc", @@ -1313,20 +1266,20 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.7.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] name = "tokio-util" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" dependencies = [ "bytes", "futures-core", @@ -1346,9 +1299,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.25.15+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" dependencies = [ "indexmap", "toml_datetime", @@ -1358,9 +1311,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.2+spec-1.1.0" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ "winnow", ] @@ -1384,7 +1337,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -1470,17 +1423,11 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "uuid" -version = "1.23.1" +version = "1.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" dependencies = [ "js-sys", "serde_core", @@ -1507,27 +1454,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.3+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ - "wit-bindgen 0.57.1", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen 0.51.0", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" dependencies = [ "cfg-if", "once_cell", @@ -1538,9 +1476,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1548,60 +1486,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn", + "syn 3.0.5", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "winapi" version = "0.3.9" @@ -1641,107 +1545,19 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" dependencies = [ "memchr", ] -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - [[package]] name = "wit-bindgen" version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - [[package]] name = "xdg" version = "3.0.0" @@ -1750,9 +1566,9 @@ checksum = "2fb433233f2df9344722454bc7e96465c9d03bff9d77c248f9e7523fe79585b5" [[package]] name = "zbus" -version = "5.15.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1" +checksum = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907" dependencies = [ "async-broadcast", "async-executor", @@ -1786,14 +1602,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.15.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff" +checksum = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 3.0.5", "zbus_names", "zvariant", "zvariant_utils", @@ -1801,9 +1617,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.2" +version = "4.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" +checksum = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" dependencies = [ "serde", "winnow", @@ -1821,67 +1637,77 @@ dependencies = [ ] [[package]] -name = "zerocopy" -version = "0.8.48" +name = "zcheapstr" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "d1afec51604565183aeb5c54c20aeab286120d4e4460f7f76e3e8bb8c0d99473" +dependencies = [ + "serde", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" [[package]] name = "zvariant" -version = "5.10.1" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db0ecb8987cf5e92653c57c098f7f0e39a03112edb796f4fe089fb7eaa14ff" +checksum = "c1d34c27cc6cdd1f458427519dd6b8612f7b7e3f7b9a0b2355d041dda9869147" dependencies = [ "endi", "enumflags2", "serde", "winnow", + "zcheapstr", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.10.1" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b949b639ab1b4bed763aa7481ba0e368af68d8b55532f8ed4bec86a59f2ca98" +checksum = "864155e69b4352db0c7f374917bf45d1e0c8d17659c8b3dbf9795f3673f8c497" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 3.0.5", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.3.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691" +checksum = "bad0294361a320b694a328460dc73add56c306150f5cb6bfafc44446120008a3" dependencies = [ "proc-macro2", "quote", "serde", - "syn", + "syn 3.0.5", "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index 47f8dea..3031a67 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cosmic-session" description = "The session manager for the COSMIC desktop environment" -version = "1.8.0" +version = "1.9.0" license = "GPL-3.0-only" edition = "2024" rust-version = "1.93" diff --git a/debian/changelog b/debian/changelog index e890468..3201725 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cosmic-session (1.9.0) noble; urgency=medium + + * Epoch 1.9.0 version update + + -- Michael Murphy Mon, 14 Sep 2026 17:54:45 +0200 + cosmic-session (1.0.0) noble; urgency=medium * Initial release From 2770d1155ae1503dfaa7807548363e77cb849e9c Mon Sep 17 00:00:00 2001 From: Christoph Dalski Date: Tue, 15 Sep 2026 16:53:45 +0200 Subject: [PATCH 05/16] fix: login shell path interpreted as string by modern shells The single quotes around the login shell path are interpreted as string by modern shells like nushell. The exec call breaks. Tested locally with nushell. Fixes: #221 --- data/start-cosmic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/start-cosmic b/data/start-cosmic index 18944fc..a5f1842 100755 --- a/data/start-cosmic +++ b/data/start-cosmic @@ -24,7 +24,7 @@ if [ -n "${SHELL}" ]; then # --in-login-shell: our flag to indicate that we don't need to recurse any further if [ "${1}" != "--in-login-shell" ]; then # `-l`: start $SHELL as a login shell so it sources the user's profile. - exec "${SHELL}" -l -c "'${0}' --in-login-shell" + exec "${SHELL}" -l -c "${0} --in-login-shell" fi fi From b712061806c4a2e49256da16fe4eece0562a412f Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 15 Sep 2026 19:15:05 -0600 Subject: [PATCH 06/16] Add cosmic-osk --- debian/control | 1 + src/main.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/debian/control b/debian/control index e8d41e0..df90ba4 100644 --- a/debian/control +++ b/debian/control @@ -27,6 +27,7 @@ Depends: cosmic-launcher, cosmic-notifications, cosmic-osd, + cosmic-osk, cosmic-panel, cosmic-randr, cosmic-screenshot, diff --git a/src/main.rs b/src/main.rs index 6c26691..ed08703 100644 --- a/src/main.rs +++ b/src/main.rs @@ -352,6 +352,9 @@ async fn start( let span = info_span!(parent: None, "cosmic-osd"); start_component("cosmic-osd", span, &process_manager, &env_vars).await; + let span = info_span!(parent: None, "cosmic-osk"); + start_component("cosmic-osk", span, &process_manager, &env_vars).await; + let span = info_span!(parent: None, "cosmic-bg"); start_component("cosmic-bg", span, &process_manager, &env_vars).await; From 2e0ee1b796ff5406ae7f477c3ad4be3ef00a45c3 Mon Sep 17 00:00:00 2001 From: r0chd Date: Wed, 9 Sep 2026 00:10:30 +0200 Subject: [PATCH 07/16] update flake.lock --- flake.lock | 41 ++++++++++++++++++----------------------- flake.nix | 5 ++--- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/flake.lock b/flake.lock index 8d2b776..67223ed 100644 --- a/flake.lock +++ b/flake.lock @@ -1,17 +1,12 @@ { "nodes": { "crane": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, "locked": { - "lastModified": 1702141249, - "narHash": "sha256-8wDpJKbDTDqFmyJfNEJOLrHYDoEzCjCbmz+lSRoU3CI=", + "lastModified": 1788465171, + "narHash": "sha256-Y1/TTVXjYXGF068IThQH9fPSZ0SIE74PABlUxnWTUH0=", "owner": "ipetkov", "repo": "crane", - "rev": "62fc1a0cbe144c1014d956e603d56bf1ffe69c7d", + "rev": "eb35abda9f232cc6610b1d1e3200d15c49b7ac54", "type": "github" }, "original": { @@ -28,11 +23,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1702189261, - "narHash": "sha256-TN6gE1eZddDhAoRrScV6Wji1Nk3uqMIDjGwN5ZesAZk=", + "lastModified": 1788865058, + "narHash": "sha256-ZkvwEHlSa46BkODMEwHCEh9hlUC2igneJ+noEUn9ww4=", "owner": "nix-community", "repo": "fenix", - "rev": "cae060dbaf53430bb2b549ced0affd54d40e6cee", + "rev": "9efa138447c5773995d98d9aafa9eba4982aceab", "type": "github" }, "original": { @@ -46,11 +41,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -61,11 +56,11 @@ }, "nix-filter": { "locked": { - "lastModified": 1701697642, - "narHash": "sha256-L217WytWZHSY8GW9Gx1A64OnNctbuDbfslaTEofXXRw=", + "lastModified": 1757882181, + "narHash": "sha256-+cCxYIh2UNalTz364p+QYmWHs0P+6wDhiWR4jDIKQIU=", "owner": "numtide", "repo": "nix-filter", - "rev": "c843418ecfd0344ecb85844b082ff5675e02c443", + "rev": "59c44d1909c72441144b93cf0f054be7fe764de5", "type": "github" }, "original": { @@ -76,11 +71,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1702206697, - "narHash": "sha256-vE9oEx3Y8TO5MnWwFlmopjHd1JoEBno+EhsfUCq5iR8=", + "lastModified": 1788865024, + "narHash": "sha256-3YkAzvtt4LoE11IcBDzPshIF3fJ0aIoILqE7dAg8CLI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "29d6c96900b9b576c2fb89491452f283aa979819", + "rev": "422d1ae605d7fcd9896412b37dc065c456c0eefb", "type": "github" }, "original": { @@ -102,11 +97,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1702153490, - "narHash": "sha256-F98s0+mUHtqiUk9iCApPTy23YMLmcKqTfsShpIPB40Q=", + "lastModified": 1788794694, + "narHash": "sha256-FROpcpM2ELawfxhW8cWuz8m3dp/0EFAFCiK+AbNw95w=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "9d87a23cdef6087c1a0c97980949e2310271a941", + "rev": "48d839420745124e85140234ce783ccd90dab24e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index eb7660f..e96ed92 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,6 @@ nix-filter.url = "github:numtide/nix-filter"; crane = { url = "github:ipetkov/crane"; - inputs.nixpkgs.follows = "nixpkgs"; }; fenix = { url = "github:nix-community/fenix"; @@ -19,7 +18,7 @@ flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (system: let pkgs = nixpkgs.legacyPackages.${system}; - craneLib = crane.lib.${system}.overrideToolchain fenix.packages.${system}.stable.toolchain; + craneLib = (crane.mkLib pkgs).overrideToolchain fenix.packages.${system}.stable.toolchain; pkgDef = { nativeBuildInputs = with pkgs; [ just pkg-config autoPatchelfHook ]; @@ -47,7 +46,7 @@ inherit cosmic-session; }; - packages.default = cosmic-session.overrideAttrs (oldAttrs: rec { + packages.default = cosmic-session.overrideAttrs (oldAttrs: { buildPhase = '' just prefix=$out xdp_cosmic=/run/current-system/sw/bin/xdg-desktop-portal-cosmic build ''; From 81dd888ec9b675356ad3db1c2d980bb308b73a5a Mon Sep 17 00:00:00 2001 From: r0chd Date: Wed, 9 Sep 2026 00:22:01 +0200 Subject: [PATCH 08/16] Fix compilation error when autostart feature is enabled without systemd --- src/main.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index ed08703..20b8651 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,8 +24,9 @@ use std::path::PathBuf; #[cfg(feature = "autostart")] use std::process::{Command, Stdio}; use std::sync::Arc; +use systemd::is_systemd_used; #[cfg(feature = "systemd")] -use systemd::{get_systemd_env, is_systemd_used, spawn_scope}; +use systemd::{get_systemd_env, spawn_scope}; use tokio::signal::unix::{SignalKind, signal}; use tokio::sync::mpsc::{Receiver, Sender}; use tokio::sync::{Mutex, oneshot}; From 1e4f10b5821982688e4a8a39f819be0bc2ad3e74 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 23 Sep 2026 12:42:27 -0400 Subject: [PATCH 09/16] Recommend cosmic-viewer and set as default image viewer --- data/cosmic-mimeapps.list | 39 ++++++++++++++++++--------------------- debian/control | 1 + 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/data/cosmic-mimeapps.list b/data/cosmic-mimeapps.list index 8637e9b..70bec90 100644 --- a/data/cosmic-mimeapps.list +++ b/data/cosmic-mimeapps.list @@ -160,27 +160,24 @@ application/vnd.debian.binary-package=com.system76.CosmicStore.desktop application/vnd.flatpak.ref=com.system76.CosmicStore.desktop x-scheme-handler/appstream=com.system76.CosmicStore.desktop x-scheme-handler/mime=com.system76.CosmicStore.desktop -image/bmp=org.gnome.eog.desktop -image/gif=org.gnome.eog.desktop -image/jpeg=org.gnome.eog.desktop -image/jpg=org.gnome.eog.desktop -image/pjpeg=org.gnome.eog.desktop -image/png=org.gnome.eog.desktop -image/svg+xml=org.gnome.eog.desktop -image/svg+xml-compressed=org.gnome.eog.desktop -image/x-bmp=org.gnome.eog.desktop -image/x-gray=org.gnome.eog.desktop -image/x-icb=org.gnome.eog.desktop -image/x-ico=org.gnome.eog.desktop -image/x-pcx=org.gnome.eog.desktop -image/x-png=org.gnome.eog.desktop -image/x-portable-anymap=org.gnome.eog.desktop -image/x-portable-bitmap=org.gnome.eog.desktop -image/x-portable-graymap=org.gnome.eog.desktop -image/x-portable-pixmap=org.gnome.eog.desktop -image/x-xbitmap=org.gnome.eog.desktop -image/x-xpixmap=org.gnome.eog.desktop -image/vnd.wap.wbmp=org.gnome.eog.desktop +image/bmp=com.system76.CosmicViewer.desktop +image/gif=com.system76.CosmicViewer.desktop +image/jpeg=com.system76.CosmicViewer.desktop +image/jpg=com.system76.CosmicViewer.desktop +image/pjpeg=com.system76.CosmicViewer.desktop +image/png=com.system76.CosmicViewer.desktop +image/svg+xml=com.system76.CosmicViewer.desktop +image/svg+xml-compressed=com.system76.CosmicViewer.desktop +image/x-bmp=com.system76.CosmicViewer.desktop +image/x-gray=com.system76.CosmicViewer.desktop +image/x-icb=com.system76.CosmicViewer.desktop +image/x-ico=com.system76.CosmicViewer.desktop +image/x-png=com.system76.CosmicViewer.desktop +image/x-portable-bitmap=com.system76.CosmicViewer.desktop +image/x-portable-graymap=com.system76.CosmicViewer.desktop +image/x-portable-pixmap=com.system76.CosmicViewer.desktop +image/x-xbitmap=com.system76.CosmicViewer.desktop +image/x-xpixmap=com.system76.CosmicViewer.desktop image/g3fax=gimp.desktop image/x-compressed-xcf=gimp.desktop image/x-fits=gimp.desktop diff --git a/debian/control b/debian/control index df90ba4..ab2e939 100644 --- a/debian/control +++ b/debian/control @@ -47,6 +47,7 @@ Recommends: cosmic-player, cosmic-store, cosmic-term, + cosmic-viewer, cosmic-wallpapers, orca, system-config-printer, From a73b324002663caf29e00b49b93f18f9428375c0 Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Thu, 24 Sep 2026 21:03:54 +0200 Subject: [PATCH 10/16] chore: fige Cargo.lock (epoch-1.9.0, [patch] locaux) Co-Authored-By: Claude Opus 5.5 (1M context) --- Cargo.lock | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 69e1a49..c6c101b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -287,7 +287,6 @@ dependencies = [ [[package]] name = "cosmic-dbus-a11y" version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" dependencies = [ "zbus", ] @@ -1711,3 +1710,63 @@ dependencies = [ "syn 3.0.5", "winnow", ] + +[[patch.unused]] +name = "smithay-clipboard" +version = "0.8.0" + +[[patch.unused]] +name = "cosmic-freedesktop-icons" +version = "0.4.0" + +[[patch.unused]] +name = "softbuffer" +version = "0.4.1" + +[[patch.unused]] +name = "dpi" +version = "0.1.2" + +[[patch.unused]] +name = "winit" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-android" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-appkit" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-common" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-core" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-orbital" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-uikit" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-wayland" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-web" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-win32" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "winit-x11" +version = "0.31.0-beta.2" From 70f9b96ca6f1f065b58d9837de9bae5abbeeab71 Mon Sep 17 00:00:00 2001 From: Jim Witte Date: Sun, 20 Sep 2026 21:08:52 -0500 Subject: [PATCH 11/16] fix: preserve configured SSH_AUTH_SOCK --- data/start-cosmic | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/data/start-cosmic b/data/start-cosmic index a5f1842..46dec47 100755 --- a/data/start-cosmic +++ b/data/start-cosmic @@ -66,13 +66,14 @@ if [ -d "$XDG_RUNTIME_DIR/keyring" ]; then echo "gnome-keyring-daemon not found in PATH" >&2 fi - # Only set SSH_AUTH_SOCK if the socket actually exists. Either - # set the correct one, or don't set one at all. Don't set the - # wrong value. - if [ -S "$XDG_RUNTIME_DIR/gcr/ssh" ]; then - export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh" - elif [ -S "$XDG_RUNTIME_DIR/keyring/ssh" ]; then - export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/keyring/ssh" + # Preserve an SSH agent configured by the user. Otherwise, use a + # Gnome Keyring SSH socket if one exists. + if [ -z "$SSH_AUTH_SOCK" ]; then + if [ -S "$XDG_RUNTIME_DIR/gcr/ssh" ]; then + export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh" + elif [ -S "$XDG_RUNTIME_DIR/keyring/ssh" ]; then + export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/keyring/ssh" + fi fi fi From ad097e98ec066ffd3406e0942966aa1b312de555 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 30 Sep 2026 09:56:15 -0600 Subject: [PATCH 12/16] COSMIC policy update Generated by cosmic-epoch scripts/policy-update.sh. Uses `policy_nobuild` branch to avoid package builds as it contains no code changes. --- .github/PULL_REQUEST_TEMPLATE.md | 16 +++++++++------- .github/workflows/require-checklist.yml | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/require-checklist.yml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index e6ca28b..63abe52 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,8 +1,10 @@ -- [ ] I have disclosed use of any AI generated code in my commit messages. - - If you are using an LLM, and do not fully understand the changes it is making to the code base, do not create a PR. - - In our experience, AI generated code often results in overly complex code that lacks enough context for a proper fix or feature inclusion. This results in considerably longer code reviews. Due to this, AI authored or partially authored PRs may be closed without comment. -- [ ] I understand these changes in full and will be able to respond to review comments. -- [ ] My change is accurately described in the commit message. -- [ ] My contribution is tested and working as described. -- [ ] I have read the [Developer Certificate of Origin](https://developercertificate.org/) and certify my contribution under its conditions. +Replace this text with a description of your changes, and why these changes are important. Read and acknowledge the list below. PRs without a completed checkbox will be closed. +--- + +- I have not included any LLM (also known as AI) generated content in this PR, including code, comments, and descriptions. +- I understand these changes in full and will be able to respond to review comments. +- My change is accurately described in the commit message. +- My contribution is tested and working as described. +- I have read the [Developer Certificate of Origin](https://developercertificate.org/) and certify my contribution under its conditions. +- [ ] I have read and followed all of the above requirements. For more information, see our [contributor guide](https://github.com/pop-os/pop/blob/master/CONTRIBUTING.md). diff --git a/.github/workflows/require-checklist.yml b/.github/workflows/require-checklist.yml new file mode 100644 index 0000000..fd4ca8c --- /dev/null +++ b/.github/workflows/require-checklist.yml @@ -0,0 +1,14 @@ +# From https://github.com/mheap/require-checklist-action, license MIT +name: Require Checklist + +on: + pull_request: + types: [opened, edited, synchronize] + +jobs: + job1: + runs-on: ubuntu-latest + steps: + - uses: mheap/require-checklist-action@v2 + with: + requireChecklist: true From a692a3006a35084f9daf543fb9d461f9ac68df2e Mon Sep 17 00:00:00 2001 From: Christoph Dalski Date: Mon, 14 Sep 2026 19:24:18 +0200 Subject: [PATCH 13/16] fix: pass systemd user env vars to cosmic-session Read the env vars of the systemd user manager before cosmic-comp starts and pass them to it. fixes #171 --- src/comp.rs | 7 +++++- src/main.rs | 40 +++++++++------------------------ src/systemd.rs | 61 +++++++++++++++++++++++++++++++------------------- 3 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/comp.rs b/src/comp.rs index 8457d08..31ef79a 100644 --- a/src/comp.rs +++ b/src/comp.rs @@ -99,6 +99,7 @@ pub fn run_compositor( process_manager: &ProcessManager, exec: String, args: Vec, + env: Vec<(String, String)>, _token: CancellationToken, env_tx: oneshot::Sender>, session_dbus_tx: mpsc::Sender, @@ -119,6 +120,7 @@ pub fn run_compositor( OwnedFd::from(std_stream) }; mark_as_not_cloexec(&comp).expect("Failed to mark fd as not cloexec"); + Ok(tokio::spawn(async move { // Create a new process handler for cosmic-comp, with our compositor socket's // file descriptor as the `COSMIC_SESSION_SOCK` environment variable. @@ -127,7 +129,10 @@ pub fn run_compositor( Process::new() .with_executable(exec) .with_args(args) - .with_env([("COSMIC_SESSION_SOCK", comp.as_raw_fd().to_string())]) + .with_env(env.into_iter().chain([( + "COSMIC_SESSION_SOCK".to_string(), + comp.as_raw_fd().to_string(), + )])) .with_on_exit(move |pman, _, err_code, _will_restart| { let session_dbus_tx = session_dbus_tx.clone(); async move { diff --git a/src/main.rs b/src/main.rs index 20b8651..989eb44 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,9 +24,9 @@ use std::path::PathBuf; #[cfg(feature = "autostart")] use std::process::{Command, Stdio}; use std::sync::Arc; -use systemd::is_systemd_used; #[cfg(feature = "systemd")] -use systemd::{get_systemd_env, spawn_scope}; +use systemd::spawn_scope; +use systemd::{get_systemd_env, is_systemd_used}; use tokio::signal::unix::{SignalKind, signal}; use tokio::sync::mpsc::{Receiver, Sender}; use tokio::sync::{Mutex, oneshot}; @@ -143,10 +143,12 @@ async fn start( .await; let token = CancellationToken::new(); let (env_tx, env_rx) = oneshot::channel(); + let systemd_env = get_systemd_env().await; let compositor_handle = comp::run_compositor( &process_manager, executable.clone(), args, + systemd_env.clone(), token.child_token(), env_tx, session_tx, @@ -163,8 +165,12 @@ async fn start( env_vars ); - // now that cosmic-comp is ready, set XDG_SESSION_TYPE=wayland for new processes - env_vars.push(("XDG_SESSION_TYPE".to_string(), "wayland".to_string())); + // now that cosmic-comp is ready, extend the env vars with the systemd_env and set XDG_SESSION_TYPE=wayland for new processes + env_vars.extend( + systemd_env + .into_iter() + .chain([("XDG_SESSION_TYPE".to_string(), "wayland".to_string())]), + ); systemd::set_systemd_environment("XDG_SESSION_TYPE", "wayland").await; // expose the session version @@ -176,32 +182,6 @@ async fn start( #[cfg(feature = "systemd")] let _inhibit_fd = if *is_systemd_used() { - match get_systemd_env().await { - Ok(env) => { - for systemd_env in env { - // Only update the envvar if unset - if std::env::var_os(&systemd_env.key).is_none() { - // Blacklist of envvars that we shouldn't touch (taken from KDE) - if (!systemd_env.key.starts_with("XDG_") - || systemd_env.key == "XDG_DATA_DIRS" - || systemd_env.key == "XDG_CONFIG_DIRS") - && systemd_env.key != "DISPLAY" - && systemd_env.key != "XAUTHORITY" - && systemd_env.key != "WAYLAND_DISPLAY" - && systemd_env.key != "WAYLAND_SOCKET" - && systemd_env.key != "_" - && systemd_env.key != "SHELL" - && systemd_env.key != "SHLVL" - { - env_vars.push((systemd_env.key, systemd_env.value)); - } - } - } - } - Err(err) => { - warn!("Failed to sync systemd environment {}.", err); - } - }; #[cfg(feature = "logind")] match zbus::Connection::system().await { Ok(connection) => match logind_zbus::manager::ManagerProxy::new(&connection).await { diff --git a/src/systemd.rs b/src/systemd.rs index cbf64d5..1bad338 100644 --- a/src/systemd.rs +++ b/src/systemd.rs @@ -4,24 +4,10 @@ use std::path::Path; use std::process::{Command, Stdio}; use std::sync::OnceLock; +#[cfg(feature = "systemd")] use zbus::Connection; use zbus::zvariant::{Array, OwnedValue}; -#[derive(Debug)] -pub struct EnvVar { - pub key: String, - pub value: String, -} - -impl From<(&str, &str)> for EnvVar { - fn from(val: (&str, &str)) -> Self { - EnvVar { - key: val.0.to_owned(), - value: val.1.to_owned(), - } - } -} - #[cfg(feature = "systemd")] use zbus_systemd::systemd1::ManagerProxy as SystemdManagerProxy; @@ -54,18 +40,47 @@ pub fn is_systemd_used() -> &'static bool { } #[cfg(feature = "systemd")] -pub async fn get_systemd_env() -> Result, zbus::Error> { +async fn load_systemd_env() -> zbus::Result> { let connection = Connection::session().await?; let systemd_manager = SystemdManagerProxy::new(&connection).await?; - let systemd_env = systemd_manager.environment().await?; + systemd_manager.environment().await +} - let mut out: Vec = Vec::new(); - for i in systemd_env { - if let Some(b) = i.split_once("=") { - out.push(b.into()); - } +/// Get the systemd user manager environment variables. +/// Is Empty if systemd isn't used. +pub async fn get_systemd_env() -> Vec<(String, String)> { + #[cfg(feature = "systemd")] + if *is_systemd_used() { + return match load_systemd_env().await { + Ok(env) => { + env.iter() + // split into key value pairs + .filter_map(|var| var.split_once("=")) + .filter(|&(key, _value)| { + // Only update the envvar if unset + std::env::var_os(key).is_none() + // Blocklist of envvars that we shouldn't touch (taken from KDE) + && (!key.starts_with("XDG_") + || key == "XDG_DATA_DIRS" + || key == "XDG_CONFIG_DIRS") + && key != "DISPLAY" + && key != "XAUTHORITY" + && key != "WAYLAND_DISPLAY" + && key != "WAYLAND_SOCKET" + && key != "_" + && key != "SHELL" + && key != "SHLVL" + }) + .map(|(key, value)| (key.to_owned(), value.to_owned())) + .collect() + } + Err(err) => { + warn!("Failed to sync systemd environment {}.", err); + Vec::new() + } + }; } - Ok(out) + Vec::new() } #[cfg(feature = "systemd")] From 8b6cd49f4c8315cdcf34bff7c265e3e73e6d9d6e Mon Sep 17 00:00:00 2001 From: Josh Megnauth Date: Thu, 17 Sep 2026 21:39:23 -0400 Subject: [PATCH 14/16] Fix building without systemd + minor clippy Some of the feature gates were out of date for builds precluding systemd, logind, or both. I also cleaned up the systemd/logind gates in general as well as fixed a few very minor clippy lints. --- Cargo.toml | 4 +- src/main.rs | 109 ++++++++++++++++++++++++++++--------------------- src/systemd.rs | 51 ++++++++--------------- 3 files changed, 80 insertions(+), 84 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3031a67..22c764f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,6 +46,6 @@ logind-zbus = { version = "5.3.2", optional = true } [features] systemd = ["dep:zbus_systemd", "dep:tracing-journald"] -logind = ["systemd", "logind-zbus"] -default = ["logind"] +logind = ["dep:logind-zbus"] +default = ["logind", "systemd"] autostart = ["dep:shell-words", "dep:dirs", "dep:freedesktop-desktop-entry"] diff --git a/src/main.rs b/src/main.rs index 989eb44..a081118 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,7 @@ mod comp; mod notifications; mod process; mod service; +#[cfg(feature = "systemd")] mod systemd; use color_eyre::Result; @@ -15,18 +16,13 @@ use launch_pad::ProcessManager; use launch_pad::process::Process; use service::SessionRequest; use std::borrow::Cow; -#[cfg(feature = "autostart")] -use std::collections::HashSet; use std::env; use std::os::fd::AsRawFd; -#[cfg(feature = "autostart")] -use std::path::PathBuf; -#[cfg(feature = "autostart")] -use std::process::{Command, Stdio}; use std::sync::Arc; +#[cfg(any(feature = "autostart", feature = "systemd"))] +use std::{path::Path, sync::OnceLock}; #[cfg(feature = "systemd")] -use systemd::spawn_scope; -use systemd::{get_systemd_env, is_systemd_used}; +use systemd::{get_systemd_env, spawn_scope}; use tokio::signal::unix::{SignalKind, signal}; use tokio::sync::mpsc::{Receiver, Sender}; use tokio::sync::{Mutex, oneshot}; @@ -36,14 +32,20 @@ use tracing::Instrument; use tracing::metadata::LevelFilter; use tracing_subscriber::prelude::*; use tracing_subscriber::{EnvFilter, fmt}; +#[cfg(feature = "autostart")] +use { + std::collections::HashSet, + std::path::PathBuf, + std::process::{Command, Stdio}, +}; use crate::notifications::{ DAEMON_NOTIFICATIONS_FD, PANEL_NOTIFICATIONS_FD, notifications_process, }; #[cfg(feature = "autostart")] -const AUTOSTART_DIR: &'static str = "autostart"; +const AUTOSTART_DIR: &str = "autostart"; #[cfg(feature = "autostart")] -const ENVIRONMENT_NAME: &'static str = "COSMIC"; +const ENVIRONMENT_NAME: &str = "COSMIC"; #[tokio::main(flavor = "current_thread")] async fn main() -> Result<()> { @@ -143,7 +145,15 @@ async fn start( .await; let token = CancellationToken::new(); let (env_tx, env_rx) = oneshot::channel(); - let systemd_env = get_systemd_env().await; + + #[cfg(feature = "systemd")] + let systemd_env = if *is_systemd_used() { + get_systemd_env().await + } else { + Vec::new() + }; + #[cfg(not(feature = "systemd"))] + let systemd_env = Vec::new(); let compositor_handle = comp::run_compositor( &process_manager, executable.clone(), @@ -165,12 +175,13 @@ async fn start( env_vars ); - // now that cosmic-comp is ready, extend the env vars with the systemd_env and set XDG_SESSION_TYPE=wayland for new processes + // now that cosmic-comp is ready, set XDG_SESSION_TYPE=wayland for new processes env_vars.extend( systemd_env .into_iter() .chain([("XDG_SESSION_TYPE".to_string(), "wayland".to_string())]), ); + #[cfg(feature = "systemd")] systemd::set_systemd_environment("XDG_SESSION_TYPE", "wayland").await; // expose the session version @@ -178,42 +189,36 @@ async fn start( "COSMIC_VERSION".to_string(), env!("CARGO_PKG_VERSION").to_string(), )); + #[cfg(feature = "systemd")] systemd::set_systemd_environment("COSMIC_VERSION", env!("CARGO_PKG_VERSION")).await; - #[cfg(feature = "systemd")] - let _inhibit_fd = if *is_systemd_used() { - #[cfg(feature = "logind")] - match zbus::Connection::system().await { - Ok(connection) => match logind_zbus::manager::ManagerProxy::new(&connection).await { - Ok(proxy) => match proxy - .inhibit( - logind_zbus::manager::InhibitType::HandlePowerKey, - "Cosmic Session", - "Show confirmation dialog.", - "block", - ) - .await - { - Ok(fd) => Some(fd), - Err(err) => { - error!("Failed to inhibit power key {err:?}"); - None - } - }, + #[cfg(feature = "logind")] + let _inhibit_fd = match zbus::Connection::system().await { + Ok(connection) => match logind_zbus::manager::ManagerProxy::new(&connection).await { + Ok(proxy) => match proxy + .inhibit( + logind_zbus::manager::InhibitType::HandlePowerKey, + "Cosmic Session", + "Show confirmation dialog.", + "block", + ) + .await + { + Ok(fd) => Some(fd), Err(err) => { - error!("Failed to connect to logind manager {err:?}"); + error!("Failed to inhibit power key {err:?}"); None } }, Err(err) => { - error!("Failed to connect to system dbus {err:?}"); + error!("Failed to connect to logind manager {err:?}"); None } + }, + Err(err) => { + error!("Failed to connect to system dbus {err:?}"); + None } - #[cfg(not(feature = "logind"))] - None - } else { - None }; let stdout_span = info_span!(parent: None, "cosmic-settings-daemon"); @@ -254,8 +259,10 @@ async fn start( // - cosmic-comp is ready // - we've set any related variables // - cosmic-settings-daemon is ready + #[cfg(feature = "systemd")] systemd::start_systemd_target().await; // Always stop the target when the process exits or panics. + #[cfg(feature = "systemd")] scopeguard::defer! { systemd::stop_systemd_target(); } @@ -388,17 +395,17 @@ async fn start( } // skip if we have an OnlyShowIn entry that doesn't include COSMIC - if let Some(only_show_in) = entry.only_show_in() { - if !only_show_in.contains(&ENVIRONMENT_NAME) { - continue; - } + if let Some(only_show_in) = entry.only_show_in() + && !only_show_in.contains(&ENVIRONMENT_NAME) + { + continue; } // ... OR we have a NotShowIn entry that includes COSMIC - if let Some(not_show_in) = entry.not_show_in() { - if not_show_in.contains(&ENVIRONMENT_NAME) { - continue; - } + if let Some(not_show_in) = entry.not_show_in() + && not_show_in.contains(&ENVIRONMENT_NAME) + { + continue; } info!( @@ -417,7 +424,7 @@ async fn start( .collect::>(); // escape them - let escaped_args = shell_words::split(&*filtered_args.join(" ")); + let escaped_args = shell_words::split(&filtered_args.join(" ")); if let Ok(args) = escaped_args { info!("trying to start {} {}", program_name, args.join(" ")); @@ -556,3 +563,11 @@ async fn start_component( error!("failed to start {}: {}", cmd, err); } } + +/// Determine if systemd is used as the init system. This should work on all +/// linux distributions. +#[cfg(any(feature = "autostart", feature = "systemd"))] +fn is_systemd_used() -> &'static bool { + static IS_SYSTEMD_USED: OnceLock = OnceLock::new(); + IS_SYSTEMD_USED.get_or_init(|| Path::new("/run/systemd/system").exists()) +} diff --git a/src/systemd.rs b/src/systemd.rs index 1bad338..77c03e9 100644 --- a/src/systemd.rs +++ b/src/systemd.rs @@ -1,14 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-only -use std::path::Path; use std::process::{Command, Stdio}; -use std::sync::OnceLock; -#[cfg(feature = "systemd")] use zbus::Connection; use zbus::zvariant::{Array, OwnedValue}; - -#[cfg(feature = "systemd")] use zbus_systemd::systemd1::ManagerProxy as SystemdManagerProxy; pub async fn set_systemd_environment(key: &str, value: &str) { @@ -32,14 +27,6 @@ pub fn stop_systemd_target() { ) } -/// Determine if systemd is used as the init system. This should work on all -/// linux distributions. -pub fn is_systemd_used() -> &'static bool { - static IS_SYSTEMD_USED: OnceLock = OnceLock::new(); - IS_SYSTEMD_USED.get_or_init(|| Path::new("/run/systemd/system").exists()) -} - -#[cfg(feature = "systemd")] async fn load_systemd_env() -> zbus::Result> { let connection = Connection::session().await?; let systemd_manager = SystemdManagerProxy::new(&connection).await?; @@ -47,18 +34,15 @@ async fn load_systemd_env() -> zbus::Result> { } /// Get the systemd user manager environment variables. -/// Is Empty if systemd isn't used. pub async fn get_systemd_env() -> Vec<(String, String)> { - #[cfg(feature = "systemd")] - if *is_systemd_used() { - return match load_systemd_env().await { - Ok(env) => { - env.iter() - // split into key value pairs - .filter_map(|var| var.split_once("=")) - .filter(|&(key, _value)| { - // Only update the envvar if unset - std::env::var_os(key).is_none() + match load_systemd_env().await { + Ok(env) => { + env.iter() + // split into key value pairs + .filter_map(|var| var.split_once("=")) + .filter(|&(key, _value)| { + // Only update the envvar if unset + std::env::var_os(key).is_none() // Blocklist of envvars that we shouldn't touch (taken from KDE) && (!key.starts_with("XDG_") || key == "XDG_DATA_DIRS" @@ -70,20 +54,17 @@ pub async fn get_systemd_env() -> Vec<(String, String)> { && key != "_" && key != "SHELL" && key != "SHLVL" - }) - .map(|(key, value)| (key.to_owned(), value.to_owned())) - .collect() - } - Err(err) => { - warn!("Failed to sync systemd environment {}.", err); - Vec::new() - } - }; + }) + .map(|(key, value)| (key.to_owned(), value.to_owned())) + .collect() + } + Err(err) => { + warn!("Failed to sync systemd environment {}.", err); + Vec::new() + } } - Vec::new() } -#[cfg(feature = "systemd")] /// Spawn a systemd scope unit with the given name and PIDs. pub async fn spawn_scope(mut command: String, pids: Vec) -> Result<(), zbus::Error> { let connection = Connection::session().await?; From 8093b59bb1262b0612d814e6540ba936303f735a Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Mon, 5 Oct 2026 21:26:34 +0200 Subject: [PATCH 15/16] Epoch 1.10.0 version update [x] Generated by cosmic-epoch scripts/version-update.sh --- Cargo.lock | 136 +++++++++++++++++++----------------------- Cargo.toml | 2 +- cargo.just | 70 ++++++++++++++++++++++ debian/changelog | 6 ++ debian/source/options | 6 ++ 5 files changed, 145 insertions(+), 75 deletions(-) create mode 100644 cargo.just create mode 100644 debian/source/options diff --git a/Cargo.lock b/Cargo.lock index 69e1a49..7279a7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -113,13 +113,13 @@ dependencies = [ [[package]] name = "async-recursion" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +checksum = "4f8abc12baad266b1c8cec146854c195b5864b4221d4b2ca7296a7ae82d9e451" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.6", ] [[package]] @@ -154,7 +154,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", ] [[package]] @@ -234,9 +234,9 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cc" -version = "1.4.6" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +checksum = "f74872d07caf508b30a21f6836e7d7016a2eaf7d9ff4f48deaa58cd8a0407630" dependencies = [ "find-msvc-tools", "shlex", @@ -244,9 +244,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "color-eyre" @@ -294,7 +294,7 @@ dependencies = [ [[package]] name = "cosmic-session" -version = "1.9.0" +version = "1.10.0" dependencies = [ "color-eyre", "cosmic-dbus-a11y", @@ -427,9 +427,9 @@ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "find-msvc-tools" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" +checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" [[package]] name = "freedesktop-desktop-entry" @@ -479,7 +479,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", ] [[package]] @@ -507,17 +507,6 @@ dependencies = [ "slab", ] -[[package]] -name = "getrandom" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - [[package]] name = "getrandom" version = "0.3.4" @@ -609,9 +598,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.105" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5" dependencies = [ "cfg-if", "futures-util", @@ -636,21 +625,21 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +checksum = "20870f649af7073d53e38067b2a84312175d56ea15217e1b15bc83506ec50afb" [[package]] name = "libc" -version = "0.2.189" +version = "0.2.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" +checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78" [[package]] name = "libredox" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a" +checksum = "61ff90caf6077a803a240f62fdbe88645a890bbca49ef8174c3cb0404362171d" dependencies = [ "libc", ] @@ -753,9 +742,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.3" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" +checksum = "1788edb87fdc09c7e26304471e2f5be8cdefb1b6930d6e3985fc02ff53bf86ee" dependencies = [ "libc", "wasi", @@ -985,11 +974,10 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +checksum = "60dc65c0ff1a7ae1294b0c67b9f14baf70b644404010370171787bfac1038fc0" dependencies = [ - "getrandom 0.2.17", "libredox", "thiserror", ] @@ -1031,9 +1019,9 @@ checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" [[package]] name = "rustix" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" dependencies = [ "bitflags", "errno", @@ -1081,7 +1069,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", ] [[package]] @@ -1105,7 +1093,7 @@ checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", ] [[package]] @@ -1156,9 +1144,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.16.1" +version = "1.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" +checksum = "f9395f0f0eee849a9b707b2f06bb92a6a422090e2123bb2ef8e87a0e61892a8e" [[package]] name = "socket2" @@ -1183,9 +1171,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" dependencies = [ "proc-macro2", "quote", @@ -1219,22 +1207,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.20" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.20" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", ] [[package]] @@ -1248,9 +1236,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.53.1" +version = "1.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +checksum = "e95f91fcc7a621e8b030f6aa23c71fe9838ae2fb4d8118b75602a328f5144044" dependencies = [ "bytes", "libc", @@ -1272,7 +1260,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", ] [[package]] @@ -1413,21 +1401,21 @@ dependencies = [ [[package]] name = "unicase" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" +checksum = "357cc3acc6a036009fd6c973ed009037c732d60d0b4f6c673e9041497482a28f" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" [[package]] name = "uuid" -version = "1.26.1" +version = "1.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +checksum = "97277d36b9c3ace13e58fa6e753f8b0bbbf302a18dd193240d70f9e29681059a" dependencies = [ "js-sys", "serde_core", @@ -1463,9 +1451,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409" dependencies = [ "cfg-if", "once_cell", @@ -1476,9 +1464,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1486,22 +1474,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6" dependencies = [ "unicode-ident", ] @@ -1609,7 +1597,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", "zbus_names", "zvariant", "zvariant_utils", @@ -1647,18 +1635,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.57" +version = "0.8.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +checksum = "6df92bf3d9227be3d53173901ddbffac2babc27ae50f397776ffd6dc33f800cb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.57" +version = "0.8.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +checksum = "ac4f328cf2f05d084e496c3e9c3f33ed0a183656a16e1fcec4d464d8373aec82" dependencies = [ "proc-macro2", "quote", @@ -1695,7 +1683,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.6", "zvariant_utils", ] @@ -1708,6 +1696,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 3.0.5", + "syn 3.0.6", "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index 22c764f..936aa30 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cosmic-session" description = "The session manager for the COSMIC desktop environment" -version = "1.9.0" +version = "1.10.0" license = "GPL-3.0-only" edition = "2024" rust-version = "1.93" diff --git a/cargo.just b/cargo.just new file mode 100644 index 0000000..fb09e1e --- /dev/null +++ b/cargo.just @@ -0,0 +1,70 @@ +cargo-target-dir := env('CARGO_TARGET_DIR', 'target') + +# Compile with debug profile +[no-cd] +build-debug *args: + cargo build {{args}} + +# Compile with release profile +[no-cd] +build-release *args: (build-debug '--release' args) + +# Compile with a vendored tarball +[no-cd] +build-vendored *args: vendor-extract (build-release '--frozen --offline' args) + +# Check for errors and linter warnings +[no-cd] +check *args: + cargo clippy --all-features {{args}} -- -W clippy::pedantic + +# Runs a check with JSON message format for IDE integration +[no-cd] +check-json: (check '--message-format=json') + +# Remove Cargo build artifacts +[no-cd] +clean: + cargo clean + +# Also remove .cargo and vendored dependencies +[no-cd] +clean-dist: clean + rm -rf .cargo vendor vendor.tar target + +# Run the application for testing purposes +[no-cd] +run *args: + cargo run {{args}} + +# Run `cargo test` +[no-cd] +test *args: + cargo test {{args}} + +# Vendor Cargo dependencies locally +[no-cd] +vendor: + #!/usr/bin/env bash + mkdir -p .cargo + cargo vendor --locked | head -n -1 > .cargo/config.toml + echo 'directory = "vendor"' >> .cargo/config.toml + echo >> .cargo/config.toml + echo '[env]' >> .cargo/config.toml + if [ -n "${SOURCE_DATE_EPOCH}" ] + then + source_date="$(date -d "@${SOURCE_DATE_EPOCH}" "+%Y-%m-%d")" + echo "VERGEN_GIT_COMMIT_DATE = \"${source_date}\"" >> .cargo/config.toml + fi + if [ -n "${SOURCE_GIT_HASH}" ] + then + echo "VERGEN_GIT_SHA = \"${SOURCE_GIT_HASH}\"" >> .cargo/config.toml + fi + tar pcf vendor.tar .cargo vendor + rm -rf .cargo vendor + +# Extracts vendored dependencies +[no-cd] +vendor-extract: + rm -rf vendor + tar pxf vendor.tar diff --git a/debian/changelog b/debian/changelog index 3201725..d205827 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cosmic-session (1.10.0) noble; urgency=medium + + * Epoch 1.10.0 version update + + -- Michael Murphy Mon, 05 Oct 2026 21:26:30 +0200 + cosmic-session (1.9.0) noble; urgency=medium * Epoch 1.9.0 version update diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 0000000..2f8c4a1 --- /dev/null +++ b/debian/source/options @@ -0,0 +1,6 @@ +tar-ignore=.github +tar-ignore=target/.rustc_info.json +tar-ignore=target/CACHEDIR.TAG +tar-ignore=target/debug +tar-ignore=target/release +tar-ignore=vendor From 7d9d67e0b21800a98c1fb99b3fe16b468f31b044 Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Sun, 11 Oct 2026 07:02:21 +0200 Subject: [PATCH 16/16] chore: fige Cargo.lock (epoch-1.10.0, [patch] locaux) Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f7710a3..f85b487 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1699,10 +1699,6 @@ dependencies = [ "winnow", ] -[[patch.unused]] -name = "smithay-clipboard" -version = "0.8.0" - [[patch.unused]] name = "cosmic-freedesktop-icons" version = "0.4.0" @@ -1711,6 +1707,10 @@ version = "0.4.0" name = "softbuffer" version = "0.4.1" +[[patch.unused]] +name = "smithay-clipboard" +version = "0.8.0" + [[patch.unused]] name = "dpi" version = "0.1.2"