Gentoo Logo

Gentoo Herds Project


1.  Project Description

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:

2.  Developers

Developer Nickname Role
Paul de Vrieze pauldv Lead ( Manager of the project )

All developers can be reached by e-mail using

3.  Resources

Resources offered by the herds project are:

4.  metadata.xml

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 soon.

A metadata.xml file can contain a number of tags:

tag description
<pkgmetadata> 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 <longdescription>.
<herd> There must at least be one herd subtag. The contents of this tag should be the name of be a herd as specified in the herds.xml file. It must occur at least once.
<maintainer> 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>.
<email> This contains the e-mail address of the maintainer. It is required.
<name> This contains freetext with the name of the maintainer. It is optional.
<description> 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.
<longdescription> This tag contains a description of the package. This is to augment the DESCRIPTION field in the ebuilds themselves.

There are also some attributes that can be used with these tags. They are all optional:

attribute tags description
lang <description>, <longdescription> 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.
restrict <herd>, <maintainer>, <longdescription> 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 &lt; and &gt;.
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.

5.  herds.xml

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:

tag description
<herds> This is the root element of the herds.xml file. It has no attributes. It has only one subtag: <herd>.
<herd> 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: <email>, and <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 managers.
<name> This tag contains the name of the herd, or the maintainer
<description> The description tag is optional, but highly recommended. This tag describes what kinds of ebuilds are part of the herd.
<maintainersof> 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.
<maintainingproject> 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.
<maintainer> 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>.
<email> 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 (toplevel).
<role> The role tag contains a description of the role of the maintainer with maintaining the herd. This tag is optional.


Summary: The herds project aims to ensure that ebuilds are organised in groups which have maintainers, and that some ebuilds get maintainers assigned

Gentoo Project
script generated

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.