Gentoo Archives: gentoo-dev

From: Michael Palimaka <kensington@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: [PATCH] metadata: add slots element
Date: Tue, 13 Oct 2015 12:54:17
Message-Id: mvius4$cp4$1@ger.gmane.org
In Reply to: [gentoo-dev] [PATCH] metadata: add slots element by Julian Ospald
1 On 13/10/15 04:19, Julian Ospald wrote:
2 > There seems to be some general confusion about specific package SLOTs
3 > and their meaning, since there can be several naming schemes applied
4 > and documentation is either non-existent or is inside the ebuild via
5 > comments.
6 > Because of that it should be part of metadata.xml.
7 >
8 > An example use case for media-libs/libpng would be:
9 > <slots>
10 > <slot name="0">For building against. This is the only slot
11 > that provides headers and command line tools.</slot>
12 > <slot name="1.2">For binary compatibility, provides libpng12.so.0.</slot>
13 > <slot name="1.5">For binary compatibility, provides libpng15.so.15.</slot>
14 > <subslots>Represent ABI compatibility for libpng.so.</subslots>
15 > </slots>
16 >
17 > For packages like x11-libs/wxGTK one could write:
18 > <slots>
19 > <slot name="*">Major versions.</slot>
20 > </slots>
21 > ---
22 > metadata.dtd | 12 +++++++++++-
23 > 1 file changed, 11 insertions(+), 1 deletion(-)
24 >
25 > diff --git a/metadata.dtd b/metadata.dtd
26 > index ff2649c..4b29f3b 100644
27 > --- a/metadata.dtd
28 > +++ b/metadata.dtd
29 > @@ -5,7 +5,7 @@
30 > <!ATTLIST catmetadata pkgname CDATA "">
31 >
32 > <!-- Metadata for a package -->
33 > -<!ELEMENT pkgmetadata ( (herd|maintainer|natural-name|longdescription|use|upstream)* )>
34 > +<!ELEMENT pkgmetadata ( (herd|maintainer|natural-name|longdescription|slots|use|upstream)* )>
35 > <!ATTLIST pkgmetadata pkgname CDATA "">
36 >
37 > <!-- One tag for each herd this package is assigned to. -->
38 > @@ -20,6 +20,15 @@
39 > <!-- A long description of the package in freetext-->
40 > <!ELEMENT longdescription (#PCDATA|pkg|cat)* >
41 >
42 > + <!-- A description of the packages SLOTs -->
43 > + <!ELEMENT slots ((slot)*,subslots?) >
44 > + <!-- A particular SLOT -->
45 > + <!ELEMENT slot (#PCDATA)* >
46 > + <!-- name attribute holds the name of the SLOT, for sub-SLOTS use the subslots element -->
47 > + <!ATTLIST slot name CDATA #REQUIRED >
48 > + <!-- The meaning of sub-SLOTs for the whole package -->
49 > + <!ELEMENT subslots (#PCDATA)* >
50 > +
51 > <!-- The changelog of the package-->
52 > <!-- Please note that #PCDATA is mentioned only for the upstream changelog
53 > element, where the content is a URL. This is due to limitations of the DTD -->
54 > @@ -79,6 +88,7 @@
55 > language "C" or "en", which is equivalent -->
56 > <!ATTLIST description lang CDATA "C" >
57 > <!ATTLIST longdescription lang CDATA "C" >
58 > + <!ATTLIST slots lang CDATA "C" >
59 > <!ATTLIST use lang CDATA "C" >
60 >
61 > <!-- The restrict attribute, this attribute specifies restrictions on
62 >
63
64 +1