- packages.x86_64.desktop: 30+ packages for desktop variant (Plasma,
Firefox, VLC, LibreOffice, PipeWire). No duplicates with base list.
- build-desktop.sh: creates temp profile, merges package lists, enables
SDDM via preset + display-manager.service symlink. WORK_DIR is
mktemp-created (not caller-selected) to prevent symlink races. VERSION
copied into temp profile so profiledef.sh resolves correctly.
Cleans up both temp dirs via trap.
- CI workflow: Python AST validation (sys.argv), VERSION SSOT gate,
single make check (no double-lint).
- test_packages.sh: 15 assertions for desktop overlay (existence,
package count, no dups, Plasma/Firefox exact match, build script
structure: mktemp WORK_DIR, VERSION copy, SDDM, cleanup trap).
Codex D-grade findings fixed: symlink race (use mktemp), VERSION path
(../../VERSION not ../VERSION).