Product SiteDocumentation Site

2.14. Operating System

2.14.1. Introduction

The operating-system component type describes a whole operating system such as GNU/Linux distributions like Debian, Fedora, RHEL, etc. or Windows and macOS.
Operating systems can ship metainfo files in /usr/share/metainfo/%{id}.metainfo.xml.

2.14.2. Example file

An operating-system metainfo file can look like this:

<?xml version="1.0" encoding="UTF-8"?>
<component type="operating-system">
  <id>org.debian.debian</id>
  <name>Debian GNU/Linux</name>
  <summary>The universal operating system</summary>
  <description>
    <p>
      Debian is a free operating system (OS) for your computer.
      An operating system is the set of basic programs and utilities that make your computer run.
    </p>
    ...
  </description>
  <url type="homepage">https://www.debian.org/</url>
  <metadata_license>FSFAP</metadata_license>
  <developer_name>The Debian Project</developer_name>
  ...

  <releases>
    <release version="10.0" type="development">
      <description>
        <p>The next release of Debian.</p>
      </description>
    </release>

    <release version="9.0" date="2017-07-17" date_eol="2020-07-17">
      <description>
        <p>Now contains the Linux kernel 4.9, GNOME 3.22, KDE Plasma 5, LibreOffice 5.2 and Qt 5.7. LXQt has been added.</p>
      </description>
    </release>
    ...
  </releases>
</component>

2.14.3. File specification

Note that the XML root must have the type property set to operating-system. This clearly identifies this metainfo document as describing an operating system.
<id/>
For operating systems, the value of the <id/> tag must follow the reverse-DNS scheme as described for generic components. In order for AppStream consumers to determine which component is describing the operating system they are currently running on, on Linux distributions the component ID must follow the data provided in the operating system's /etc/os-release file. This means the reversed-DNS HOME_URL value from /etc/os-release (without any https/www parts) combined with the ID of the operating system will produce the operating system's component id.
E.g. if HOME_URL is https://www.debian.org/ and ID is debian, the resulting AppStream component-ID will be org.debian.debian.
<releases/>
The <releases/> tag as described in <releases/> must be present and contain the individual releases of the operating system. It is also recommended to set the date_eol property on individual releases, to allow software to determine whether the current operating system release is still supported.
For a component of type operating-system, the following tags are required and must be present for a valid document: <id/>, <name/>, <summary/>, <metadata_license/>, <releases/>.