@@ -983,8 +983,10 @@ buffer. This is the change the plan now calls **v6.0**.
| Gap 3: renderD128 openat path | ✅ **DONE (partial)** | Added `NodeKind::Render` variant, `openat` mapping for `renderD128`, `fpath` returns `drm:renderD128`, and `queue_card_event` includes Render. Mesa can now open the render node. |
| Gap 5: host→guest resize event processing | ✅ **DONE (pre-existing)** | virtio IRQ handler at `virtio/mod.rs:366-403` reads `VIRTIO_GPU_EVENT_DISPLAY` and calls `refresh_connectors`. Scheme layer queues `hotplug` events. |
| Gap 8: `atomic_check()` ignores connector state | ✅ **DONE** | Renamed `_available_connectors` to `available_connectors` in `kms/atomic.rs`. Added validation: for each CRTC, every referenced connector must exist in `available_connectors` and have `ConnectorStatus::Connected`. Returns `CrtcNotFound` or `ConnectorDisconnected` for invalid commits. |
| Phase 2.1: Mesa EGL Wayland fix | 🚧 Skeleton (recipe forked) | `local/recipes/libs/mesa/recipe.toml` forked from mainline as the foundation for the switch from `-Dplatforms=redox` + `-lorbital` to `-Dplatforms=wayland` + `-lwayland-client`. Recipe modifications pending. |
| Phase 2.1: Mesa EGL Wayland fix | ✅ **DONE (recipe)** | `recipes/libs/mesa/recipe.toml` now has `template = "custom"`, calls `cookbook_apply_patches` for `local/patches/mesa/`, sets `-Dplatforms=wayland`, `-Degl=enabled`, `-Dgbm=enabled`, `-Dgallium-drivers=swrast,virgl,iris,crocus`, and adds `-lwayland-client -lwayland-server -lwayland-egl -lwayland-drm` to LDFLAGS. Mesa recipe work is complete; build verification needs the next `repo cook mesa` to run. |
| Phase 3.5: redbear-compositor page flip fix | ✅ **DONE** | Renamed `DrmOutput._file` to `drm_file`; `flip()` now uses `&self.drm_file.write_all(&buf)` instead of reopening `/scheme/drm/card0` on every call. |
| Phase 3.3: wp_presentation (vblank timing) | ✅ **DONE** (v6.0-impl2) | `wp_presentation` global exposed at name 15 (v2). Client `wp_presentation::feedback(surface, callback)` creates a `wp_presentation_feedback`; compositor emits `wp_presentation_feedback.clock_id` (CLOCK_MONOTONIC=1) and `wp_presentation_feedback.presented` (with monotonic timestamp + sequence) on each `wl_surface.commit` for any surface with attached feedback. Per-feedback state tracks surface_id, presented_count, and last_presented_seq. Real `monotonic_timestamp()` helper uses `SystemTime::now()` against UNIX_EPOCH (Redox scheme:time in real boot). |
| Phase 3.4: zwp_linux_explicit_synchronization_v1 (no tearing) | ✅ **DONE** (v6.0-impl2) | `zwp_linux_explicit_synchronization_v1` global exposed at name 14 (v1). Accepts `destroy` (no-op, global is shared) and `set_fencing_scanout_cap` (tracks the client's preferred fence cap in `ClientState.explicit_sync_fencing_scanout_cap`). Per-surface fence release is handled by the existing `wl_buffer.release` event (already wired). The protocol is now advertised to clients; Mesa virgl/iris/intel can opt in to fence-based release. |
| `redox-drm` dangling symlink | ✅ **FIXED** | `local/recipes/gpu/redox-drm/source` symlink had `../../../local/sources/redox-drm` (3 levels) which resolved to `<root>/local/local/sources/redox-drm` (double `local/local`). Fixed to `../../../../local/sources/redox-drm` (4 levels). |
| `build-redbear.sh` aggressive cache nuke | ✅ **FIXED** | Previously set `NO_CACHE=1` when any of relibc/kernel/base/bootloader/installer was stale, which ran `make repo_clean` and forced full mesa/llvm21/qt6/kwin rebuilds on every base source change (30+ min). Now only deletes the specific stale package's pkgar and target dir. |
| Stale `input/evdev` consumer blocking evdevd | ✅ **RESOLVED** | Before v6.0, evdevd crashed with `failed to open /scheme/input-evdev: No such device`. After restoring inputd as the scheme owner, the path is registered at boot. |
@@ -992,9 +994,11 @@ buffer. This is the change the plan now calls **v6.0**.
| `udev-shim` exposes `/dev/input/eventN` | ✅ **DONE** (pre-existing) | `local/recipes/system/udev-shim` creates the `/dev/input/event*` symlinks from the evdevd scheme. |
-`local/docs/STUBS-FIX-PROGRESS.md` — tracking document for the v6.0 implementation
### 18.2 Implementation work landed
@@ -1461,10 +1465,10 @@ Per the **NO OVERLAY-STYLE PATCHES — SCOPED POLICY (AMENDED 2026)** (commits `
| Block | Status | Note |
|-------|--------|------|
| Build the `redbear-full` ISO | ❌ Blocked | Pre-existing build-system symlink loop in `local/recipes/*/recipe.toml` blocks cookbook rebuild |
| Mesa external patch → EGL Wayland platform working | ❌ Not validated | External patches in `local/patches/mesa/`; Wayland EGL flag in mainline; never actually built |
| Mesa external patch → EGL Wayland platform working | 🟡 Recipe done, never built | Mesa recipe is complete (`template = "custom"`, `cookbook_apply_patches`, `-Dplatforms=wayland`); `repo cook mesa` is the next concrete step |
| Real `libdrm` patches | ❌ Not validated | External patches in `local/patches/libdrm/`; recipe migrated to upstream git + `cookbook_apply_patches`; never rebuilt against actual mesa |
| Wayland protocols in redbear-compositor | ❌ Missing | xdg-shell, xdg-output, xdg-decoration, wl_keyboard, wl_pointer, wp_viewporter, linux-dmabuf — only 5/15 of the canonical protocol surface |
| Real `libdrm` patches | ✅ **Patches verified** (v6.0-impl2) | Regenerated 3 patches: `00-xf86drm-redox-header.patch` (186 lines, creates `xf86drm_redox.h`), `01-virtgpu-drm-header.patch` (138 lines, creates `virtgpu_drm.h`), `02-redox-dispatch.patch` (806 lines, 4 helper functions + 8 `__redox__` branches). All 3 apply cleanly to fresh upstream libdrm 2.4.125, are idempotent (`git apply --reverse --check`), and produce a source tree byte-equivalent to the old fork (5276→5869 lines). Recipe's `pkgconf` typo fixed to `pkg-config` so `repo cook-tree libdrm` now resolves deps. The `local/recipes/libs/libdrm/recipe.toml` was also using the broken `[source].script` no-op field; moved to `[build].script` with `template = "custom"` so `cookbook_apply_patches` actually runs. |
fixed across 9 canonical docs), version refs `v4.0` → `v6.0` (2 locations
in `local/AGENTS.md`), `docs/README.md` fully rewritten as a clean canonical
index, `docs/AGENTS.md` reduced to the 3-doc canonical structure
Net: −31,315 lines. The 18-doc canonical set matches the PLANNING NOTES
section of `local/AGENTS.md`.
### 19.5 What remains for v6.0-impl4
| Block | Status | Concrete next step |
|-------|--------|-------------------|
| Implement libpciaccess Redox backend | 🔴 **Blocker #1** | Upstream libpciaccess 0.19 has no Redox support (`#error "Unsupported OS"` in `common_init.c`). Either fork `libpciaccess` to `local/sources/libpciaccess/` and add a Redox backend that routes to `scheme:pci` (Rule 1), or add a `__redox__` branch in the upstream fork that stubs the OS-specific code. |
| Rebuild `prefix/x86_64-unknown-redox/relibc-install/` | 🟡 Partial | The prefix was refreshed with fresh relibc headers + libc.a/.so (utimensat, getloadavg). A full `make prefix` rebuild is recommended to pick up all 9+ relibc fork commits but the mesa build can now proceed. |
| Run `repo cook mesa` end-to-end | 🟡 Next | Once libpciaccess has a Redox backend, the build chain (libpciaccess + pkg-config + wayland-protocols + ninja-build + libxml2 + mesa) should proceed. |
| Build redbear-full ISO | ❌ Build-system symlink loop | 7621 symlinks in `recipes/ → local/recipes/` overlay; resolve before re-cooking. |
The GPU/MESA/KDE assessment document is at`local/docs/GPU-MESA-KDE-CHAIN-ASSESSMENT.md` (note: file write tool failed during one of the agent runs; the comprehensive content is preserved in the model context and was provided as an assistant message. The file may need to be re-written by a subsequent session using heredoc.)
The GPU/MESA/KDE assessment document is at (note: file write tool failed during one of the agent runs; the comprehensive content is preserved in the model context and was provided as an assistant message. The file may need to be re-written by a subsequent session using heredoc.)
The assessment identified 9 hard build-chain breaks and 16+ stubs in the Mesa/KDE path. Top priorities:
- libdrm patches missing
@@ -414,4 +486,4 @@ Cross-cutting:
---
**Document version:** v6.0, end-of-session 2026-06-09. Mesa, libdrm, PipeWire, WirePlumber Red Bear source forks were migrated to external patches (Rule 2) in June 2026; see `local/AGENTS.md` for the current policy.
**Document version:** v6.0-impl3, 2026-06-10. Mesa, libdrm, PipeWire, WirePlumber Red Bear source forks were migrated to external patches (Rule 2) in June 2026; see `local/AGENTS.md` for the current policy. v6.0-impl2 updates: the 5 libdrm patches (generated against the deleted fork) were regenerated as 3 byte-equivalent patches against fresh upstream libdrm 2.4.125; the `pkgconf` typo in `local/recipes/libs/libdrm/recipe.toml` was fixed; the recipe's broken `[source].script` no-op was moved to `[build].script` with `template = "custom"` so `cookbook_apply_patches` actually runs. Wayland re-enabling: 4 KF6 packages flipped to `WITH_WAYLAND=ON`, libxkbcommon flipped to `-Denable-wayland=true`, kded6 wrapper replaced with `Environment=QT_QPA_PLATFORM=offscreen` in the systemd service file. Doc tree trimmed from 75 files to 18 canonical in `local/docs/`. redbear-compositor extended with `zwp_linux_explicit_synchronization_v1` (Phase 3.4, no-tearing) and `wp_presentation` (Phase 3.3, vblank timing) — 3 files (+349/-10), 2 new integration tests pass. v6.0-impl3 update: attempted `repo cook mesa` end-to-end. Found and fixed 2 recipe `rev` mismatches (ninja-build, sddm). Discovered that the relibc-install cross-compile toolchain prefix is stale (pre-dates the `utimensat` commit) and that the relibc P3-*.patch carriers in `recipes/core/relibc/` are broken symlinks to a deleted `local/patches/relibc/` directory. Per the user's "relibc is our internal project. We work on it directly without patches" policy, added `getloadavg` directly to the relibc source as a Rule 1 in-tree fork (not a patch), deleted the 33 broken P3-*.patch symlinks, and refreshed the relibc-install prefix with the fresh libc. Mesa build now blocked by libpciaccess 0.19 which has no Redox backend (upstream `#error "Unsupported OS"`).
- After one bounded Intel path is validated, reassess whether wider multi-family or deeper
@@ -329,7 +389,7 @@ Current bounded extraction progress:
from the shared substrate, which is the intended convergence direction for future GPU/Wi-Fi-only
donor usage under `linux-kpi`.
The codebase has 119 tests passing (93 linux-kpi + 8 redbear-iwlwifi + 18 redbear-wifictl), no production `unwrap()` in the Wi-Fi daemon request loop (startup uses `expect()`), atomic command
The codebase has 201+ tests passing across the Wi-Fi subsystem (93 linux-kpi + 8 redbear-iwlwifi + 50 redbear-wifictl + 35 redbear-info + 15 redbear-netctl-console), no production `unwrap()` in the Wi-Fi daemon request loop (startup uses `expect()`), atomic command
handling, proper timer cancellation, honest timeout reporting, and real 802.11 frame parsing.
The structural skeleton is solid. The next required step is **real hardware validation** with an
Intel Wi-Fi device — everything else is gated on that.
"wifictl: D-Bus NetworkManager surface deferred — see local/docs/WIFI-IMPLEMENTATION-PLAN.md Phase W6"
);
}
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.