- Prev
- AppStream
- Next

## ⁠2.15. Operating System

### ⁠2.15.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.15.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.15.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/>.

- Prev2.14. Repositories
- Up
- Home
- NextChapter 3. Collection Metadata