Méta-données Gentoo Paul De Vrieze Sven Vermeulen Olivier Fisette Informations à propos de metadata.xml. 0.1 10 février 2004 Pourquoi metadata.xml ?

Le but du fichier metadata.xml est de fournir de l'information supplémentaire sur les « ebuilds ». Le fichier metadata.xml devrait être présent dans le répertoire de chaque paquet. Un modèle est présent dans l'arbre portage : skel.metadata.xml.

Veuillez exécuter xmllint --valid metadata.xml avant d'envoyer un fichier metadata.xml. Nous espérons ajouter bientôt le support pour metadata.xml à repoman.
Structure des méta-données

Un fichier metadata.xml peut contenir ces éléments :

<pkgmetadata> Il s'agit de l'élément racine du fichier metadata.xml. Il n'a aucun attribut. Son sous-élément obligatoire est : <herd>. En plus, les sous-éléments suivants sont permis : <email> (pour l'adresse de courrier électronique générale du groupe), <maintainer> et <longdescription>. <herd> Il doit y avoir au moins un sous-élément <herd>. Le contenu de cet élément devrait être le nom d'un groupe tel que spécifié dans le fichier herds.xml. <maintainer> En plus de faire partie d'un groupe, un paquet peut être maintenu directement. Les développeurs assignés à la maintenance d'un paquet peuvent être mentionnés avec l'élément <maintainer>. Cet élément a un sous-élément obligatoire : <email>. Il a deux sous-éléments optionnels : <name> et <description>. <email> Contient l'adresse de courrier électronique du mainteneur. C'est requis. <name> Contient un texte sous forme libre donnant le nom du mainteneur. C'est optionnel. <description> Cet élément contient une description de la maintenance ou une remarque, par exemple une offre pour que quelqu'un prenne en charge la maintenance du paquet. C'est optionnel. <longdescription> Cet élément contient une description du paquet. Cela s'ajoute au champ DESCRIPTION qui se trouve dans les ebuilds eux-mêmes.
Balise Description

Il y a aussi divers attributs qui peuvent être utilisés avec ces éléments. Ils sont tous optionnels :

lang <description>, <longdescription> Dans tous les cas où une description est requise, il doit y avoir au moins une description en anglais. Si une description supplémentaire dans une autre langue est donnée, cet attribut sert à spécifier la langue utilisée. Le format est un code de pays à deux lettres. restrict <herd>, <maintainer>, <longdescription> L'attribut restrict permet de restreindre l'application de certains éléments à certaines versions du paquet. Lorsque cet attribut est utilisé, un élément sans cet attribut doit également exister. Cet élément sans l'attribut restrict servira de valeur par défaut. Le format de l'attribut restrict est celui des options de DEPEND, mais « < » et « > » doivent être spécifiés en utilisant &lt; and &gt;.

Par exemple, dans le paquet db, restrict=">=sys-libs/db-3.2.9-r5" dans l'élément maintainer indique que je suis le responsable pour la version 3.2.9-r5 et les suivantes.
Attribut Balise Description
Exemples de méta-données
Premier exemple

Dans ce premier exemple, nous vous montrons le metadata.xml pour OpenOffice, dont les « ebuilds » sont entièrement gérés par le groupe nommé openoffice :

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
  <herd>openoffice</herd>
  <longdescription>
    OpenOffice is the  opensource version of staroffice.
    This ebuild allows you to compile it yourself. Unfortunately this
    compilation can take up to a day depending on the speed of your
    computer. It will however make a snappier openoffice than the binary
    version.
  </longdescription>
</pkgmetadata>

Le groupe openoffice est défini dans herds.xml par le Gentoo Metastructure Project :

Cet exemple sera peut-être suranné lorsque vous le lirez. Ce n'est qu'un exemple !
<herd>
  <name>openoffice</name>
  <email>openoffice@gentoo.org</email>
  <description>openoffice related packages</description>
  <maintainer><email>pauldv@gentoo.org</email></maintainer>
  <maintainer><email>brad@gentoo.org</email></maintainer>
</herd>
Deuxième exemple

Comme second exemple, nous regarderons le metadata.xml de mirrorselect. Cet « ebuild » est maintenu par le groupe tools-portage et aussi par un mainteneur séparé.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
  <herd>tools-portage</herd>
  <maintainer>
    <email>johnm@gentoo.org</email>
    <name>John Mylchreest</name>
  </maintainer>
  <longdescription>
    This utility is used to select the fastest mirror (distfiles) and provide a
    nicer front-end for mirror selection (both rsync + distfiles) to a user.
  </longdescription>
</pkgmetadata>