/usr/share/metainfo/%{id}.appdata.xml
.
Note
desktop-application
as well, an application is just defined as a specialized component, which has the additional benefit of being displayed in a software-center application.
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2013 First Lastname <your@email.com> --> <component type="desktop-application"> <id>org.gnome.gnome-power-statistics</id> <metadata_license>FSFAP</metadata_license> <project_license>GPL-2.0+</project_license> <name>Power Statistics</name> <summary>Observe power management</summary> <description> <p> Power Statistics is a program used to view historical and current battery information and will show programs running on your computer using power. </p> <p>Example list:</p> <ul> <li>First item</li> <li>Second item</li> </ul> <p> You probably only need to install this application if you are having problems with your laptop battery, or are trying to work out what programs are using significant amounts of power. </p> </description> <launchable type="desktop-id">org.gnome.gnome-power-statistics.desktop</launchable> <screenshots> <screenshot type="default"> <caption>The options dialog</caption> <image>http://www.hughsie.com/en_US/main.png</image> </screenshot> <screenshot> <image>http://www.hughsie.com/en_US/preferences.png</image> </screenshot> </screenshots> <url type="homepage">http://www.gnome.org/projects/en_US/gnome-power-manager</url> <project_group>GNOME</project_group> <provides> <binary>gnome-power-statistics</binary> </provides> <releases> <release version="3.12.2" date="2013-04-12"> <description> <p>Fixes issues X, Y and Z</p> </description> </release> </releases> </component>
<id/>
tag value contains the unique identifier for this application. It is usually modeled after the .desktop filename and follows a reverse-DNS scheme. For the full naming guidelines see <id/>.
.desktop
file is named org.example.FooBar.desktop
, a good component-id would be org.example.FooBar
.
<metadata_license/>
tag is indicating the content license that you are releasing the one metainfo file under. This is not typically the same as the project license. Omitting the license value can result in your data not being incorporated into the distribution metadata (so this is a required tag).
<project_license/>
tag is indicating the license(s) this application is released under. Take a look at the specification of the <project_license/> tag for details on how to properly use it.
Name
field of the .desktop
file. In that case, one <launchable/> tag must be present.
name
tag and no Name
field is present, the metadata is considered invalid and might be ignored by the AppStream generator.
desktop-application
metainfo file it is only essential if the accompanying .desktop
file does not have a Comment=
field. Data from a .desktop file is only taken into consideration if one <launchable/> tag is present. If the metainfo file has a summary
, it wil override the value found in the Comment
field of the .desktop
file.
summary
tag and no Comment
field is present, the metadata is considered invalid and might be ignored by the AppStream generator.
<p/>
child has a language property.
<launchable type="desktop-id">org.gnome.Sysprof2.desktop</launchable>
<screenshots/>
tag contains multiple <screenshot/>
children, where at least one of them must have the property type="default"
to indicate the application's primary screenshot. Every <screenshot/>
tag must have at least one <image/>
child, which may define the width and height of the referenced image in it's properties. The value of the <image/>
tag is a direct URL to a screenshot uploaded to a public location on the web.
<screenshot/>
tag may have a <caption/>
child, defining a short (not more than 180 characters!) description of what the user can see on the referenced screenshot.
![]()
BAD: Not on Linux
| ![]()
GOOD
|
![]()
BAD: Not 16:9, shows the whole desktop and too many small windows
| ![]()
GOOD: No window border required for fullscreen game
|
![]()
BAD: Uses custom font, custom color theme and is not 16:9
| ![]()
GOOD
|
homepage
. Links of type homepage
should be a link to the upstream homepage for the application.
<developer_name/>
tag is designed to represent the developers or project responsible for development of the project described in the metadata.
<update_contact/>
tag is an optional tag which can be added to provide an email address distributors can use to contact the project about invalid or incomplete metadata, or in case the specification has changed, about old metadata. It can also be used to ask general questions in case of an update of the component described in the metadata file. Spam protection using _AT_
is valid.
<update_contact>developer_AT_example.com</update_contact>
<releases/>
tag, which has one or multiple <release/>
subnodes to define the version and release date of this application. For details, see <releases/> .
<release/>
using the <description/>
subnode. These release-notes should contain brief information about what is new in the release, in a way which is understandable by non-technical users.
PATH
, it is useful to add at least a child of type <binary/>
to make it easily possible to find your application's metadata using the name of its binary.