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
appsby querying update targets (hostas OS upgrade andcomponentapp updates) fromsysupdated - manage the
appscreated 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-oswithsysupdatedpatch 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