Gentoo Herds Project
The herds project aims to ensure that the growing number of ebuilds does not
overwhelm the gentoo project. To this end the herds project aims for the
development of infrastructure that will help with the management of a large
collection of ebuilds
Currently the herds project has two elements into place:
|Paul de Vrieze
||Lead ( Manager of the project )
All developers can be reached by e-mail using email@example.com.
Resources offered by the
The metadata.xml file has as its purpose to give extra information about
ebuilds. The metadata.xml file should exist in every package directory.
A skel file can be found as skel.metadata.xml in the portage tree.
Note: Please run xmllint --valid metadata.xml before committing a
metadata.xml file. We hope to add support for metadata.xml to repoman
A metadata.xml file can
contain a number of tags:
||This is the root element of the metadata.xml
file. It has no attributes. Its required subtag is: <herd>. Further
the following subtags are allowed: <email> for a general herd email address, <maintainer>, and
||There must at least be one herd
subtag. The contents of this tag should be the name of be a herd as specified in
file. It must occur at least once.
||Besides being in a
herd, a package can also be maintained directly. Direct maintainers of a package
can be specified with the <maintainer> tag. This tag has
one required subtag: <email>. It has two optional subtags:
<name>, and <description>.
||This contains the e-mail
address of the maintainer. It is required.
||This contains freetext with the name
of the maintainer. It is optional.
||The description tag contains a
description of the maintainership, or for example a remark that someone
interested can take over the maintainership. It is optional.
||This tag contains a
description of the package. This is to augment the DESCRIPTION field in the
There are also some attributes that can be used with these tags. They are all
||In every case where a description
is required, there must be at least an english description. If an additional
description in another language is given, this attribute is used to specify the
language used. The format is a two-character country code.
The restrict attribute allows to restrict the application of certain tags to
certain versions of a package. When this attribute is used, a tag without this
attribute must also exist. That tag without the restrict attribute will serve as
the default. The format of the restrict attribute is that of the DEPEND flag,
except that "<" and ">" need to be specified by < and >.
For example in the db package restrict=">=sys-libs/db-3.2.9-r5" on the maintainer tag shows that I'm currently maintaining all versions bigger then 3.2.9-r5.
The herds.xml (formatted) file that can be found in CVS at
/gentoo/xml/htdocs/proj/en/metastructure/herds/herds.xml is the source of all herds. All herds that are
referred to in metadata.xml files need to be specified in this file.
The herds.xml file contains the following tags:
||This is the root element of the
herds.xml file. It has no attributes. It has only one subtag:
||The herd tag describes a herd. There
is one herd tag per herd. It has one required subtag:
<name>. Further it has the following optional subtags:
<description>. The tags <maintainer>,
<maintainersof>, and <maintainingproject>
are special in that only one of the three is allowed, and only <maintainer> is
allowed to occur more than once.
The email tag can be used to specify the email addres to be used to contact the herd's
||This tag contains the name of the
herd, or the maintainer
||The description tag is
optional, but highly recommended. This tag describes what kinds of ebuilds are
part of the herd.
||This tag specifies the name of the
herd whose maintainers also maintain this herd. There is one required attribute herd specifying the herd, the tag itself has no contents.
||This tag contains the name of the projectxml file that describes the project managing the herd. If this tag is present it is used to have all project members be herd maintainers.
||There is one maintainer tag
per maintainer of the herd. This tag has one required subtag:
<email>. It has two optional subtags:
<name>, and <role>.
||This contains the e-mail
address of the maintainer. It is required for maintainers. It may also contain
the e-mail address that is used for contacting the team that maintains the herd
||The role tag contains a description
of the role of the maintainer with maintaining the herd. This tag is