Upstream projects can ship a small XML file containing additional metadata to describe their application. This data includes things like screenshots, long descriptions, icon information and various other things needed to present the application properly to the user.
The AppData files override any values which are automatically fetched by the AppStream data generator, which means that it's data takes precedence over data which has already been defined in a .desktop-file. Applications can ship one or more files in /usr/share/appdata/%{id}.appdata.xml
.
2.2.2. File specification
The basic structure for a generic component as described at
Section 2.1.3, “XML Specification” applies. Note that the XML root must have the
type
property set to
desktop
, which in a generic component this property can be omitted. This clearly identified this metainfo document as describing an application.
All tags defined in the generic component specification are valid in AppData as well, an application is just defined as a specialized component, which has the additional benefit of being displayed in a software-center application.
The following list describes the special tags for application upstream metadata and provides some additional information about the values the tags are expected to have. If no information is given about a tag, refer to the respective tag in
Section 2.1, “Generic Component”.
-
<id/>
For applications, the <id/>
tag value must be the same name as the installed .desktop file for the application.
- <metadata_license/>
- <name/>
While this tag is requited for a generic component, for an application metainfo file it is not necessary, but only recommended. You can omit this tag if you want the software center to have the same strings as defined in the XDG desktop file. In some cases it might be required to have a different name in the app-store, but most appdata.xml
files will not need this.
- <summary/>
While this tag is requited for a generic component, for an application metainfo file it is not necessary, but only recommended. You can omit this tag if you want the software center to have the same strings as defined in the XDG desktop file. In some cases it might be required to have a different name in the app-store, but most appdata.xml
files will not need this.
-
<screenshots/>
A screenshot presents your application to the outside world, and could be seen by hundreds or thousands of people.
The
<screenshots/>
tag should look like it is described at
<screenshots/>.
Screenshot size, shape and format recommendations for applications:
All screenshots should have a 16:9 aspect ratio, and should have a width that is no smaller than 620px (software center applications will be able to fill in the screenshots in the space they provide for that more easily then).
Ideally the window will be resized to a 16:9 aspect ratio, but screenshots can also be cropped if only a small area of the window needs to be shown.
Screenshots should be in PNG or JPEG format. PNG is the preferred format; JPEG should only be used when screenshots include large photographs or other images where a lossy format like JPEG may compress better.
Do not scale screenshots below their original size.
- <project_group/>
- <provides/>
This tag is described in detail for generic components at
<provides/>.
If your application ships a binary in a location in the default PATH
, you should add at least a child of type <binary/>
to make that new executable known to the distribution.
- <releases/>
The application metainfo should at least provide one
<releases/>
tag, which has one or more
<release/>
childs to define the version and release date of this application. For details, see
<releases/> .