From 31ecfd29a95f08e8d8299e3706ba23008d57eee2 Mon Sep 17 00:00:00 2001 From: Vasilito Date: Fri, 17 Apr 2026 13:45:00 +0100 Subject: [PATCH] Add step-by-step D-Bus connection diagnostics to sessiond and upower Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- .../redbear-sessiond/source/src/main.rs | 19 ++++++---- .../system/redbear-upower/source/src/main.rs | 35 +++++++++++-------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/local/recipes/system/redbear-sessiond/source/src/main.rs b/local/recipes/system/redbear-sessiond/source/src/main.rs index 39592223..296b55b2 100644 --- a/local/recipes/system/redbear-sessiond/source/src/main.rs +++ b/local/recipes/system/redbear-sessiond/source/src/main.rs @@ -102,13 +102,18 @@ async fn run_daemon() -> Result<(), Box> { eprintln!("redbear-sessiond: starter address={:?}", env::var("DBUS_STARTER_ADDRESS").ok()); eprintln!("redbear-sessiond: building D-Bus connection"); - let connection = system_connection_builder()? - .name(BUS_NAME)? - .serve_at(MANAGER_PATH, manager)? - .serve_at(SESSION_PATH, session)? - .serve_at(SEAT_PATH, seat)? - .build() - .await?; + let mut builder = system_connection_builder()?; + eprintln!("redbear-sessiond: builder created"); + builder = builder.name(BUS_NAME)?; + eprintln!("redbear-sessiond: bus name reserved"); + builder = builder.serve_at(MANAGER_PATH, manager)?; + eprintln!("redbear-sessiond: served manager path {MANAGER_PATH}"); + builder = builder.serve_at(SESSION_PATH, session)?; + eprintln!("redbear-sessiond: served session path {SESSION_PATH}"); + builder = builder.serve_at(SEAT_PATH, seat)?; + eprintln!("redbear-sessiond: served seat path {SEAT_PATH}"); + eprintln!("redbear-sessiond: finalizing connection build"); + let connection = builder.build().await?; eprintln!("redbear-sessiond: registered {BUS_NAME} on the system bus"); diff --git a/local/recipes/system/redbear-upower/source/src/main.rs b/local/recipes/system/redbear-upower/source/src/main.rs index 0e171491..106e6a77 100644 --- a/local/recipes/system/redbear-upower/source/src/main.rs +++ b/local/recipes/system/redbear-upower/source/src/main.rs @@ -465,23 +465,28 @@ async fn run_daemon() -> Result<(), Box> { eprintln!("redbear-upower: starter address={:?}", env::var("DBUS_STARTER_ADDRESS").ok()); eprintln!("redbear-upower: building D-Bus connection"); - let mut builder = system_connection_builder()? - .name(BUS_NAME)? - .serve_at( - UPOWER_PATH, - UPowerDaemon { - runtime: runtime.clone(), - }, - )? - .serve_at( - DISPLAY_DEVICE_PATH, - DisplayDevice { - runtime: runtime.clone(), - }, - )?; + let mut builder = system_connection_builder()?; + eprintln!("redbear-upower: builder created"); + builder = builder.name(BUS_NAME)?; + eprintln!("redbear-upower: bus name reserved"); + builder = builder.serve_at( + UPOWER_PATH, + UPowerDaemon { + runtime: runtime.clone(), + }, + )?; + eprintln!("redbear-upower: served manager path {UPOWER_PATH}"); + builder = builder.serve_at( + DISPLAY_DEVICE_PATH, + DisplayDevice { + runtime: runtime.clone(), + }, + )?; + eprintln!("redbear-upower: served display device path {DISPLAY_DEVICE_PATH}"); for adapter_id in &runtime.adapter_ids { let path = format!("/org/freedesktop/UPower/devices/line_power_{adapter_id}"); + eprintln!("redbear-upower: serving adapter path {path}"); builder = builder.serve_at( path, PowerDevice { @@ -492,6 +497,7 @@ async fn run_daemon() -> Result<(), Box> { } for battery_id in &runtime.battery_ids { let path = format!("/org/freedesktop/UPower/devices/battery_{battery_id}"); + eprintln!("redbear-upower: serving battery path {path}"); builder = builder.serve_at( path, PowerDevice { @@ -501,6 +507,7 @@ async fn run_daemon() -> Result<(), Box> { )?; } + eprintln!("redbear-upower: finalizing connection build"); let connection = builder.build().await?; eprintln!("redbear-upower: registered {BUS_NAME} on the system bus");