From Fedora Project Wiki

< User:Ffesti

Revision as of 10:58, 28 February 2011 by Ffesti (talk | contribs) (Comps.xml: move out F14 comps add section about different functions)



The comps file adds meta data information to the repository that cannot be extracted from the packages themselves. Although there is one big tree of items there are several different functions merged into it.

See Fedora 14 as example of the structure.


The structure of comps looks like this:

  • category
    • id
    • name (translated string)
    • displayorder (int)
    • grouplist (groupids)
  • group
    • id
    • name (translated string)
    • description (translated string)
    • display_order (int)
    • default (bool)
    • user visible (bool)
    • langonly (two letter lang code)
    • package list
      • conditional
      • mandatory
      • default
      • optionals

Anaconda magic:

  • whiteout
    • requires, pacakge
  • blacklist
    • packagename, arch

So there is a tree with fixed depth: Categories -> Groups -> optional packages.


Comps has several functions that are merged into the same tree:

  • Selecting packages as important to the user (in opposite to those only dragged in by dependency)
  • Grouping similar packages together to make them more easy to find
  • Grouping one of each kind together to allow installing them as one thing
  • Defining the default installation and default installation for variants
  • Define how the UI for package selection should look like
  • Do magic for language packages (XXX TODO: read details about yum plugin doing this for F15)