5-phase hardening to prevent silent file-layer collisions (the D-Bus
regression class):
Phase 1: lint-config-paths.sh + make lint-config in depends.mk
Phase 2: CollisionTracker in installer (content-hash comparison)
Phase 3: installs manifests in recipe.toml + validate-file-ownership.sh
Phase 4: validate-init-services.sh + make validate in disk.mk
Phase 5: documentation (AGENTS.md, BUILD-SYSTEM-HARDENING-PLAN.md)
Both redbear-mini and redbear-full build and validate clean.
66 declared install paths in base, zero conflicts.
Consolidated from all audits, QEMU testing, and implementation sessions.
P0: KDE build chain broken — libwayland pkgar staging race in cookbook.
Fix requires investigation of src/cook/package.rs pkgar path lookup.
P1: Graphical boot testing — dbus-daemon, sessiond, compositor, greeter.
P2: 7 remaining gaps — ion shell, shadow support, polkit, scrollback.
Includes cookbook tool investigation areas and total effort estimate
(~12 days per developer).
libwayland stage.pkgar missing when kf6-kitemviews builds during
make live CONFIG_NAME=redbear-full. This is a cookbook pkgar
staging race condition, not a code error.
redbear-mini (text-only) boots fully in QEMU with colored init
output, 25+ services, and login prompt on framebuffer console.
1. local/AGENTS.md: KWin/greeter/KF6 status updated to current truth
2. config/redbear-full.toml: konsole + kf6-pty moved under [packages]
3. docs/05 + BLUETOOTH + VFAT: redbear-kde.toml → redbear-full.toml
4. All remaining fixable Oracle issues from round 9 resolved
Mesa virgl:
- All virgl C objects compile successfully
- Linker fails: undefined reference to static_assert in virgl_drm_winsys.c
- Root cause: Mesa util/macros.h #define static_assert _Static_assert
not picked up before Linux drm.h uses static_assert() in include chain
- Fix candidates: patch drm.h or add -include util/macros.h to CFLAGS
- swrast-only build verified (stable)
Achievements this session:
- Mesa virgl compilation proven (objects build)
- virgl_screen.c disk cache patched for Redox
- bits/safamily-t.h provided to toolchain
- Linux 7.0 kernel source cached durably
- Virtio-gpu display driver confirmed working in redox-drm
- Credential syscalls fully implemented
Platform prerequisite status:
- Qt6::Sensors: BUILT (v6.11.0, 520KB pkgar, dummy backend)
- libinput: BUILT (v1.30.2, with libevdev v1.13.2 + linux-input-headers)
- QML/Quick JIT: still disabled on Redox (blocks real KWin binary,
kirigami, plasma-framework)
KWin: now attempts real cmake build with Sensors + libinput deps
enabled. Falls back to redbear-compositor shim on cmake failure
(QML/Quick gate). Previously kwin was pure stub — now it's a
bounded build attempt with fallback.
Enabled in config (new this session):
- qt6-sensors, libevdev, libinput, kdecoration, kf6-kcmutils
Previously OOTB dependencies now resolved:
- libevdev → libinput → KWin real build path opened
- linux-input-headers → libevdev → libinput chain
- qt6-sensors → KWin Sensors dependency satisfied
- QT6-PORT-STATUS: 'STUB ONLY' → 'EXISTS IN-TREE, not in enabled subset'
- DBUS-INTEGRATION: 'replace stub with real build' → 'enable in config'
(recipe already exists as real API-only cmake build)
- Fixed malformed markdown row (missing closing |)
- Table now says 26 in repo (lists all 29 pkgar names)
- Stage-only: 10 (26+10=36, 36+12=48)
- Removed stale '37 KDE recipes/29 KF6' text at line 332
- 11→12 blocked at line 338
Per Oracle review iteration 10: 'Build and archive the currently
buildable KDE substrate on redbear-full, fix dependency ordering for
that subset, and document/defer remaining blockers instead of
resolving them. Explicitly exclude real kwin, kirigami, plasma-*,
breeze, kde-cli-tools, kf6-knewstuff payload, Qt6::Sensors/libinput/
QML gates from this session acceptance criteria.'
- Verified: 29 KDE pkgar files in repo/x86_64-unknown-redox/
- Verified: 36 KDE packages enabled in config with = {}
- Blocked: 12 (48 total - 36 enabled)
- Stage-only: 7 (36 enabled - 29 in repo)
- All counts derived from actual repo artifacts and config
- CONSOLE: removed contradicting 11/12 blocked lines, unified to 37/11
- DESKTOP line 332: 32 KF6→37 KDE, 13→14 in repo, 36→37 enabled
- DESKTOP line 338: 12→11 blocked
- All counts now consistent across both docs
- CONSOLE line 91: removed stale 'commented out/compilation error'
- DESKTOP line 19: removed stale double-text
- DESKTOP line 127: removed kf6-kio from blocked list, breeze count 2→1
- kf6-kio now consistently 'builds, enabled, pkgar in repo' everywhere
Step 2: kf6-kio in repo ✅, kde-cli-tools out of scope (commented)
Step 3: Config accurate — blocked packages commented with reasons
Step 4: CONSOLE plan line 6 replaced with scoped verification claim:
'VERIFIED scope is the currently buildable KDE surface on
redbear-full; packages blocked by QML/Sensors/libinput stay
commented out and are not part of this verification claim'
Step 5: Docs synced with config
- Oracle VERIFIED kf6-kio fix: HostInfo::lookupHost stub using
direct QHostInfo::fromName replaces QtConcurrent chain
- Updated all doc counts: 36→37 buildable, 12→11 blocked
- kf6-kio moved from 'blocked: compilation' to 'builds'
- Fixed repo .pkgar count: 13 (was 15 claimed). Updated all docs.
- Fixed stage-only count: 23 (was 21).
- Removed last stale '9 KF6 reach image' text from bottom line.
- Removed stale '22 additional recipes need enablement' text.
- Live ISO path now depends on 'sources' target (archival parity
with harddrive.img path).
- All counts now verified against actual repo artifacts.
- Wave 4/7 stale enablement notes replaced with current state refs
- '22 KF6 enabled' → current status table reference
- 'knewstuff/kwallet enabled in config' → accurate blocked/building status
- '22 additional recipes need enablement' → removed
- CONSOLE plan: 'KF6 frameworks (32/32)' → 'KDE/Plasma surface (48)'
matching the broader 36/12 count
- All counts now internally consistent across both docs
- 11→12 blocked count in CONSOLE plan table
- Removed '23 additional KF6 not enabled' stale text
- Removed 'kf6-kio enabled/knewstuff+kwallet enabled' stale Wave 7 text
- kde-cli-tools: 'Blocked: dependencies' → 'source-incompatible'
- 48 total, 36 build, 12 blocked — consistent across both docs
- Fixed 47→48 recipe count (kf6-attica)
- Fixed 11→12 blocked count
- Removed all stale '9 KF6', 'only kwin', 'ECM in built' from CONSOLE plan
- Updated to current state referencing canonical DESKTOP-STACK doc
- kf6-attica source archived (sources/ is gitignored)
- Fixed contradictory plasma status (legacy table said 'enabled',
canonical table correctly says 'blocked'). Replaced stale Phase 4
table with accurate current state referencing canonical table.
- Version review: KF6 v6.10.0, Plasma v6.3.4, Attica v6.10.0,
KWin v6.3.4 (stub). All current upstream — no version bumps needed.
- Added kf6-attica to status table.
- Final state: 36 build (15 in repo + 21 stage), 11 blocked with
documented reasons.
- Add P0-bootstrap-workspace-fix.patch and P2-i2c-gpio-ucsi-drivers.patch
symlinks to integrate-redbear.sh (auto-created on every build)
- Update PATCH-GOVERNANCE.md with Apr 30 recovery: rebased P2 patch,
fixed PCI API (try_mem→map_bar, try_map_bar→map_bar), 12 drivers
- All daemon patches now durable: survive source refresh, make clean,
make distclean via recipe patches list + integrate script