# Addons

## Introduction

Some components are not standalone, but rather extend existing software installed on the system and can only be used together with it. The `addon` component type exists to reflect that.

Software which provides addons can ship one or more files in `/usr/share/metainfo/%{id}.metainfo.xml`.

## Example file

A addon meta-info file should look like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <component type="addon">
      <id>org.gnome.gedit_code_assistance</id>
      <extends>org.gnome.gedit</extends>
      <name>Code Assistance</name>
      <summary>Code assistance for C, C++ and Objective-C</summary>
      <url type="homepage">http://projects.gnome.org/gedit</url>
      <metadata_license>FSFAP</metadata_license>
      <project_license>GPL-3.0+</project_license>
    </component>

## File specification

Note that the XML root must have the `type` property set to `addon`. This clearly identifies this metainfo document as describing an addon to existing software.

<id/>

- For addons, the component-ID must follow the generic naming conventions (see tag-id-generic).

<extends/>

- This tag is refers to the ID of the component this addon is extending.

  For example, if there is a plugin "kipi" which extens the application "Gwenview", it needs to be referred to as:

      <extends>org.kde.Gwenview</extends>

  The `<extends/>` tag may be specified multiple times.

For a component of type `addon`, the following tags are required and must be present: tag-id-addon, tag-name, tag-summary, tag-metadata_license, tag-extends.