#6144: Document the semantics of "comps"

Fedora Release Engineering rel-eng at fedoraproject.org
Fri May 1 15:18:37 UTC 2015


#6144: Document the semantics of "comps"
---------------------+-----------------------
  Reporter:  rholy   |      Owner:  rel-eng@…
      Type:  defect  |     Status:  new
 Milestone:          |  Component:  other
Resolution:          |   Keywords:
Blocked By:          |   Blocking:
---------------------+-----------------------

Comment (by dcantrel):

 It really would be nice to have the comps specification documented
 somewhere.  Most of the functionality that is understood or expected of
 comps comes from historical research.  Not great, but that's what we have.
 comps do not fit in to the standard RPM metaphor we have because they
 describe RPMs outside of the context of a single RPM.  Development and
 maintenance around comps has always been outside of the standard package
 maintenance model.

 For installation-time behavior, I recommend the kickstart %packages
 documentation:

 https://github.com/rhinstaller/pykickstart/blob/master/docs/kickstart-
 docs.rst#chapter-3-package-selection

 That explains how the installer has treated mandatory, default, and
 optional attributes on packages defined in comps.  In brief:

 1) Mandatory packages are always installed if a user asks for a comp (a
 group in kickstart or installer language).

 2) Default packages are installed, but the user can exclude them.  In the
 graphical installer, these are the packages that would appear checked by
 default but the user could uncheck them.

 3) Optional packages are not installed by default, but the user can select
 them.  The opposite of #2.

 So there are really just two types of packages:  mandatory and user
 selectable.  "default" means the user selectable is flagged for
 installation by default.  "optional" means the package is not flagged for
 installation by default.

 All of this language really only matters when users are working with comps
 definitions.  That is, package groups.  Installing @desktop or
 @development triggers the definitions from comps.  Users can, and
 sometimes do, list individual packages by name in the %packages section.

 As for overlapping comps definitions....this shouldn't happen in comps
 directly, but does happen via RPM dependencies.  A comps definition is
 typically short (except for the translation data) because we know that RPM
 dependencies will pull in a lot of packages.  Comps definitions don't work
 without RPM dependencies.  The appearance of overlapping comps/group
 membership in an RPM is (or should be) the result of RPM dependency
 resolution and not duplicate listing in the comps file.

 Any changes to how comps works with DNF should take in to account the
 established behavior in %packages in kickstart files.  We can change
 things, but we should avoid breaking existing behavior for users.

-- 
Ticket URL: <https://fedorahosted.org/rel-eng/ticket/6144#comment:4>
Fedora Release Engineering <http://fedorahosted.org/rel-eng>
Release Engineering for the Fedora Project


More information about the rel-eng mailing list