RHEL packaging notes¶
How the el10 packages are composed. The .rpm is built from the same
packaging/nfpm.yaml as the .deb, by the same build.sh, with the same payload; the
dependency set and the maintainer scripts differ. To install, see
Install → RHEL 10 (dnf).
Dependency mapping¶
Verified with dnf repoquery on AlmaLinux 10.2 and Rocky Linux 10.2.
| deb (Ubuntu) | rpm (el10) | repo | note |
|---|---|---|---|
python3 |
python3 |
baseos | 3.12 on el10 |
git |
git |
appstream | |
jq |
jq |
baseos | |
socat |
socat |
appstream | |
curl |
curl |
baseos | |
unzip |
unzip |
baseos | |
rsync |
rsync |
baseos | |
| n/a (already base image) | zstd, ca-certificates, acl |
baseos | flat depends: on both packagers |
age |
age |
epel | provision-installed |
ffmpeg |
ffmpeg-free |
epel | patent-free build, provision-installed |
git-filter-repo |
git-filter-repo |
epel | provision-installed |
openbox |
openbox |
agentctl repo | rebuilt, not upstream |
| n/a (deb: KasmVNC vendored by provision) | kasmvncserver, libobrender32v5, libobt2v5 |
agentctl repo | rebuilt, not upstream |
google-chrome-stable |
google-chrome-stable |
google (dnf) | provision-installed on both packagers |
fonts-croscore |
liberation-fonts |
appstream | metric-compatible with Arial/Times/Courier |
fonts-noto-core |
google-noto-sans-fonts |
appstream | |
fonts-noto-color-emoji |
google-noto-color-emoji-fonts |
appstream | el9 name is google-noto-emoji-color-fonts |
fonts-inter |
(dropped) | — | no el10 package in any repo |
nftables |
nftables |
baseos |
The EPEL packages are installed by provision rather than declared as flat rpm
dependencies: dependency resolution runs before any of this package's own code, so a flat
dependency would require EPEL to be enabled before the first dnf install agentctl. See
epelScript in internal/converge/host_content.go.
kasmvnc + openbox rebuilds¶
Neither package exists in any el10 repo upstream: KasmVNC ships no el10 build for the
pinned version or the current release (Fedora 40–43, openSUSE 15 and Oracle Linux 8/9
only), and openbox is retired across RHEL — absent from baseos, appstream, crb and epel
on both AlmaLinux 10.2 and Rocky Linux 10.2. That is a real platform gap, not a packaging
oversight, so there is no upstream or EPEL package to depend on. agentctl's yum repo closes
it by hosting its own rebuilds of both, plus openbox's two sibling libraries
(libobrender32v5, libobt2v5) that Debian splits out — this is why installing on el10
requires adding agentctl's own repo rather than relying on EPEL alone. Both rebuilds need
EPEL enabled one level down for their own dependencies (Perl modules for kasmvncserver,
libImlib2 for libobrender32v5).
Fonts¶
99-agentctl-render.conf is a fontconfig rule keyed on font family, not package name,
so it applies unchanged on el10. The FONT PACKAGES: mirror test in
internal/converge/fontconfig_test.go reads the top-level depends: (the apt list) and is
unaffected by the rpm override.
Inter is the video MCP's default caption font (STYLE_DEFAULTS in
packaging/payload/mcp/video/server.py). With no el10 package, libass takes whatever
fontconfig returns, so captions render in a fallback family instead of failing.
ffmpeg-free¶
EPEL 10 carries no ffmpeg; the full build lives in RPM Fusion, a third-party repo this
package does not pull in. ffmpeg-free covers the voice-note transcode to OGG/OPUS. For
h264 renders, install the full build — see
Install → Known limits.