#504 Include the `domain-client` comps group by default
Opened 11 months ago by siosm. Modified 11 months ago
siosm/workstation-ostree-config main-include-domain-client  into  main

@@ -6,6 +6,7 @@ 

    - gnome-desktop

    - container-management

    - base-x

+   - arm-tools

  

  # Always exclude packages matching those regexp:

  # - PackageKit is spread across various groups

file modified
+4
@@ -187,6 +187,10 @@ 

          if gid.name in comps_exclude_list_groups:

              continue

          groups.append(gid.name)

+     for gid in comps.environments['workstation-product-environment'].option_ids:

+         if gid.name in comps_exclude_list_groups:

+             continue

+         groups.append(gid.name)

  

      # Always include the packages from the workstation-ostree-support group

      groups.append('workstation-ostree-support')

@@ -6,6 +6,7 @@ 

    - NetworkManager-wifi

    - NetworkManager-wwan

    - acl

+   - adcli

    - alsa-ucm

    - alsa-utils

    - amd-gpu-firmware
@@ -66,6 +67,7 @@ 

    - firefox

    - firewalld

    - fpaste

+   - freeipa-client

    - fros-gnome

    - fwupd

    - gamemode
@@ -101,6 +103,8 @@ 

    - less

    - libertas-firmware

    - libglvnd-gles

+   - libsss_autofs

+   - libsss_sudo

    - linux-firmware

    - logrotate

    - lrzsz
@@ -118,6 +122,7 @@ 

    - ntfsprogs

    - nvidia-gpu-firmware

    - nxpwireless-firmware

+   - oddjob-mkhomedir

    - opensc

    - openssh-clients

    - openssh-server
@@ -152,6 +157,8 @@ 

    - rpm-ostree

    - rsync

    - samba-client

+   - samba-common-tools

+   - samba-winbind

    - selinux-policy-targeted

    - setup

    - shadow-utils
@@ -159,8 +166,11 @@ 

    - speech-dispatcher

    - spice-vdagent

    - spice-webdavd

+   - sssd-ad

    - sssd-common

+   - sssd-ipa

    - sssd-kcm

+   - sssd-nfs-idmap

    - sudo

    - system-config-printer-udev

    - systemd

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.

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

I'm struggling to understand how the change to comps-sync.py is solving the problem noted in the issue trackers.

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.

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"...

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.

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.

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.

rebased onto 70bd745c8a3d630228b088fe5c3ca4050f436b32

11 months ago

rebased onto 8b26526

11 months ago