Comp group definition 

Sample text-internet group 

<group>
  <id>text-internet</id>
  <name>Text-based Internet</name>
  <name xml:lang="it">Internet text-based</name>
  <description>This group includes text-based email, Web, and chat clients.  These applications do not require the X Window System.</description>
  <description xml:lang="it">Questo gruppo include e-mail, Web e chat client text-based. Tali applicazioni non richiedono il sistema X Window.</description>
  <uservisible>true</uservisible>
  <default>true</default>
  <grouplist>
    <groupreq>base</groupreq>
  </grouplist>
  <packagelist>
    <packagereq type="default">fetchmail</packagereq>
    <packagereq type="optional">epic</packagereq>
    <packagereq type="optional">lynx</packagereq>
    <packagereq type="default">mutt</packagereq>
    <packagereq type="optional">ncftp</packagereq>
    <packagereq type="optional">pine</packagereq>
    <packagereq type="default">slrn</packagereq>
  </packagelist>
</group>

comps.xml Doc 

http://rhlinux.redhat.com/anaconda/comps.html

The comps file is then broken into several different sections. The first is the group lists, which describe the different groups (or components) available for selection during a Red Hat Linux installation. This includes group names, descriptions and lists of included packages. The second section is a group hierarchy. This defines an ordering of the groups by breaking them down into categories. Finally, there is a section with the list of packages included and their resolved dependencies.

The Group List 

A group has quite a few different attributes which are required for proper operation. The following is a list of attributes and what they're used for. Groups are defined within the <group></group> tag.

A simple group definition:

<group>
 <id>somegroup</id>
 <name>Sample Group</name>
 <default>true</default>
 <uservisible>false</uservisible>
 <description>This is a silly sample group</description>
 <packagelist>
   <packagereq type="mandatory">bash</packagereq>
   <packagereq type="default">cpio</packagereq>
 </packagelist>
</group>
  • id: (REQUIRED) The id of a group is just a short form used throughout the comps file to refer to the group. The intent is that it allows the changing of the user visible group names without having to change things through the comps file. (unicode string)
  • name: (REQUIRED) This is the user visible name of the group which is displayed in the various tools which allow package selection using the comps file. This is a translatable element with translations done using intltool's xml style. (unicode string)
  • default: This determines whether or not the group should be selected by default on a custom installation of Red Hat Linux. If not specified, it defaults to no. (boolean)
  • description: (REQUIRED) This is a short description of the group. This is a translatable element with translations done using intltool's xml style. (unicode string)
  • uservisible: This determines whether or not the group is shown in config tools by default. If not specified, it defaults to yes. (boolean)
  • packagelist: (REQUIRED) This is a list of packages included within the group. (list)

    o packagereq: Name of package to include. (string)
    Attributes are:
    + type: Whether the package is a mandatory part of the group,
    a package which is installed by default with the group, or a
    package which can be optionally selected for installation as
    part of a group. (enum: "mandatory", "default", "optional")
    + requires: This package will only be installed if the
    required package is also installed. Note that this attribute
    is not guaranteed to continue working with its current
    semantics in the future.