desktops: move mesa/GPU runtime + diagnostics to common mid tier#885
desktops: move mesa/GPU runtime + diagnostics to common mid tier#885igorpecovnik merged 2 commits intomainfrom
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
Disabled knowledge base sources:
WalkthroughTwo changes: (1) The desktop YAML package list added a mid-tier group containing Mesa DRI/GLX ( Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Ports armbian/build extensions/mesa-vpu.sh's 3D package list into
configng so every mid-tier desktop install (image-build or runtime
armbian-config invocation) gets the same GPU runtime + diagnostics,
not just the ones that go through the mesa-vpu extension.
9 packages added to common.yaml mid tier:
libgl1-mesa-dri Mesa DRI drivers (hardware OpenGL path)
libglx-mesa0 Mesa GLX front-end for X11
mesa-utils glxinfo / glxgears / es2_info
mesa-vulkan-drivers Vulkan ICDs (Panfrost, Lima, Radeon, Intel, …)
vulkan-tools vulkaninfo / vkcube
glmark2-wayland GL bench (Wayland backend)
glmark2-es2-wayland GLES2 bench (Wayland backend)
glmark2-x11 GL bench (X11 backend)
glmark2-es2-x11 GLES2 bench (X11 backend)
Three entries from mesa-vpu.sh's original list were dropped:
mesa-utils-extra — doesn't exist in any Debian/Ubuntu archive
(dropped upstream some years ago)
glmark2 — not a binary package, only a source package
(the -{wayland,x11,es2-*} flavours are the real debs)
glmark2-es2 — same, no binary package ships under that name
mesa-vpu has been silently apt-warning on these for years. Dropping
them on the move is the clean way to fix the phantoms.
Availability verified via Packages.gz fetches from
ftp.debian.org + archive.ubuntu.com / ports.ubuntu.com:
all 9 present on amd64/arm64/armhf/riscv64 for trixie and noble,
and on amd64/arm64/armhf for bookworm (riscv64 not applicable there).
No tier_override needed; the list holds across the matrix.
Pairs with a build-side mesa-vpu trim that removes the same
packages from extensions/mesa-vpu.sh's post_install_kernel_debs__3d.
With both landed, mesa-vpu shrinks to its genuinely
board-framework-only responsibilities (rockchip-multimedia PPA
+ codecs, KDE Neon base-files hold, libdav1d7 hold, dist-upgrade).
f175558 to
3d8fff7
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: c5a3efdf-429e-40c2-85ae-03a8a20438cf
📒 Files selected for processing (1)
tools/modules/desktops/yaml/common.yaml
| # Verified present on Debian bookworm/trixie/forky/sid and | ||
| # Ubuntu jammy/noble/resolute across amd64/arm64/armhf/riscv64. | ||
| - libgl1-mesa-dri # Mesa DRI drivers (OpenGL hardware path) | ||
| - libglx-mesa0 # Mesa GLX front-end for X11 | ||
| - mesa-utils # glxinfo, glxgears, es2_info, etc. | ||
| - mesa-vulkan-drivers # Vulkan ICD drivers (Panfrost, Lima, Radeon, Intel, …) | ||
| - vulkan-tools # vulkaninfo, vkcube | ||
| - glmark2-wayland # GL benchmark — Wayland backend | ||
| - glmark2-es2-wayland # GLES2 benchmark — Wayland backend | ||
| - glmark2-x11 # GL benchmark — X11 backend | ||
| - glmark2-es2-x11 # GLES2 benchmark — X11 backend |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check presence of the 9 new mid-tier packages in the release/arch combos
# claimed by the YAML comment but NOT covered by the PR description's
# verification (forky, sid, jammy, resolute, plus sid/loong64).
set -u
PKGS=(libgl1-mesa-dri libglx-mesa0 mesa-utils mesa-vulkan-drivers vulkan-tools
glmark2-wayland glmark2-es2-wayland glmark2-x11 glmark2-es2-x11)
check() {
local base=$1 suite=$2 comp=$3 arch=$4
local url="${base}/dists/${suite}/${comp}/binary-${arch}/Packages.gz"
local data
data=$(curl -fsSL "$url" 2>/dev/null | gunzip 2>/dev/null) || {
echo " [SKIP] $url unreachable"; return
}
for p in "${PKGS[@]}"; do
if ! grep -qE "^Package: ${p}\$" <<<"$data"; then
echo " [MISS] $suite/$comp/$arch: $p"
fi
done
}
# Debian forky + sid
for suite in forky sid; do
for comp in main contrib non-free non-free-firmware; do
for arch in amd64 arm64 armhf riscv64; do
echo "== debian $suite $comp $arch =="
check http://deb.debian.org/debian "$suite" "$comp" "$arch"
done
done
done
# sid/loong64 (per line 167/222)
for comp in main contrib non-free non-free-firmware; do
echo "== debian sid $comp loong64 =="
check http://deb.debian.org/debian-ports sid "$comp" loong64
done
# Ubuntu jammy + resolute (amd64/arm64 on archive, armhf/riscv64 on ports)
for suite in jammy resolute; do
for comp in main universe multiverse restricted; do
for arch in amd64; do
echo "== ubuntu $suite $comp $arch =="
check http://archive.ubuntu.com/ubuntu "$suite" "$comp" "$arch"
done
for arch in arm64 armhf riscv64; do
echo "== ubuntu-ports $suite $comp $arch =="
check http://ports.ubuntu.com/ubuntu-ports "$suite" "$comp" "$arch"
done
done
doneRepository: armbian/configng
Length of output: 146
🏁 Script executed:
# First, check if this is a git repository and find PR/commit context
cd . && git log -1 --oneline 2>/dev/null || echo "Not a git repo or git unavailable"
# Check if there's a PR description or commit message
git log --format='%B' -1 2>/dev/null | head -50 || trueRepository: armbian/configng
Length of output: 2125
🏁 Script executed:
# Examine the actual YAML file to confirm the claims in the review
cat -n tools/modules/desktops/yaml/common.yaml | sed -n '63,85p'Repository: armbian/configng
Length of output: 1563
🏁 Script executed:
# Check the broader context mentioned in the review (browser map, tier_overrides)
cat -n tools/modules/desktops/yaml/common.yaml | sed -n '122,170p'Repository: armbian/configng
Length of output: 2211
🏁 Script executed:
# Look at tier_overrides patterns for examples of per-release exclusions
cat -n tools/modules/desktops/yaml/common.yaml | sed -n '203,225p'Repository: armbian/configng
Length of output: 1545
YAML comment's verification claim is broader than the commit message's stated scope.
The inline comment at lines 73–74 asserts these 9 packages were verified on Debian bookworm/trixie/forky/sid and Ubuntu jammy/noble/resolute across amd64/arm64/armhf/riscv64. However, the commit message states verification only covered:
- Debian trixie and noble (all four arches)
- Debian bookworm (amd64/arm64/armhf only)
- No mention of forky, sid, jammy, or resolute
This discrepancy matters because:
- The file actively targets all seven codenames (browser map at lines 122–167 includes bookworm, trixie, noble, jammy, resolute, forky, sid).
- Removing phantom packages is meant to eliminate "Unable to locate package" errors; an unverified package missing from (e.g.) jammy/armhf would reintroduce exactly that failure.
- No
tier_overridesentries exist for any of the nine new packages to absorb per-release gaps.
Either extend the Packages.gz verification to confirm the four unverified codenames (forky, sid, jammy, resolute) and keep the comment as-is, or narrow the comment to match what the commit message demonstrates was checked: trixie, noble, and bookworm-minus-riscv64.
There was a problem hiding this comment.
CI is currently testing on several variants check once finished https://github.com/armbian/configng/actions/runs/24737304638
There was a problem hiding this comment.
🧩 Analysis chain
Let me check the CI run status.
🏁 Script executed:
#!/bin/bash
# Check CI run status and results
gh run view 24737304638 --repo armbian/configng 2>/dev/null || echo "Run not accessible"
echo "---"
# Also check the jobs
gh run view 24737304638 --repo armbian/configng --json status,conclusion,jobs 2>/dev/null | jq '{status,conclusion,jobs: [.jobs[] | {name,status,conclusion}]}' 2>/dev/null || echo "JSON query failed"
Length of output: 35845
@igorpecovnik, the run is still in progress (~29 minutes in, 206 jobs total). Here's the current snapshot:
Completed & passing ✅
enlightenment/GNOME/i3-wm/Cinnamon/Mateon noble, trixie, resolute, bookworm (amd64 + some arm64) — all green.- Non-desktop installs (Docker on jammy/trixie/bookworm/resolute/forky, etc.) — all green.
Still running / queued ⏳
- All armhf-qemu and riscv64-qemu emulated jobs (Cinnamon, XFCE, Mate, xmonad, enlightenment on trixie/noble/resolute/bookworm).
- Most arm64 desktop jobs (KDE Plasma, KDE Neon, GNOME, XFCE, xmonad, …).
- bookworm/arm64 and bookworm/armhf desktop jobs.
No failures so far — which is a good early signal. I'll keep the review comment open until the emulated armhf/riscv64 jobs finish, since those are the arches most relevant to the verification gap I flagged. Feel free to ping me once the run completes and I'll re-check and resolve if everything passes.
🧠 Learnings used
Learnt from: Tearran
Repo: armbian/configng PR: 668
File: tools/modules/initialize/init_args.sh:0-0
Timestamp: 2025-08-29T06:07:23.830Z
Learning: The set_runtime_variables.sh in armbian/configng establishes these key variables that must be matched exactly in independent modules: NETWORK_RENDERER (detected via systemctl/NetworkManager), DIALOG_CANCEL=1, DIALOG_ESC=255, CONFIG_FILE="/etc/armbian-config", ARMBIAN (from /etc/armbian-release), DISTRO_STATUS, SOFTWARE_FOLDER="/armbian", TRANSMISSION_WHITELIST (includes Docker subnet), ZFS_DKMS_VERSION, and ZFS_KERNEL_MAX (with fallback version logic).
Rename _module_desktops_add_3d_overlay to _module_desktops_rockchip_multimedia and extend it to set up amazingfated's ppa:liujianfeng1994/rockchip-multimedia on noble: add the PPA via add-apt-repository, pin it at priority 1001 (required to downgrade apt.armbian.com chromium to the PPA's hardware-accelerated build), pkg_update, then install rockchip-multimedia-config, libv4l-rkmpp, gstreamer1.0-rockchip, and libwidevinecdm0. Drops the pin file on uninstall so the PPA does not keep outranking the archive for every unrelated apt upgrade. Gating unchanged: BOARDFAMILY rockchip-rk3588/rk35xx, BRANCH=vendor, tier != minimal, DE not xfce/i3-wm; PPA stage additionally restricted to DISTROID=noble.
Summary
Ports armbian/build's
extensions/mesa-vpu.shMesa/GPU package list into configng so everymid-tier desktop install (image-build viamodule_desktops install mode=buildor runtime install on a minimal image viaarmbian-config) gets the same GPU runtime + diagnostics — not just the ones that go through the mesa-vpu extension.What moves
Added to
common.yamlmid tier:libgl1-mesa-drilibglx-mesa0mesa-utilsglxinfo/glxgears/es2_infomesa-vulkan-driversvulkan-toolsvulkaninfo/vkcubeglmark2-waylandglmark2-es2-waylandglmark2-x11glmark2-es2-x11Phantoms dropped
Three entries in the original mesa-vpu list don't exist in any Debian/Ubuntu archive and were dropped on the move:
mesa-utils-extraglmark2-{wayland,es2-wayland,x11,es2-x11}binaries shipglmark2-es2mesa-vpu has been silently logging
E: Unable to locate packageon these for years without affecting the build outcome.Availability verified
Fetched
Packages.gzfromftp.debian.org/archive.ubuntu.com/ports.ubuntu.com. All 9 real packages present onamd64/arm64/armhf/riscv64fortrixieandnoble, and onamd64/arm64/armhfforbookworm(which has noriscv64port). No tier_override needed.Companion PR
Pairs with armbian/build#9683 (
desktop-to-armbian-config) which removes the same package list fromextensions/mesa-vpu.shin commitbdd94a829. With both landed, mesa-vpu shrinks to its genuinely build-framework-only responsibilities — rockchip-multimedia PPA + codecs (board-conditional onLINUXFAMILY × BRANCH), KDE Neonbase-fileshold,libdav1d7hold, and the finaldist-upgradepass.Test plan
parse_desktop_yaml.py xfce trixie amd64 --tier midemits the 9 new packages inDESKTOP_PACKAGES.armbian-config --api module_desktops install de=gnome tier=midon a minimal Ubuntu noble image — 9 new packages land on system.