--- title: Appstream Bundle category: Interfaces layout: default SPDX-License-Identifier: LGPL-2.1-or-later --- # Appstream Bundle NOTE: This document is a work-in-progress. NOTE: This isn't yet implemented in libappstream and the software centers. [Appstream catalogs](https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html) are a standardized way to expose metadata about system components, apps, and updates to software centers (i.e. GNOME Software and KDE Discover). The `` tag links an appstream component to a packaging format. This is used by the software centers to decide which code path (or plugin) should handle the component. For instance: components with a `...` will be handled by [PackageKit](https://www.freedesktop.org/software/PackageKit/), and components with a `...` will be handled by [libflatpak](https://docs.flatpak.org/). This document will define how to format an appstream component's `` tag such that software centers will know to manage it using systemd. The following syntax will be supported: A `type="systemd"` attribute. This tells the software center that it should treat the bundle tag as described in this document. A `class=""` attribute, with the following possible values: `sysupdate`, `extension`, `confext`, or `portable`. These correspond to sysupdate components, sysexts, confexts, and portable services respectively. The value of the tag will be used as the name of the image (corresponding to the `class=` attribute). So for instance, `foobar` corresponds to a sysext named "foobar". For `class="sysupdate"`, there is a special case: if the value is empty, then the bundle actually refers to the host system. ## Examples ```xml com.example.Devel com.example.OS Development Tools Tools essential to develop Example OS gcc g++ make autoconf cmake meson ninja Example, inc. devel ``` defines a sysext named `devel` to be presented by the software center. It will be updated via `systemd-sysupdated`'s `extension:devel` target. It will be treated as a plugin for the operating system itself. ```xml com.example.OS

This release includes various bug fixes and performance improvements

``` extends existing appstream metadata for the host OS with a changelog. It also tells the software center that the host OS should be updated using the `host` target for `systemd-sysupdated`. ```xml com.example.Foobar Foobar Service Service that does foo to bar https://example.com/products/foobar/logo.svg https://example.com/products/foobar com.example.Foobar Example, inc.

This release fixes a major security vulnerability. Please update ASAP.

CVE-2024-28153

Initial release!

foobar
``` defines a portable service named `foobar` to be presented by the software center. It will be updated via `systemd-sysupdated`'s `portable:foobar` target. It will be marked as an urgent update. It will be presented to the user with a display name, a description, and a custom icon.