Bug 2437049 - Firefox not installed when selecting KDE Desktop Environment via Everything (netinstall) image due to DNF5 ignoring default optional comps groups
Summary: Firefox not installed when selecting KDE Desktop Environment via Everything (...
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf5
Version: 44
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: rpm-software-management
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-02-05 12:05 UTC by Lukas Ruzicka
Modified: 2026-02-17 15:52 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)
KDE kickstart file to reproduce the issue (887 bytes, text/plain)
2026-02-05 12:08 UTC, Lukas Ruzicka
no flags Details
KDE Fedora 42 installer (268.12 KB, image/png)
2026-02-16 15:19 UTC, Katerina Koukiou
no flags Details

Description Lukas Ruzicka 2026-02-05 12:05:42 UTC
When installing Fedora Rawhide / Fedora 44 KDE Desktop Environment from the Everything (netinstall) image, no web browser is installed. Specifically, Firefox is missing from the installed system and does not appear in the KDE application launcher (Internet category).

This happens despite the fact that:

firefox is present in the image manifest

kde-desktop-environment comps definition includes firefox as an optional group with default="true"

KDE Live ISO images explicitly install Firefox and are unaffected

The issue appears only when using Anaconda + Everything image, not the KDE Live image.

Based on investigation, this is likely caused by DNF5 ignoring default optional groups in comps, which became user-visible once Anaconda switched to DNF5 for package resolution.


Component
plasma-desktop
(possibly also anaconda or dnf5, but root cause not yet confirmed)

Release

Fedora Rawhide (20260204 nightly)

Likely Fedora 44 (branching in progress)

Severity
Medium
(Core desktop functionality missing, but workaround exists)

Reproducible: Always

Steps to Reproduce:
1. Boot Fedora Rawhide / Fedora 44 Everything installer (netinstall)
2. Choose KDE Plasma Desktop Environment
3. Complete installation with default selections
4. Boot into the installed system
5. Open the application launcher → Internet

alternatively, install Fedora using the attached kickstart.
Actual Results:
No web browser is installed. Firefox is not present in the system or launcher.

Expected Results:
Firefox should be installed by default when KDE Desktop Environment is selected. Default optional comps groups (e.g. firefox) should be honored

Additional Information:
1. kde-desktop-environment comps entry includes:

<groupid default="true">firefox</groupid>

2. KDE Live images explicitly install Firefox as a workaround and are unaffected.

The problem is reproducible by:

Taking the KDE createhdds kickstart, removing the explicit @firefox group which results in image lacking a browser

DNF5 probably ignores default optional groups in comps definitions, which is incorrect behavior and leads to broken desktop defaults when used by Anaconda.

Comment 1 Lukas Ruzicka 2026-02-05 12:08:34 UTC
Created attachment 2128272 [details]
KDE kickstart file to reproduce the issue

Comment 2 Neal Gompa 2026-02-05 12:16:11 UTC
Adding Anaconda folks to this BZ.

Comment 3 Petr Pisar 2026-02-05 13:25:42 UTC
This handling of optional groups was recently discussed, probably on Fedora devel mailing list, and the conclusion was that DNF5 and Anaconda work as designed and that spins should stop using optional groups. The explanation was that optional is meant for opt-in groups and that Anaconda intentionally lost functionality of selecting optional groups. I.e. spins which wants something to be installed by default needs to make it a hard member of the group.

Comment 5 Neal Gompa 2026-02-05 15:23:09 UTC
(In reply to Petr Pisar from comment #3)
> This handling of optional groups was recently discussed, probably on Fedora
> devel mailing list, and the conclusion was that DNF5 and Anaconda work as
> designed and that spins should stop using optional groups. The explanation
> was that optional is meant for opt-in groups and that Anaconda intentionally
> lost functionality of selecting optional groups. I.e. spins which wants
> something to be installed by default needs to make it a hard member of the
> group.

That is not the conclusion that was drawn. There was hardly a discussion about that. And also, this conclusion breaks core functionality about environment groups in the first place.

Comment 6 Neal Gompa 2026-02-05 15:26:03 UTC
(In reply to Petr Pisar from comment #4)
> It was this thread
> <https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/
> thread/5VRAE67CISKUW2X3J2XIWBV4CG6KUMRR/#JW6ZGBG756NKASYRGFZ2GBORWQPT55RP>.

This thread talks about optional _packages_ in groups, not optional _groups_ set in environment and category groups. Those are two different things.

Furthermore, optional entries with default yes basically map to Recommends just like "default" does, with the difference that if you didn't install them, then system upgrade doesn't force it to be installed when upgrading.

Comment 7 Pavla Kratochvilova 2026-02-06 09:16:28 UTC
DNF uses the `group_package_types` configuration option even for environments (but only the presence of the "optional" value has effect). The upstream default is "default, mandatory, conditional", so optional packages and optional groups are not installed by default.

This could be fixed in Anaconda by setting the `group_package_types` individually for each environment spec when adding it to the goal. A better approach would be to introduce an option for environments to allow different setting than for groups and configure it in Anaconda for all environments (except when specified otherwise), however, if a fix should be delivered quickly and we really want to install optional groups by default, I suggest to add the workaround into Anaconda first, as it will be much easier to implement (call `settings.set_group_package_types` in `DNFManager.apply_specs` for all environment specs without defined types).

Comment 8 Katerina Koukiou 2026-02-16 15:18:54 UTC
This regression was introduced during the conversion of the Anaconda payload codebase to the DNF5 API.
Aside of the issue mentioned in the report, it also caused an incorrect set of pre-selected packages to be shown in the GTK UI. For example, Firefox appeared as pre-selected in Fedora 42, but it is not pre-selected in the current release.

Comment 9 Katerina Koukiou 2026-02-16 15:19:33 UTC
Created attachment 2129691 [details]
KDE Fedora 42 installer

Comment 10 Katerina Koukiou 2026-02-16 15:50:02 UTC
Pavla: thanks for the suggestion. Setting group_package_types with optional per environment would install all optional groups from the optionlist. We need to install by default (and pre-select in UI) only the ones with default="true" in <optionlist> (e.g. firefox), not every optional group (e.g. kde-education).
Does libdnf5 expose if an optional group is marked with default (optionlist’s default attribute)?

Comment 11 Pavla Kratochvilova 2026-02-17 15:52:34 UTC
Thanks for the insight, Katerina, I didn't know about the "default" attribute in "<optionlist>". You are right, dnf ignores it and it's not even considered by libsolv which dnf5 uses to read the comps xml.

Therefore, a patch in libsolv is needed to take the "default" attribute into account and probably store the default="true" solvable as "recommends" ("requires" is for groups in the grouplist, "suggests" would be for groups in the optionlist without default="true").

And then a patch in dnf5 is needed to distinguish between optional and default groups in environments and to allow installation of default groups by default. We could later introduce an option to configure which group types should be installed, but it's not necessary to fix this bug.

I will prepare the patches in libsolv and dnf5 and then we should check whether also something on the interface between dnf5 and Anacoda is needed for this to work properly.


Note You need to log in before you can comment on or make changes to this bug.