Hi, Am Freitag, 6. Mai 2022, 08:58:06 CEST schrieb Luca Di Maio:
Hi folks, thanks for the replies!
The best option is to just send a signal over DBus (system bus) that some updates were installed (ideally with some details). That can be picked up by any daemon in the user session and get translated to a persistent notification with a reboot button.
That's what I'm trying now, but using a socket instead of dbus because using a system-dbus to notify users won't work, and using user's dbus-session from a root daemon also doesn't work. I didn't think about an user-daemon trying to read from system-dbus, I'll check if I manage, we could remove the socket file communication and stick to dbus
@being notified of failed updates
Completely agree that's something needed! Right now the update process work with
t-u launches /usr/bin/rebootmgrctl reboot
if it manages to update successfully
Right now we do not have any hook on update failure in t-u, so we will need to add to that.
That might actually be available already through the transactional-update systemd unit. State changes are broadcasted over the system bus, so it would be possible to handle those as well. The error output is only available through the journal though. Cheers, Fabian
Adding an update-failed to the user-facing daemon is trivial
At this point I'm thinking about moving this "talk with user-facing daemon" thing away from rebootmgr and bake it into transactional-update, something on the lines of
transactional-update cleanup dup **notify**
And set up a notification path (instead of a reboot one) in t-u itself
Will have to investigate how involved this is, the aim of this was just to provide a working solution while packagekit integration (and so discover and gnome-software) integration is finished.
So the idea was not to move too much stuff around and do not interfere too much also with non-desktop (microos/kubic) setups
Regards, Luca