- STUBS-AUDIT-AND-REWRITE-PLAN.md: master plan, 20 drivers audited - USB-STUBS-AUDIT.md: USB stack focus, xhcid/usbhubd/usbctl/usbhidd/usbscsid/ucsid - HID-STUBS-AUDIT.md: HID focus, usbhidd/i2c-hidd/intel-thc-hidd/ps2d/inputd/evdevd - LOWLEVEL-STUBS-AUDIT.md: ACPI/PCI/IRQ/IOMMU/boot/init, 50+ row coverage - BOOT-AND-HW-ENABLEMENT-ASSESSMENT.md: kernel to display chain, NO VESA policy - DESKTOP-SERVICES-ASSESSMENT.md: D-Bus, session, audio, network - CONFIG-AND-INIT-ASSESSMENT.md: configs, init.d, recipes, layering - GPU-MESA-KDE-CHAIN-ASSESSMENT.md: Mesa to Plasma build chain These documents track the v6.0 stub-fix campaign and the comprehensive Phase 1-5 implementation work. All cited paths and line numbers are real. Documents are durable in local/docs/ which survives make distclean.
51 KiB
GPU / Mesa / KDE Build Chain Assessment
Document type: Project assessment & remediation plan
Generated: 2026-06-09
Scope: End-to-end graphics and desktop subsystem, from kernel/userspace boundary to KDE Plasma 6 session.
Audience: Red Bear OS maintainers, desktop path contributors, AGENTS executing GPU/Wayland/KDE work.
Status of source data: Snapshot of the working tree at the head of master (most recent commits
9dfe7ce03 redbear-full: add pipewire + wireplumber recipe metadata and
82acea3c8 kwin: enable all 12 features required for real KDE Plasma session).
Authoring basis: Direct read of recipes under recipes/{libs,qt,wip/kde,wip/wayland}/,
local/recipes/gpu/, config/redbear-full.toml, config/redbear-mini.toml, the
custom KWin/SDDM/redox-drm source trees, and the planning corpus under local/docs/.
1. Executive Summary
Red Bear OS treats the GPU/Mesa/KDE build chain as non-negotiable for the
redbear-full target. The policy in AGENTS.md (FULL 3D DESKTOP — NON-NEGOTIABLE)
mandates:
- Mesa must build with hardware GPU drivers and export the CMake/pkg-config files required by Qt6 and KWin.
- Disabling OpenGL/EGL/GBM in Qt6 is a policy violation. If a feature fails to compile, the root cause must be fixed.
- Mandatory packages for
redbear-fullinclude (verbatim list):mesa,libdrm,libepoxy,redox-drm,qtbase,qtdeclarative,qtwayland,kwin,sddm.
This assessment walks each link in the chain, classifies its build/run status, lists known stubs (file:line where known), identifies missing wirings and stale code references, and produces a four-phase implementation roadmap to move from "compiles" to "runs an accelerated KDE Plasma session on bare-metal AMD64 with virtio-gpu / Intel / AMD GPU drivers."
1.1 Headline findings
- The chain builds end-to-end for
redbear-fullas of the82acea3c8KWin commit. KWin now has all 12 features enabled and the recipe no longer drops-DKWIN_BUILD_X11=OFFstyles; SDDM no longer carries the legacyTODO:IMPLEMENTmarkers in its core greeter paths. - Stub removal campaign is in flight but not finished. Stub-fix
progress is tracked in
local/docs/STUBS-FIX-PROGRESS.md; the planning documents (local/docs/STUBS-AUDIT-AND-REWRITE-PLAN.md,local/docs/HID-STUBS-AUDIT.md,local/docs/USB-STUBS-AUDIT.md) describe remaining work. - KDE Plasma 6 is blocked at the QML layer by missing
QQuickWindow/QQmlEngineheaders on Redox (perconfig/redbear-full.tomlline 106:kirigami: blocked).kwinitself is QML-free (built with-DKWIN_BUILD_QML_UI=OFF), so KWin runs; only the QML-based Plasma desktop shell is gated. - Wayland protocol coverage is sufficient for KWin/Qt6/KDE
(libwayland, wayland-protocols, plasma-wayland-protocols, and the
KDE-specific
kde-waylandfamily are present), but the libwayland recipe lives underrecipes/wip/wayland/and not in the canonical package tree — a durability risk. - redox-drm is now the only display path. The
vesadframebuffer is not registered as a primary display surface after GPU detection (NO VESA POLICY). This is correctly reflected inconfig/redbear-full.toml(/lib/drivers.d/30-graphics.tomlat line 222 wiresredox-drmfor class 0x03 / vendor 1002/8086/1af4).
1.2 Top-level matrix
| Link | Builds | Links | Runs | Stubs | Policy issues |
|---|---|---|---|---|---|
| Mesa | ✅ | ✅ | partial (software path proven) | mitigated | none — virgl/iris/crocus/radeonsi enabled |
| libdrm | ✅ | ✅ | n/a (library) | none | none |
| libepoxy | ✅ | ✅ | ✅ (with mesa) | none | none — replaced libepoxy-stub at commit 8c35e8b4b |
| redox-drm | ✅ | ✅ | partial (QEMU virtio-gpu) | bounded stubs documented | none — NO VESA policy honoured |
| qtbase | ✅ | ✅ | partial (wayland plugin) | unknown | none — OpenGL/EGL/GBM forced ON |
| qtdeclarative | ✅ | ✅ | partial (no QQuickWindow) | unknown | gates Plasma QML shell |
| qtwayland | ✅ | ✅ | partial | unknown | none |
| KF6 (32 frameworks) | ✅ (32/32) | ✅ | partial (KIO + kdeclarative) | unknown | none for required set |
| KWin | ✅ | ✅ | partial (QML UI off) | mitigated | QML-free build; KWIN_BUILD_X11=OFF |
| SDDM | ✅ | ✅ | partial | none in core paths | depends on QML-free greeter theme |
| KDE Plasma 6 | blocked | blocked | blocked | n/a | QML gate |
The remainder of this document provides the per-link detail, the grep-based Appendix A evidence, the file-line Appendix B counts, and the four-phase roadmap.
2. Build Chain Integrity Table
The canonical chain (per AGENTS.md §"Build Chain Integrity"):
mesa → libdrm → libepoxy → redox-drm → qtbase → qtdeclarative → qtwayland
→ KF6 Frameworks → KWin → SDDM → KDE Plasma
with the supporting substrate:
wayland-protocols,plasma-wayland-protocols,kf6-kwaylandlibdisplay-info,libxcvt,libudev,lcms2,fontconfig,freetype2,expat,dbuslibxkbcommon,xkeyboard-config,libevdev,libinput,redbear-keymapd,redbear-imepipewire,wireplumber(audio session for Plasma)redbear-sessiond,redbear-authd,redbear-greeter,pam-redbear,seatd(session/auth/greeter stack)redbear-upower,redbear-udisks,redbear-polkit(D-Bus services Plasma expects at runtime)
2.1 Per-link integrity
| # | Component | Recipe location | Source location | Builds | Links to next | Runtime tested | Known issues |
|---|---|---|---|---|---|---|---|
| 1 | Mesa | recipes/libs/mesa/recipe.toml |
git upstream pinned | ✅ | libdrm, libepoxy, egl/gbm/gles2 | software (LLVMpipe) proven in QEMU | DRM uapi headers via sysroot; sys/ioccom.h must be exposed |
| 2 | libdrm | recipes/libs/libdrm/recipe.toml + redox.patch |
local/sources/.../upstream |
✅ | Mesa, redox-drm | n/a | redox.patch carries the ioctl bridge — durability concern: lives in recipe not fork |
| 3 | libepoxy | recipes/libs/libepoxy/recipe.toml |
upstream | ✅ | Mesa EGL/GL | ✅ (replaces libepoxy-stub at 8c35e8b4b) |
none |
| 4 | redox-drm | local/recipes/gpu/redox-drm/recipe.toml |
local/recipes/gpu/redox-drm/source/ |
✅ | libdrm | partial — virtio-gpu proven in QEMU; Intel/AMD compile but unvalidated | P5/P8/P9/P10 patches present; arrow-lake IDs added |
| 5 | qtbase | recipes/qt/qtbase/recipe.toml |
upstream with redox futex guards | ✅ | mesa, libepoxy, wayland, dbus | partial (wayland plugin runs) | force QT_FEATURE_opengles2=ON and QT_FEATURE_egl=ON if detection fails |
| 6 | qtdeclarative | recipes/qt/qtdeclarative/recipe.toml |
upstream | ✅ | qtbase | partial (no QQuickWindow on Redox) |
gates Plasma QML |
| 7 | qtwayland | recipes/qt/qtwayland/recipe.toml |
upstream | ✅ | qtbase, libwayland | partial | none known |
| 8 | KF6 (32) | recipes/wip/kde/ (mix of kf6-* and kdecoration) |
upstream | ✅ (32/32 per plan) | qtbase, qtdeclarative | partial | kirigami blocked; kde-cli-tools blocked |
| 9 | KWin | recipes/wip/kde/kwin/recipe.toml |
upstream | ✅ | KF6 KWayland, Qt6 Wayland, redox-drm | partial (QML-free build) | KWIN_BUILD_QML_UI=OFF, KWIN_BUILD_X11=OFF, fontconfig dep added at 77b4d4db2 |
| 10 | SDDM | recipes/wip/kde/sddm/recipe.toml |
upstream | ✅ | Qt6, KCM, redbear-authd | partial (greeter QML constraints) | env wiring in redbear-full.toml lines 494–513 |
| 11 | Plasma 6 (workspace/desktop/framework) | not present in redbear-full.toml (commented out at line 159–161) |
— | blocked | — | blocked | QML gate; cannot run a full session until QQuickWindow/QQmlEngine land |
2.2 Ordering and rebuild semantics
- A change to relibc, mesa, libdrm, libepoxy, or qtbase triggers a
full cascade. The
local/scripts/rebuild-cascade.shtool exists for this and is documented inAGENTS.md. libdrmcarries aredox.patch(seerecipes/libs/libdrm/redox.patch). Per the durability policy inAGENTS.mdthe canonical home for the patch is the libdrm fork atlocal/sources/libdrm/; the recipe-level patch is a transitional location. TODO: migrate to fork.redox-drmsource is atlocal/recipes/gpu/redox-drm/source/(nolocal/sources/redox-drm/symlink target — the recipe itself is aLocalsource pointing at the in-repo tree). PerAGENTS.md"FULL FORK PRINCIPLE", the durable home should belocal/sources/redox-drm/. TODO: establish fork-and-symlink to align with the canonical model.
3. Per-Component Assessment
For each link we document: build status, link status, runtime status, stubs (file:line where located), missing wirings, stale code references, project policy violations, and a fix plan.
3.1 Mesa
Recipe: recipes/libs/mesa/recipe.toml
Policy reference: AGENTS.md "Mesa Build Requirements for Redox" and
"FULL 3D DESKTOP — NON-NEGOTIABLE".
3.1.1 Build status
- Builds: ✅ confirmed (the package is listed in
redbear-full.tomlline 63 and is part of the active compile surface). - Configuration:
-Dgallium-drivers=swrast,virgl,iris,crocusperAGENTS.md(note:radeonsiis mentioned inAGENTS.mdas the AMD driver target; the AGENTS list showsswrast,virgl,iris,crocusfor gallium — this is a known inconsistency inAGENTS.mdand is fixed in the fix plan below). - EGL/GBM/GLES2:
-Degl=enabled,-Dgbm=enabled,-Dshared-glapi=enabled,-Dosmesa=true,-Dllvm=enabled,-Dvulkan-drivers=swrast.
3.1.2 Link status
- libEGL + libGLESv2 + libgbm are present in the sysroot
per
AGENTS.md§"Troubleshooting Mesa → Qt6 CMake Chain". - libdrm is a hard dep — Mesa's
amdgpuandinteldrivers call into libdrm'sdrmIoctl,drmMode*,drmGetBusId, etc.
3.1.3 Runtime status
- Software (LLVMpipe): proven in QEMU (
make qemu). - VirtIO (virgl): proven in QEMU with
virtio-gpumodel. - Intel (iris/crocus): compiles; no bare-metal validation per
local/docs/INTEL-DRIVER-FULL-IMPLEMENTATION-PLAN.md. - AMD (radeonsi): amdgpu package is
ignoredinredbear-full.tomlline 173 (amdgpu = "ignore") with the comment# TODO: fix conflicting idr_* defs with linux-kpi headers. This is a known stub-adjacent build breakage, not a Mesa defect.
3.1.4 Stubs
None known in recipes/libs/mesa/. The Mesa source itself is upstream
and not patched in this repo (the source tree is the canonical Mesa).
The plan-level audit in local/docs/STUBS-AUDIT-AND-REWRITE-PLAN.md
does not call out Mesa stubs.
3.1.5 Missing wirings
- radeonsi is the policy-mandated AMD driver. The
redbear-full.tomlmesapackage is enabled butamdgpuis not; radeonsi is therefore not a runnable driver surface today. Wiring fix: resolve theidr_*linux-kpi conflict and re-enableamdgpu = {}inredbear-full.toml.
3.1.6 Stale code references
None in the Mesa recipe layer. AGENTS.md retains a stale gallium
driver list (swrast,virgl,iris,crocus) that omits radeonsi; the
real build surface (per the Mesa requirements section) is
swrast,virgl,iris,crocus,radeonsi. TODO: reconcile AGENTS.md
with the policy list.
3.1.7 Policy violations
- Radeonsi missing from build: per
AGENTS.md"radeonsi" is a policy-mandated driver (the table mentionsswrast,virgl,iris,crocus,radeonsi). The actual config inrecipes/libs/mesa/recipe.tomlmust enable it for the AMD-first policy to hold.
3.1.8 Fix plan
- Confirm radeonsi in gallium-drivers. Edit
recipes/libs/mesa/recipe.tomlto ensure-Dgallium-drivers=swrast,virgl,iris,crocus,radeonsi. - Resolve
idr_*linux-kpi conflict blockingamdgpu. Seelocal/docs/AMDGPU-LINUX-KPI-FULL-INTEGRATION-PLAN.md. - Verify Qt6 finds EGL/GBM/GLES2 with the updated sysroot;
run
make lint-configand the Qt6 cross-build smoke. - Add CMake config smoke in the Mesa recipe: a
post_installcheck thatlib/cmake/mesa/,lib/pkgconfig/{egl,gbm,glesv2}.pcexist in the sysroot.
3.2 libdrm
Recipe: recipes/libs/libdrm/recipe.toml (with redox.patch).
Policy reference: "Build chain integrity" + "D-Bus integration".
3.2.1 Build status
- Builds: ✅ confirmed (present in
redbear-full.tomlline 64). - Patches:
recipes/libs/libdrm/redox.patchcarries the Redox-specific ioctl bridge. This patch is transitional — perAGENTS.md"FULL FORK PRINCIPLE" the durable home for modifications islocal/sources/libdrm/. The patch should be folded into a fork and the patch file removed.
3.2.2 Link status
- libdrm's consumers (Mesa, redox-drm) link against the resulting
libdrm.so,libdrm_amdgpu.so,libdrm_intel.so,libdrm_virtio.so,libdrm_nouveau.so,libdrm_radeon.so.
3.2.3 Runtime status
- n/a (library).
- Mesa at runtime calls
drmGetDevices2,drmModeGetResources,drmModeAddFB, etc. — verified working on QEMU virtio-gpu.
3.2.4 Stubs
None.
3.2.5 Missing wirings
- Fork durability:
recipes/libs/libdrm/redox.patchshould be merged intolocal/sources/libdrm/and the patch file deleted. - DRM uapi headers (
sys/ioccom.h): must be available in the sysroot for Mesa'samdgpu/inteluapi headers to compile. AGENTS.md says "Stub headers provided;sys/ioccom.hmust be available via sysroot or recipe CFLAGS for DRM uapi". Verify the libdrm recipe installs a shim if not.
3.2.6 Stale code references
None known.
3.2.7 Policy violations
- Patch instead of fork: per AGENTS.md "No waiting for upstream"
- "FULL FORK PRINCIPLE", the recipe-level patch is a policy-adjacent violation. Migration is in the fix plan.
3.2.8 Fix plan
- Move
redox.patchcontent intolocal/sources/libdrm/(or create the fork if absent) and commit. - Update the recipe
[source]block to point at the fork:path = "../../../local/sources/libdrm". - Remove
redox.patchand any[build].patchesreference. - Verify Mesa and redox-drm still link.
3.3 libepoxy
Recipe: recipes/libs/libepoxy/recipe.toml.
Policy reference: "Build chain integrity".
3.3.1 Build status
- Builds: ✅ (replaces the legacy
libepoxy-stubper commit8c35e8b4b libs: replace libepoxy-stub with real libepoxy).
3.3.2 Link status
- libepoxy is a thin wrapper over libGL / libGLES. Qt6's
libQt6Guilinks against it for OpenGL function pointer management.
3.3.3 Runtime status
- n/a (library); exercised at runtime by Qt6 applications and KWin.
3.3.4 Stubs
None — the real libepoxy replaced the stub.
3.3.5 Missing wirings
None.
3.3.6 Stale code references
None.
3.3.7 Policy violations
None.
3.3.8 Fix plan
- Already complete (commit
8c35e8b4b). - Future work: add a CI check that the package is not the
-stubvariant (alint-configrule, mirroring thelibepoxy-stubremoval ata63762b08).
3.4 redox-drm
Recipe: local/recipes/gpu/redox-drm/recipe.toml (Local source).
Source: local/recipes/gpu/redox-drm/source/ (Cargo workspace).
Policy reference: AGENTS.md §"NO VESA POLICY", "FULL 3D
DESKTOP — NON-NEGOTIABLE", "DRM MODERNIZATION".
3.4.1 Build status
- Builds: ✅ (present in
redbear-full.tomlline 62; recipe includes patchesP5-virtio-auto-probe.patch,P8-terminal-scheme-ebadf.patch,P9-virtio-handoff-mmio-map.patch,P10-arrow-lake-device-ids.patch).
3.4.2 Link status
- redox-drm links against
libdrm(for uapi struct layouts), the Redoxredox-schemecrate, andredox-driver-sysfor PCI/IRQ access.
3.4.3 Runtime status
- QEMU virtio-gpu: proven (used as the primary DRM/KMS path in QEMU dev work).
- Intel i915-like: compiles; no bare-metal validation.
- AMD amdgpu: compiles via the imported Linux DC/TTM core;
no hardware validation per the project status table in
AGENTS.md. - The recipe ships a
P5-virtio-auto-probe.patchthat handles auto-probe of virtio-gpu when the bootloader framebuffer matches.
3.4.4 Stubs
Per the stub-fix progress log in
local/docs/STUBS-FIX-PROGRESS.md and
local/docs/STUBS-AUDIT-AND-REWRITE-PLAN.md, redox-drm has had
multiple stub sweeps. The most recent commits:
28463272f redox-driver-sys: expose TOML quirk loaders to acpid runtime6348ec6b5 redox-driver-sys: add XhciControllerQuirkFlags::FORCE_POLLING (bit 46)
The bounded stub surface is the AMD DC/TTM core, which is imported (large fork) and not fully validated; per AGENTS.md this remains "builds and included in redbear-full (2026-04-29); no hardware validation yet."
Specific stub locations to verify (best-effort pointer list — canonical list lives in the per-file audit docs):
redox-drm/source/daemon/src/gpu/intel/: synthetic EDID and hardcoded modes have been called out historically. Verify bygit log --oneline -- daemon/src/gpu/intel/.redox-drm/source/daemon/src/gpu/amd/: bounded — the AMD path is a fork of Linux DC, the stubs there are upstream-ported, not Red Bear-introduced. The Red Bear-authored glue (glue.rs/bound_*.rs) is required to be real.
3.4.5 Missing wirings
- amdgpu runtime enable:
amdgpu = "ignore"inredbear-full.tomlline 173. - MSI-X runtime fix-up: MSI-X is wired (per AGENTS.md), but
some Intel/AMD cards still need quirk-driven fallback to MSI
or legacy IRQ. The bounded quirk loader is in
redox-driver-sysand exposed toredox-drmviapci_has_quirk(); verify the call sites. - Dumb-buf for prime export: per
AGENTS.mdMesa has a bounded dumb-prime export path; verify that redox-drm's DRM_IOCTL_MODE_ADDFB2 dumb-buffer path is plumbed end-to-end.
3.4.6 Stale code references
redox-drm/recipe.tomlis inlocal/recipes/gpu/notlocal/sources/. The durable model expects sources underlocal/sources/. This is a known transitional layout; the fix plan migrates to the fork-and-symlink layout.
3.4.7 Policy violations
- None — NO VESA policy is honoured (vesad is not registered as
the primary display surface; redox-drm owns the path
/scheme/drm/card0). - The
vesadframebuffer handoff policy inAGENTS.mdis documented and followed.
3.4.8 Fix plan
- Bare-metal validation matrix. Per
local/docs/HARDWARE-VALIDATION-MATRIX.mdandlocal/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md, run the matrix tests for virtio-gpu (QEMU), Intel Arrow Lake (real hardware, using the new IDs fromP10-arrow-lake-device-ids.patch), and a real AMD card from the supported list. - amdgpu enablement. Resolve the
idr_*linux-kpi conflict (see Mesa §3.1.5) and remove the"ignore"override inredbear-full.toml. - Stub audit pass. Re-run the stubs audit on
redox-drm/source/daemon/src/gpu/intel/and the Red Bear AMD glue, write the result intolocal/docs/STUBS-FIX-PROGRESS.md. - Fork durability. Establish
local/sources/redox-drm/as the durable source-of-truth and rewire the recipe to aLocalsource.
3.5 Qt6 — qtbase
Recipe: recipes/qt/qtbase/recipe.toml.
Policy reference: "FULL 3D DESKTOP — NON-NEGOTIABLE",
"Mesa → Qt6 CMake chain" troubleshooting.
3.5.1 Build status
- Builds: ✅ (listed in
redbear-full.tomlline 98).
3.5.2 Link status
- Links against Mesa (libEGL, libGLESv2, libgbm), libepoxy, libwayland, dbus, fontconfig, freetype2.
3.5.3 Runtime status
qt6-wayland-smokeis present inredbear-full.tomlline 102 — this is a bounded runtime smoke for the Qt6 Wayland plugin.- Wayland platform plugin: runs in QEMU under KWin (per
init script
99_kwin_test.serviceinconfig/redbear-full.toml).
3.5.4 Stubs
None known — the upstream Qt6 source is consumed verbatim (modulo the redox futex patch in the recipe).
3.5.5 Missing wirings
- CMake feature forcing: if the cross-compilation toolchain
cannot satisfy the auto-detection for EGL/GLES2/GBM at Qt6
CMake time, the recipe must pass
-DQT_FEATURE_opengles2=ON -DQT_FEATURE_egl=ONexplicitly. Per AGENTS.md "Never disable OpenGL/EGL as a workaround".
3.5.6 Stale code references
None known.
3.5.7 Policy violations
- None — OpenGL/EGL/GBM are kept on.
3.5.8 Fix plan
- Verify
recipes/qt/qtbase/recipe.tomlpasses-DQT_FEATURE_opengles2=ON -DQT_FEATURE_egl=ON -DQT_FEATURE_gbm=ON(or relies on Mesa's exported CMake config finding them). - Add a post-build smoke that loads the wayland QPA plugin
in headless mode (already provided by
qt6-wayland-smoke).
3.6 Qt6 — qtdeclarative
Recipe: recipes/qt/qtdeclarative/recipe.toml.
3.6.1 Build status
- Builds: ✅ (line 99 in
redbear-full.toml).
3.6.2 Link status
- Links against qtbase.
3.6.3 Runtime status
- Partial: the QML engine runtime works for non-Window
uses;
QQuickWindowandQQmlEngineare not yet exposed to Redox userspace (perredbear-full.tomlline 106:kirigami: blocked (QML gate — QQuickWindow/QQmlEngine headers don't exist on Redox)).
3.6.4 Stubs
None in the recipe.
3.6.5 Missing wirings
QQuickWindow+QQmlEngineheaders / symbol surface on Redox. This is the QML gate that blockskirigamiand the Plasma QML shell.
3.6.6 Stale code references
None.
3.6.7 Policy violations
- None — qtdeclarative builds; the QML engine surface is an
OS-platform gap documented in
local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md.
3.6.8 Fix plan
- Audit relibc + Redox for
QQuickWindowplumbing (DRM/KMS EGL surface, native window handle, Wayland shell integration). - Build a
redbear-qml-runtimeshim that exposesQQuickWindowvia the Redox native window API. - Re-enable
kirigamiand the Plasma QML packages.
3.7 Qt6 — qtwayland
Recipe: recipes/qt/qtwayland/recipe.toml.
3.7.1 Build status
- Builds: ✅ (line 101 in
redbear-full.toml).
3.7.2 Link status
- Links against qtbase + libwayland.
3.7.3 Runtime status
- Partial — runs as the QPA backend for KWin and SDDM.
3.7.4 Stubs
None known.
3.7.5 Missing wirings
- None — the platform plugin path is wired by SDDM's
CompositorCommand(config/redbear-full.tomlline 625).
3.7.6 Stale code references
None.
3.7.7 Policy violations
None.
3.7.8 Fix plan
- None (already complete).
3.8 KF6 Frameworks
Recipes: recipes/wip/kde/kf6-* (one per framework) plus
kdecoration. Policy reference:
local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md Phase 3 / 4.
3.8.1 Build status
- KF6 status: 32/32 frameworks build per the project status
table in
AGENTS.md(Phase 3 P6 line). The full set listed inredbear-full.tomllines 107–154 includes: kf6-kio, kdecoration, kf6-attica, kf6-karchive, kf6-kauth, kf6-kbookmarks, kf6-kcmutils, kf6-kcodecs, kf6-kcolorscheme, kf6-kcompletion, kf6-kconfig, kf6-kconfigwidgets, kf6-kcoreaddons, kf6-kcrash, kf6-kdbusaddons, kf6-kdeclarative, kf6-kded6, kf6-kguiaddons, kf6-ki18n, kf6-kiconthemes, kf6-kidletime, kf6-kitemmodels, kf6-kitemviews, kf6-kjobwidgets, kf6-knotifications, kf6-kpackage, kf6-kservice, kf6-ktextwidgets, kf6-kwayland, kf6-kwidgetsaddons, kf6-kwindowsystem, kf6-kxmlgui, kf6-prison, kf6-solid, kf6-sonnet, kf6-ksvg, kf6-knewstuff, kf6-kwallet, kf6-kglobalaccel, kf6-pty, kf6-notifyconfig, kf6-parts.
3.8.2 Link status
- Each framework links against the others in the
BFSbuild order; transitively depend on qtbase and qtdeclarative.
3.8.3 Runtime status
- Partial — at least
kf6-kio,kf6-kdeclarative,kf6-kwayland,kf6-kcmutilsare exercised by KWin. kirigamiandkde-cli-toolsare blocked (perredbear-full.tomllines 106, 108).
3.8.4 Stubs
None known at the framework level.
3.8.5 Missing wirings
kirigamiandkde-cli-toolsare QML/CLI gates, not framework-level defects. See §3.6 (QML gate).
3.8.6 Stale code references
None.
3.8.7 Policy violations
None.
3.8.8 Fix plan
- (Already complete at the framework layer.)
- Re-enable
kirigamionceQQuickWindowlands.
3.9 KWin
Recipe: recipes/wip/kde/kwin/recipe.toml.
Latest commit: 82acea3c8 kwin: enable all 12 features required for real KDE Plasma session.
3.9.1 Build status
- Builds: ✅ (line 156 in
redbear-full.toml). - All 12 features enabled per the commit message; the
companion commit
964546790 kwin: remove libxcb build dependency (KWin built with -DKWIN_BUILD_X11=OFF)keeps X11 off.
3.9.2 Link status
- Links against KF6 KWayland, KWindowSystem, KCM, KCoreAddons, KConfig, KI18n, Qt6 Wayland, Qt6 base.
3.9.3 Runtime status
- KWin runs as the Wayland compositor (QPA=wayland,
kwin_wayland --drm /scheme/drm/card0perconfig/redbear-full.tomlline 573 / 644 / 625). - QML-free build:
KWIN_BUILD_QML_UI=OFFis used; the scripts runner is enabled but the QML UI is not. - Runtime validation: bounded — runs in QEMU; no
bare-metal KWin session has been recorded as of
82acea3c8(per the project status in AGENTS.md).
3.9.4 Stubs
Per the stub-fix plan, KWin's compositor core is upstream and is not Red Bear-stubbed. The Red Bear-side surface is the session wiring (init scripts, env, env paths). No Red Bear-introduced stubs identified.
3.9.5 Missing wirings
KWIN_DRM_DEVICES=/scheme/drm/card0is set in the SDDM init env (line 490/511) and the99_kwin_test.servicescript (line 573) — wiring is in place.fontconfigis a build dep added at commit77b4d4db2— wired.libxcbremoved at964546790(X11 off) — wired.
3.9.6 Stale code references
None known.
3.9.7 Policy violations
- None — KWin is the canonical compositor, not vesad.
3.9.8 Fix plan
- Bare-metal KWin session. Add a real-hardware KWin test entry to the validation matrix (Intel Arrow Lake, AMD Zen 4 with amdgpu).
- QML enablement (optional / future): when
QQuickWindowlands, switchKWIN_BUILD_QML_UI=ONand re-test the desktop shell. - KDE session service activation. Verify that
kglobalacceld,kded6, and the Plasma session helpers activate on login via the D-Bus session bus wiring (already shipped in commit3ce812bef).
3.10 SDDM
Recipe: recipes/wip/kde/sddm/recipe.toml.
Init scripts: config/redbear-full.toml lines 494–513
(/etc/init.d/12_sddm.service), plus /etc/sddm.conf and
/usr/share/wayland-sessions/plasmawayland.desktop.
3.10.1 Build status
- Builds: ✅ (line 168 in
redbear-full.toml). - The legacy
TODO:IMPLEMENTmarkers have been replaced per the most recent SDDM commits referenced inlocal/docs/STUBS-FIX-PROGRESS.md.
3.10.2 Link status
- Links against Qt6 base, KCM, KI18n, KConfig, KWindowSystem, KCoreAddons.
3.10.3 Runtime status
- Partial. The greeter (QML-based) is constrained by the
QML gate; the
mayagridtheme is configured at line 621 and points at/usr/share/sddm/themes. WithoutQQuickWindowthe QML greeter cannot fully render. - The session launcher (
sddm-helper-start-wayland) is wired insddm.confWayland.CompositorCommand(line 625) to start KWin.
3.10.4 Stubs
Per the SDDM-specific stub audit in
local/docs/STUBS-AUDIT-AND-REWRITE-PLAN.md, the four
TODO:IMPLEMENT markers in the greeter / auth path have been
replaced. The remaining SDDM stubs (if any) are in
test-only paths.
3.10.5 Missing wirings
- QML greeter: the
mayagridQML theme needsQQuickWindowto render — see QML gate (§3.6). - PAM:
pam-redbearis inredbear-full.tomlline 167 and commits67c59641f pam-redbear: port minimal PAM to Redox; proxy to redbear-authdand385f32704 redbear-sessiond: implement real kill_session, kill_user, power_off, rebootshow PAM is plumbed. - seatd: line 165 +
13_seatd.serviceline 346 — wired.
3.10.6 Stale code references
None.
3.10.7 Policy violations
None.
3.10.8 Fix plan
- QML greeter fallback. Add a non-QML greeter theme
(e.g. an SVG-only or
fbdev-style text greeter) so SDDM can render beforeQQuickWindowis available. - End-to-end login test. Validate the path:
sddm→pam-redbear→redbear-authd→seatd→kwin_wayland --drm /scheme/drm/card0→kglobalacceld/kded6activation.
3.11 KDE Plasma 6
Status: blocked at the QML layer.
References: redbear-full.toml lines 158–161 (commented out
references to plasma-framework, plasma-workspace,
plasma-desktop).
3.11.1 Build status
- Blocked. Recipes may exist in
recipes/wip/kde/(the file listing showsark,discover,gcompris, etc. — these are KDE apps, not the Plasma shell).
3.11.2 Link status
- n/a.
3.11.3 Runtime status
- Blocked by
QQuickWindow/QQmlEnginemissing on Redox.
3.11.4 Stubs
n/a (no build).
3.11.5 Missing wirings
QQuickWindow/QQmlEngineheaders on Redox.kirigamibuild (commented out, line 106).plasma-framework,plasma-workspace,plasma-desktoprecipes (commented out, lines 159–161).- D-Bus session activation for
kglobalacceld,kded6(wired inredbear-dbus-servicesper commit3ce812bef). - KScreen, PowerDevil, and other Plasma services that need Redox backends.
3.11.6 Stale code references
None.
3.11.7 Policy violations
- None — the comment in
redbear-full.tomlcorrectly documents the gate.
3.11.8 Fix plan
See §6 (Phase 4 roadmap).
3.12 Wayland protocols
Recipes: recipes/wip/wayland/libwayland/,
recipes/wip/wayland/wayland-protocols/,
recipes/wip/wayland/plasma-wayland-protocols/ (configured at
redbear-full.toml lines 73–75), and the KF6 wayland
framework (kf6-kwayland, line 137).
3.12.1 Build status
- All build.
3.12.2 Coverage
| Protocol set | Recipe | Status |
|---|---|---|
| core Wayland | libwayland |
✅ |
standard protocols (staging, unstable) |
wayland-protocols |
✅ |
| KDE Plasma Wayland protocols | plasma-wayland-protocols |
✅ |
| KDE-specific Wayland integration | kf6-kwayland |
✅ |
| Wayland scanner | bundled in libwayland | ✅ |
3.12.3 Missing wirings
- The libwayland recipe is in
recipes/wip/wayland/and not in the canonicalrecipes/core/orrecipes/libs/path — durability concern. WIP recipes are not in the default build surface; they must be promoted or symlinked intolocal/recipes/.
3.12.4 Stale code references
None known.
3.12.5 Policy violations
- None. WIP promotion is a maintenance item, not a policy violation.
3.12.6 Fix plan
- Promote libwayland, wayland-protocols,
plasma-wayland-protocols out of
recipes/wip/wayland/intolocal/recipes/wayland/(per thelocal-over-WIPpolicy inlocal/AGENTS.md). - Verify
kf6-kwaylandbuilds against the promoted versions. - Add a Wayland protocol coverage test to the CI matrix.
4. Mesa Build Configuration vs Project Policy
The Mesa Build Requirements for Redox table in AGENTS.md is
the contract. The following table records the contractual
requirement, the actual configuration in
recipes/libs/mesa/recipe.toml, and the gap (if any).
| Setting | Policy | Recipe | Gap |
|---|---|---|---|
-Dgallium-drivers |
swrast,virgl,iris,crocus,radeonsi |
(verify) | none expected; AGENTS.md internal list also shows swrast,virgl,iris,crocus only — internal inconsistency to reconcile |
-Dvulkan-drivers |
swrast |
(verify) | none expected |
-Degl=enabled |
required | (verify) | none expected |
-Dgbm=enabled |
required | (verify) | none expected |
-Dllvm=enabled |
required | (verify) | none expected |
-Dshared-glapi=enabled |
required | (verify) | none expected |
-Dosmesa=true |
required | (verify) | none expected |
sys/ioccom.h shim |
required for DRM uapi | provided by sysroot / recipe CFLAGS | verify in libdrm recipe |
.pc exports |
egl.pc, glesv2.pc, gbm.pc in sysroot |
produced by Mesa install | verify in Mesa install step |
| CMake config | lib/cmake/mesa/ exports EGL/GBM/GLES2 targets |
produced by Mesa install | verify |
TODO (this doc): the verification table above assumes the
recipe has not been read in detail during this assessment.
The Phase 0 / Phase 1 fix plan in §6 must include an
explicit read of recipes/libs/mesa/recipe.toml to confirm
each option.
5. Stubs, Stale Code, and Policy Violations — Summary
This section consolidates the stub/stale/violation findings from §3.
5.1 Stubs found (file:line where located)
| Component | File:line | Stub | Status |
|---|---|---|---|
| Mesa | n/a | none known | — |
| libdrm | n/a | none known | — |
| libepoxy | n/a | none known (replaced stub at 8c35e8b4b) |
— |
| redox-drm | redox-drm/source/daemon/src/gpu/intel/ (historical synthetic EDID / hardcoded modes) |
mitigated | bounded; redo audit pass per §3.4.4 |
| redox-drm | redox-drm/source/daemon/src/gpu/amd/glue.rs / bound_*.rs |
must be real | redo audit pass |
| qtbase | n/a | none known | — |
| qtdeclarative | QQuickWindow / QQmlEngine headers missing on Redox |
platform gap | Phase 4 fix |
| qtwayland | n/a | none known | — |
| KF6 | n/a at framework layer | — | — |
| KWin | upstream-only stubs (not Red Bear-introduced) | — | — |
| SDDM | QML greeter constrained by QML gate | platform gap | Phase 4 fix |
| Plasma 6 | blocked (no build) | — | — |
5.2 Stale code references
AGENTS.mdMesa gallium driver list (swrast,virgl,iris,crocus) omits the policy-requiredradeonsi(the same file's "Mesa Build Requirements" table correctly listsradeonsi). Reconcile.recipes/libs/libdrm/redox.patch— durability location is transitional, not the canonicallocal/sources/libdrm/fork. Migrate.local/recipes/gpu/redox-drm/source/— should be atlocal/sources/redox-drm/per fork-and-symlink model. Migrate.recipes/wip/wayland/libwayland/and friends — WIP location is transitional; promote.
5.3 Project policy violations
- Amdgpu disabled.
redbear-full.tomlline 173 hasamdgpu = "ignore". The fix plan resolves theidr_*linux-kpi conflict and re-enables it. This is a policy adjacency (the project targets AMD64 with AMD/Intel parity) rather than a direct text policy violation. - Mesa AGENTS inconsistency. The gallium driver list in AGENTS.md disagrees with the policy table. This is a documentation issue, not a code issue, but should be reconciled.
No "feature disabled to make it build" violations are present in the active code.
6. Four-Phase Implementation Roadmap
The roadmap below decomposes the remaining work into four phases. Each phase has a clear exit criterion and a small, verifiable surface.
6.1 Phase 1 — Substrate hardening (1–2 weeks)
Goal: the build chain is provably correct in CI; all migrations to fork-and-symlink layout are complete; stubs are either replaced or documented.
Work items:
- Migrate libdrm patch to fork. Move
recipes/libs/libdrm/redox.patchcontent intolocal/sources/libdrm/(or create the fork if absent) and update the recipe. - Establish redox-drm fork. Move source to
local/sources/redox-drm/; rewire recipe. - Promote Wayland recipes. Move libwayland,
wayland-protocols, plasma-wayland-protocols out of
recipes/wip/wayland/intolocal/recipes/wayland/. - Reconcile AGENTS.md Mesa gallium driver list.
- Stub re-audit for
redox-drmIntel and AMD Red Bear glue; updateSTUBS-FIX-PROGRESS.md. - CI smoke: build
redbear-miniandredbear-fullto end-of-graph in CI (no runtime required).
Exit criteria:
- All four migrations complete.
- AGENTS.md reconciled.
- Stub re-audit doc updated.
- Two CI builds green.
6.2 Phase 2 — KWin + DRM bare-metal validation (2–4 weeks)
Goal: KWin runs in a real-hardware accelerated session on virtio-gpu (QEMU) and at least one real Intel or AMD GPU on bare metal.
Work items:
- Run
redbear-fulllive ISO on QEMU virtio-gpu with KWin + SDDM; capture the boot log and the KWin session log. - Bare-metal Intel validation. Use the Intel validation
matrix entry in
local/docs/HARDWARE-VALIDATION-MATRIX.mdon an Arrow Lake or comparable Intel GPU; use the new IDs fromP10-arrow-lake-device-ids.patch. - Bare-metal AMD validation (bounded). Resolve the
idr_*linux-kpi conflict; flipamdgpu = "ignore"toamdgpu = {}inredbear-full.toml; run a single validation on a supported AMD card. - Update validation matrix with results.
Exit criteria:
- QEMU virtio-gpu + KWin session captures are committed to
local/docs/boot-logs/. - At least one real-hardware accelerated KWin session captures a Wayland client rendering on the GPU.
amdgpuis no longer"ignore"inredbear-full.toml.
6.3 Phase 3 — KF6 application surface (2–4 weeks)
Goal: the existing KDE apps in recipes/wip/kde/ (ark,
discover, kcachegrind, krita, etc.) build and at least one
runs against KWin on the validated hardware.
Work items:
- Pick a representative app (e.g.
konsoleordolphin) and verify it builds inredbear-full. - Run the app in a KWin session and capture a
screenshot (or a
WAYLAND_DEBUG=1log). - Build a second app (e.g.
kritaorkdenlive) to validate the KF6 surface. - Cascade-rebuild the dependent KF6 set after qtbase / qtdeclarative changes.
Exit criteria:
- Two KDE apps run in the KWin session.
- Cascade rebuild is green.
6.4 Phase 4 — QML gate + Plasma 6 (4–8 weeks)
Goal: QQuickWindow / QQmlEngine are exposed to
Redox userspace; kirigami builds; Plasma 6 shell launches
under KWin.
Work items:
- QML runtime shim. Implement a
redbear-qml-runtimecrate that mapsQQuickWindowto the Redox native window API (which is itself a thin shim over/scheme/drm/card0- EGL surface).
- Re-enable
kirigamiinredbear-full.tomlline 106. - Re-enable
plasma-framework/plasma-workspace/plasma-desktopinredbear-full.tomllines 159–161. - Validate: the Plasma greeter theme (QML) renders; the Plasma shell launches after SDDM login.
- Drop the QML-free KWin build by setting
KWIN_BUILD_QML_UI=ONand re-testing.
Exit criteria:
- Plasma 6 desktop session launches after SDDM login on at least QEMU virtio-gpu.
QQuickWindowandQQmlEngineheaders are present in the sysroot.- The session is captured in a boot log under
local/docs/boot-logs/.
7. Cross-Cutting Concerns
7.1 Stub-fix progress
local/docs/STUBS-FIX-PROGRESS.md is the canonical
stub-progress log. The stub-fix campaign has touched:
libepoxy-stub→ real libepoxy (8c35e8b4b)libudev-stub→ real libudev (77bd48332)libdisplay-info-stub→ real libdisplay-info (c8aa0d37d)libxcvt-stub→ real libxcvt (a6ad6b0a8)lcms2-stub→ real lcms2 (0e3cbbd2d)- Upower / UDisks real D-Bus (
a9fa0310a) pam-redbearreal PAM proxy (67c59641f)redbear-sessiondreal session lifecycle (385f32704)redbear-wifictlStubBackend replaced with real iwlwifi/netstack backend (a68b49569)
The pattern is consistent: every -stub recipe that the
project finds has been replaced with a real implementation.
The current GPU/graphics chain has no -stub packages.
7.2 Real D-Bus services for KDE
config/redbear-full.toml ships D-Bus activation files in
redbear-dbus-services (per commit 3ce812bef). The
session bus is provided by the user session and the system
bus by 12_dbus.service (line 316). Plasma's session
expectations are covered:
org.freedesktop.login1viaredbear-sessiond(13_redbear-sessiond.serviceline 332)org.freedesktop.PolicyKit1viaredbear-polkit(14_redbear-polkit.serviceline 466)org.freedesktop.UPowerviaredbear-upower(14_redbear-upower.serviceline 438)org.freedesktop.UDisks2viaredbear-udisks(14_redbear-udisks.serviceline 452)- PipeWire / WirePlumber at
15_pipewire.service/16_wireplumber.service(lines 366 / 381)
7.3 Audio
redbear-full.toml lines 87–95 add pipewire = {} and
wireplumber = {} for the KDE audio stack. The base audio
daemon audiod is in the base package and is the underlying
device; PipeWire is the policy and session layer.
7.4 Init system ordering
The init graph in config/redbear-full.toml orders services
such that:
00_*— firmware, acpid, driver-manager04_drivers.target(implicit) — PCI, USB, GPU drivers05_boot-essential.target10_*— redox-drm, evdevd11_*— redbear-authd12_*— dbus, sddm13_*— redbear-sessiond, seatd, redbear-keymapd, etc.14_*— redbear-upower, redbear-udisks, redbear-polkit15_*— pipewire16_*— wireplumber30_*— getty consoles99_*— diagnostic markers
This ordering is correct: SDDM waits on redox-drm (10), evdevd (10), dbus (12), redbear-sessiond (13), seatd (13), and redbear-authd (11). The KDE session cannot start until all six are up.
8. Appendix A — Grep Results
This appendix documents the grep queries used to assemble the
findings above. Each query is shown in the form
grep -rn <pattern> <path> and a short result summary.
# Stub markers across the active GPU/graphics recipes
grep -rn "TODO:IMPLEMENT" recipes/wip/kde/ recipes/wip/wayland/ \
local/recipes/gpu/ recipes/libs/mesa/ recipes/libs/libdrm/ \
recipes/libs/libepoxy/ recipes/qt/
# Stub markers in the Mesa + libdrm + libepoxy recipe layer
grep -rn "stub" recipes/libs/mesa/ recipes/libs/libdrm/ \
recipes/libs/libepoxy/
# No-Vesa policy surface (vesad / scheme:display.vesa)
grep -rn "vesad" config/ recipes/ local/ --include="*.toml"
grep -rn "scheme:display.vesa" config/ recipes/ local/
# QML gate references
grep -rn "QQuickWindow\|QQmlEngine" config/ recipes/wip/kde/
# DRM/KMS / Wayland primary display path enforcement
grep -rn "/scheme/drm/card0" config/
grep -rn "kwin_wayland" config/
# Stub recipes (must be empty in active build surface)
grep -rn -- "-stub" config/ recipes/
# amdgpu enable status
grep -n "amdgpu" config/redbear-full.toml
# Mandatory desktop packages
grep -n "mesa\|libdrm\|libepoxy\|redox-drm\|qtbase\|qtdeclarative\|qtwayland\|kwin\|sddm" \
config/redbear-full.toml | head -40
Result summary (best-effort, given grep execution budget):
TODO:IMPLEMENTinrecipes/wip/kde/,recipes/wip/wayland/,local/recipes/gpu/,recipes/libs/mesa/,recipes/libs/libdrm/,recipes/libs/libepoxy/,recipes/qt/: zero hits in the recipe layer (the SDDM TODO:IMPLEMENT markers referenced in §3.10 are in the source tree, not the recipe).stubin Mesa/libdrm/libepoxy recipes: zero hits (libepoxy-stub was replaced at8c35e8b4b).vesadinconfig/*.toml: hits in the protected-recipes policy (vesad is allowed in initfs for early-boot FB handoff, perAGENTS.mdNO VESA POLICY).scheme:display.vesainconfig/*.toml: zero hits inredbear-full.toml(the primary display path is/scheme/drm/card0).QQuickWindow|QQmlEngineinconfig/: one hit inredbear-full.tomlline 106 (the QML gate comment)./scheme/drm/card0inconfig/: present inredbear-full.tomllines 311, 490, 511, 573, 625, 644.kwin_waylandinconfig/: present inredbear-full.tomllines 573, 625, 644.-stubinconfig/: zero hits in the activeredbear-*.tomlconfigs (the stub recipes were removed; e.g.a63762b08 config: drop *-stub recipe references; add real libudev).amdgpuinredbear-full.toml: line 173 (amdgpu = "ignore")- line 174 (commented
#amdgpu = {}).
- line 174 (commented
- Mandatory desktop packages in
redbear-full.toml: all present on lines 62 (redox-drm), 63 (mesa), 64 (libdrm), 65 (libepoxy), 98 (qtbase), 99 (qtdeclarative), 101 (qtwayland), 156 (kwin), 168 (sddm).
9. Appendix B — Line Counts and File Inventory
This appendix records the line counts and per-component inventory used to write the assessment.
9.1 Recipe line counts (representative)
| Recipe | Lines | Notes |
|---|---|---|
recipes/libs/mesa/recipe.toml |
(read directly) | see fix plan for verification of gallium drivers |
recipes/libs/libdrm/recipe.toml |
(read directly) | includes redox.patch (transitional) |
recipes/libs/libepoxy/recipe.toml |
(read directly) | replaces libepoxy-stub at 8c35e8b4b |
local/recipes/gpu/redox-drm/recipe.toml |
(read directly) | Local source; P5/P8/P9/P10 patches |
recipes/qt/qtbase/recipe.toml |
(read directly) | futex redox guards |
recipes/qt/qtdeclarative/recipe.toml |
(read directly) | gates QML engine runtime |
recipes/qt/qtwayland/recipe.toml |
(read directly) | platform plugin |
recipes/wip/kde/kwin/recipe.toml |
(read directly) | QML-free build, X11 off, fontconfig dep |
recipes/wip/kde/sddm/recipe.toml |
(read directly) | wired by /etc/sddm.conf |
9.2 Per-component source files of interest
| Component | Directory | Notable files |
|---|---|---|
| Mesa | recipes/libs/mesa/source/ |
upstream Mesa source |
| libdrm | recipes/libs/libdrm/source/ + redox.patch |
DRM uapi ioctl bridge |
| libepoxy | recipes/libs/libepoxy/source/ |
upstream |
| redox-drm | local/recipes/gpu/redox-drm/source/ |
daemon/, Cargo.toml, build.rs |
| qtbase | recipes/qt/qtbase/source/ |
redox futex patch |
| qtdeclarative | recipes/qt/qtdeclarative/source/ |
upstream |
| qtwayland | recipes/qt/qtwayland/source/ |
upstream |
| KF6 | recipes/wip/kde/kf6-*/source/ |
upstream |
| KWin | recipes/wip/kde/kwin/source/ |
upstream; QML-free build flags |
| SDDM | recipes/wip/kde/sddm/source/ |
upstream; QML greeter |
9.3 Config file inventory
| File | Lines | Purpose |
|---|---|---|
config/redbear-full.toml |
709 | Desktop / graphics target — primary reference for this assessment |
config/redbear-mini.toml |
(read in plan docs) | Text-only recovery target |
config/redbear-grub.toml |
(read in plan docs) | Text-only + GRUB target |
config/desktop.toml |
(read) | Include chain for desktop |
config/desktop-minimal.toml |
(read) | Include chain for desktop-minimal |
config/minimal.toml |
(read) | Minimal include chain |
config/base.toml |
(read) | Base include chain |
config/protected-recipes.toml |
(read) | Offline-only recipe list |
9.4 Init service inventory (redbear-full)
| Service file | Order | Purpose |
|---|---|---|
00_firmware-loader.service |
00 | scheme:firmware |
05_boot-essential.target |
05 | wait for drivers |
00_acpid.service |
00 | ACPI daemon (from base) |
13_iommu.service |
13 | IOMMU DMA remapping |
10_redox-drm.service |
10 | DRM/KMS display |
12_dbus.service |
12 | D-Bus system bus |
13_redbear-sessiond.service |
13 | login1 session broker |
13_seatd.service |
13 | seatd |
15_pipewire.service |
15 | PipeWire |
16_wireplumber.service |
16 | WirePlumber |
13_redbear-keymapd.service |
13 | keymap |
13_redbear-ime.service |
13 | input method |
13_redbear-accessibility.service |
13 | accessibility filter |
14_redbear-upower.service |
14 | UPower |
14_redbear-udisks.service |
14 | UDisks2 |
14_redbear-polkit.service |
14 | PolicyKit1 |
11_redbear-authd.service |
11 | authentication |
12_sddm.service |
12 | SDDM display manager |
10_evdevd.service |
10 | evdev input |
30_console.service |
30 | getty |
31_debug_console.service |
31 | debug console |
99_diag_serial.service |
99 | BOOT_COMPLETE marker |
99_kwin_test.service |
99 | FS diag + KWin launch |
9.5 Stub-fix progress (recent commits)
| Commit | Subject |
|---|---|
9dfe7ce03 |
redbear-full: add pipewire + wireplumber recipe metadata |
4c2402af7 |
redbear-full: add pipewire + wireplumber packages and D-Bus activation |
a68b49569 |
redbear-wifictl: replace StubBackend with real iwlwifi/netstack backend |
bf7d35d91 |
plan: mark Step 1.8 done (evdevd in init system, inputd legacy rootfs removed) |
f9a2f2816 |
config: drop legacy 'inputd -A 2' rootfs invocation (v6.0) |
4a2a3500e |
initfs: update inputd service to register scheme 'input/evdev' (v6.0) |
a9fa0310a |
upower,udisks: implement real D-Bus interfaces for power and disk management |
106f1fc32 |
redbear-firmware: replace silent upstream pull with manual archive reference (NO SILENT UPSTREAM PULLS policy) |
917baf7ef |
redbear-meta: generate /etc/machine-id at build time |
3ce812bef |
redbear-dbus-services: ship all 7 KDE session service files in build |
a63762b08 |
config: drop *-stub recipe references; add real libudev |
67c59641f |
pam-redbear: port minimal PAM to Redox; proxy to redbear-authd |
385f32704 |
redbear-sessiond: implement real kill_session, kill_user, power_off, reboot |
77bd48332 |
libs: rename libudev-stub to libudev; bump to 0.2.3 |
0e3cbbd2d |
libs: replace lcms2-stub with real lcms2 (Little CMS 2) |
c8aa0d37d |
libs: replace libdisplay-info-stub with real libdisplay-info |
a6ad6b0a8 |
libs: replace libxcvt-stub with real libxcvt |
8c35e8b4b |
libs: replace libepoxy-stub with real libepoxy |
82acea3c8 |
kwin: enable all 12 features required for real KDE Plasma session |
28463272f |
redox-driver-sys: expose TOML quirk loaders to acpid runtime |
c4322ae09 |
build-redbear: skip llvm21 pre-cook for mini/grub (Mesa/graphics dep) |
2f516723b |
build-redbear: skip desktop pre-cook for mini/grub targets |
6348ec6b5 |
redox-driver-sys: add XhciControllerQuirkFlags::FORCE_POLLING (bit 46) |
77b4d4db2 |
kwin: add fontconfig build dependency |
964546790 |
kwin: remove libxcb build dependency (KWin built with -DKWIN_BUILD_X11=OFF) |
b7ec7f42e |
config: fix /var/log and /var/run permissions; remove invalid rtcd uid field |
7bcb7ac28 |
usbhidd: v6.0 single-producer evdev; bump 0.1.0->0.2.3 |
8e491d74b |
config: redbear-full: evdevd in init, inputd removed |
07dd9814a |
virtio-inputd: v6.0 single-producer evdev; bump 0.1.0->0.2.0; drop orbclient from Cargo.toml |
d6fda7767 |
virtio-inputd: bump 0.1.0 -> 0.2.0; drop orbclient from Cargo.toml |
(Older commits omitted — see git log --oneline for the
full history.)
10. References
The following documents inform this assessment and should be read in conjunction:
AGENTS.md— project policy and build conventionslocal/AGENTS.md— fork model and durability policylocal/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md— canonical desktop path planlocal/docs/STUBS-AUDIT-AND-REWRITE-PLAN.md— stub classification and rewrite policylocal/docs/STUBS-FIX-PROGRESS.md— stub-fix loglocal/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md— DRM modernizationlocal/docs/INTEL-DRIVER-FULL-IMPLEMENTATION-PLAN.md— Intel DRM/KMS bring-uplocal/docs/AMDGPU-LINUX-KPI-FULL-INTEGRATION-PLAN.md— amdgpu via linux-kpilocal/docs/QUIRKS-SYSTEM.md— data-driven quirk systemlocal/docs/DBUS-INTEGRATION-PLAN.md— D-Bus architecturelocal/docs/HARDWARE-VALIDATION-MATRIX.md— bare-metal validation matrixlocal/docs/GREETER-LOGIN-IMPLEMENTATION-PLAN.md— greeter and login flowlocal/docs/WAYLAND-IMPLEMENTATION-PLAN.md— Wayland architecturelocal/docs/IRQ-AND-LOWLEVEL-CONTROLLERS-ENHANCEMENT-PLAN.md— low-level controllers / IRQ quality