fix(dbus): Update systemd interface and path handling

Revised DBus interactions to explicitly use `org.freedesktop.systemd1`
interface and path. This ensures that the correct interfaces are used
and bypasses ".systemd1" magic from the library `pydbus`.
This commit is contained in:
2025-04-22 10:57:42 +02:00
parent 463a61a001
commit 41d9b13e71

View File

@@ -324,7 +324,11 @@ def configure_gui(action: ConfigActions):
return gui_available return gui_available
bus = SystemBus() bus = SystemBus()
systemd_manager = bus.get(".systemd1") systemd = bus.get(
"org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
)
systemd_manager = systemd["org.freedesktop.systemd1.Manager"]
if action is ConfigActions.ENABLE: if action is ConfigActions.ENABLE:
systemd_manager.SetDefaultTarget("graphical.target", True) systemd_manager.SetDefaultTarget("graphical.target", True)
@@ -384,7 +388,11 @@ def get_rfkill_index(device_class_path: str) -> Optional[int]:
def simple_systemd(action: ConfigActions, unit: str): def simple_systemd(action: ConfigActions, unit: str):
bus = SystemBus() bus = SystemBus()
systemd_manager = bus.get(".systemd1") systemd = bus.get(
"org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
)
systemd_manager = systemd["org.freedesktop.systemd1.Manager"]
if action is ConfigActions.ENABLE: if action is ConfigActions.ENABLE:
systemd_manager.UnmaskUnitFiles([unit], False) systemd_manager.UnmaskUnitFiles([unit], False)
@@ -398,7 +406,7 @@ def simple_systemd(action: ConfigActions, unit: str):
elif action is ConfigActions.STATUS: elif action is ConfigActions.STATUS:
try: try:
unit_path = systemd_manager.LoadUnit(unit) unit_path = systemd_manager.LoadUnit(unit)
properties = bus.get(".systemd1", unit_path) properties = bus.get("org.freedesktop.systemd1", unit_path)
except Exception: except Exception:
log.warning(f"could not get systemd unit {unit}") log.warning(f"could not get systemd unit {unit}")
return False return False
@@ -408,7 +416,7 @@ def simple_systemd(action: ConfigActions, unit: str):
elif action is ConfigActions.AVAILABLE: elif action is ConfigActions.AVAILABLE:
try: try:
unit_path = systemd_manager.LoadUnit(unit) unit_path = systemd_manager.LoadUnit(unit)
properties = bus.get(".systemd1", unit_path) properties = bus.get("org.freedesktop.systemd1", unit_path)
except Exception: except Exception:
log.warning(f"could not get systemd unit {unit}") log.warning(f"could not get systemd unit {unit}")
return False return False