Add 'metadata/dtd/' from commit '73759fb943467e059035e1e271c50893a43f70e9'

git-subtree-dir: metadata/dtd
git-subtree-mainline: 181038dd27
git-subtree-split: 73759fb943
This commit is contained in:
Repository mirror & CI
2025-11-06 17:15:47 +00:00
6 changed files with 606 additions and 0 deletions

329
metadata/dtd/glsa.dtd Normal file
View File

@@ -0,0 +1,329 @@
<!ELEMENT glsa (title,synopsis,product,announced,revised,bug*,access?,affected,background?,description,impact,workaround,resolution,references,license?,metadata*)>
<!ATTLIST glsa id CDATA #REQUIRED>
<!--
Element: title
Description: Provides a 4-5 word description about the advisory
Example: <title>Buffer overflow vulnerability found in openssl-0.9.5</title>
-->
<!ELEMENT title (#PCDATA)>
<!--
Element: synopsis
Description: Small, to-the-point description about the GLSA
Example: <synopsis>
rsync has an exploitable buffer overflow that can lead to
remote compromise
</synopsis>
-->
<!ELEMENT synopsis (#PCDATA)>
<!--
Element: product
Description: Defines what type of security announcement this is.
Valid types are:
- ebuild A Portage-provided ebuild has a security
issue
- informational This GLSA is purely informational, no Gentoo
system is affected
- infrastructure The security issue involves the Gentoo
infrastructure
The text contains one keyword that defines the issue.
Note: All type values but 'ebuild' are considered deprecated.
Example: <product type="ebuild">openssl</product>
Example: <product type="infrastructure">rsync mirror</product>
-->
<!ELEMENT product (#PCDATA)>
<!ATTLIST product type (ebuild|infrastructure|informational) #REQUIRED>
<!--
Element: announced
Description: Date when the advisory is publicised
The format must be "YYYY-mm-dd"
Example: <announced>2003-11-20</announced>
-->
<!ELEMENT announced (#PCDATA)>
<!--
Element: revised
Description: Last revision date of the GLSA
Attribute: @count: number of revisions
Example: <revised count="02">2003-11-20</revised>
-->
<!ELEMENT revised (#PCDATA)>
<!ATTLIST revised count CDATA "01">
<!--
Element: bug
Description: Number of the bug on bugs.gentoo.org, if any
Occurrence: The bug element can occur 0, 1 or more times
Example: <bug>34200</bug>
-->
<!ELEMENT bug (#PCDATA)>
<!--
Element: access
Description: Type of access necessary to exploit the security issue
This element should only be used when product@type = 'ebuild'
Occurrence: The access element can occur 0 or 1 time
Example: <access>Remote</access>
-->
<!ELEMENT access (#PCDATA)>
<!--
Element: affected
Description: Describe what the affected subjects are.
If product@type = 'ebuild', the child elements are 'package'
If product@type = 'portage', the child elements are 'package'
If product@type = 'infrastructure', the child elements are
'service'
-->
<!ELEMENT affected (package*|service*)>
<!--
Element: package
Description: Provide all necessary information regarded the affected
packages. It also contains information about the affected
architectures, if automatic updates can be done and the update
The "update" attribute contains the path to the non-vulnerable
version of the package
The "auto" attribute contains either "yes" or "no" and tells
Portage that the package can be updated automatically (to be
implemented) without further user interaction
The "arch" attribute contains either the architecture (as used
by ACCEPT_KEYWORDS) or the "*" value (in case all
architectures are affected)
Occurrence: The package element can occur 0, 1 or more times
Example: <package name="dev-libs/openssl" auto="yes" arch="*">
<vulnerable range="lt">0.9.6k</vulnerable>
<unaffected range="gt">0.9.6k</unaffected>
</package>
-->
<!ELEMENT package (vulnerable|unaffected)*>
<!ATTLIST package name CDATA #REQUIRED
auto (yes|no) #REQUIRED
arch CDATA #REQUIRED>
<!--
Element: vulnerable
Description: Version of the vulnerable package. Can be a range too
-->
<!ELEMENT vulnerable (#PCDATA)>
<!ATTLIST vulnerable range (le|lt|eq|gt|ge|rlt|rle|rgt|rge) #REQUIRED
slot CDATA "*">
<!--
Element: unaffected
Description: Version of the fixed (or unaffected) package. In case the
package is superseded by another package, you need to
define that package using the "name" attribute.
The r* range information is revision-specific. For instance,
rge foo-1.2.3-r4 == >=foo-1.2.3-r4 && <foo-1.2.4
Example:
<unaffected range="gt" name="foobar">2.0.0</unaffected>
-->
<!ELEMENT unaffected (#PCDATA)>
<!ATTLIST unaffected range (le|lt|eq|gt|ge|rlt|rle|rgt|rge) #REQUIRED
slot CDATA "*"
name CDATA #IMPLIED>
<!--
Element: service
Description: Provide information about the Gentoo services that are
affected by the security advisory. Portage must be able
to parse this information to make decisions (for instance,
ignore an rsync server or a certain distfiles mirror).
The type attribute can be one of "rsync", "web", "mirror".
The fixed attribute (denoting if the problem has been solved)
can be one of "yes" or "no". If not used, the default value is
"no".
Occurrence: The service element can occur 0, 1 or more times
Example: <service type="rsync">rsync://rsync.someserver.tld/gentoo-portage</service>
-->
<!ELEMENT service (#PCDATA)>
<!ATTLIST service type (rsync|web|mirror) #REQUIRED
fixed (yes|no) #IMPLIED>
<!--
Element: uri
Description: Link to the organisation involved in releasing the advisory
Occurrence: The uri element can occur 0, 1 or more times
Example: <uri link="http://www.cert.org">CERT</uri>
-->
<!ELEMENT uri (#PCDATA)>
<!ATTLIST uri link CDATA #IMPLIED>
<!--
Element: mail
Description: Mail address of the people involved in releasing the advisory
Occurrence: The mail element can occur 0, 1 or more times
Example: <mail link="some@person.com">Some Person</mail>
-->
<!ELEMENT mail (#PCDATA)>
<!ATTLIST mail link CDATA #REQUIRED>
<!--
Element: p
Description: Plain text
Occurrence: The "p" element can occur 0, 1 or more times and can contain
links or addresses
Example: <p>Please update your system</p>
-->
<!ELEMENT p (#PCDATA|mail|uri|b|i|br)*>
<!--
Element: code
Description: The code element contains text that should preserve whitespace
and is therefore useful for code listings or commands
Example: <code>emerge sync</code>
-->
<!ELEMENT code (#PCDATA)>
<!--
Element: background
Description: Provides a background of the affected package(s)/service(s)
The background element contains only "<p>"s in which the text
is placed
-->
<!ELEMENT background (p|ul|ol)*>
<!--
Element: description
Description: Provides a description about the security issue
The description element contains only "<p>"s.
-->
<!ELEMENT description (p|ul|ol|code)*>
<!--
Element: impact
Description: Provides information about the impact that the security issue
can have
The "impact" element contains only "<p>"s.
The type element gives a short term, such as
"Denial of Service", "Buffer Overflow", ...
-->
<!ELEMENT impact (p|ul|ol)*>
<!ATTLIST impact type CDATA #REQUIRED>
<!--
Element: workaround
Description: Provides information about how the security issue can be
(temporarily) resolved through a work-around
The "workaround" element contains only "<p>"s and "<code>"s.
-->
<!ELEMENT workaround (p|code|ul|ol)*>
<!--
Element: resolution
Description: Provides information about how the security issue can be
resolved.
The "resolution" element contains only "<p>"s and "<code>"s.
-->
<!ELEMENT resolution (p|code|ul|ol)*>
<!--
Element: references
Description: Provides links to resources / references available online.
The "reference" element contains only "<uri>"s.
-->
<!ELEMENT references (uri*)>
<!--
Element: ul
Description: Add an unnumbered listing; can only contain <li>'s
-->
<!ELEMENT ul (li*)>
<!--
Element: ol
Description: Add a numbered listing; can only contain <li>'s
-->
<!ELEMENT ol (li*)>
<!--
Element: li
Description: Element of a listing
Example: <ul>
<li>This is element one</li>
<li>This is a second element</li>
</ul>
-->
<!ELEMENT li (#PCDATA)>
<!--
Element: b
Description: Bold text
Example: <b>this is bold</b>
-->
<!ELEMENT b (#PCDATA)>
<!--
Element: i
Description: Input text (blue)
Example: The user has to type in <i>ls</i> to see.
-->
<!ELEMENT i (#PCDATA)>
<!--
Element: br
Description: hard line break
Example: And then: <br/>
KABLAM!
-->
<!ELEMENT br (#PCDATA)>
<!--
Element: license
Description: Add license information
Example: <license/>
-->
<!ELEMENT license (EMPTY)>
<!--
Element: metadata
Description: Metadata information for GLSAMaker
Example: <metadata tag="approved">Level 1</metadata>
On request of plasmaroo, metadata can contain all elements again.
-->
<!ELEMENT metadata (#PCDATA|metadata)*>
<!ATTLIST metadata tag CDATA #REQUIRED
revision CDATA #IMPLIED
author CDATA #IMPLIED
timestamp CDATA #IMPLIED>

97
metadata/dtd/metadata.dtd Normal file
View File

@@ -0,0 +1,97 @@
<!-- Metadata for a category -->
<!ELEMENT catmetadata ( (longdescription)* )>
<!-- Metadata for a package -->
<!ELEMENT pkgmetadata ( (maintainer|longdescription|slots|stabilize-allarches|use|upstream)* )>
<!-- One tag for each maintainer of a package, multiple allowed-->
<!ELEMENT maintainer (email|name|description)+>
<!-- type attribute determines whether the maintainer is a person or a project.
Unknown is added to handle <maintainer/>s in <upstream/>s. Using it (or no
explicit type) for Gentoo maintainers is prohibited. -->
<!ATTLIST maintainer type (person|project|unknown) "unknown">
<!-- proxied attribute determines whether the maintainer is a proxied
maintainer (yes), regular dev (no) or a proxy for somebody (proxy). It is
valid only for Gentoo maintainers. -->
<!ATTLIST maintainer proxied (yes|no|proxy) "no">
<!-- A long description of the package in freetext-->
<!ELEMENT longdescription (#PCDATA|pkg|cat)* >
<!-- A description of the packages SLOTs -->
<!ELEMENT slots ((slot)*,subslots?) >
<!-- A particular SLOT -->
<!ELEMENT slot (#PCDATA)* >
<!-- name attribute holds the name of the SLOT, for sub-SLOTS
use the subslots element. A slot name of '*' can be used to
indicate a single description applying to all the slots in which
case no other <slot/> elements may be present. -->
<!ATTLIST slot name CDATA #REQUIRED >
<!-- The meaning of sub-SLOTs for the whole package -->
<!ELEMENT subslots (#PCDATA)* >
<!-- whether it's possible to stabilize ALLARCHES -->
<!ELEMENT stabilize-allarches EMPTY>
<!-- description of what this USE flag does for this package -->
<!ELEMENT use (flag)* >
<!ELEMENT flag (#PCDATA|pkg|cat)* >
<!-- name attribute holds the name of the USE flag -->
<!ATTLIST flag name CDATA #REQUIRED >
<!-- upstream metadata information (maintainers, upstream docs,..) -->
<!ELEMENT upstream (maintainer|changelog|doc|bugs-to|remote-id)* >
<!-- Due to the limitation of DTD this will also allow a status
attribute for the package maintainer element. Please note that
the usage of the status attribute is nevertheless _only_ allowed
in the upstream maintainer element. -->
<!ATTLIST maintainer status (active|inactive|unknown) "unknown" >
<!-- URL where the upstream changelog can be found -->
<!ELEMENT changelog (#PCDATA)>
<!-- URL where the location of the upstream documentation can be found -->
<!ELEMENT doc (#PCDATA)>
<!ATTLIST doc lang CDATA "en" >
<!-- location where to report bugs
(may also be an email address prefixed with mailto:) -->
<!ELEMENT bugs-to (#PCDATA)>
<!-- specify a type of package identification tracker -->
<!ELEMENT remote-id (#PCDATA)>
<!ATTLIST remote-id type (bitbucket|codeberg|cpan|cpan-module|cpe|cran|ctan|freedesktop-gitlab|gentoo|github|gitlab|gnome-gitlab|google-code|hackage|heptapod|kde-invent|launchpad|osdn|pear|pecl|pypi|rubygems|savannah|savannah-nongnu|sourceforge|sourcehut|vim) #REQUIRED>
<!-- category/package information for cross-linking in descriptions
and useflag descriptions -->
<!ELEMENT pkg (#PCDATA) >
<!ELEMENT cat (#PCDATA) >
<!-- Common attributes -->
<!-- the lang attribute, specifies the language of this tag in the
form of an IETF (BCP 47) language 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 "en" -->
<!ATTLIST description lang CDATA "en" >
<!ATTLIST longdescription lang CDATA "en" >
<!ATTLIST slots lang CDATA "en" >
<!ATTLIST use lang CDATA "en" >
<!-- 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. Only package
dependency specifications conforming to EAPI=0 syntax are allowed.
The dependency specification may only contain references to the
package itself and no other package.
For required tags, there must be either an unrestricted version, or a
version that is default restricted. -->
<!ATTLIST maintainer restrict CDATA #IMPLIED >
<!ATTLIST longdescription restrict CDATA #IMPLIED >
<!ATTLIST flag restrict CDATA #IMPLIED >
<!ATTLIST stabilize-allarches restrict CDATA #IMPLIED >
<!-- standard parts -->
<!-- an email address -->
<!ELEMENT email (#PCDATA) >
<!-- the name of a person (maintainer, contributor) -->
<!ELEMENT name (#PCDATA) >
<!-- A description of a maintainer or change -->
<!ELEMENT description (#PCDATA) >

67
metadata/dtd/mirrors.dtd Normal file
View File

@@ -0,0 +1,67 @@
<!-- This file is used for keeping the new mirrors.xml file -->
<!--
element: mirrors
description: A set of mirrorgroups
example: <mirrors>
<mirrorgroup country="US" region="North America">
...
</mirrorgroup>
...
</mirrors>
-->
<!ELEMENT mirrors (mirrorgroup*)>
<!--
element: mirrorgroup
description: Group mirrors by region and country.
example: <mirrorgroup region="South America" country="BZ">
<mirror>
...
</mirror>
...
</mirrorgroup
-->
<!ELEMENT mirrorgroup (mirror*)>
<!ATTLIST mirrorgroup region CDATA #REQUIRED
country CDATA #REQUIRED
countryname CDATA #IMPLIED>
<!--
element: mirror
description: One per mirror; name the mirror and provide one or more uris
optionally: provide GPS coordinates, a city and a bug id.
example: <mirror city="Corvallis"
coordinates="44.5646,-123.2620"
gentoo-bug="12345">
<name>OSU Open Source Lab</name>
<uri protocol="http">http://gentoo.osuosl.org/</uri>
<uri protocol="ftp">ftp://gentoo.osuosl.org/</uri>
</mirror>
-->
<!ELEMENT mirror (name, uri+)>
<!ATTLIST mirror
city CDATA #IMPLIED
coordinates CDATA #IMPLIED
gentoo-bug CDATA #IMPLIED>
<!--
element: name
description: Name of the mirror
note: Do not include a country and protocol pair, "(USA/http)" as they will
be built by the XSL.
example: <name>OSU Open Source Lab</name>
-->
<!ELEMENT name (#PCDATA)>
<!--
element: uri
description: A Uniform Resource Locator for a given mirror
example: <uri protocol='http' ipv4='y' ipv6='y'>http://gentoo.osuosl.org/</uri>
-->
<!ELEMENT uri (#PCDATA)>
<!ATTLIST uri ipv4 (Y|y|N|n) "y"
ipv6 (Y|y|N|n) "n"
partial (Y|y|N|n) "n"
protocol (http|ftp|rsync) "http">

26
metadata/dtd/projects.dtd Normal file
View File

@@ -0,0 +1,26 @@
<!ELEMENT projects (project)*>
<!-- A project (identified by email address) -->
<!ELEMENT project (email,name,url,description,subproject*,member*)>
<!-- Contact e-mail address of a project or a project member -->
<!ELEMENT email (#PCDATA)>
<!-- Name of a project or a project member -->
<!ELEMENT name (#PCDATA)>
<!-- URL of the project homepage -->
<!ELEMENT url (#PCDATA)>
<!-- Description of the project -->
<!ELEMENT description (#PCDATA)>
<!-- Project member -->
<!ELEMENT member (email,name,role)>
<!-- is-lead="1" indicates that the member is the project's lead -->
<!ATTLIST member
is-lead (0|1) "0">
<!-- Project member role -->
<!ELEMENT role (#PCDATA)>
<!-- Subproject of a project -->
<!ELEMENT subproject (#PCDATA)>
<!-- inherit-members="1" indicates that the project inherits members
from the subproject -->
<!-- ref="" references the subproject by the contact e-mail address -->
<!ATTLIST subproject
inherit-members (0|1) "0"
ref CDATA #REQUIRED>

View File

@@ -0,0 +1,64 @@
<!-- Used by [gentoo]/xml/htdocs/proj/en/overlays/repositories.xml -->
<!--
The source copy and history of this file is available from
https://gitweb.gentoo.org/proj/repositories-xml-format.git/
-->
<!--
Gentoo repositories.xml DTD 1.0
Modelling by
Robert Buchholz <rbu@gentoo.org>
Sebastian Pipping <sebastian@pipping.org>
Mounir Lamouri <volkmar@gentoo.org>
Tiziano Müller <dev-zero@gentoo.org>
Copyright 1999-2015 Gentoo Foundation
Distributed under the terms of the GNU General Public License v2 or later
-->
<!ELEMENT repositories (repo)*>
<!ATTLIST repositories
xmlns CDATA #FIXED ''
version CDATA #FIXED '1.0'>
<!ELEMENT repo (name,(description)+,(longdescription)*,(homepage)?,(owner)+,(source)+,(feed)*)>
<!ATTLIST repo
xmlns CDATA #FIXED ''
priority CDATA #IMPLIED
quality (core|stable|testing|experimental|graveyard) #REQUIRED
status (official|unofficial) #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ATTLIST name
xmlns CDATA #FIXED ''>
<!ELEMENT description (#PCDATA)>
<!ATTLIST description
xmlns CDATA #FIXED ''
lang CDATA #IMPLIED>
<!ELEMENT longdescription (#PCDATA)>
<!ATTLIST longdescription
xmlns CDATA #FIXED ''
lang CDATA #IMPLIED>
<!ELEMENT homepage (#PCDATA)>
<!ATTLIST homepage
xmlns CDATA #FIXED ''>
<!ELEMENT owner (email,(name)?)>
<!ATTLIST owner
xmlns CDATA #FIXED ''
type (project|person) #IMPLIED>
<!ELEMENT source (#PCDATA)>
<!ATTLIST source
xmlns CDATA #FIXED ''
type (bzr|cvs|darcs|git|mercurial|rsync|svn|tar) #REQUIRED>
<!ELEMENT feed (#PCDATA)>
<!ATTLIST feed
xmlns CDATA #FIXED ''>
<!ELEMENT email (#PCDATA)>
<!ATTLIST email
xmlns CDATA #FIXED ''>

23
metadata/dtd/userinfo.dtd Normal file
View File

@@ -0,0 +1,23 @@
<!ELEMENT userlist (user+)>
<!ELEMENT user (realname, pgpkey+, alias*, email+, joined*, retired*, status?, roles?, location?) >
<!ATTLIST user username ID #REQUIRED>
<!ELEMENT realname (firstname,familyname)>
<!ATTLIST realname fullname CDATA #IMPLIED>
<!ELEMENT firstname (#PCDATA) >
<!ELEMENT familyname (#PCDATA) >
<!ATTLIST familyname sort CDATA #IMPLIED>
<!ELEMENT pgpkey (#PCDATA)>
<!ELEMENT alias (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!-- all dates should be YYYY-MM-DD - eg '2006-11-22' -->
<!ELEMENT joined (#PCDATA)>
<!ELEMENT retired (#PCDATA)>
<!ELEMENT status (#PCDATA)>
<!ELEMENT roles (#PCDATA)>
<!-- Location is the string displayed on the webpage -->
<!ELEMENT location (#PCDATA)>
<!-- signed decimal numbers. degrees north/east. -->
<!ATTLIST location latitude CDATA #IMPLIED
longitude CDATA #IMPLIED>