Files
RedBear-OS/local/docs/GPU-MESA-KDE-CHAIN-ASSESSMENT.md
T
vasilito e289904852 docs: add 8 comprehensive audit/assessment documents (7500+ lines total)
- 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.
2026-06-09 12:06:18 +03:00

51 KiB
Raw Blame History

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-full include (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-full as of the 82acea3c8 KWin commit. KWin now has all 12 features enabled and the recipe no longer drops -DKWIN_BUILD_X11=OFF styles; SDDM no longer carries the legacy TODO:IMPLEMENT markers 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 / QQmlEngine headers on Redox (per config/redbear-full.toml line 106: kirigami: blocked). kwin itself 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-wayland family are present), but the libwayland recipe lives under recipes/wip/wayland/ and not in the canonical package tree — a durability risk.
  • redox-drm is now the only display path. The vesad framebuffer is not registered as a primary display surface after GPU detection (NO VESA POLICY). This is correctly reflected in config/redbear-full.toml (/lib/drivers.d/30-graphics.toml at line 222 wires redox-drm for 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-kwayland
  • libdisplay-info, libxcvt, libudev, lcms2, fontconfig, freetype2, expat, dbus
  • libxkbcommon, xkeyboard-config, libevdev, libinput, redbear-keymapd, redbear-ime
  • pipewire, 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)
# 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 494513
11 Plasma 6 (workspace/desktop/framework) not present in redbear-full.toml (commented out at line 159161) 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.sh tool exists for this and is documented in AGENTS.md.
  • libdrm carries a redox.patch (see recipes/libs/libdrm/redox.patch). Per the durability policy in AGENTS.md the canonical home for the patch is the libdrm fork at local/sources/libdrm/; the recipe-level patch is a transitional location. TODO: migrate to fork.
  • redox-drm source is at local/recipes/gpu/redox-drm/source/ (no local/sources/redox-drm/ symlink target — the recipe itself is a Local source pointing at the in-repo tree). Per AGENTS.md "FULL FORK PRINCIPLE", the durable home should be local/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.toml line 63 and is part of the active compile surface).
  • Configuration: -Dgallium-drivers=swrast,virgl,iris,crocus per AGENTS.md (note: radeonsi is mentioned in AGENTS.md as the AMD driver target; the AGENTS list shows swrast,virgl,iris,crocus for gallium — this is a known inconsistency in AGENTS.md and is fixed in the fix plan below).
  • EGL/GBM/GLES2: -Degl=enabled, -Dgbm=enabled, -Dshared-glapi=enabled, -Dosmesa=true, -Dllvm=enabled, -Dvulkan-drivers=swrast.
  • libEGL + libGLESv2 + libgbm are present in the sysroot per AGENTS.md §"Troubleshooting Mesa → Qt6 CMake Chain".
  • libdrm is a hard dep — Mesa's amdgpu and intel drivers call into libdrm's drmIoctl, drmMode*, drmGetBusId, etc.

3.1.3 Runtime status

  • Software (LLVMpipe): proven in QEMU (make qemu).
  • VirtIO (virgl): proven in QEMU with virtio-gpu model.
  • Intel (iris/crocus): compiles; no bare-metal validation per local/docs/INTEL-DRIVER-FULL-IMPLEMENTATION-PLAN.md.
  • AMD (radeonsi): amdgpu package is ignored in redbear-full.toml line 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.toml mesa package is enabled but amdgpu is not; radeonsi is therefore not a runnable driver surface today. Wiring fix: resolve the idr_* linux-kpi conflict and re-enable amdgpu = {} in redbear-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 mentions swrast,virgl,iris,crocus,radeonsi). The actual config in recipes/libs/mesa/recipe.toml must enable it for the AMD-first policy to hold.

3.1.8 Fix plan

  1. Confirm radeonsi in gallium-drivers. Edit recipes/libs/mesa/recipe.toml to ensure -Dgallium-drivers=swrast,virgl,iris,crocus,radeonsi.
  2. Resolve idr_* linux-kpi conflict blocking amdgpu. See local/docs/AMDGPU-LINUX-KPI-FULL-INTEGRATION-PLAN.md.
  3. Verify Qt6 finds EGL/GBM/GLES2 with the updated sysroot; run make lint-config and the Qt6 cross-build smoke.
  4. Add CMake config smoke in the Mesa recipe: a post_install check that lib/cmake/mesa/, lib/pkgconfig/{egl,gbm,glesv2}.pc exist 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.toml line 64).
  • Patches: recipes/libs/libdrm/redox.patch carries the Redox-specific ioctl bridge. This patch is transitional — per AGENTS.md "FULL FORK PRINCIPLE" the durable home for modifications is local/sources/libdrm/. The patch should be folded into a fork and the patch file removed.
  • 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.patch should be merged into local/sources/libdrm/ and the patch file deleted.
  • DRM uapi headers (sys/ioccom.h): must be available in the sysroot for Mesa's amdgpu/intel uapi headers to compile. AGENTS.md says "Stub headers provided; sys/ioccom.h must 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

  1. Move redox.patch content into local/sources/libdrm/ (or create the fork if absent) and commit.
  2. Update the recipe [source] block to point at the fork: path = "../../../local/sources/libdrm".
  3. Remove redox.patch and any [build].patches reference.
  4. 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-stub per commit 8c35e8b4b libs: replace libepoxy-stub with real libepoxy).
  • libepoxy is a thin wrapper over libGL / libGLES. Qt6's libQt6Gui links 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 -stub variant (a lint-config rule, mirroring the libepoxy-stub removal at a63762b08).

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.toml line 62; recipe includes patches P5-virtio-auto-probe.patch, P8-terminal-scheme-ebadf.patch, P9-virtio-handoff-mmio-map.patch, P10-arrow-lake-device-ids.patch).
  • redox-drm links against libdrm (for uapi struct layouts), the Redox redox-scheme crate, and redox-driver-sys for 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.patch that 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 runtime
  • 6348ec6b5 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 by git 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" in redbear-full.toml line 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-sys and exposed to redox-drm via pci_has_quirk(); verify the call sites.
  • Dumb-buf for prime export: per AGENTS.md Mesa 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.toml is in local/recipes/gpu/ not local/sources/. The durable model expects sources under local/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 vesad framebuffer handoff policy in AGENTS.md is documented and followed.

3.4.8 Fix plan

  1. Bare-metal validation matrix. Per local/docs/HARDWARE-VALIDATION-MATRIX.md and local/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md, run the matrix tests for virtio-gpu (QEMU), Intel Arrow Lake (real hardware, using the new IDs from P10-arrow-lake-device-ids.patch), and a real AMD card from the supported list.
  2. amdgpu enablement. Resolve the idr_* linux-kpi conflict (see Mesa §3.1.5) and remove the "ignore" override in redbear-full.toml.
  3. 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 into local/docs/STUBS-FIX-PROGRESS.md.
  4. Fork durability. Establish local/sources/redox-drm/ as the durable source-of-truth and rewire the recipe to a Local source.

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.toml line 98).
  • Links against Mesa (libEGL, libGLESv2, libgbm), libepoxy, libwayland, dbus, fontconfig, freetype2.

3.5.3 Runtime status

  • qt6-wayland-smoke is present in redbear-full.toml line 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.service in config/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=ON explicitly. 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

  1. Verify recipes/qt/qtbase/recipe.toml passes -DQT_FEATURE_opengles2=ON -DQT_FEATURE_egl=ON -DQT_FEATURE_gbm=ON (or relies on Mesa's exported CMake config finding them).
  2. 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).
  • Links against qtbase.

3.6.3 Runtime status

  • Partial: the QML engine runtime works for non-Window uses; QQuickWindow and QQmlEngine are not yet exposed to Redox userspace (per redbear-full.toml line 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 + QQmlEngine headers / symbol surface on Redox. This is the QML gate that blocks kirigami and 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

  1. Audit relibc + Redox for QQuickWindow plumbing (DRM/KMS EGL surface, native window handle, Wayland shell integration).
  2. Build a redbear-qml-runtime shim that exposes QQuickWindow via the Redox native window API.
  3. Re-enable kirigami and 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).
  • 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.toml line 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 in redbear-full.toml lines 107154 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.
  • Each framework links against the others in the BFS build order; transitively depend on qtbase and qtdeclarative.

3.8.3 Runtime status

  • Partial — at least kf6-kio, kf6-kdeclarative, kf6-kwayland, kf6-kcmutils are exercised by KWin.
  • kirigami and kde-cli-tools are blocked (per redbear-full.toml lines 106, 108).

3.8.4 Stubs

None known at the framework level.

3.8.5 Missing wirings

  • kirigami and kde-cli-tools are 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 kirigami once QQuickWindow lands.

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.
  • 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/card0 per config/redbear-full.toml line 573 / 644 / 625).
  • QML-free build: KWIN_BUILD_QML_UI=OFF is 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/card0 is set in the SDDM init env (line 490/511) and the 99_kwin_test.service script (line 573) — wiring is in place.
  • fontconfig is a build dep added at commit 77b4d4db2 — wired.
  • libxcb removed at 964546790 (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

  1. Bare-metal KWin session. Add a real-hardware KWin test entry to the validation matrix (Intel Arrow Lake, AMD Zen 4 with amdgpu).
  2. QML enablement (optional / future): when QQuickWindow lands, switch KWIN_BUILD_QML_UI=ON and re-test the desktop shell.
  3. 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 commit 3ce812bef).

3.10 SDDM

Recipe: recipes/wip/kde/sddm/recipe.toml. Init scripts: config/redbear-full.toml lines 494513 (/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:IMPLEMENT markers have been replaced per the most recent SDDM commits referenced in local/docs/STUBS-FIX-PROGRESS.md.
  • 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 mayagrid theme is configured at line 621 and points at /usr/share/sddm/themes. Without QQuickWindow the QML greeter cannot fully render.
  • The session launcher (sddm-helper-start-wayland) is wired in sddm.conf Wayland.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 mayagrid QML theme needs QQuickWindow to render — see QML gate (§3.6).
  • PAM: pam-redbear is in redbear-full.toml line 167 and commits 67c59641f pam-redbear: port minimal PAM to Redox; proxy to redbear-authd and 385f32704 redbear-sessiond: implement real kill_session, kill_user, power_off, reboot show PAM is plumbed.
  • seatd: line 165 + 13_seatd.service line 346 — wired.

3.10.6 Stale code references

None.

3.10.7 Policy violations

None.

3.10.8 Fix plan

  1. QML greeter fallback. Add a non-QML greeter theme (e.g. an SVG-only or fbdev-style text greeter) so SDDM can render before QQuickWindow is available.
  2. End-to-end login test. Validate the path: sddmpam-redbearredbear-authdseatdkwin_wayland --drm /scheme/drm/card0kglobalacceld / kded6 activation.

3.11 KDE Plasma 6

Status: blocked at the QML layer. References: redbear-full.toml lines 158161 (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 shows ark, discover, gcompris, etc. — these are KDE apps, not the Plasma shell).
  • n/a.

3.11.3 Runtime status

  • Blocked by QQuickWindow / QQmlEngine missing on Redox.

3.11.4 Stubs

n/a (no build).

3.11.5 Missing wirings

  • QQuickWindow / QQmlEngine headers on Redox.
  • kirigami build (commented out, line 106).
  • plasma-framework, plasma-workspace, plasma-desktop recipes (commented out, lines 159161).
  • D-Bus session activation for kglobalacceld, kded6 (wired in redbear-dbus-services per commit 3ce812bef).
  • 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.toml correctly 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 7375), 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 canonical recipes/core/ or recipes/libs/ path — durability concern. WIP recipes are not in the default build surface; they must be promoted or symlinked into local/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

  1. Promote libwayland, wayland-protocols, plasma-wayland-protocols out of recipes/wip/wayland/ into local/recipes/wayland/ (per the local-over-WIP policy in local/AGENTS.md).
  2. Verify kf6-kwayland builds against the promoted versions.
  3. 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.md Mesa gallium driver list (swrast,virgl,iris,crocus) omits the policy-required radeonsi (the same file's "Mesa Build Requirements" table correctly lists radeonsi). Reconcile.
  • recipes/libs/libdrm/redox.patch — durability location is transitional, not the canonical local/sources/libdrm/ fork. Migrate.
  • local/recipes/gpu/redox-drm/source/ — should be at local/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.toml line 173 has amdgpu = "ignore". The fix plan resolves the idr_* 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 (12 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:

  1. Migrate libdrm patch to fork. Move recipes/libs/libdrm/redox.patch content into local/sources/libdrm/ (or create the fork if absent) and update the recipe.
  2. Establish redox-drm fork. Move source to local/sources/redox-drm/; rewire recipe.
  3. Promote Wayland recipes. Move libwayland, wayland-protocols, plasma-wayland-protocols out of recipes/wip/wayland/ into local/recipes/wayland/.
  4. Reconcile AGENTS.md Mesa gallium driver list.
  5. Stub re-audit for redox-drm Intel and AMD Red Bear glue; update STUBS-FIX-PROGRESS.md.
  6. CI smoke: build redbear-mini and redbear-full to 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 (24 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:

  1. Run redbear-full live ISO on QEMU virtio-gpu with KWin + SDDM; capture the boot log and the KWin session log.
  2. Bare-metal Intel validation. Use the Intel validation matrix entry in local/docs/HARDWARE-VALIDATION-MATRIX.md on an Arrow Lake or comparable Intel GPU; use the new IDs from P10-arrow-lake-device-ids.patch.
  3. Bare-metal AMD validation (bounded). Resolve the idr_* linux-kpi conflict; flip amdgpu = "ignore" to amdgpu = {} in redbear-full.toml; run a single validation on a supported AMD card.
  4. 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.
  • amdgpu is no longer "ignore" in redbear-full.toml.

6.3 Phase 3 — KF6 application surface (24 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:

  1. Pick a representative app (e.g. konsole or dolphin) and verify it builds in redbear-full.
  2. Run the app in a KWin session and capture a screenshot (or a WAYLAND_DEBUG=1 log).
  3. Build a second app (e.g. krita or kdenlive) to validate the KF6 surface.
  4. 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 (48 weeks)

Goal: QQuickWindow / QQmlEngine are exposed to Redox userspace; kirigami builds; Plasma 6 shell launches under KWin.

Work items:

  1. QML runtime shim. Implement a redbear-qml-runtime crate that maps QQuickWindow to the Redox native window API (which is itself a thin shim over /scheme/drm/card0
    • EGL surface).
  2. Re-enable kirigami in redbear-full.toml line 106.
  3. Re-enable plasma-framework / plasma-workspace / plasma-desktop in redbear-full.toml lines 159161.
  4. Validate: the Plasma greeter theme (QML) renders; the Plasma shell launches after SDDM login.
  5. Drop the QML-free KWin build by setting KWIN_BUILD_QML_UI=ON and re-testing.

Exit criteria:

  • Plasma 6 desktop session launches after SDDM login on at least QEMU virtio-gpu.
  • QQuickWindow and QQmlEngine headers 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-redbear real PAM proxy (67c59641f)
  • redbear-sessiond real session lifecycle (385f32704)
  • redbear-wifictl StubBackend 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.login1 via redbear-sessiond (13_redbear-sessiond.service line 332)
  • org.freedesktop.PolicyKit1 via redbear-polkit (14_redbear-polkit.service line 466)
  • org.freedesktop.UPower via redbear-upower (14_redbear-upower.service line 438)
  • org.freedesktop.UDisks2 via redbear-udisks (14_redbear-udisks.service line 452)
  • PipeWire / WirePlumber at 15_pipewire.service / 16_wireplumber.service (lines 366 / 381)

7.3 Audio

redbear-full.toml lines 8795 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-manager
  • 04_drivers.target (implicit) — PCI, USB, GPU drivers
  • 05_boot-essential.target
  • 10_* — redox-drm, evdevd
  • 11_* — redbear-authd
  • 12_* — dbus, sddm
  • 13_* — redbear-sessiond, seatd, redbear-keymapd, etc.
  • 14_* — redbear-upower, redbear-udisks, redbear-polkit
  • 15_* — pipewire
  • 16_* — wireplumber
  • 30_* — getty consoles
  • 99_* — 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:IMPLEMENT in recipes/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).
  • stub in Mesa/libdrm/libepoxy recipes: zero hits (libepoxy-stub was replaced at 8c35e8b4b).
  • vesad in config/*.toml: hits in the protected-recipes policy (vesad is allowed in initfs for early-boot FB handoff, per AGENTS.md NO VESA POLICY).
  • scheme:display.vesa in config/*.toml: zero hits in redbear-full.toml (the primary display path is /scheme/drm/card0).
  • QQuickWindow|QQmlEngine in config/: one hit in redbear-full.toml line 106 (the QML gate comment).
  • /scheme/drm/card0 in config/: present in redbear-full.toml lines 311, 490, 511, 573, 625, 644.
  • kwin_wayland in config/: present in redbear-full.toml lines 573, 625, 644.
  • -stub in config/: zero hits in the active redbear-*.toml configs (the stub recipes were removed; e.g. a63762b08 config: drop *-stub recipe references; add real libudev).
  • amdgpu in redbear-full.toml: line 173 (amdgpu = "ignore")
    • line 174 (commented #amdgpu = {}).
  • 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 conventions
  • local/AGENTS.md — fork model and durability policy
  • local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md — canonical desktop path plan
  • local/docs/STUBS-AUDIT-AND-REWRITE-PLAN.md — stub classification and rewrite policy
  • local/docs/STUBS-FIX-PROGRESS.md — stub-fix log
  • local/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md — DRM modernization
  • local/docs/INTEL-DRIVER-FULL-IMPLEMENTATION-PLAN.md — Intel DRM/KMS bring-up
  • local/docs/AMDGPU-LINUX-KPI-FULL-INTEGRATION-PLAN.md — amdgpu via linux-kpi
  • local/docs/QUIRKS-SYSTEM.md — data-driven quirk system
  • local/docs/DBUS-INTEGRATION-PLAN.md — D-Bus architecture
  • local/docs/HARDWARE-VALIDATION-MATRIX.md — bare-metal validation matrix
  • local/docs/GREETER-LOGIN-IMPLEMENTATION-PLAN.md — greeter and login flow
  • local/docs/WAYLAND-IMPLEMENTATION-PLAN.md — Wayland architecture
  • local/docs/IRQ-AND-LOWLEVEL-CONTROLLERS-ENHANCEMENT-PLAN.md — low-level controllers / IRQ quality