/usr/share/metainfo/%{id}.metainfo.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 associated .desktop
file (In which case one <launchable/> tag must be present). However, a large amount of tools expect the metainfo file to be complete and self-sufficient now, which is why omitting this tag will render it invalid for tools like Flatpak and others use cases which do not involve a metadata preprocessing step.
name
tag (and no Name
desktop-entry field) is present, the metadata is considered invalid and will be ignored by the AppStream generator.
Comment
field of the associated .desktop
file (In which case one <launchable/> tag must be present). However, a large amount of tools expect the metainfo file to be complete and self-sufficient now, which is why omitting this tag will render it invalid for tools like Flatpak and others use cases which do not involve a metadata preprocessing step.
summary
tag (and no Comment
desktop-entry field) is present, the metadata is considered invalid and will 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.