comps-sync: Include optional groups from workstation-product-environment
Include optional comps groups from workstation-product-environment in the common set of packages for all Atomic Desktops variants.
This notably includes the domain-client group.
domain-client
Fixes: https://gitlab.com/fedora/ostree/sig/-/issues/24 Fixes: https://github.com/fedora-silverblue/issue-tracker/issues/550 Fixes: https://github.com/fedora-silverblue/issue-tracker/issues/320
comps-sync-exclude-list.yml: Exclude arm-tools from common comps groups
comps-sync f41 2024-04-12
See: https://gitlab.com/fedora/ostree/sig/-/issues/24
Build succeeded. https://fedora.softwarefactory-project.io/zuul/buildset/22b10f67d06d4d55b92e7da3dafc01a5
I'm struggling to understand how the change to comps-sync.py is solving the problem noted in the issue trackers.
comps-sync.py
Could you provide a pkg diff showing which new packages were added as part of this change?
@miabbott it adds an additional loop to the logic that gets packages from the comps workstation-product-environment env group, including the packages from option_ids (optional groups) as well as the packages from group_ids (mandatory groups). The resulting change to included packages is shown in the diff to fedora-common-ostree-pkgs.yaml, the added lines are the added packages. Ultimately this happens to result in, only, adding domain-client to the set of package groups included in all manifests produced by this tool.
option_ids
group_ids
fedora-common-ostree-pkgs.yaml
Still, this does just 'feel' a bit wrong. I guess the wrongness is not added but baked in and historical; it's the way we start this whole group selection process by just unconditionally pulling in the groups from workstation-product-environment, even if we're not generating the groups for Silverblue. This is obviously because this repo started out only being for Silverblue. So we have exclude_list_groups, a kinda special-purpose exclude which is only applied when parsing workstation-product-environment and says "actually, don't include all these groups"...
exclude_list_groups
workstation-product-environment
So what we wind up doing, as the base for all atomic desktop images, is: "pull in the groups from w-p-e, that's container-management, core, desktop-accessibility, firefox, fonts, gnome-desktop, guest-desktop-agents, hardware-support, libreoffice, multimedia, networkmanager-submodules, printing, and workstation-product, only leave out libreoffice, gnome-desktop, container-management, and base-x". It's just a bit weird. It's essentially a hack to try and convert workstation-product-environment into a 'generic' list of appropriate groups for a desktop environment.
This PR makes it instead "pull in the groups and optional groups from w-p-e, that's container-management, core, desktop-accessibility, firefox, fonts, gnome-desktop, gnome-desktop-agents, hardware-support, libreoffice, multimedia, networkmanager-submodules, printing, workstation-product, arm-tools, domain-client, and base-x, only leave out libreoffice, gnome-desktop, container-management, base-x, and arm-tools"...so I guess it's not really more weird than before, it just reminds us of the weirdness.
Given the limitations of comps, it may be hard to come up with anything better than this which isn't just a hardcoded group list (which we then have to keep in sync with w-p-e manually, I guess). Ideally we'd have a 'generic' environment group which workstation-product-environment included, but you can't nest env groups like that in comps :(
Thanks for the detailed explanation, Adam!
Thanks Adam for the longer explanation!
As far as I know, Fedora Workstation does not use the generic comps groups that are used by the other Spins as the Fedora Workstation Working Group prefers maintaining their own.
Overall it does not matter much exactly which group we use. We only need something to keep package lists in sync and updated.
Not quite sure what you mean by that...probably going too far into the weeds here, but...comps kinda has two defined levels: the "group" and the "environment group". "groups" contain packages (mandatory, default or optional), "environment groups" contain groups (two lists: "grouplist" groups are mandatory parts of that environment, "optionlist" groups are optional and can be specified as default=true meaning they're selected by default in the installer but can be unselected). "groups" cannot contain other groups, "environment groups" cannot contain other environment groups or directly contain packages.
workstation-product-environment is the environment group for Workstation. There are plenty of other environment groups, e.g. kde-desktop-environment is the equivalent for Plasma/KDE. There's quite a lot of commonality between all the desktop groups - they mostly tend to have core, fonts, guest-desktop-agents, multimedia, networkmanager-submodules, and printing, for instance.
What you may be referring to is that workstation-product-environment, unusually, does not contain the 'standard' group (because they think it has too much stuff in it). Every other desktop env group does contain 'standard', but workstation chooses to only include 'core'.
If comps allowed more flexibility we could cut down on a lot of repetition and odd-and-probably-unintended differences in various configurations, but it doesn't. :|
it occurs to me we already have a transformation stage for comps files (from .xml.in to .xml) and we could maybe wedge some kind of 'include' mechanism into that, which would be interesting. probably something to discuss in a comps ticket, though.
.xml.in
.xml
rebased onto 70bd745c8a3d630228b088fe5c3ca4050f436b32
Build succeeded. https://fedora.softwarefactory-project.io/zuul/buildset/6358ec11a4c448d1878c442dcde2d387
rebased onto 8b26526a7ee21e92d43ad50ffec3d886acfcfb7d
Build succeeded. https://fedora.softwarefactory-project.io/zuul/buildset/469556f3dcee42808433438e240001c6
Moved to https://forge.fedoraproject.org/atomic-desktops/config/pulls/504
Pull-Request has been closed by siosm
comps-sync: Include optional groups from workstation-product-environment
Include optional comps groups from workstation-product-environment in
the common set of packages for all Atomic Desktops variants.
This notably includes the
domain-clientgroup.Fixes: https://gitlab.com/fedora/ostree/sig/-/issues/24
Fixes: https://github.com/fedora-silverblue/issue-tracker/issues/550
Fixes: https://github.com/fedora-silverblue/issue-tracker/issues/320
comps-sync-exclude-list.yml: Exclude arm-tools from common comps groups
comps-sync f41 2024-04-12
See: https://gitlab.com/fedora/ostree/sig/-/issues/24