A critical path package is a specially managed package in Fedora that provides some essential or core functionality. Updates for critical path packages must undergo additional verification before they can be distributed to the community at large.
Previously, documented policy treated every package the same. While good for uniformity, in reality certain packages require extra attention and care when updating and testing. These packages have potential to break the critical path of use of our Fedora distribution. As part of a Fedora Activity Day, several contributors proposed a critical set of actions that must not be broken. The packages required to sustain these actions initially made up the critical path. Later, it was agreed that the maintainers of Editions, spins, and labs can also declare packages that provide other key functionality to be part of the critical path for that Edition, spin or lab.
Packages required to perform the most fundamental actions on a system are always considered part of the critical path. Those actions include:
- graphical network install
- post-install booting
- decrypt encrypted filesystems
- get updates
- minimal buildroot
- compose new trees
- compose live
and other actions considered by an Edition, spin or lab to be 'fundamental'.
A set of groups are defined in the
comps.xml file to include packages required for the critical use cases listed above. Since package dependencies change regularly, the
comps.xml groups are then used to dynamically generate the list of packages.
The package groups in
comps.xml that make up the critical path are defined in the generation script. As of 2023-08, the list is:
@core @critical-path-anaconda @critical-path-apps @critical-path-base @critical-path-build @critical-path-compose @critical-path-deepin-desktop @critical-path-gnome @critical-path-kde @critical-path-lxde @critical-path-lxqt @critical-path-server @critical-path-standard @critical-path-xfce
You can list the packages in these groups with the following command, replacing 'critical-path-base' with the name of the group you're interested in:
dnf group info critical-path-base
For more information on
comps.xml see how to use and edit comps.xml for package groups.
Where can I find the critical path?
The critical path package lists for all releases are generated daily and stored in Bodhi. There is not currently a convenient way to view them from the Bodhi web UI, but you can check out the releng git repository:
git clone https://pagure.io/releng.git
and run the script locally:
to generate the critical path data for Fedora 38. This will produce files
critpath.txt (containing a flat list of all critical path packages) and
critpath.json (JSON containing the critical path packages by group).