Paketbaurichtlinien für AppData-Dateien

Wenn ein Paket eine GUI-Anwendung enthält, SOLLTE es eine .metainfo.xml-Datei in %{_metainfodir} installieren. Installierte .metainfo.xml-Dateien MÜSSEN der AppStream-Spezifikation entsprechen.

Wenn ein Paket eine Erweiterung für eine GUI-Anwendung enthält, SOLLTE es eine Datei namens .metainfo.xml in das Verzeichnis %{_metainfodir} installieren. Installierte .metainfo.xml-Dateien MÜSSEN der Spezifikation für AppStream-Add-ons entsprechen.

Die AppData-Dateien MÜSSEN mithilfe von appstream-util validate-relax korrekt validiert werden.

appdata.xml-Dateien
Aus historischen Gründen erlaubt die AppStream-Spezifikation auch die Verwendung der Dateinamenerweiterung .appdata.xml für GUI-Anwendungen. Wenn der Anbieter Metadaten mit der Erweiterung .appdata.xml bereitstellt, KÖNNEN diese anstelle von .metainfo.xml verwendet werden.

Erstellung der .metainfo.xml-Datei

Falls das Paket nicht bereits eine eigene Datei .metainfo.xml enthält und installiert, können Sie eine eigene Datei erstellen und diese an die Entwickler senden. Zu den Vorteilen des Einsendens der Datei an die Entwickler gehört, dass diese die Datei mithilfe der vorhandenen Übersetzungsressourcen übersetzen und die Bildschirmfotos und Beschreibungen im Laufe der Zeit an die Änderungen der Anwendung anpassen können.

Sie können eine von Ihnen erstellte Datei .metainfo.xml als Quelle einbinden (z. B. Source3: %{name}.metainfo.xml) oder diese in der .spec-Datei erzeugen.

Hier ist der Inhalt einer Beispiel-Anwendungsdatei namens .metainfo.xml (comical.metainfo.xml):

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
<component type="desktop">
  <id>comical.desktop</id>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>GPL-2.0+ and GFDL-1.3</project_license>
  <name>Comical</name>
  <summary>A Comic Archive Reader</summary>
  <summary xml:lang="fr">Un Comic Archive Lecteur</summary>
  <description>
    <p>
      Comical is an easy to use and cross-platform CBR and CBZ reader which
      prefetches and caches pages for speed.
    </p>
    <p xml:lang="fr">
      Comical est une CBR et CBZ lecteur facile à utiliser et
      multi-plateforme qui prélectures et caches pages pour la vitesse.
    </p>
    <p>
      Resized images are crisp, and you can view pages one or two at a time.
      Comical is open-source, so feel free to contribute new features!
    </p>
    <p xml:lang="fr">
      Images redimensionnées sont nettes, et vous pouvez voir une ou deux pages à la fois.
      Comical est open-source, alors n'hésitez pas à apporter de nouvelles fonctionnalités!
    </p>
  </description>
  <screenshots>
    <screenshot type="default">
      <image>http://comical.sourceforge.net/images/comical-0.5-linux.jpg</image>
    </screenshot>
    <screenshot>
      <image>http://comical.sourceforge.net/images/comical-0.6-win32.jpg</image>
    </screenshot>
  </screenshots>
  <url type="homepage">http://comical.sourceforge.net/</url>
  <update_contact>richard_at_hughsie.com</update_contact>
</component>

Die AppData-Datei der Anwendung MUSS denselben Stammdateinamen wie die .desktop-Datei haben. Wenn die .desktop-Datei beispielsweise org.gnome.SomeApp.desktop heißt, muss die AppData-Datei org.gnome.SomeApp.metainfo.xml heißen.

Hier ist der Inhalt einer Beispiel-Addon-Datei .metainfo.xml (gedit-bookmarks.metainfo.xml):

<?xml version="1.0" encoding="UTF-8"?>
<component type="addon">
  <id>gedit-bookmarks</id>
  <extends>gedit.desktop</extends>
  <name>Bookmarks</name>
  <summary>Easy document navigation with bookmarks</summary>
  <url type="homepage">https://wiki.gnome.org/Apps/Gedit/ShippedPlugins</url>
  <url type="bugtracker">https://bugzilla.gnome.org/enter_bug.cgi?product=gedit&amp;component=Plugins</url>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>GPL-2.0+</project_license>
</component>

Sie können alles als <id> verwenden, aber es muss eindeutig und sinnvoll sein und außerdem mit dem Dateinamenpräfix .metainfo.xml übereinstimmen.

Verwendung von app-data-validate

Obwohl Sie die Datei .metainfo.xml einfach in das Paket aufnehmen können, MÜSSEN Sie appstream-util validate-relax (in %check oder %install) ausführen und BuildRequires: libappstream-glib angeben, um die Gültigkeit und Sicherheit der von Ihnen installierten Appdata-Dateien zu gewährleisten. Ein Beispiel:

appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml