eos-updater: Implement a plugin to integrate with the eos-updater daemon
This plugin is to be used on Endless OS only, to integrate gnome-software with the eos-updater daemon. eos-updater implements OS updates using OSTree, and is controlled using a D-Bus interface.
This is tested (and includes tests) and ready to go, modulo a few small issues which need discussion (and which are marked in the code with
- Cancellation of the upgrade download doesn’t work, because the
GCancellablein the UI is chained to the
gs-updates-page.c— but the way the eos-updater plugin works is to trigger an asynchronous download for that job, then return while the download completes in the background. Hence the
GCancellabledoesn’t persist throughout the lifetime of the download. Should this be fixed by changing how the
GCancellables work, or by making the
GS_PLUGIN_ACTION_UPGRADE_DOWNLOADjob block until the download is actually complete?
gs-upgrade-banner.cemits a critical for apps in the
UNKNOWNstate. What would be the best way of handling this? Hide it in that case?
- There’s a multi-minute delay between calling
gs_plugin_updates_changed()when an update is detected, and the
GsUpgradeBannerbeing added to the updates page and shown. I haven’t figured out exactly what’s going on, but it seems like a refresh is getting squashed somewhere if a refresh is already in progress, but the
gs_plugin_updates_changed()call happened after updates were handled in the ongoing refresh. Or something like that. So the banner is only added the next time the updates page does a periodic refresh. What’s the best fix for this?