comps.xml is now pushed automatically

Daniel Veillard veillard at redhat.com
Thu Nov 23 18:15:03 UTC 2006


On Thu, Nov 23, 2006 at 05:16:13PM +0000, Paul Nasrat wrote:
> On Thu, 2006-11-23 at 16:01 +0100, Nicolas Mailhot wrote:
> > Le Jeu 23 novembre 2006 15:26, Christian Iseli a écrit :
> > > Hi folks,
> > >
> > > Better late than never, I'd like to announce that the FE comps.xml.in
> > > files are now pushed automatically along when there is a package
> > > sign/push to the repo.
> > 
> > BTW do we have an authoritative DTD or schema for the comps.xml file
> > somewhere? Would it be worthwile to create one (in relax-ng or XML schema)
> > ? I'me pretty sick of using --novalid in XML tools.
> 
> No we don't.  I want to split some of the stuff out into it's own files
> - eg categories really only apply to display within tools so it's not
> the right place.  yum/rpm repodata supports arbitrary metadata now so
> I'd like to break things up.
> 
> Schemas for comps.xml as current and also repomd as generated by
> createrepo would be welcome.  

  A few years ago I created a Relax-NG schemas for comps.xml, it's certainly
way out of date but may be used as a starting point,

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard at redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
-------------- next part --------------
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
  <ref name="comps"/>
</start>

<define name="package-name">
  <text/>
</define>

<define name="group-name">
  <text/>
</define>

<define name="lang">
  <text/>
</define>

<define name="description-text">
  <text/>
</define>

<define name="comps">
  <element name="comps">
    <oneOrMore>
      <ref name="group"/>
    </oneOrMore>
    <ref name="grouphierarchy"/>
    <oneOrMore>
      <ref name="package"/>
    </oneOrMore>
  </element>
</define>

<define name="group">
  <element name="group">
    <element name="id">
      <ref name="group-name"/>
    </element>
    <interleave>
      <ref name="names"/>
      <optional>
        <element name="default">
          <choice>
            <value>true</value>
            <value>false</value>
          </choice>
        </element>
      </optional>
      <optional>
        <ref name="descriptions"/>
      </optional>
      <optional>
        <element name="uservisible">
          <choice>
            <value>true</value>
            <value>false</value>
          </choice>
        </element>
      </optional>
      <optional>
        <element name="langonly">
	  <ref name="lang"/>
        </element>
      </optional>
    </interleave>
    <optional>
      <element name="grouplist">
        <zeroOrMore>
	  <element name="groupreq">
	    <ref name="group-name"/>
	  </element>
        </zeroOrMore>
        <zeroOrMore>
	  <element name="metapkg">
	    <attribute name="type">
	      <choice>
	        <value>default</value>
	        <!-- <value>mandatory</value> ?? -->
	        <value>optional</value>
	      </choice>
	    </attribute>
	    <ref name="package-name"/>
	  </element>
        </zeroOrMore>
      </element>
    </optional>
    <optional>
      <element name="packagelist">
        <oneOrMore>
          <element name="packagereq">
	    <attribute name="type">
	      <choice>
	        <value>default</value>
	        <value>mandatory</value>
	        <value>optional</value>
	      </choice>
	    </attribute>
	    <optional>
	      <attribute name="requires">
	        <ref name="package-name"/>
	      </attribute>
	    </optional>
	    <ref name="package-name"/>
	  </element>
        </oneOrMore>
      </element>
    </optional>
  </element>
</define>

<define name="grouphierarchy">
  <element name="grouphierarchy">
    <oneOrMore>
      <ref name="category"/>
    </oneOrMore>
  </element>
</define>

<define name="category">
  <element name="category">
    <ref name="names"/>
    <optional>
      <element name="subcategories">
        <oneOrMore>
	  <element name="subcategory">
	    <ref name="package-name"/>
	  </element>
        </oneOrMore>
      </element>
    </optional>
  </element>
</define>

<define name="package">
  <element name="package">
    <element name="name">
      <ref name="package-name"/>
    </element>
    <element name="dependencylist">
      <zeroOrMore>
        <element name="dependency">
	  <ref name="package-name"/>
	</element>
      </zeroOrMore>
    </element>
  </element>
</define>

<define name="names">
  <element name="name">
    <ref name="description-text"/>
  </element>
  <zeroOrMore>
    <element name="name">
      <attribute name="xml:lang">
        <ref name="lang"/>
      </attribute>
      <ref name="description-text"/>
    </element>
  </zeroOrMore>
</define>

<define name="descriptions">
  <element name="description">
    <ref name="description-text"/>
  </element>
  <zeroOrMore>
    <element name="description">
      <attribute name="xml:lang">
        <ref name="lang"/>
      </attribute>
      <ref name="description-text"/>
    </element>
  </zeroOrMore>
</define>

</grammar>


More information about the fedora-extras-list mailing list