Add plugin gs-plugin-systemd-sysupdate
Create a new plugin gs-plugin-systemd-sysupdate
to support OS upgrade through systemd-sysupdated
service
Important: This MR is based on the systemd-sysupdate MR
, which implements the sysupdated
service for high layer to access systemd-sysupdate
through D-Bus. That is, this plugin works only after the above systemd MR
has been merged and released.
This plugin implements the plugin interface and the functions to
- discover new
apps
by querying update targets (host
as OS upgrade andcomponent
app updates) fromsysupdated
- manage the
apps
created and perform actionsupdate()
andcancel()
throughsysupdated
This plugin current does NOT adopt any apps
Note: Based on the sysupdated
design, this plugin should work with AppStream
. However, this might need to introduce new AS_KIND
and AS_BUNDLE
to the AppStream
spec. and also require the support in libappstream
and gnome-software
. All these things are out of the scope in this MR.
Verification done:
- run self test with the command
$ meson test gs-self-test-systemd-sysupdate -v
, which tests:- create apps from targets
- search apps with specific keywords 'sysupdate'
- run app upgrade/updates with progress update
- cancel app upgrade/updates
- update and remove target stored within plugin
- test manually using
gnome-os
withsysupdated
patch to test with local update repo.- trigger refresh to check apps are created for targets
- trigger, check download progress and cancel app upgrade/updates
- trigger and wait app upgrade/updates success