There seems to be some general confusion about specific package SLOTs
and their meaning, since there can be several naming schemes applied
and documentation is either non-existent or is inside the ebuild via
comments.
Because of that it should be part of metadata.xml.
An example use case for media-libs/libpng would be:
<slots>
<slot name="0">For building against. This is the only slot
that provides headers and command line tools.</slot>
<slot name="1.2">For binary compatibility, provides libpng12.so.0.</slot>
<slot name="1.5">For binary compatibility, provides libpng15.so.15.</slot>
<subslots>Represent ABI compatibility for libpng.so.</subslots>
</slots>
For packages like x11-libs/wxGTK one could write:
<slots>
<slot name="*">Major versions.</slot>
</slots>
---
metadata.dtd | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/metadata.dtd b/metadata.dtd
index ff2649c..4b29f3b 100644
--- a/metadata.dtd
+++ b/metadata.dtd
@@ -5,7 +5,7 @@
<!ATTLIST catmetadata pkgname CDATA "">
<!-- Metadata for a package -->
-<!ELEMENT pkgmetadata (
(herd|maintainer|natural-name|longdescription|use|upstream)* )>
+<!ELEMENT pkgmetadata (
(herd|maintainer|natural-name|longdescription|slots|use|upstream)* )>
<!ATTLIST pkgmetadata pkgname CDATA "">
<!-- One tag for each herd this package is assigned to. -->
@@ -20,6 +20,15 @@
<!-- 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 -->
+ <!ATTLIST slot name CDATA #REQUIRED >
+ <!-- The meaning of sub-SLOTs for the whole package -->
+ <!ELEMENT subslots (#PCDATA)* >
+
<!-- The changelog of the package-->
<!-- Please note that #PCDATA is mentioned only for the upstream changelog
element, where the content is a URL. This is due to limitations of the DTD
-->
@@ -79,6 +88,7 @@
language "C" or "en", which is equivalent -->
<!ATTLIST description lang CDATA "C" >
<!ATTLIST longdescription lang CDATA "C" >
+ <!ATTLIST slots lang CDATA "C" >
<!ATTLIST use lang CDATA "C" >
<!-- The restrict attribute, this attribute specifies restrictions on
--
2.6.1