From ef5b7379dc444d33b01a7faec2bd6592d3188357 Mon Sep 17 00:00:00 2001 From: Sertonix Date: Tue, 7 Jul 2026 23:37:51 +0200 Subject: [PATCH] Upgrade pipewire to 0.10.0 Fixes a few issues when compiling on 32-bit systems --- Cargo.lock | 47 ++++++++--------------------------- Cargo.toml | 2 +- src/screencasting/pw_utils.rs | 3 ++- 3 files changed, 14 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 83f4539e94..b77d70dfb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -576,7 +576,7 @@ dependencies = [ "async-task", "bitflags 2.11.1", "futures-io", - "nix 0.31.2", + "nix", "polling", "rustix 1.1.4", "slab", @@ -775,15 +775,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "convert_case" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "cookie-factory" version = "0.3.3" @@ -2056,26 +2047,25 @@ dependencies = [ [[package]] name = "libspa" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b8cfa2a7656627b4c92c6b9ef929433acd673d5ab3708cda1b18478ac00df4" +checksum = "2909f3be29d674e7f10604aff18d1bbe1bb03c4cd61c8a8ba19c0b1d162f7d4e" dependencies = [ "bitflags 2.11.1", "cc", - "convert_case", "cookie-factory", "libc", "libspa-sys", - "nix 0.30.1", "nom 8.0.0", + "rustix 1.1.4", "system-deps", ] [[package]] name = "libspa-sys" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901049455d2eb6decf9058235d745237952f4804bc584c5fcb41412e6adcc6e0" +checksum = "69ad52764fca54818486f3cf75afec844d1f1a1568c24dcee25d41b1ab007dda" dependencies = [ "bindgen", "cc", @@ -2340,18 +2330,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "nix" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" -dependencies = [ - "bitflags 2.11.1", - "cfg-if", - "cfg_aliases", - "libc", -] - [[package]] name = "nix" version = "0.31.2" @@ -2832,26 +2810,23 @@ dependencies = [ [[package]] name = "pipewire" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9688b89abf11d756499f7c6190711d6dbe5a3acdb30c8fbf001d6596d06a8d44" +checksum = "8585aba8a52ad74ccc633b8e293c1dc4277976bd5d510b925533f34fd6685f38" dependencies = [ - "anyhow", "bitflags 2.11.1", "libc", "libspa", "libspa-sys", - "nix 0.30.1", - "once_cell", "pipewire-sys", - "thiserror 2.0.18", + "rustix 1.1.4", ] [[package]] name = "pipewire-sys" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb028afee0d6ca17020b090e3b8fa2d7de23305aef975c7e5192a5050246ea36" +checksum = "f2089f245b548723e60325773c27f586b7a2372c79ea941b246cd0d654706adc" dependencies = [ "bindgen", "libspa-sys", diff --git a/Cargo.toml b/Cargo.toml index 8e343be3b0..49a75e3e8e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,7 +80,7 @@ niri-ipc = { version = "26.4.0", path = "niri-ipc", features = ["clap"] } ordered-float = "5.3.0" pango = { version = "0.21.5", features = ["v1_44"] } pangocairo = "0.21.5" -pipewire = { version = "0.9.2", optional = true, features = ["v0_3_33"] } +pipewire = { version = "0.10.0", optional = true, features = ["v0_3_33"] } png = "0.18.1" profiling = "1.0.17" sd-notify = "0.5.0" diff --git a/src/screencasting/pw_utils.rs b/src/screencasting/pw_utils.rs index cd6908dd1f..76522926e9 100644 --- a/src/screencasting/pw_utils.rs +++ b/src/screencasting/pw_utils.rs @@ -14,6 +14,7 @@ use calloop::timer::{TimeoutAction, Timer}; use calloop::RegistrationToken; use pipewire::context::ContextRc; use pipewire::core::{CoreRc, PW_ID_CORE}; +use pipewire::loop_::Timeout; use pipewire::main_loop::MainLoopRc; use pipewire::properties::PropertiesBox; use pipewire::spa::buffer::DataType; @@ -260,7 +261,7 @@ impl PipeWire { let token = event_loop .insert_source(generic, move |_, wrapper, _| { let _span = tracy_client::span!("pipewire iteration"); - wrapper.0.loop_().iterate(Duration::ZERO); + wrapper.0.loop_().iterate(Timeout::None); Ok(PostAction::Continue) }) .unwrap();