Skip to content

Conversation

@MrPointer
Copy link
Owner

Summary

This PR adds support for DNF driven Linux distros, such as Fedora, RHEL, CentOS, etc.
It does so by following the same patterns as used by APT.

One thing worth mentioning is that DNF supports "group" installs. Unlike APT, which treats everything as packages, even if the package is a "meta" package (collection of other packages), DNF has an explicit concept of groups, which requires explicit support. The abstract package management implementation now supports this new concepts, especially since there are additional package managers with similar capabilities to support next, e.g. arch's pacman

Some package managers such as dnf and pacman support concepts other than
than package name itself, such as groups. These are now specified in the
yamls, and parsed correctly.

Would be used later in installer implementations.
It includes regular packages and the new group packages. Also completed
remaining package mapping for dnd, and marked comaptible distros that
use dnf as supported.
For advanced scenarios such as the development-tools group in DNF, our
implementation was losing critical information about the package, trying
to install it as a single-package rather than as a group. The missing
link was to use the package resolver which was built exactly for this
purpose, extracting as much info on the package as possible first, then
using it to properly install it.
The resolver's job is to translate them to different names per-distro.
@MrPointer MrPointer force-pushed the feature/fedora-support branch from fb86446 to ec5bacb Compare November 28, 2025 13:54
"Development Tools" is a group package in DNF that has different
variants between Fedora and CentOS, named `development-tools` in Fedora
instead. This creates a complex situation where some packages are not
only mapped differently between different package managers, such as apt
and dnf, but also between distros on the same package manager.

By explicitly providing a mapping per-distro for such packages, we
ensure they'll work on specific distros, and error out if no mapping is
provided, thus not supporting anything implicitly.
No need to pin a specific version for the latest test
I've never used them so I don't want to take the chance.
@MrPointer MrPointer merged commit 59bd745 into main Nov 28, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants