<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<!--
  comps.xml — lil custom package groups, used by device-side `dnf group install <name>` to
  assemble the OS. Embedded into BaseOS repo metadata via `createrepo_c -g config/comps.xml
  <repo>` (BaseOS only, see publish-rpm.sh).

  Structure: a single environment "Luna InfraLith Forge" (lil currently has only one dnf-capable
  base, Forge; the Core deployment variant has no dnf and isn't assembled via comps). The
  environment itself can't carry packages directly (comps DTD restriction), so the base +
  dnf/rpm stack lives in the hidden group lil-forge-base (uservisible=false, hidden from
  `dnf group list` unless the hidden-groups flag is passed). The 10 Feature groups are taken from
  Rocky 9's upstream groups of the same name, trimmed to a pure CLI-only subset:
    - GUI applications excluded (scap-workbench, esc, tigervnc, wireshark, freerdp and other
      X11/Qt packages)
    - Headless replacements added back where available: wireshark → wireshark-cli.
      tigervnc-server-minimal (Xvnc), despite the "minimal" name, still genuinely links
      libX11/libGL/mesa-dri-drivers for font/GL rendering and gets excluded by the GUI marker
      closure (see scripts/gen-full-pkglist.sh) — lil does not provide a VNC service.
    - Container Management renamed to "Podman Container Management" (id unchanged, so dnf
      references still work)
  Groups grow "on demand" as customer needs arise: add new Feature groups here as needed.
-->
<comps>

  <group>
    <id>lil-forge-base</id>
    <name>Luna InfraLith Forge base system</name>
    <description>Minimal bootable userspace + dnf/rpm package management (lil's only dnf-capable base is Forge; hidden group, not directly visible in `dnf group list`).</description>
    <default>true</default>
    <uservisible>false</uservisible>
    <packagelist>
      <packagereq type="mandatory">lil-release</packagereq>
      <packagereq type="mandatory">glibc</packagereq>
      <packagereq type="mandatory">bash</packagereq>
      <packagereq type="mandatory">coreutils</packagereq>
      <packagereq type="mandatory">util-linux-core</packagereq>
      <packagereq type="mandatory">systemd</packagereq>
      <packagereq type="mandatory">systemd-udev</packagereq>
      <packagereq type="mandatory">dbus-broker</packagereq>
      <packagereq type="mandatory">rpm</packagereq>
      <packagereq type="mandatory">dnf</packagereq>
      <packagereq type="mandatory">python3-dnf</packagereq>
      <packagereq type="default">findutils</packagereq>
      <packagereq type="default">grep</packagereq>
      <packagereq type="default">sed</packagereq>
      <packagereq type="default">gawk</packagereq>
      <packagereq type="default">procps-ng</packagereq>
      <packagereq type="default">iproute</packagereq>
      <packagereq type="default">dnf-plugins-core</packagereq>
      <packagereq type="default">openssl</packagereq>
      <packagereq type="default">ca-certificates</packagereq>
      <packagereq type="default">curl</packagereq>
      <packagereq type="default">NetworkManager</packagereq>
    </packagelist>
  </group>

  <group>
    <id>development</id>
    <name>Development Tools</name>
    <description>A basic development environment.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="mandatory">autoconf</packagereq>
      <packagereq type="mandatory">automake</packagereq>
      <packagereq type="mandatory">binutils</packagereq>
      <packagereq type="mandatory">bison</packagereq>
      <packagereq type="mandatory">flex</packagereq>
      <packagereq type="mandatory">gcc</packagereq>
      <packagereq type="mandatory">gcc-c++</packagereq>
      <packagereq type="mandatory">gdb</packagereq>
      <packagereq type="mandatory">glibc-devel</packagereq>
      <packagereq type="mandatory">libtool</packagereq>
      <packagereq type="mandatory">make</packagereq>
      <packagereq type="mandatory">pkgconf</packagereq>
      <packagereq type="mandatory">pkgconf-m4</packagereq>
      <packagereq type="mandatory">pkgconf-pkg-config</packagereq>
      <packagereq type="mandatory">redhat-rpm-config</packagereq>
      <packagereq type="mandatory">rpm-build</packagereq>
      <packagereq type="mandatory">rpm-sign</packagereq>
      <packagereq type="mandatory">strace</packagereq>
      <packagereq type="default">asciidoc</packagereq>
      <packagereq type="default">byacc</packagereq>
      <packagereq type="default">diffstat</packagereq>
      <packagereq type="default">git</packagereq>
      <packagereq type="default">intltool</packagereq>
      <packagereq type="default">jna</packagereq>
      <packagereq type="default">ltrace</packagereq>
      <packagereq type="default">patchutils</packagereq>
      <packagereq type="default">perl-Fedora-VSP</packagereq>
      <packagereq type="default">perl-generators</packagereq>
      <packagereq type="default">pesign</packagereq>
      <packagereq type="default">source-highlight</packagereq>
      <packagereq type="default">systemtap</packagereq>
      <packagereq type="default">valgrind</packagereq>
      <packagereq type="default">valgrind-devel</packagereq>
      <packagereq type="optional">cmake</packagereq>
      <packagereq type="optional">expect</packagereq>
      <packagereq type="optional">rpmdevtools</packagereq>
      <packagereq type="optional">rpmlint</packagereq>
    </packagelist>
  </group>

  <group>
    <id>rpm-development-tools</id>
    <name>RPM Development Tools</name>
    <description>Tools used for building RPMs, such as rpmbuild.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="mandatory">redhat-rpm-config</packagereq>
      <packagereq type="mandatory">rpm-build</packagereq>
      <packagereq type="default">rpmdevtools</packagereq>
      <packagereq type="optional">rpmlint</packagereq>
    </packagelist>
  </group>

  <group>
    <id>legacy-unix</id>
    <name>Legacy UNIX Compatibility</name>
    <description>Compatibility programs for migration from or working with legacy UNIX environments.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="optional">mksh</packagereq>
    </packagelist>
  </group>

  <group>
    <id>console-internet</id>
    <name>Console Internet Tools</name>
    <description>Console internet access tools, often used by administrators.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="optional">fetchmail</packagereq>
      <packagereq type="optional">ftp</packagereq>
      <packagereq type="optional">irssi</packagereq>
      <packagereq type="optional">lftp</packagereq>
      <packagereq type="optional">mutt</packagereq>
      <packagereq type="optional">procmail</packagereq>
      <packagereq type="optional">whois</packagereq>
    </packagelist>
  </group>

  <group>
    <id>network-server</id>
    <name>Network Servers</name>
    <description>These packages include network-based servers such as DHCP, Kerberos and NIS.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="optional">dhcp-server</packagereq>
      <packagereq type="optional">dnsmasq</packagereq>
      <packagereq type="optional">freeradius</packagereq>
      <packagereq type="optional">frr</packagereq>
      <packagereq type="optional">idn2</packagereq>
      <packagereq type="optional">krb5-server</packagereq>
      <packagereq type="optional">libreswan</packagereq>
      <packagereq type="optional">radvd</packagereq>
      <packagereq type="optional">rsyslog-gnutls</packagereq>
      <packagereq type="optional">rsyslog-gssapi</packagereq>
      <packagereq type="optional">rsyslog-mysql</packagereq>
      <packagereq type="optional">rsyslog-pgsql</packagereq>
      <packagereq type="optional">rsyslog-relp</packagereq>
      <packagereq type="optional">syslinux</packagereq>
      <packagereq type="optional">tang</packagereq>
    </packagelist>
  </group>

  <group>
    <id>scientific</id>
    <name>Scientific Support</name>
    <description>Tools for mathematical and scientific computations, and parallel computing.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="optional">atlas</packagereq>
      <packagereq type="optional">fftw</packagereq>
      <packagereq type="optional">fftw-devel</packagereq>
      <packagereq type="optional">fftw-static</packagereq>
      <packagereq type="optional">lapack</packagereq>
      <packagereq type="optional">mpich-devel</packagereq>
      <packagereq type="optional">openmpi</packagereq>
      <packagereq type="optional">openmpi-devel</packagereq>
      <packagereq type="optional">python3-numpy</packagereq>
      <packagereq type="optional">python3-scipy</packagereq>
      <packagereq type="optional">units</packagereq>
    </packagelist>
  </group>

  <group>
    <id>security-tools</id>
    <name>Security Tools</name>
    <description>Security tools for integrity and trust verification.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="default">scap-security-guide</packagereq>
      <packagereq type="optional">aide</packagereq>
      <packagereq type="optional">hmaccalc</packagereq>
      <packagereq type="optional">openscap</packagereq>
      <packagereq type="optional">openscap-engine-sce</packagereq>
      <packagereq type="optional">openscap-utils</packagereq>
      <packagereq type="optional">scap-security-guide-doc</packagereq>
      <packagereq type="optional">tpm2-tools</packagereq>
      <packagereq type="optional">tss2</packagereq>
      <packagereq type="optional">udica</packagereq>
    </packagelist>
  </group>

  <group>
    <id>smart-card</id>
    <name>Smart Card Support</name>
    <description>Support for using smart card authentication.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="default">pcsc-lite-ccid</packagereq>
      <packagereq type="optional">opencryptoki</packagereq>
      <packagereq type="optional">opencryptoki-icsftok</packagereq>
      <packagereq type="optional">opencryptoki-swtok</packagereq>
      <packagereq type="optional">opensc</packagereq>
      <packagereq type="optional">openssl-pkcs11</packagereq>
      <packagereq type="optional">sssd-polkit-rules</packagereq>
    </packagelist>
  </group>

  <group>
    <id>system-tools</id>
    <name>System Tools</name>
    <description>This group is a collection of various tools for the system, such as the client for connecting to SMB shares and tools to monitor network traffic.</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="default">NetworkManager-libreswan</packagereq>
      <packagereq type="default">chrony</packagereq>
      <packagereq type="default">cifs-utils</packagereq>
      <packagereq type="default">libreswan</packagereq>
      <packagereq type="default">nmap</packagereq>
      <packagereq type="default">openldap-clients</packagereq>
      <packagereq type="default">samba-client</packagereq>
      <packagereq type="default">setserial</packagereq>
      <packagereq type="default">tmux</packagereq>
      <packagereq type="default">zsh</packagereq>
      <packagereq type="optional">PackageKit-command-not-found</packagereq>
      <packagereq type="optional">aide</packagereq>
      <packagereq type="optional">autofs</packagereq>
      <packagereq type="optional">bacula-client</packagereq>
      <packagereq type="optional">chrpath</packagereq>
      <packagereq type="optional">convmv</packagereq>
      <packagereq type="optional">createrepo_c</packagereq>
      <packagereq type="optional">environment-modules</packagereq>
      <packagereq type="optional">fuse</packagereq>
      <packagereq type="optional">gpm</packagereq>
      <packagereq type="optional">hardlink</packagereq>
      <packagereq type="optional">initscripts</packagereq>
      <packagereq type="optional">initscripts-service</packagereq>
      <packagereq type="optional">iotop</packagereq>
      <packagereq type="optional">lzop</packagereq>
      <packagereq type="optional">mc</packagereq>
      <packagereq type="optional">mrtg</packagereq>
      <packagereq type="optional">mtx</packagereq>
      <packagereq type="optional">net-snmp-utils</packagereq>
      <packagereq type="optional">netconsole-service</packagereq>
      <packagereq type="optional">oddjob</packagereq>
      <packagereq type="optional">oddjob-mkhomedir</packagereq>
      <packagereq type="optional">pmdk-convert</packagereq>
      <packagereq type="optional">readonly-root</packagereq>
      <packagereq type="optional">rear</packagereq>
      <packagereq type="optional">speech-dispatcher</packagereq>
      <packagereq type="optional">speech-dispatcher-espeak-ng</packagereq>
      <packagereq type="optional">sysstat</packagereq>
      <packagereq type="optional">wireshark-cli</packagereq>
    </packagelist>
  </group>

  <group>
    <id>container-management</id>
    <name>Podman Container Management</name>
    <description>Tools for managing Linux containers</description>
    <default>false</default>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="mandatory">buildah</packagereq>
      <packagereq type="mandatory">containernetworking-plugins</packagereq>
      <packagereq type="mandatory">podman</packagereq>
      <packagereq type="optional">python3-psutil</packagereq>
      <packagereq type="optional">toolbox</packagereq>
      <packagereq type="optional">iSulad</packagereq>
    </packagelist>
  </group>

  <environment>
    <id>lil-forge</id>
    <name>Luna InfraLith Forge</name>
    <description>lil's default minimal install environment: base system + dnf/rpm package management. Optionally layer the Feature groups below to extend it.</description>
    <display_order>5</display_order>
    <grouplist>
      <groupid>lil-forge-base</groupid>
    </grouplist>
    <optionlist>
      <groupid>development</groupid>
      <groupid>rpm-development-tools</groupid>
      <groupid>legacy-unix</groupid>
      <groupid>console-internet</groupid>
      <groupid>network-server</groupid>
      <groupid>scientific</groupid>
      <groupid>security-tools</groupid>
      <groupid>smart-card</groupid>
      <groupid>system-tools</groupid>
      <groupid>container-management</groupid>
    </optionlist>
  </environment>

</comps>
