namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" packages = element packages { attlist.packages, pkgmetadata* } attlist.packages &= empty # Metadata for a category catmetadata = element catmetadata { attlist.catmetadata, longdescription* } attlist.catmetadata &= [ a:defaultValue = "" ] attribute pkgname { text }? # Metadata for a package pkgmetadata = element pkgmetadata { attlist.pkgmetadata, (herd | maintainer | longdescription)* } attlist.pkgmetadata &= [ a:defaultValue = "" ] attribute pkgname { text }? # One tag for each herd this package is assigned to. herd = element herd { attlist.herd, text } # One tag for each maintainer of a package, multiple allowed maintainer = element maintainer { attlist.maintainer, email, (description | name)* } # A long description of the package in freetext longdescription = element longdescription { attlist.longdescription, text } # The changelog of the package changelog = element changelog { attlist.changelog, change* } attlist.changelog &= empty # The changelog contains various "changes" change = element change { attlist.change, date, (developer | version | description | file | contributor | bug)* } attlist.change &= empty date = element date { attlist.date, text } attlist.date &= empty # The date of the change, in "YYYY-MM-DD" format developer = element developer { attlist.developer, name?, email } attlist.developer &= empty # The developer that made the change. The email is required, name # is optional version = element version { attlist.version, text } attlist.version &= empty # version of the packages involved (one tag per version) file = element file { attlist.file, text } attlist.file &= empty # one tag per file touched contributor = element contributor { attlist.contributor, name?, email? } attlist.contributor &= empty # A reference to a user that helped in causing this change. # There should at least be a name or email address included. # Email is preferred bug = element bug { attlist.bug, text } attlist.bug &= empty # bug-id of a bug fixed by this change, multiple allowed. The # format of this is a number or alias for a bug. NOT including a # # character # Common attributes # the lang attribute, specifies the language of this tag. This is # only useful for descriptions of various kinds. If a tag with this # attribute is included there must be a description in the default # language "C" or "en", which is equivalent attlist.description &= [ a:defaultValue = "C" ] attribute lang { text }? attlist.longdescription &= [ a:defaultValue = "C" ] attribute lang { text }? # The restrict attribute, this attribute specifies restrictions on # the applicability of tags on versions. The format of this attribute is # equal to the format of DEPEND lines in ebuilds. There is one special # value though: restrict="*". A tag that specifies this only applies if # there are no other tags that apply. # # For required tags, there must be either an unrestricted version, or a # version that is default restricted. attlist.herd &= attribute restrict { text }? attlist.maintainer &= attribute restrict { text }? attlist.longdescription &= attribute restrict { text }? # standard parts email = element email { attlist.email, text } attlist.email &= empty # an email address name = element name { attlist.name, text } attlist.name &= empty # the name of a person (maintainer, contributor) description = element description { attlist.description, text } start = changelog | packages | catmetadata # A description of a maintainer or change