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)