From e6499a516b0aee4cc8e08277237d156867d34999 Mon Sep 17 00:00:00 2001 From: Vasilito Date: Wed, 15 Apr 2026 12:57:07 +0100 Subject: [PATCH] Annotate historical Wayland gap docs Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- docs/02-GAP-ANALYSIS.md | 9 +++++++++ docs/03-WAYLAND-ON-REDOX.md | 40 ++++++++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/docs/02-GAP-ANALYSIS.md b/docs/02-GAP-ANALYSIS.md index 5a32c597..8723d4ac 100644 --- a/docs/02-GAP-ANALYSIS.md +++ b/docs/02-GAP-ANALYSIS.md @@ -89,6 +89,11 @@ implemented phase with its own config/recipe/doc boundary. ### Layer 3: Input Stack +> **Interpretation note:** paths under `recipes/wip/` in the matrix below should be read as upstream +> WIP inputs or historical references, not automatically as the current Red Bear shipping source of +> truth. Under the Red Bear WIP policy, upstream WIP may still be mirrored, fixed, and shipped from +> the local overlay instead. + | Component | Status | Where to implement | Concrete doc | |-----------|--------|--------------------|-------------| | evdev daemon | **Present in-tree** | `local/recipes/system/evdevd/` | [03 §2](03-WAYLAND-ON-REDOX.md) | @@ -99,6 +104,10 @@ implemented phase with its own config/recipe/doc boundary. ### Layer 4: Wayland Protocol +> **Interpretation note:** the `recipes/wip/wayland/*` paths below are still useful references for +> upstream status, but Red Bear should not treat them as automatically preferred shipping sources +> while they remain upstream WIP. + | Component | Status | Recipe | Blocker | |-----------|--------|--------|---------| | libwayland | Patched, downstream compatibility workarounds remain | `recipes/wip/wayland/libwayland/` | Reduce/remove `redox.patch` and verify runtime behavior | diff --git a/docs/03-WAYLAND-ON-REDOX.md b/docs/03-WAYLAND-ON-REDOX.md index 6004ab35..fa3decdf 100644 --- a/docs/03-WAYLAND-ON-REDOX.md +++ b/docs/03-WAYLAND-ON-REDOX.md @@ -4,12 +4,19 @@ Get a working Wayland compositor on Redox OS that can run KDE Plasma applications. +For the current build/runtime truth summary of the desktop stack, use +`local/docs/DESKTOP-STACK-CURRENT-STATUS.md` together with `local/docs/QT6-PORT-STATUS.md`. +This file should now be read primarily as implementation history plus deeper Wayland-specific +porting notes. + ## Current State -- `config/wayland.toml` exists — launches `cosmic-comp` or `smallvil` via `orbital-wayland` +- `config/wayland.toml` exists — now uses the Red Bear runtime-service fragments and launches the + `smallvil` path by default via `orbital-wayland` - 21 Wayland recipes in `recipes/wip/wayland/` — most untested - `libwayland` 1.24.0 now rebuilds with a much smaller `redox.patch`; the P3 POSIX path (`signalfd`, `timerfd`, `eventfd`, `open_memstream`, `MSG_CMSG_CLOEXEC`, `MSG_NOSIGNAL`) is back on the native path, and the remaining patch is down to Redox-specific build quirks -- `smallvil` (Smithay) runs as basic compositor, performance poor +- `smallvil` (Smithay) is still the recommended first runtime target because it is the smallest + compositor path already present in-tree - `cosmic-comp` builds but still has no working keyboard input; the remaining issue is runtime/input integration, not simply the absence of a libinput recipe - `libdrm` builds with all GPU drivers disabled - Mesa uses OSMesa (software rendering only) @@ -32,7 +39,30 @@ What is actually true today: - `evdevd`, `udev-shim`, and `redox-drm` exist in-tree, but full compositor/runtime validation remains open - `seatd` now also builds in-tree for Redox and is started by the KDE runtime config, but has not yet been validated end-to-end with the compositor/DRM path -Read the step-by-step sections below as design history plus implementation notes, not as an exact current-state checklist. +Read the step-by-step sections below as design history plus implementation notes, not as an exact +current-state checklist. + +For the current Phase 4 runtime entrypoint in this repo, use: + +- `config/redbear-wayland.toml` +- `local/scripts/test-phase4-wayland-qemu.sh` + +That path is the current smallvil-first Phase 4 validation target. + +Current runtime evidence for that target: + +- `redbear-wayland` builds to a bootable image +- the image boots to a real login prompt in QEMU/UEFI +- `redbear-phase4-wayland-check` runs in-guest and confirms the Wayland launch surface is present +- `smallvil` reaches xkbcommon initialization and selects the Redox EGL platform in the live guest +- the direct launcher `local/scripts/test-phase4-wayland-qemu.sh` now boots the built + `redbear-wayland` disk image instead of re-entering the build pipeline + +For the first runtime-validation pass, keep the **runtime target** intentionally small: `smallvil` + as the compositor and no heavier secondary Wayland stack as the primary goal. The current + `redbear-wayland` profile still inherits the broader desktop package set from `desktop.toml`, but + Phase 4 validation in this repo is specifically about the `orbital-wayland` → `smallvil` path, + not about treating every inherited desktop package as part of the Wayland validation surface. --- @@ -252,6 +282,10 @@ fn handle_ioctl(fd: usize, request: usize, arg: usize) -> Result { **Also needed: udev shim** +> **Historical path note:** the `recipes/wip/...` paths in the example steps below document the +> original upstream-oriented implementation path. Under the current Red Bear policy, upstream WIP is +> an input/reference, but the shipping/fixed version may live under `local/recipes/` instead. + Create `recipes/wip/wayland/udev-shim/` — a minimal udev implementation that: - Enumerates `/dev/input/event*` devices - Emits "add"/"remove" events via netlink-compatible socket