Directrices de Empaquetamiento para Archivos AppData

Si un paquete contiene una aplicación de IGU, DEBERIA instalar un archivo .metainfo.xml en %{_metainfodir}. Los archivos instalados en .metainfo.xml DEBEN seguir la página de especificación AppStream.

Si un paquete contiene un complemento para una aplicación IGU, DEBERÍA instalar un archivo .metainfo.xml en %{_metainfodir}. Los archivos .metainfo.xml instalados DEBEN seguir la especificación de complementos de AppStream.

Los archivos AppData DEBEN validarse correctamente usando appstream-util validate-relax.

archivos appdata.xml
Por razones históricas, la especificación AppStream también permite la utilización de la extensión .appdata.xml para aplicaciones IGU.Si el desarrollador proporciona metadatos con la extensión .appdata.xml extension, PUEDE usarse en lugar de .metainfo.xml.

Creación de archivo .metainfo.xml

Si el paquete no incluye e instala ya su propio archivo .metainfo.xml, usted puede hacer el suyo propio y enviárselo al desarrollador. Alguno de los beneficios del envío del archivo al desarrollador es que el desarrollador puede traducir el archivo usando los recursos de traducción existentes y puede también modificar los pantallazos y descripciones según camvbie la aplicación con el tiempo.

Usted puede incluir un archivo .metainfo.xml que haya creado como Fuente: (por ejemplo Source3: %{name}.metainfo.xml) o generarlo en el archivo de especificaciones.

Aquí está el contenido de una muestra de la aplicación con el archivo ,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>

El archivo AppData de la aplicación DEBE tener el mismo nombre raíz que el archivo .desktop, por lo que si el archivo .desktop se llama org.gnome.SomeApp.desktop, el archivo AppData DEBE tener el mismo nombre org.gnome.SomeApp.metainfo.xml.

Aquí está el contenido de una muestra adjuntada del archivo .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>

Puedes utilizar cualquier cosa como el <id> pero necesita ser único y distinguiendo MAYÚS/minus y además coincide el prefijo del nombre de archivo +.metainfo.xml.

Modo de empleo de app-data-validate

Aunque puede incluir el archivo .metainfo.xml en el paquete, DEBE ejecutar appstream-util validate-relax (en %check o %install) y tener BuildRequires: libappstream-glib para garantizar la validez y seguridad de los archivos appdata que está instalando. Un ejemplo:

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