User:Ffesti/comps

From FedoraProject

< User:Ffesti
Revision as of 10:58, 28 February 2011 by Ffesti (Talk | contribs)

Jump to: navigation, search

Comps.xml

Draft!

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.

Scheme

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.

Functions

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)