# Addons

## Introduction

Some software is not standalone, but rather extends existing software installed on the system. 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>gedit-code-assistance</id>
      <extends>gedit.desktop</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>CC0-1.0</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 identified this metainfo document as describing an addon to an existing software.

<id/>

  For addons, there are no special requirements for what their `%{id}` should be. You might want to prefix your id with "addon-" though, to make it easily recognizable.

<extends/>

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

  So for example if I have a plugin "kipi" which extends the application "Gwenview", I need to refer to it's identifier like:

      <extends>gwenview.desktop</extends>

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

For a component of type `addon`, the following tags are required and must be present: , , , , .