#
# RNC schema for gutter package list:
#
start = element gutter { package+ }
#
# Data types:
#
PACKAGEID = text # Package identifier, [:alpha:][:alnum:]*
VERSIONID = text # Version identifier, ???tbd
AUTHOR = text # Name of person or organization
URL = text # URL, see RFC XXXX
DATE = text # Datestamp, YYYY-MM-DD
PKGREFS = text # comma-separated list of package references
# pkgref = extname | pkgname(extname)
# e.g., "tdom", "uri(tcllib)"
EXTREFS = text # external package references
package = element package {
attribute id { PACKAGEID }
& element license { text }
& element author { AUTHOR }*
& element homepage { URL }+ # ==
& element summary { text } # One-line summary
& element description { text } # Longer description
& link*
& release*
# Other stuff:
# @@@ not sure how best to represent these
& element (depends|recommends|build-depends|related) {PKGREFS}*
& element (requires|build-requires) {EXTREFS}*
& element (cvs) { text }*
}
release = element release {
attribute version { VERSIONID }
& element date { DATE }
& element announce { URL }? # ==
}
link = element link {
URL,
attribute rel {
"homepage" | "documentation" | "announce"
| "see-also" | "wiki"
| "sourceforge" | "freshmeat" | "github"
| "svn" | "darcs" | "git" | "fossil" | "hg"
| "cvsweb" | "cvstrac" | "trac"
}
# @@@ these don't belong on , dunno where to put them yet...
, attribute id { text }? # numeric id, for SF, FM, other links
, attribute module { text }? # CVS module for SF link
}
# IDEA, 22 Feb 2009:
# Replace with
# (?name) -- sourceforge, savannah, google-code, ... others.
# Attributes: site (sf/gcode/etc), name, id, possibly subproject
# Derive relevant links from site * name * id
#
# Think about: unify ("SCM")?
otherstuff = element * { (attribute * { text } | text | otherstuff)* }
#*EOF*