ORG.FREEDESKTOP.SYSUPDATE1(5) org.freedesktop.sysupdate1 (NAME) org.freedesktop.sysupdate1 - D-Bus systemd-sysupdate (DESCRIPTION) systemd-sysupdated.service(8) . D-Bus . ! API systemd (breaking changes) . D-BUS (THE D-BUS INTERFACE) MANAGER (THE MANAGER OBJECT) Manager : node /org/freedesktop/sysupdate1 { interface org.freedesktop.sysupdate1.Manager { methods: ListTargets(out a(sso) targets); ListJobs(out a(tsuo) jobs); ListAppStream(out as urls); signals: JobRemoved(t id, o path, i status); }; interface org.freedesktop.DBus.Peer { ... }; interface org.freedesktop.DBus.Introspectable { ... }; interface org.freedesktop.DBus.Properties { ... }; }; (Methods) ListTargets() . ( Class Target ) . ListJobs() . ( Type Job ) . ListAppStream() (URL) appstream . GetAppStream() Target . (Signals) JobRemoved() . . . ( "EXIT_FAILURE") errno ( "-EINVAL") . TARGET (THE TARGET OBJECT) (target) ( sysext confext ) systemd-sysupdate(8) . Target : node /org/freedesktop/sysupdate1/target/host { interface org.freedesktop.sysupdate1.Target { methods: List(in t flags, out as versions); Describe(in s version, in t flags, out s json); CheckNew(out s new_version); Acquire(in s new_version, in t flags, out s new_version, out t job_id, out o job_path); Install(in s new_version, in t flags, out s new_version, out t job_id, out o job_path); Vacuum(out u instances, out u disabled_transfers); GetAppStream(out as appstream); GetVersion(out s version); ListFeatures(in t flags, out as features); DescribeFeature(in s feature, in t flags, out s json); SetFeatureEnabled(in s feature, in i enabled, in t flags); properties: @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Class = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Name = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Path = '...'; }; interface org.freedesktop.DBus.Peer { ... }; interface org.freedesktop.DBus.Introspectable { ... }; interface org.freedesktop.DBus.Properties { ... }; }; (Methods) List() . flags . : #define SD_SYSUPDATE_OFFLINE (UINT64_C(1) << 0) SD_SYSUPDATE_OFFLINE . . Describe() . Describe() JSON . version . flags . List() . JSON . . : "version" . "newest" . "available" . "installed" . "obsolete" . "protected" Vacuum() . "incomplete" . . Acquire() Install() . "changelogUrls" (change logs) . CheckNew() . . . . Describe() . Acquire() . new_version . . Install() . flags . "0" . (payload) . Install() . new_version . . flags . "0" . Acquire() Install() . . . JobRemoved() Manager . Vacuum() . . GetAppStream() HTTP/HTTPS XML appstream[1] . appstream . ( Discover ) . [2] . GetVersion() . . . . IMAGE_VERSION /etc/os-release . . ListFeatures() . flags 0 . . DescribeFeature() . feature . flags 0 . JSON . . : "name" . "description" . "enabled" . "documentationUrl" HTTP/HTTPS . "appstreamUrl" HTTP/HTTPS XML appstream[1] . "transfers" . SetFeatureEnabled() drop-in . enable . . . flags 0 . . drop-in "50-systemd-sysupdate-enabled.conf" . Acquire() Install() . ( GetVersion()). "host" . (Properties) Class . : "machine" systemd- machined.service(8) "portable" [3] "sysext" systemd-sysext(8) "confext" systemd-confext(8) "component" --component= systemd- sysupdate(8) "host" . "host" . Path . "machine" "portable" "extension" "confext" . "component" "host" sysupdate.d(5) . Name . . "portable" "foobar" "extension" "foobar" "portable" "foobar" . (Security) polkit[4] . List() Describe() CheckNew() polkit org.freedesktop.sysupdate1.check . . polkit org.freedesktop.sysupdate1.cancel-check . . Acquire() Install() polkit org.freedesktop.sysupdate1.update . . org.freedesktop.sysupdate1.update-to-version . . polkit org.freedesktop.sysupdate1.cancel-update org.freedesktop.sysupdate1.cancel-update-to-version . . Vacuum() polkit org.freedesktop.sysupdate1.vacuum . . polkit org.freedesktop.sysupdate1.cancel-vacuum . . SetFeatureEnabled() polkit org.freedesktop.sysupdate1.manage-features . . . GetAppStream() GetVersion() ListFeatures() DescribeFeature() . . polkit . "class" "name" . polkit . : o SD_SYSUPDATE_OFFLINE -> "update" JOB (THE JOB OBJECT) (job) Target . Job : node /org/freedesktop/sysupdate1/job/_1 { interface org.freedesktop.sysupdate1.Job { methods: Cancel(); properties: @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly t Id = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Type = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly b Offline = ...; readonly u Progress = ...; }; interface org.freedesktop.DBus.Peer { ... }; interface org.freedesktop.DBus.Introspectable { ... }; interface org.freedesktop.DBus.Properties { ... }; }; (Methods) Cancel() . . (Properties) Id . Type ( : "list" "describe" "check-new" "acquire" "install" "vacuum" "describe-feature"). Offline . Progress 0 100 . "acquire" "install" 0 . (Security) Cancel() polkit . "list" polkit org.freedesktop.sysupdate1.check . (EXAMPLES) . org.freedesktop.sysupdate1.Manager $ gdbus introspect --system \ --dest org.freedesktop.sysupdate1 \ --object-path /org/freedesktop/sysupdate1 . org.freedesktop.sysupdate1.Target $ gdbus introspect --system \ --dest org.freedesktop.sysupdate1 \ --object-path /org/freedesktop/sysupdate1/target/host . org.freedesktop.sysupdate1.Job $ gdbus introspect --system \ --dest org.freedesktop.sysupdate1 \ --object-path /org/freedesktop/sysupdate1/job/_1 (VERSION COMPATIBILITY) D-Bus [5] . (HISTORY) Manager ListTargets() ListJobs() ListAppStream() JobRemoved() . Target List() Describe() CheckNew() Acquire() Install() Vacuum() GetAppStream() GetVersion() ListFeatures() DescribeFeature() SetFeatureEnabled() Class Name Path . Job Cancel() Id Type Offline Progress . (SEE ALSO) systemd(1) systemd-sysupdated.service(8) updatectl(1) (NOTES) 1. appstream https://wwww.freedesktop.org/software/appstream/docs/chap- CatalogData.html 2. https://systemd.io/APPSTREAM_BUNDLE 3. https://systemd.io/PORTABLE_SERVICES 4. polkit https://www.freedesktop.org/software/polkit/docs/latest 5. https://0pointer.de/blog/projects/versioning-dbus.html systemd 261.2 ORG.FREEDESKTOP.SYSUPDATE1(5)