Go to file
Adam Williamson 1aadd5d807 Do a sort
Some recent commits aren't sorted right. Also tweak some comments
so `make sort` doesn't delete them.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-04-24 10:21:47 -07:00
ci Zuul: Add basic validation script 2023-04-19 17:59:05 +00:00
po Translated using Weblate (Korean) 2023-04-22 16:20:46 +02:00
.gitignore Add ELN-Extras group 2022-07-11 20:42:25 +00:00
.zuul.yaml Zuul: Add basic validation script 2023-04-19 17:59:05 +00:00
check-missing check-missing: fix --update to actually work 2023-01-31 12:09:47 -08:00
comps-cleanup.xsl Add some env bits to comps-cleanup.xsl 2013-04-23 15:56:26 -04:00
comps-el4.xml.in - Added jmol & gromacs. 2008-10-28 18:43:04 +00:00
comps-el5.xml.in Fix typo: epel-rpm-config -> epel-rpm-macros. 2016-04-01 19:34:43 -05:00
comps-el6.xml.in add epel-rpm-macros to el6 comps 2016-01-20 14:20:35 -06:00
comps-eln.xml.in.in Add cups-browsed into ELN and F38 comps 2023-02-20 19:24:54 +00:00
comps-epel7.xml.in comps-epel7: Add LXQt desktop 2019-10-10 15:44:19 +08:00
comps-epel8-next.xml.in EPEL 8: Add plasma-workspace-wallpapers to the kde-desktop group 2022-09-20 09:36:32 -04:00
comps-epel8.xml.in EPEL 8: Add plasma-workspace-wallpapers to the kde-desktop group 2022-09-20 09:36:32 -04:00
comps-epel9-next.xml.in Install udisks2 when installing kde. Helps minimal installs 2023-01-20 10:07:34 -08:00
comps-epel9.xml.in Install udisks2 when installing kde. Helps minimal installs 2023-01-20 10:07:34 -08:00
comps-f7.xml.in Make dejavu-fonts manditory for Venda support as it contains characters required for Venda. 2008-12-14 21:02:08 +00:00
comps-f8.xml.in Fix sort order introduced in r1.285: move lxde packages to windowmanagers 2009-02-15 13:00:04 +00:00
comps-f9.xml.in Revert "Remove eject, merged into util-linux" 2012-09-06 14:09:14 +02:00
comps-f10.xml.in Added clipsmm-doc to f14-f10 2010-03-09 16:27:07 +00:00
comps-f11.xml.in add gtkhash 2010-05-25 18:43:40 +02:00
comps-f12.xml.in added kde-partitionmanager to admin-tools in f12-f15 2010-10-28 16:58:29 +03:00
comps-f13.xml.in add bluetile 2011-05-26 17:06:13 +09:00
comps-f14.xml.in add sort target to Makefile and sort 2017-04-11 19:21:30 -05:00
comps-f15.xml.in add sort target to Makefile and sort 2017-04-11 19:21:30 -05:00
comps-f16.xml.in add sort target to Makefile and sort 2017-04-11 19:21:30 -05:00
comps-f17.xml.in add sort target to Makefile and sort 2017-04-11 19:21:30 -05:00
comps-f18.xml.in add sort target to Makefile and sort 2017-04-11 19:21:30 -05:00
comps-f19.xml.in add sort target to Makefile and sort 2017-04-11 19:21:30 -05:00
comps-f20.xml.in Remove retired netcat tools (nc and nc6) 2016-06-20 18:58:16 -04:00
comps-f21.xml.in add sort target to Makefile and sort 2017-04-11 19:21:30 -05:00
comps-f22.xml.in Sort and indent and clean up all current comps files. 2016-06-23 10:57:08 -06:00
comps-f23.xml.in Make CVS and RCS optional in @development-tools 2016-10-24 09:02:01 -04:00
comps-f24.xml.in add Web to python-web description 2017-04-18 15:17:02 -05:00
comps-f25.xml.in Merge #164 Cinnamon: Use tilix as default terminal emulator 2017-09-07 20:57:13 +00:00
comps-f26.xml.in dnfdragora-gui was renamed to dnfdragora-updater. Change it in all the places it was used 2018-03-03 13:47:58 -08:00
comps-f27.xml.in MATE: add mate-user-admin 2018-09-28 10:23:32 +02:00
comps-f28.xml.in Run 'make sort' 2019-02-15 09:20:03 -05:00
comps-f29.xml.in add new liquidio-firmware and netronome-firmware firmware packages as optional additions 2019-02-07 12:15:15 +00:00
comps-f30.xml.in Run "make sort" on rawhide 2021-02-16 22:15:08 +00:00
comps-f31.xml.in Run "make sort" on rawhide 2021-02-16 22:15:08 +00:00
comps-f32.xml.in Fix eclipse group content. 2021-04-28 21:42:45 +00:00
comps-f33.xml.in [F33, F34, F35] - use 'default-editor' in comps 2021-07-02 06:04:26 +02:00
comps-f34.xml.in Re-sort 2022-06-28 13:13:37 -04:00
comps-f35.xml.in f35+: Run 'make sort' 2022-12-06 18:18:03 +00:00
comps-f36.xml.in Do a sort 2023-04-24 10:21:47 -07:00
comps-f37.xml.in Do a sort 2023-04-24 10:21:47 -07:00
comps-f38.xml.in Do a sort 2023-04-24 10:21:47 -07:00
comps-f39.xml.in Do a sort 2023-04-24 10:21:47 -07:00
comps.dtd comps.dtd, comps.rng: add environment and optionlist 2014-02-17 10:47:27 +09:00
comps.rng relaxng: allow arch= for <optionlist> 2022-07-11 20:44:06 +00:00
Makefile Rawhide is now Fedora 39 2023-02-08 23:47:11 +05:30
README.md README: Update link for bugs (Pagure, not bugzilla) 2022-08-29 15:20:12 -07:00
update-comps Fix permissions on update-comps 2015-09-18 10:39:02 -06:00
update-eln-extras-comps Add ELN-Extras group 2022-07-11 20:42:25 +00:00

Fedora Comps

comps files are XML files used by various Fedora tools to perform grouping of packages into functional groups.

How comps is used

Installation

comps is used by the installer during package selection. On the Software Selection screen, environment groups (as defined by the environment keyword in comps.xml) are listed down the left-hand side. All optional groups (defined by the group keyword) for that environment (listed in the environment's optionlist) are shown at the top of the right-hand pane. Other groups which have uservisible set are displayed lower in the right-hand pane.

At install time, the installer will usually install the mandatory, default and appropriate conditional packages from all groups listed in the selected environment group's grouplist, plus those from any optional groups the user selected on the right-hand side. See below for more details on these 'levels'.

Running System

In dnf, groups and environment groups are used by the dnf group install and dnf group remove commands, and can be queried with the dnf group list command. There are many others besides these: see the dnf documentation for more on this.

Tree, Release, and Image Composition

The kickstart files in fedora-kickstarts use the group and environment group definitions from comps. Multiple tools use these kickstarts to compose different types of images, and the release trees. The manifests for rpm-ostree-based Fedora variants in workstation-ostree-config (the name is a misnomer these days) are synced against comps using the comps-sync.py script, and used to define the package sets included in those variants.

Package levels

In any group, there are four levels of packages: optional, default, mandatory, and conditional.

  • mandatory - these packages must be installed for the group to be considered installed
  • default - these packages are installed by default, but can be removed while the group is still considered installed
  • optional - these packages are not installed by default, but can be pulled in by kickstart or dnf options
  • conditional - these packages are brought in if their requires package is installed

When using the interactive installer, you cannot include optional packages. However, if using a kickstart, you can add the --optional option for a group to specify that its optional packages should be included. Similarly, when installing a group with dnf, you can pass --with-optional to include the optional packages.

Categories

Categories are barely used any more. They used to be something like environment groups for an older form of the Fedora installer. Some older graphical package management tools can still display these categories.

Developing comps

For Fedora packagers:

git clone ssh://git@pagure.io/fedora-comps.git

For others:

git clone https://pagure.io/fedora-comps.git

When changing the packages, make sure the file is sorted. This helps to make it more maintainable. Use make sort command to fix the sorting. Also run make validate to check for XML syntax errors. You can submit pull requests using the common Github-style workflow - fork the repository from the web UI, push your changes to your fork, and submit a pull request for it. If you are not familiar with this workflow, see the Pagure documentation.

For more info

For more information, including rules on how and when to edit comps, see the Fedora project wiki.

Bugs against comps can be filed as Pagure issues.