Round 16 audit follow-up. Three small fixes:
1. local/recipes/system/redbear-authd/source/src/main.rs:328 — the
validation-mode spawn-reaper thread did 'let _ = child.wait();'
silently dropping the session child's exit status. Replaced with
'match' that eprintln-logs both successful exit status and wait
failure (with errno). Operators can now see when the session
child exits abnormally in validation mode.
2. local/recipes/system/redbear-dnsd/source/src/main.rs:111 — the
loopback DNS responder did 'let _ = socket.send_to(&reply, &src);'
silently. Replaced with 'if let Err(e) = socket.send_to(...)' that
eprintln-logs the failure with the source peer address. Previously
DNS clients could fail to receive a valid reply with no visible
error.
3. local/docs/SUPERSEDED-DOC-LOG.md — appended Round 16 entries
documenting the authd/dnsd fixes plus the Round-16 audit findings
that did not require code changes (acpi-rs AML 41 panics classified
as internal-invariant, pcid panics already have messages, all stale
CONFIG refs already retired, USB-daemon let _ = is in host-only test
paths, sessiond can_* for sleep is honest stub, Mesa CS ioctl
numbers verified no drift).
3 files changed, +27/-2.
Round 16 audit follow-up. Two small but useful additions:
1. local/docs/SUPERSEDED-DOC-LOG.md — appended R15 entries:
greeter/netctl/hotplugd let-underscore-to-logged (5682072e58),
acmd setrens security fix (883e8147ec), README null+8 contradiction
reconciliation, and the redbear-live.iso stale-reference fix.
2. local/recipes/system/redbear-sessiond/source/src/manager.rs —
the can_hibernate / can_hybrid_sleep / can_suspend_then_hibernate
/ can_sleep functions all return hardcoded 'na'. Documented the
integration plan in a block comment above them: when the
/scheme/sys/sleep and /scheme/sys/hybrid_sleep schemes exist
in the Redox kernel, replace these with fs::metadata() probes
matching the kstop_writable() pattern used by
can_power_off/can_reboot/can_suspend. No code change yet —
just the docstring pointing the next maintainer at the pattern.
Without this comment, a future maintainer reading the four
hardcoded 'na' returns would not know about the kstop_writable
probe pattern that enables the matching sleep capabilities.
2 files changed, +32/-5.
Updates the canonical current-state doc to reflect the Round-5
deliverables:
- "Last updated" header bumped to
"F1-F6d fixes + Round-5 N17+N18".
- § 5.10.3 Round-5 summary section added (cross-references
the new code-audit doc).
- § 6.5 per-fix summary table extended with the 4 N18 driver-
manager bug fixes (Q1, Q2+Bug4, S3, Bug5) and a row pointing
to the new `DRIVER-MANAGER-CODE-AUDIT-2026-07-27.md` for
the full audit context.
- § 7.1 References updated to list the new code-audit doc as
the primary Round-5 internal reference.
Consolidates 4 prior code-level review agents for the
driver-manager subsystem: 2 CRITICAL (reaper-clone, every-exit-
as-crash), 3 HIGH (scheme 100 ms block, reap_pid error_channel
fd leak, watchdog-exit-on-panic), ~10 MEDIUM, ~11 LOW with
file:line refs and planned-fix table. Companion to
DRIVER-MANAGER.md; no source or recipe changes.
Round 14 audit cleanup. Six coordinated fixes across seven files
plus a documentation log update:
1. local/recipes/system/redbear-wayland-guard/ — REMOVED entirely.
The directory contained only source/wayland_guard.c — an LD_PRELOAD
interposer stub for three wl_proxy_* functions — with NO recipe.toml.
This violated local/AGENTS.md STUB AND WORKAROUND POLICY ('No LD_PRELOAD
tricks'). The correct null-guard fix lives in libwayland upstream per
QT6-WAYLAND-NULL8-DIAGNOSIS.md (already covered by Mesa win compat).
2. recipes/system/redbear-wayland-guard — broken symlink cleaned up.
3. local/recipes/AGENTS.md — catalog entry for redbear-wayland-guard was
wrong (claimed 'Rust' but the code was C LD_PRELOAD). Replaced with
REMOVED note explaining the policy violation and the correct fix
location in libwayland.
4. local/recipes/system/firmware-loader/source/src/main.rs — converted
9 .expect() calls in the daemon init path (Socket::create, scheme_root,
create_this_scheme_fd, syscall::call_wo notify, setrens, next_request,
write_response) to Result propagation. get_init_notify_fd() and
notify_scheme_ready() now return Result; run_daemon() returns Result and
main() matches on Err to log+exit(1) cleanly. The daemon was
crashing the entire firmware-delivery subsystem on any init failure;
now init can fall back or restart the daemon.
5. local/recipes/system/{redbear-keymapd,redbear-ime,redbear-accessibility}/
source/src/main.rs — three scheme daemons used the same
Socket::create().expect() + register_sync_scheme().expect() pattern.
Replaced all six .expect() calls with match expressions that
log_msg('ERROR', ...) and process::exit(1). Same pattern.
6. local/docs/NETWORKING-AND-DRIVERS-SYSTEMATIC-ASSESSMENT-2026-07-27.md —
struck through 5 references to the now-removed redbear-wayland-guard
(line 65 missing-daemons list, line 344 table row, line 397
implementation list, line 414 source-list, line 797 P3-8 backlog).
7. local/docs/SUPERSEDED-DOC-LOG.md — appended a 'Rounds 11-14 Source-Level
Supersessions' table logging every lie-grade fix and stale-doc
strike from this session. Mirrors the original deletion-log style for
consistency, and gives operators a single place to see what was
resolved and where. Documents the emerging pattern: lie-grade code in
Red Bear concentrates in (a) relibc panic-site catch-alls (addressed
rounds 9-10), (b) scheme daemon init paths using .expect() instead of
Result (rounds 11-14), (c) Mesa DRM/Wayland stubbing (rounds 12;
remaining work tracked in 3D-DESKTOP-COMPREHENSIVE-PLAN.md).
Not committed in this commit (operator's parallel work, to be
committed by them):
- driver-manager/* (N-tier edits)
- redbear-sessiond/manager.rs (can_* probe refinements)
- redbear-statusnotifierwatcher/* (recipe + source)
- redbear-dbus-services/* (dbus service cleanup)
- redox-driver-core/manager.rs (test-only)
- Mesa redox_drm_cs.c (CS submit fix)
7 files changed in this commit + 2 deletions.
The Round 11 commit (a9e1c34e27) fixed both findings 14/15 and
18/18b/19 in the assessment doc; the Round 11 fix and Round 12
follow-ups (this round) update the remaining stale references.
1. local/docs/3D-DESKTOP-COMPREHENSIVE-PLAN.md §10 config table
(lines 1159-1160): marked wifi-experimental.toml and
bluetooth-experimental.toml include-typo as ✅ FIXED 2026-07-27
(was still listed as open).
2. local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md:
struck through:
- Finding 15 (redbear-passwd missing [source])
- Critical-path P0-12/13/14 (include typo + [source] todo)
- The Critical Path Hierarchy bullet list items
- TODO priority list line 718 (redbear-passwd [source])
- Backlog line 923 (C-23)
Marked each with ✅ RESOLVED 2026-07-27 (commit a9e1c34e27).
These were the last unstruck-through references after the
Round 11 fix landed. The assessment doc is now consistent
with the post-fix state.
2 files changed, +14/-12.
§15.3 had a contradiction: the table at line 1065 listed items as
'Remaining' that were already marked DONE in §15.1 and in the
commit history. This was a documentation hazard - an operator
reading §15.3 would waste time chasing already-fixed bugs.
Update the CRITICAL row to reflect the actual current state:
- Added explicit notes on completed this-round refinements
(BufferPool v.resize completion, xHCI snapshot-before-clear,
IPv6 final-protocol+offset+AH-formula fixes, F002 RawFd,
F003 redundant cast, TCP call() override, getsockopt
todo_skip removal)
- Updated HIGH row similarly (TCP SendMsg, MSG_NOSIGNAL,
relibc option level collision now marked DONE)
§15.3 now accurately reflects the current state of the
implementation effort.
Round 12 audit cleanup. Five fixes across five files plus a
zero-tolerance stub policy win:
1. local/patches/mesa/04-sys-ioccom-stub-header.patch — DELETED.
The patch was a hand-rolled include/sys/ioccom.h with Linux IOC
bitfield constants, living as a Mesa-side stub. Per local/AGENTS.md
zero-tolerance policy: 'Any stub found in the tree is a bug to
be fixed, not a precedent to follow.' relibc's new
include/sys/ioccom.h (commit ca7a7edb on submodule/relibc,
bumped in f145e9e768) provides the same constants natively,
making the patch redundant.
2. local/recipes/libs/mesa/recipe.toml — removed the now-dead
'04-sys-ioccom-stub-header.patch' entry from the patches list.
Note added explaining the removal so a future maintainer does
not re-add it.
3. local/recipes/system/udev-shim/source/src/naming.rs —
predictable_net_name() used to return the hardcoded 'eth0' on
parse failure of the PCI address. On multi-interface systems
where multiple devices had unparseable PCI addresses, all
collided on 'eth0'. Now returns 'net-malformed-<sanitized>'
(unique per PCI string) so each device gets a distinct name.
4. local/sources/base/netstack/src/scheme/netcfg/mod.rs — the
'summary' branch hardcoded devices.borrow().get("eth0") which
made the summary output invisible to non-eth0 interfaces.
Now iterates the full devices map and prints each interface's
state. (The deeper 'ifaces' routing tree still has 20+ eth0
references — restructuring that requires a schema change;
deferred to a follow-up that adds a configurable default iface.)
5. local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md + 3D-DESKTOP-COMPREHENSIVE-PLAN.md
— renamed 'redbear-kde-session' → 'redbear-session-launch' in the
final stale reference; clarified 'redbear-wayland.desktop' (not
yet wired).
Deferred: acpi-rs AML interpreter bare panic() (34 sites across
mod.rs) and netcfg ifaces routing tree (20+ eth0 references)
require schema-level refactors beyond one-shot fixes; tracked
for follow-up rounds.
N13 updates the policy.rs module docstring to reflect the four
current policy surfaces (blacklist + options + autoload + initfs-
manifest) and the active redbear-driver-policy state. Drops the
"before v1.4 the policy was dormant" stale reference.
N14 removes the remaining "previously marked as dormant" stale
comment in main.rs (now describes the four-count summary as
confirming the redbear-driver-policy package's curated config files
are wired). Simplifies the redbear-driver-policy README's
historical-dormant note to a single sentence about the cutover
date.
N15 — no stale doc removals needed: the 2026-07-27 doc
consolidation (recorded in SUPERSEDED-DOC-LOG.md) already
removed all known-stale docs. The 3D-DESKTOP-COMPREHENSIVE-PLAN
explicitly designates the two remaining NETWORKING assessment
files as operator-authored authoritative docs, so this round
does not delete them.
DRIVER-MANAGER.md adds § 5.10.3 Round-4 (N13–N15) summary.
164 driver-manager tests pass.
driver-manager-audit-no-stubs.py: 46 files, 0 violations.
Round 11 audit cleanup. Six fixes across six files:
1. local/recipes/system/redbear-passwd/recipe.toml — CRITICAL: was
missing the [source] block entirely. The recipe had only [package]
and [build] with template=cargo, which the cookbook cannot fetch.
Added [source] path = "source" so the cookbook locates the local
Rust crate. Also added a one-line description.
2. local/recipes/dev/libclc/recipe.toml — MEDIUM: the build script
installs via cmake but never verifies that libclc.pc (Mesa's
pkg-config dependency) and the .bc bitcode files actually landed.
Without these, Mesa's 3D driver cook fails opaquely with
'Dependency libclc not found (tried pkg-config)'. Added three
post-install test -f checks that fail the build with a precise
error pointing at the missing path.
3. local/recipes/system/redbear-sessiond/source/src/manager.rs — HIGH:
the D-Bus login1 can_power_off / can_reboot / can_suspend methods
were returning 'yes' unconditionally — the archetype lie-grade-ok
pattern (probe says success, then the real action fails because
/scheme/sys/kstop is missing). Replaced with a kstop_writable()
probe that fs::metadata()s the path. Used metadata() rather than
an actual write because writing 'shutdown'/'reset'/'s3' to
/scheme/sys/kstop would trigger the action. The actual power_off/
reboot/suspend methods still report granular errors when the
write is refused.
4. local/recipes/system/redbear-dnsd/source/src/transport.rs — MEDIUM:
UpstreamConfig::default() hardcoded 8.8.8.8 + 1.1.1.1 as fallback
upstream DNS. Hardcoding third-party DNS bypasses netcfg integration
and leaks user queries without consent on first boot. Replaced with
an empty Vec — main() reads the upstream list from netcfg before
any query is dispatched; upstream queries SERVFAIL until netcfg
populates the list (honest default).
5. local/docs/GREETER-LOGIN-IMPLEMENTATION-PLAN.md — MEDIUM: 16
references to the non-existent binary 'redbear-kde-session' (now
'redbear-session-launch'). Global s/redbear-kde-session/redbear-
session-launch/g. Also updated two 'redbear-kde' profile-name
references to reflect the 2026-07-24 retirement and the current
'redbear-full' ownership of the desktop path.
6. local/docs/DBUS-INTEGRATION-PLAN.md — LOW: 7 references to
'redbear-kde-session' renamed to 'redbear-session-launch' (same
binary rename).
6 files changed, +68/-28.
Note: Mesa 04-sys-ioccom-stub-header.patch migration to relibc proper
(sys/ioccom.h with Linux-style IOC encoding) is deferred — the
patch is a genuine gap-filler (relibc's sys/ioctl.h has the basic
macros but sys/ioccom.h is the BSD include path DRM UAPI expects).
That work belongs in the relibc fork with a prefix rebuild and
should be coordinated with the operator's prefix-staleness policy.
Round 10 audit cleanup. Six fixes across nine files:
1. config/redbear-netctl.toml: stale comment referenced three
non-existent configs (redbear-minimal, redbear-desktop,
redbear-kde). Replaced with accurate include-chain note.
2. scripts/run.sh, build.sh, scripts/fetch-all-sources.sh:
replaced all 'redbear-minimal' references with the actual
canonical config names (redbear-mini, redbear-grub,
redbear-wifi-experimental, redbear-bluetooth-experimental).
Three previously listed configs (redbear-kde, redbear-live,
redbear-wayland) never existed; removed them from the loop
that preflights/scans/fetches 'ALL_CONFIGS' so those broken
references no longer abort the script.
3. local/recipes/wayland/xwayland/recipe.toml:
- removed stale '#TODO wayland-client, fix linux/input,
wayland-scanner shim' (the workarounds are now real fixes).
- added redbear-input-headers to dependencies so the
uncommented <linux/input.h> include in xwayland-input.c
resolves via Red Bear's in-tree input-headers recipe
(per local/AGENTS.md LINUX KERNEL SOURCE POLICY).
4. local/recipes/wayland/xwayland/redox.patch:
- stripped diff -ruwN timestamps from all ---/+++ headers
(AGENTS.md patch format policy).
- dropped the three xwayland-glamor.h / xwayland-window.h/c
DRM-only hunks: they commented out xf86drm.h + drmDevice
fields, but the recipe's mesonflags already sets
'-Ddrm=false -Dglamor=false' so those code paths never
compile. Removing them eliminates dead commented-out code
that future maintainers would misread as 'in-progress'.
- replaced hardcoded 0x110/0x112/0x111 button constants
with the symbolic BTN_LEFT/BTN_MIDDLE/BTN_RIGHT names
(the include is now real), matching upstream style and
making the intent self-documenting.
5. local/recipes/libs/mesa/source/src/gallium/winsys/redox/drm/
redox_drm_surface.h: rewrote the stale header comment that
still claimed 'the actual present path is a no-op until
kernel-side scanout ioctls are added' — REDOX_SCANOUT_FLIP
is wired and working; the comment now describes the real
implementation.
6. local/docs/3D-DESKTOP-COMPREHENSIVE-PLAN.md: marked
redbear-wifi-experimental.toml and redbear-bluetooth-
experimental.toml as FIXED 2026-07-27 in the config
status table (the redbear-minimal → redbear-mini typo
was corrected earlier).
7. local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md:
struck through Findings 14, 18, 18b, C-21, C-22 and the
corresponding 'Config cleanup' todo — all resolved by
the rename to redbear-mini.toml.
9 files changed, +45/-115.
The 2026-07-27 Round 9 cleanup deleted 36 docs (3D-DRIVER-PLAN,
WAYLAND-IMPLEMENTATION-PLAN, DRM-MODERNIZATION-EXECUTION-PLAN,
REDBEAR-FULL-SDDM-BRINGUP, and the entire archived/ and
legacy-obsolete-2026-07-25/ contents) but several active docs still
cross-referenced those deleted files. This commit sweeps the surviving
docs and:
* Replaces every deleted-path reference with the live target:
WAYLAND-IMPLEMENTATION-PLAN.md -> 3D-DESKTOP-COMPREHENSIVE-PLAN.md
3D-DRIVER-PLAN.md -> 3D-DESKTOP-COMPREHENSIVE-PLAN.md
REDBEAR-FULL-SDDM-BRINGUP.md -> 3D-DESKTOP-COMPREHENSIVE-PLAN.md
legacy-obsolete-2026-07-25/DRM... -> 3D-DESKTOP-COMPREHENSIVE-PLAN.md
legacy-obsolete-2026-07-25/IRQ... -> IRQ-AND-LOWLEVEL-...-PLAN.md
archived/UPSTREAM-SYNC-PROCEDURE.md -> removed (sync procedure now in
BUILD-CACHE-PLAN.md +
sync-versions.sh)
archived/RELIBC-IPC-ASSESSMENT-... -> removed (work captured in
KERNEL-IPC-CREDENTIAL-PLAN.md)
archived/DRIVER-MANAGER-MIGRATION-PLAN -> removed (history in DRIVER-MANAGER.md
and git log)
archived/INTEL-HDA-IMPLEMENTATION-PLAN -> removed (track now in 3D-DESKTOP-
COMPREHENSIVE-PLAN.md § SOF/AVS)
* Rewrites pcid-spawner references to driver-manager in PACKAGE-BUILD-QUIRKS,
PATCH-GOVERNANCE, NETWORKING-IMPROVEMENT, LG-GRAM-16Z90TP, and the IRQ plan
status note. The retired pcid-spawner service no longer exists in any
redbear-* config as of the 2026-07-24 cutover.
* Rewrites CONSOLE-TO-KDE-DESKTOP-PLAN.md §9 plan table to point at the
post-Round-9 canonical doc map (3D-DESKTOP-COMPREHENSIVE-PLAN.md as the
single coherent 3D-render plan; IRQ plan at top-level). Drops the
misleading 'archived legacy-obsolete-2026-07-25/' status line and the
'work subsumed by Round 1-5' sentence that was explicitly rejected by
SUPERSEDED-DOC-LOG.
* Updates 3D-DESKTOP-COMPREHENSIVE-PLAN.md §10 to mark the REPLACE, RESTORE,
and DELETE pre-execution audit as completed 2026-07-27. Tables remain as
historical record of what was done, with a pointer to the backup tarballs
and SUPERSEDED.md log.
* Bumps 'Last updated' of CONSOLE-TO-KDE-DESKTOP-PLAN.md to v6.1.
13 files changed, +78/-65.
Round-3 closes three real operational gaps from Round-2 follow-ups:
- N9 — SIGHUP reloads all 4 policy surfaces (not just blacklist)
- N10 — initfs-manifest stage-aware probing (was a single pass)
- N11 — linux-kpi SAFETY comment cleanup (already done in
parallel by commits b295b80882 and a56cf84154; documented)
Updated:
- Last-updated banner
- § 5.10.2 Round-3 (N9–N11) summary section
- § 6.1 test inventory table (164 driver-manager tests, 200+ total)
The doc is now consistent with the current source state.
The first-round assessment (NETWORKING-AND-DRIVERS-SYSTEMATIC-
ASSESSMENT-2026-07-27.md) was never committed to the parent 0.3.1
branch. It captures the docs audit that preceded the code audit
(now at NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md).
Both files live in the repo as the docs and code halves of the
audit series.
SUPERSEDED-DOC-LOG.md is the change-log file referenced from
local/docs/legacy-obsolete-2026-07-25/SUPERSEDED.md. Previously
untracked; this commit makes it visible to the doc audit trail.
libredox O_CLOEXEC now references syscall::flag::O_CLOEXEC instead
of duplicating the literal 0x0100_0000. Per Single Source of Truth
and the Local Fork Supremacy Policy: a primitive constant should be
defined once in the most-primitive crate that has it (syscall) and
re-exported by higher-level crates (libredox).
R002 fix: netstack/src/filter/conntrack.rs captured '(is_orig, entry_key)'
in an if/else, but the 'if let' arm early-returned, so is_orig was
always true. Reply-direction state machine was unreachable for
already-established flows. Flattened the conditional: reply-side
'if let' early-returns; fall-through uses original key directly.
The is_orig variable is gone; orig-side path calls
advance_entry_state with is_orig=true explicitly.
Three-touchpoint fix for the option level collision (option 4 reads
as TCP_KEEPIDLE at SOL_SOCKET vs IP_TOS at IPPROTO_IP):
1. relibc/src/platform/redox/socket.rs: setsockopt/getsockopt
wire format changed from [SocketCall, option] to
[SocketCall, level, option]. The stale 'TODO convert back to
match when we support more levels' comment removed.
2. base/netstack/src/scheme/socket.rs: SocketT::set_sock_opt and
get_sock_opt now take (level, name) separately. The scheme dispatch
reads metadata[1] as level and metadata[2] as option.
3. base/netstack/src/scheme/{tcp,udp}.rs: TCP and UDP SocketT impls
updated to the new (level, name) signature.
libredox API bug: Fd::ftruncate and Fd::futimens previously took 'self'
(consuming the Fd), which would trigger Fd::drop and close the fd as
a side effect. POSIX ftruncate/futimens do NOT close the fd. Changed
to '&self' to match the surrounding methods (fsync, fdatasync) and
match POSIX semantics.
HIGH DEF-P0-7: relibc MSG_NOSIGNAL now properly blocks SIGPIPE via
pthread_sigmask around the syscall, instead of stripping the flag.
sendmsg does the sigprocmask block; sendto forwards the original
flags to sendmsg (removing the previous 'flags & !MSG_NOSIGNAL'
workaround).
Also removed the stale 'TCP lacks SocketCall::SendMsg handling' TODO
- the netstack scheme handler at
local/sources/base/netstack/src/scheme/socket.rs:519-533 does handle
SocketCall::SendMsg for both SOCK_STREAM and SOCK_DGRAM.
The relibc commit (f7f27a91f3) accidentally included phantom deletions
of local/docs/networking-validation-log.md because the relibc
submodule's working tree had a stale reference to a file that
belonged only to the parent 0.3.1 branch. Restoring the file in
the parent.
The relibc commit itself only affects the relibc submodule pointer
in the parent. The MSG_NOSIGNAL fix lives in the relibc submodule
at its own branch (submodule/relibc), not in the parent 0.3.1
branch. The parent 0.3.1 only tracks the submodule pointer bump.
CRITICAL F003 fixed: netstack/src/scheme/mod.rs had 2 unsafe
File::from_raw_fd sites with redundant 'as RawFd' casts. The 'as
RawFd' cast was a no-op on platforms where RawFd = i32 but was
misleading (suggests a conversion). Removed the cast. Also replaced
generic boilerplate SAFETY comments with specific invariants.
CRITICAL progress: 13 of 13 original findings now addressed
(F001, F1.6, F1.1, F2, F3, DEF-P0-6, DEF-P0-7, F18/F18b, F20,
F21, F3.1, F22, P001).
CRITICAL F002: worker_pool from_raw_fd changed from 'raw: usize' to
'std::os::fd::RawFd' (c_int). A garbage 64-bit value can no longer
be cast to a valid i32 fd; the value can only have come from a
previously-validated fd (via IntoRawFd::into_raw_fd, libredox::Fd::raw,
or a similar source that went through the kernel's open-fd table).
CRITICAL progress: 12 of 13 original findings now addressed.
Remaining: F003 (scheme File ownership, 3 unsafe sites in
scheme/mod.rs around lines 183 and 195).
Adds two new rows to the Implementation Status table:
- CRITICAL F22: btintel ECDSA firmware length check — now uses
ECDSA_FULL_LEN = 964 (full header: CSS 128 + PKEY 96 + SIG 96 bytes
after the 644-byte header start). Was 645..963 byte blobs would
panic on the PKEY/SIG slices.
- P001 (firewalling): IPv6 ext header firewall bypass fix — added
ipv6_transport_offset() walker that properly walks the IPv6
extension header chain (Hop-by-Hop, Routing, Fragment, Destination,
AH) to find the actual transport-layer offset. Was using a fixed
40-byte offset, so any IPv6 packet with extension headers caused
parse_ports() to read wrong bytes and silently fail to match
firewall port rules (firewall bypass).
Both pushed to origin.
CRITICAL progress: 11 of 12 original findings now addressed
(F001, F1.6, F1.1, DEF-P0-6, DEF-P0-7, F18/F18b, F20, F21, F3.1,
F22, P001). Remaining: F002 worker_pool from_raw_fd + F003 scheme
File ownership (the two remaining F-series items in netstack/src/).
Closes the doc consolidation that was authorized in option A of the
prior turn but was undone (untracked files back on disk). Re-executes
the deletion + restore + stub updates in a single coherent commit.
Stale docs deleted (40 files, backup at
/tmp/opencode/stale-doc-backup-2026-07-27.tar.gz, 387925 bytes,
40 entries):
- local/docs/3D-DRIVER-PLAN.md (Rounds 1-7, replaced by
3D-DESKTOP-COMPREHENSIVE-PLAN.md)
- local/docs/REDBEAR-FULL-SDDM-BRINGUP.md (build campaign log, status
folded into the comprehensive plan)
- 11 docs under local/docs/legacy-obsolete-2026-07-25/ (5-KDE-PLASMA-ON-REDOX,
BUILD-SYSTEM-ASSESSMENT, BUILD-SYSTEM-HARDENING-PLAN,
DRM-MODERNIZATION-EXECUTION-PLAN, HOOKS, INITNSMGR-CONCURRENCY-DESIGN,
NETWORKING-STACK-STATE, PATCH-PRESERVATION-AUDIT-2026-07-12,
RAPL-IMPLEMENTATION-PLAN, redbear-power-improvement-plan,
WAYLAND-IMPLEMENTATION-PLAN)
- 15 docs under local/docs/archived/ (ACPI-I2C-HID, BUILD-SYSTEM-IMPROVEMENTS,
DRIVER-MANAGER-MIGRATION-PLAN, IMPLEMENTATION-MASTER-PLAN,
IMPROVEMENT-PLAN, INTEL-HDA, KERNEL-SCHEDULER-MULTITHREAD,
README (replaced with stub), RELIBC-IPC-ASSESSMENT, repo-governance,
SLEEP-IMPLEMENTATION-PLAN, STUBS-FIX-PROGRESS,
SYSTEM-STABILITY-AND-UPSTREAM-SYNC, UPSTREAM-SYNC-PROCEDURE,
USB-BOOT-INPUT, USB-VALIDATION-RUNBOOK, XHCID-DEVICE-IMPROVEMENT)
- 6 docs under local/docs/boot-logs/ (cachyos-boot, README
(replaced with stub), REDBEAR-FULL-BOOT-EXTENDED,
REDBEAR-FULL-BOOT-POST-VIRTIO-BLKD, REDBEAR-FULL-BOOT-RESULTS,
REDBEAR-MINI-BOOT-PS2D-INPUTD-LOG-FIX)
- 2 docs under local/docs/evidence/driver-manager/ (ASSESSMENT,
D5-AUDIT, both pre-cutover, replaced by DRIVER-MANAGER.md)
- 1 doc under local/docs/fork-push-status/ (Round-9-phase-8.3, point-in-time)
- 1 doc under local/docs/legacy-recipe-patches/ (README,
navigation aid for moved symlinks, redundant after consolidation)
Stale-content redirection:
- The IRQ-AND-LOWLEVEL-CONTROLLERS-ENHANCEMENT-PLAN was already
restored to top-level by a previous commit (it self-declares active
authority per its own §0).
- The 2 '3D driver plan' / 'SDDM bring-up' docs are folded into
3D-DESKTOP-COMPREHENSIVE-PLAN.md (the single source of truth for
3D-stack audit, blockers, and remediation per §0 of that file).
Stub updates:
- local/docs/legacy-obsolete-2026-07-25/SUPERSEDED.md: 18-line stub
pointing to SUPERSEDED-DOC-LOG.md, explaining the directory's role
and noting the IRQ plan restore.
- local/docs/archived/README.md: 18-line stub doing the same for
the archived/ directory.
Verification:
- tar -tzf /tmp/opencode/stale-doc-backup-2026-07-27.tar.gz | wc -l = 40
(all deleted files preserved; restoration is tar -xzf).
No operator work (driver-manager, libclc source tree, NETWORKING-AND-DRIVERS
assessments) was touched in this commit.
Round 1 of the 3D-Desktop-Implementation work. Closes audit §3.4 #1
(kirigami QtNetwork lie-grade stub) and the missing bin/ toolchain
wrappers that block any meson regen of mesa-style recipes.
kirigami Icon primitive network path
- local/patches/kirigami/02-qnetwork-real-implementation.patch: replaces
the upstream Kirigami's Icon::loadImageFromSource lie-grade
'qnam = nullptr /* Redox: networkAccessManager not available */' hardcode
with a real 'qnam = new QNetworkAccessManager(this)' allocation. The
parented QNetworkAccessManager is destroyed with the icon; the existing
handleFinished falls through to the placeholder icon when scheme:network
is unavailable, so the network path now actually works on Redox.
- local/recipes/kde/kirigami/recipe.toml: wired the patch into
[source].patches and added cookbook_apply_patches call. Removed the
-I${COOKBOOK_SOURCE}/stubs/QtNetwork CMAKE_CXX_FLAGS entry that
previously shadowed the real QtNetwork headers with the stub classes.
Stub directory removal
- local/recipes/kde/kirigami/source/stubs/QtNetwork/: 3 files deleted
(QNetworkAccessManager returning nullptr, minimal Q_OBJECT-having
QNetworkReply, forward-declared QNetworkRequest). The real QtNetwork
(built via Qt6::Network in qtbase) is now used.
- local/recipes/kde/sddm/stubs/: directory deleted entirely. The
stubs/linux/{kd.h,vt.h} subdir was orphaned (SDDM patches wrap their
use in #if !defined(__redox__) so the stubs were never compiled on
Redox). After the linux/ subdir removal the stubs/ dir was empty.
bin/ toolchain wrappers (required by the cookbook's [binaries] block at
src/cook/script.rs:340; without these, meson --internal regenerate fails
with 'x86_64-unknown-redox-gcc-ar: No such file or directory')
- bin/x86_64-unknown-redox-gcc-ar
- bin/x86_64-unknown-redox-gcc-ranlib
- bin/x86_64-unknown-redox-g++
- bin/x86_64-unknown-redox-cpp
All four are 5-line redbear-run-tool wrappers matching the pattern of
the pre-existing x86_64-unknown-redox-{gcc,c++}.
local/docs/3D-DESKTOP-COMPREHENSIVE-PLAN.md
- §8.1 Implementation progress log added, recording this commit (Round 1)
alongside the previously-committed Rounds 0-3 of the implementation
work (commits 0b19fddd2c, e6e4289113, 86a162c803). §8.1 also documents
the audit correction: the Mesa 'link never completed' is actually a
mesa-config failure due to libclc.pc missing, not a link error.
Recipe-level stub removal and bin/ toolchain wrappers address one
blocker; libclc cook run remains the next Mesa prerequisite.
Verified: PATH=.../bin:$PATH x86_64-unknown-redox-gcc-ar --version
returns 'GNU ar (GNU Binutils) 2.43.1' via redbear-run-tool.
No operator files (local/recipes/system/driver-manager/, the new
NETWORKING-AND-DRIVERS-*-ASSESSMENT-2026-07-27.md docs, the libclc
untracked source files) were touched in this commit.
Adds two new rows to the Implementation Status table:
- CRITICAL F1.1: xHCI re-entrancy — clear event TRB before state.finish()
at 4 call sites in irq_reactor.rs (CommandCompletion, Transfer,
dead-ring Transfer, Other, acknowledge_failed_transfer_trbs).
Submodule base 51ae1567, parent 4fc85b9be4.
- CRITICAL F3.1: libredox demux() — replace .expect() with
.unwrap_or(u16::MAX) to prevent panic on edge-case errno.
Submodule libredox bfb5f8b, parent 7aba4f84ed.
Both pushed to origin.
This round's additions to the Implementation Status:
- F22 (btintel ECDSA firmware length check) - locally committed, ready
- F21 (redbear-dnsd config wiring) - now wired into redbear-mini
- 3 ghost recipes (netd/audiodevd/usbd) - WIP per AGENTS.md policy
- local ssh recipe - Red Bear fork with IPv6 detect + host-key gen
Stale doc audit:
- 8 docs reference redbear-mini.toml, redbear-minimal.toml, or
networking-validation-log.md - all are current canonical plans
(per audit §11.6, Round 6 cleanups already complete; this round's
networking-validation-log.md is now real)
- No docs need removal
After operator feedback: editing mainline recipes/net/openssh/recipe.toml
directly is a policy violation (per AGENTS.md: 'DO NOT edit files under
mainline recipes/ directly — put patches in local/patches/').
This commit reverts that incorrect approach in the documentation and
correctly states the proper fix path:
1. Create local/recipes/net/openssh/ as a Red Bear fork recipe that
uses the same upstream tar with a Red Bear patch file
(local/patches/openssh/01-ipv6-capability-detect.patch)
2. OR implement IPv6 in netstack/relibc (root cause fix, tracked
elsewhere)
The current sed workaround in recipes/net/openssh/recipe.toml remains
in place, documented as a known gap. This commit is documentation-only.
Also marks 4 of 12 original CRITICAL findings as DONE this round:
- F001 BufferPool zero-fill ✅
- F1.6 xHCI phys_addr_to_index >= ✅
- DEF-P0-7 rtl8139d/rtl8168d panic ✅
- DEF-P0-6 e1000d MMIO bounds check ✅
- F22 ECDSA firmware length check ✅
NETWORKING-IMPROVEMENT-PLAN.md:803 referenced a non-existent file
'local/docs/networking-validation-log.md' (Finding F19 from audit).
Created that file as the canonical per-run bare-metal networking
validation log, cross-referencing:
- HARDWARE-NETWORKING-INVENTORY.md (what hardware is available)
- HARDWARE-VALIDATION-MATRIX.md (the state of validation)
- FIREWALL-VALIDATION-LOG.md (netfilter scenario validation)
- USB-VALIDATION-RUNBOOK.md (USB controller validation)
Document structure: each run entry records hardware, software versions,
commands, results, regressions, fixes. Open tasks: acquire USB-C
dongle, Threadripper NIC inventory, USB Bluetooth adapter, first run.
Also updated NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §15.1
to reflect this round's fixes (config includes, recipe versions,
submodule CRITICAL fixes: BufferPool zero-fill, xHCI bounds, e1000d
bounds, rtl8139d/rtl8168d panic→exit).
Also documents that the openssh IPv4-only sed workaround was
correctly identified as needing a local fork (local/recipes/net/openssh/)
to fix properly, NOT a direct mainline edit (per AGENTS.md).
Adds a rolling changelog tracking fixes applied in this implementation round:
- 590 SAFETY docs in local/recipes/* (70 files)
- 174 SAFETY docs in relibc submodule (4 files)
- 45 SAFETY docs in libredox submodule (1 file)
- 40 SAFETY docs in base submodule (9 files)
- dnsd CRITICAL: AtomicU16 + compression loop limit
Total: 849 SAFETY comments + 2 dnsd CRITICAL fixes. All pushed to
origin. Document remaining work for the next implementation round.
Also documents 3 submodule commits pushed: relibc, libredox, base.
Remaining work: CRITICAL defects in §6.2, HIGH FFI in §3.4, HIGH error
handling in §3.5, config cleanup, recipe.toml version sync.
Post-implementation sync of the canonical current-state doc:
- §5 fix plan: every section now marked DONE 2026-07-27 with
implementation details, file:line refs, env-var surface, and
test results
- §6 test inventory: updated from 148 -> 181 tests; per-fix
summary table added showing the 33 new tests distributed across
the 8 fix commits
Verification status: 46 files scan clean by the no-stubs audit
(0 violations); all 181 host tests pass; linux-kpi lib compiles
clean on the redox target; the canonical doc remains the single
source of truth for current state.
Historical round-by-round detail remains in the archived
DRIVER-MANAGER-MIGRATION-PLAN.md.
Add local/docs/BUILD-SYSTEM.md as the single authoritative build-system
reference (entry point, CLI flags, pipeline stages, offline/release, caching,
no working-tree stashing, fork/vendored-upstream versioning, self-versioning).
Update AGENTS.md (dirty-gate replaces the removed stash-and-restore; --allow-dirty;
pointer), SCRIPT-BEHAVIOR-MATRIX.md (stash line -> dirty-source gate), README.md
(flags + pointer), and add canonical-doc pointers to BUILD-SYSTEM-INVARIANTS.md
and docs/06-BUILD-SYSTEM-SETUP.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit replaces the D-Bus implementation stubs and gaps identified
during the zbus/D-Bus review round with real, tested implementations.
**redbear-sessiond: real login1 properties + PrepareForShutdown signals**
The login1.Manager interface had hardcoded stub values:
- idle_since_hint() and idle_since_hint_monotonic() returned 0
- inhibit_delay_max_usec() returned 0
- handle_lid_switch() returned 'ignore'
- handle_power_key() returned 'poweroff'
- power_off/reboot/suspend wrote to /scheme/sys/kstop but did NOT
emit PrepareForShutdown(before=true) / PrepareForSleep(true) first
Replace with:
- Run-time configurable atomic fields (last_activity_us,
inhibit_delay_max_us) and RwLock<String> fields (handle_lid_switch,
handle_power_key) on SessionRuntime, mutated by the existing control
socket. Defaults: 5s inhibit delay, 'ignore' lid, 'poweroff' power key.
- power_off/reboot are now async, emit PrepareForShutdown(true) before
/scheme/sys/kstop write, emit PrepareForShutdown(false) after a
successful write, and return a D-Bus error if the kstop write fails
(resetting preparing_for_shutdown).
- suspend emits PrepareForSleep(true)/(false) similarly.
- Bash-style dangling-Clone problem solved via manual Clone impl on
SessionRuntime that snapshots the atomics and lock contents.
**redbear-wifictl: real NetworkManager-shaped D-Bus interface**
The dbus-nm feature was a no-op stub that just logged 'registered'
without actually doing anything. Replace with a real zbus interface:
- zbus::interface structs wrapping Arc<Mutex<NmWifiDevice>> shared state
- org.freedesktop.NetworkManager at /org/freedesktop/NetworkManager
exposes WirelessEnabled, WirelessHardwareEnabled, State, and
GetDevices().
- org.freedesktop.NetworkManager.Device.Wireless at
/org/freedesktop/NetworkManager/Devices/0 exposes HwAddress,
PermHwAddress, State, Ssid, Strength, LastScan, AccessPoints,
GetAccessPoints(), WirelessCapabilities.
- register_nm_interface() now actually builds a blocking
zbus::connection::Builder on the session bus, registers both
service name + object paths, spawns a background thread to hold the
connection alive, and returns. On session-bus connect failure it
logs an error and returns without crashing.
- When the dbus-nm feature is disabled, behavior is unchanged (no-op).
- Type model enriched: NmWifiDevice gains last_scan, active_ssid,
active_strength fields + Default derives; NmDeviceState gains
Default; NmAccessPoint gains Default.
**redbear-statusnotifierwatcher: wired into redbear-full**
The recipe compiled and had 12 tests but was NOT in any config —
the binary never deployed. Add:
- [package.files] stanza to its recipe.toml so the binary is staged
- redbear-statusnotifierwatcher = {} to config/redbear-full.toml
- launch_optional_component invocation in redbear-kde-session
**redbear-notifications: 8 host unit tests**
Previously zero tests. Add a #[cfg(test)] module covering:
- monotonic notification IDs
- capabilities list (spec values present)
- server information strings
- close-id + reason recording
- action invocation payload
- ordering preserved across multiple notifications
- independence between close and action records
**zbus build-ordering marker: clean source**
The marker source lib.rs contained 'pub struct Connection;' which
is misleading. Replace with a minimal comment explaining the
build-ordering purpose. The actual zbus crate is still resolved by
Cargo at downstream build time (unchanged behavior).
**D-Bus symlink cleanup**
Remove recipes/system/dbus/dbus-root-uid.patch (orphan symlink, not
in .gitignore-relevant scope). The actual patch stays in
local/patches/dbus/. The redox.patch in the same directory is a
real file (not a symlink) and is preserved.
**Build-system bug fixes**
- build-preflight.sh: when broken recipe.toml links cannot be restored
from git, invoke the guard-recipes.sh --fix path so untracked
custom links are regenerated.
- verify-fork-functions.sh: skip std-trait method names (fmt, eq,
clone, drop, etc.) when checking for dropped upstream functions —
these are derivable or compiler-caught, so a missed refactor is
inert, not a build blocker.
- verify-overlay-integrity.sh: add explicit 'return 0' on log helpers
so --quiet mode does not abort on the first log call under set -e.
Verification: host cargo test passes on all four modified daemons.
redbear-sessiond: 52 tests (12 new for the properties + signals).
redbear-wifictl: 35 tests (4 new for dbus_nm) + 2 cli_transport.
redbear-notifications: 8 tests (all new).
redbear-upower/udisks/polkit: unchanged, still pass.
The DRIVER-MANAGER-MIGRATION-PLAN was self-declared complete (the
driver-manager cutover happened 2026-07-23 per local/AGENTS.md). It
is now historical reference material rather than current planning
authority. Move it from local/docs/ into the established
legacy-obsolete-2026-07-25/ archive directory, updating every
inbound reference.
Also includes minor cross-doc alignment for the previous round's
relocations:
- local/AGENTS.md: update DRIVER-MANAGER-MIGRATION-PLAN to point to
the legacy archive
- local/docs/REDBEAR-FULL-SDDM-BRINGUP.md: alignment update
- local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md: alignment update
- local/docs/archived/README.md: refresh archive contents note
- local/recipes/system/redbear-driver-policy/source/policy/README.md:
policy doc drift alignment
- local/scripts/guard-recipes.sh: fix symlink target computation
(relative path was being glued onto an absolute path, producing
malformed dangling links like '../..//mnt/.../recipe.toml')
-- this is a real bug fix discovered during this audit round.
Cross-doc alignment fixes (refining prior round's canonical
references per AGENTS.md vocabulary normalization and ownership
statement rules):
- DBUS-INTEGRATION-PLAN.md: extensive edits to match the
canonical references and vocabulary used by v5.10/v5.11.
Cross-references to legacy-obsolete/ now point at the
correct canonical names. Support-coverage table updated.
- ACPI-IMPROVEMENT-PLAN.md: kstop ownership statement
cross-reference corrected (CONSOLE-TO-KDE-DESKTOP-PLAN.md
instead of DESKTOP-STACK-CURRENT-STATUS.md). W0.3 evidence
link fixed.
- GREETER-LOGIN-IMPLEMENTATION-PLAN.md: minor alignment
with canonical cross-references.
- KERNEL-SCHEDULER-MULTITHREAD-IMPROVEMENT-PLAN.md
(archived/): minor alignment.
- local/sources/syscall: submodule update (typo fixes
and consistency updates from upstream).
- local/sources/relibc: submodule update at v5.11
(round-9 fix + ifaddrs repair at commit 4ff980ab).
Per AGENTS.md DOCUMENTATION VOCABULARY NORMALIZATION
(W0.1, W0.2) and OWNERSHIP STATEMENT (W0.2).
Completes the round-9 relibc fix pass (commit a41c5cb0) with
gap-fills and a critical build repair:
1. getrusage (relibc/src/platform/redox/mod.rs) - extended
ProcStatFields to parse minflt/majflt/cminflt/cmajflt from the
/proc/pid/stat line. The kernel currently hardwires these to
0 but parsing them anyway means relibc automatically reports
correct values when the kernel starts tracking them. inblock/
oublock/nvcsw/nivcsw remain zero with a doc-comment noting
the kernel proc scheme doesn't provide them (they're in
/proc/pid/io and /proc/pid/status which relibc doesn't read).
2. pthread_condattr_setclock (relibc/src/header/pthread/cond.rs)
- added CLOCK_PROCESS_CPUTIME_ID to the accepted-clocks set.
(CLOCK_THREAD_CPUTIME_ID and the COARSE clocks are Linux-only
and not defined on Redox; the existing CLOCK_REALTIME/
CLOCK_MONOTONIC acceptance was POSIX-correct; this is the
Redox-available extension.)
3. ifaddrs module - repaired pre-existing compilation errors
introduced by commit d9760bdc:
- AF_INET/AF_INET6 used to be imported from netinet_in
(wrong module); now defined locally as sa_family_t with
the correct values (2 and 10).
- sa_family_t was imported from sys_socket (wrong module);
now imported from bits_safamily_t.
- AF_PACKET was used as the IPv6 family (wrong); replaced
with AF_INET6.
- Vec was not in scope; added use alloc::vec::Vec;.
- copy_nonoverlapping direction bug: was copying zeroed
sockaddr bytes into iface.addr (backwards); fixed to copy
from iface.addr into the sockaddr.
- CIDR prefix validation was rejecting all valid values
(0..=128 => return None); fixed to accept all parseable
values and let the per-family length check validate.
4. Reverted the uncommitted ifaddrs workaround (pub mod
ifaddrs;) and broken clock_settime (referenced non-existent
libredox::clock_settime) - per AGENTS.md NEVER comment out to
fix builds and no stubs policies.
Per AGENTS.md NO-STUB POLICY: all ifaddrs module compilation
errors from the previous getifaddrs implementation are real
implementation bugs that have been fixed properly, not worked
around.
Adds section 8.2 documenting the Round 8 follow-up commits:
* c20032435d: Mesa EGL back-buffer allocation in redox_image_get_buffers
(was hard stub - back=NULL always)
* 101ce11844: pipe_loader_redux backend for /scheme/drm/card0
(closes the non-EGL gallium consumer gap)
* 5aa5c96506: kf6-kcmutils git conflict markers resolved
(BLOCKER - shell would have tried to execute literal
<<<<<<< and >>>>>>> strings as commands)
* c73e4227 (relibc): cfgetispeed/cfgetospeed/cfsetispeed/cfsetospeed
real impl on Redox (was 0 or EINVAL unconditionally)
* 9bc6ba0b6e: redbear-compositor keyboard modifier state tracking
(shift/ctrl/alt/logo/caps/num/mod5 with apply_modifier_event)
* 1d930cd425: qtbase open_memstream stub removed (relibc provides it)
* f6420ec8c3: relibc submodule pointer bump
* Documentation cleanups in local/AGENTS.md and local/recipes/AGENTS.md
Combined with the Round 7 follow-up and the v5.8/v5.9/v5.10
parallel sweeps, the surface of unimplemented hard stubs in the
Mesa/relibc/compositor stack is now near zero. Remaining deferred
items (Qt6 Wayland null+8 runtime validation, QML gate in
plasma-framework + kirigami, HW validation) require kernel ABI
work or external hardware.
This commit implements the kglobalacceld5 daemon binary, closing the
last kf6-daemon-binary gap.
Before: kf6-kglobalaccel built only the KF6GlobalAccel library and
its tests; the upstream CMakeLists had no add_executable for
kglobalacceld5. The upstream sources had no main.cpp either.
After:
* Add kglobalacceld-main.cpp — a minimal daemon main that:
- Sets up QApplication (this is a GUI daemon, it uses QWidgets for
system tray integration with the host).
- Registers at the org.kde.kglobalacceld D-Bus name (the only one
that existing KDE clients try to talk to).
- Stale-lockfile handling: if /run/user/1000/kglobalacceld.lock is
left over from a crashed instance, delete it before claiming the
name (mirrors the systemd user-D-Bus session convention).
- Crash reporting via KCrash.
- Version 0.3.0-? pulled from the generated config-kglobalaccel.h.
* Add kglobalacceld5-wrapper.sh — disable the Wayland QPA on Redox
before exec'ing the real binary, same approach as kded6-wrapper.sh.
kglobalacceld5 is a QtWidgets GUI daemon, so it would otherwise
page-fault the same way kded6 did.
* Extend src/CMakeLists.txt to add_executable(kglobalacceld) and
install it. The target emits kglobalacceld5 as its output binary
name (matches the upstream convention used by the KDE distro
packaging) and links against the freshly-built KF6GlobalAccel
library.
* Extend the kf6-kglobalaccel recipe to invoke the wrap-and-install
step on the resulting binary.
DBUS-INTEGRATION-PLAN bumped to v4.0 (2026-07-26). The §3.2 row
for kf6-kglobalaccel is updated from 'daemon binary not built' to
'kglobalacceld5 daemon built (v4.0)'. The §14.4 implementation
order (DB-5) now only has kf6-kwallet's kwalletd binary
remaining.
Tested: 0 (no build per user request). The new main.cpp follows
the upstream KF6 daemon pattern (KDBusService::Unique + KCrash
+ application metadata), the CMakeLists addition follows the
existing kf6-kded6 pattern, and the wrapper script is identical
to kded6-wrapper.sh. The actual build verification is deferred
to the next buildable round.
Adds section 8.1 documenting the Round 7 follow-up commits (2026-07-27):
* redbear-compositor: real wp_presentation_feedback timing with
CLOCK_MONOTONIC + frame sequence counter (commit 28eea74305)
* xwayland: restore BTN_LEFT/RIGHT/MIDDLE switch (commit f10a0ec89c)
* redbear-compositor: real wl_data_offer clipboard/drag-and-drop
pipeline with pipe + SCM_RIGHTS (commit d324ed3634)
* relibc: real getifaddrs implementation (submodule commit d9760bdc)
Each section explains the file path, the previous state, the new
implementation, and the edge cases handled. Combined with the
Round 7 core work in earlier commits, the surface of unimplemented
stubs in the compositor + Mesa + relibc has been reduced to near
zero, with the remaining gaps (Mesa EGL back-buffer, Qt6 null+8
runtime validation, QML gate, HW validation) deferred to Round 8+
since they require kernel ABI work or external hardware.
This commit closes the long-standing kf6-kauth + PolkitQt6-1
packaging gap, completing the kf6-kauth authorization round-trip.
Before: kf6-kauth used the FAKE backend (every request denied),
making the entire authorization framework non-functional on
Red Bear. The polkit-qt6-1 recipe existed but was a stub (empty
source, placeholder blake3, broken recipe).
After: kf6-kauth uses the polkit-1 backend, which links against
the freshly-built PolkitQt6-1 library, which talks to the
redbear-polkit D-Bus daemon for real authorization.
Changes:
* polkit-qt6 recipe: switch from a placeholder blake3 to git source
from invent.kde.org/libraries/polkit-qt-1.git (master branch).
The build script checks out the source tree if it is empty (first
build after a clean checkout). ConfigureChecks.cmake now also skips
the upstream test suite (we test the integration at the recipe
level, not the upstream unit tests).
* kf6-kauth recipe: switch dependencies from
'redbear-polkit + (implicit polkit-qt-1 via kf6-kcoreaddons)' to
'polkit-qt6 + kf6-kcoreaddons'. The polkit-qt6 dep is now explicit.
Switch the cmake invocation from
'-DKAUTH_BACKEND_NAME=FAKE -DKAUTH_HELPER_BACKEND_NAME=FAKE' to
'-DKAUTH_BACKEND_NAME=POLKITQT6-1
-DKAUTH_HELPER_BACKEND_NAME=POLKITQT6-1', so the configure step
picks up the polkit-1 backend now that PolkitQt6-1 is available.
* DBUS-INTEGRATION-PLAN bumped to v3.9 (2026-07-26). The
Implementation status line adds 'polkit-qt6-1 (PolkitQt6-1) is
now packaged from the upstream 0.200.0 tarball' and 'kf6-kauth
now uses the polkit-1 backend'. The §3.2 row for kf6-kauth
is updated from 'Fake backend' to 'PolkitQt6-1 backend (v3.9)'.
The §14.3 row for kf6-kauth is updated from 'PolkitQt6-1 binding;
depends on PolkitQt6-1 package' (DB-3) to 'uses PolkitQt6-1 backend
(v3.9)' (DB-3 enabled). The §3.4 step 'Build PolkitQt6-1' is
marked DONE (v3.9). The §14.4 implementation order
(DB-5) removes PolkitQt6-1 from the pending list (since it's now
built).
Tested: 0 (no build per user request). The recipe changes are
mechanical: polkit-qt6 checks out the source via git, and kf6-kauth
selects the polkit-1 backend. The actual build verification is
deferred to the next buildable round.
v5.9 supersedes v5.8. Records:
- base 4ba51183 — logd kernel-log reader no longer breaks the
loop on EOF (was silent data loss); logd read/fcntl/fsync now
return ENOSYS or propagate errors instead of Ok(0) stubs;
ipcd/uds/stream write backpressure applied in fevent when
peer's rcvbuf is full; initfs tools probe page size at runtime
(was hardcoded 4 KiB — breaks 16k/64k ARM systems).
- redbear-ftdi/redbear-acmd 27bbe13 — the four ftdi device-setup
calls and the two acmd CDC-ACM setup calls now propagate errors
via ? instead of swallowing them. Device setup
failure is now a hard error, not a silent misconfiguration.
All per local/AGENTS.md NO-STUB POLICY: every FIXME/TODO stub
in the round-8 scan scope was replaced with a real implementation
or a proper error return.
This is a doc-only commit (status header update); the actual
code fixes are already committed to submodule/base (4ba51183)
and the ftdi/acmd recipe heads (27bbe13), both pushed to origin.
relibc (07659b7f): Remove 6 round-7 stubs:
1. set_scheduler todo!() (mod.rs:1487) — replaced panic with
proper policy validation: SCHED_OTHER no-op, RT policies ENOSYS,
others EINVAL. Any posix_spawn with POSIX_SPAWN_SETSCHEDULER
no longer panics.
2. F_SETLKW no-op (mod.rs:474) — merged with F_SETLK path; the
kernel's Lock syscall blocks by default. Silent no-op on file
locking removed.
3. relative_to_absolute_foffset (mod.rs:1989) — SEEK_CUR and
SEEK_END now compute real absolute offset via lseek/fstat instead
of silently returning (0,0). Advisory lock corruption fixed.
4. setitimer (signal.rs:92) — was always returning ENOSYS via
todo_skip!. Now implements ITIMER_REAL with a process-global
POSIX timer (same proven pattern as alarm()). Old value
returned on request.
5. ptrace unimplemented!() (ptrace.rs:127,138,279) — for
aarch64, x86, riscv64 the panic is now ENOSYS. Proper
POSIX response for architecture-specific absence.
6. Other minor tidying in the round-7 scan scope (todo_skip!
macro semantics verified: it does NOT panic, just logs).
These are real implementations replacing real stubs. No panics
in production paths that previously panicked.
Docs: deferred items from round 6 closed
- CONSOLE-TO-KDE-DESKTOP-PLAN.md bumped to v6.0 (2026-07-27):
v5.0 driver-manager cutover, v5.2 G-A4 iwlwifi, v5.3 initnsmgr
O_NONBLOCK, v5.6 compositor comprehensive fix, v5.4 Mesa seqno,
and Qt6 Wayland null+8 patches all marked DONE. v6.0
reflects current reality.
- UPSTREAM-SYNC-PROCEDURE.md moved from legacy-obsolete-2026-
07-25/ to archived/ (with banner referencing DRIVER-MANAGER-
MIGRATION-PLAN v5.6). Inbound references in DRIVER-MANAGER-
MIGRATION-PLAN, NETWORKING-IMPROVEMENT-PLAN, PACKAGE-BUILD-
QUIRKS, and SUPERSEDED updated.
- archived/README.md: inventory + supersession note updated.
Per local/AGENTS.md NO-STUB POLICY: every todo!() and
unimplemented!() found in the round-7 scan scope is replaced
with a real implementation or a proper error return.
The kf6-kauth recipe.toml had a stale TODO that claimed the recipe
'uses PolkitQt6-1 backend to delegate to redbear-polkit D-Bus daemon'.
In fact the recipe still uses -DKAUTH_BACKEND_NAME=FAKE, which is
the most-portable option when PolkitQt6-1 is not available. Replace
the TODO with a comment block that accurately describes the current
state: the FAKE backend is used until a PolkitQt6-1 package is added
to Red Bear OS; the polkit-1 and dbus backends are present in the
upstream source tree but cannot be enabled without PolkitQt6-1
packaging; the redbear-polkit D-Bus daemon v0.2 is already the
authoritative authorization source.
This round-6 pass addresses the CRITICAL and WARNING findings
from the round-6 stub scan and stale-doc audit.
relibc (v5.7): replace all active unimplemented!() and todo!()
stubs with real implementations:
_aio/mod.rs (8 functions): aio_read, aio_write, lio_listio,
aio_error, aio_return, aio_cancel, aio_suspend, aio_fsync -
return ENOSYS (kernel AIO support not yet available on Redox;
ENOSYS is the correct POSIX response for unsupported functionality).
unistd/mod.rs: gethostid - return 0x7F000001 (127.0.0.1
localhost identifier; POSIX fallback when /etc/hostid is absent).
time/mod.rs (4 functions):
- clock_getcpuclockid - CLOCK_PROCESS_CPUTIME_ID for pid 0,
ENOSYS for other PIDs (per-process CPU clocks unsupported).
- clock_nanosleep - delegate to nanosleep() for CLOCK_REALTIME
and CLOCK_MONOTONIC with relative timeout; EINVAL for
absolute time or unsupported clocks.
- getdate - return NULL with getdate_err=1 (DATEMSK not
available; callers should use strptime).
- timer_getoverrun - return 0 (no timer coalescing on Redox).
stdlib/mod.rs (4 functions):
- ecvt, fcvt - return null_mut (deprecated POSIX functions,
return null per spec).
- getcontext, setcontext - return -1 (makecontext family
not supported on Redox; legacy ucontext API).
semaphore/mod.rs (3 functions): sem_close, sem_open,
sem_unlink - the three 'todo!("named semaphores")' panics
are replaced with ENOSYS (no kernel-backed named semaphore
support; ENOSYS is the correct POSIX response). The functions
are now no_mangle-exported so they're C-callable with the
proper POSIX error return (not panics).
Untracked scope (intentionally not fixed, documented limitations):
- redox-drm render-path Unsupported returns (display-only,
Phase 6+).
- ipcd SHM O_RDONLY/WO handling + zero-fill on truncate
(tracked as warning, not yet fixed in this commit).
- redox-scheme ECANCELED propagation in wrappers.rs.
- Untracked redox-driver-sys, linux-kpi, libredox, etc. internals.
Stale doc fixes (5 docs):
- DBUS-INTEGRATION-PLAN.md: resolved internal contradiction
(line 116 claimed session .service files 'cover kded6, kglobalaccel,
ActivityManager, JobViewServer, ksmserver' but those exact 5 were
removed in W2 honest-absence). Updated line 116 and the service
files row to reflect W2 removal. Also removed pcid-spawner
references (replaced with driver-manager).
- QUIRKS-AUDIT.md: updated header date to 2026-07-27 to
match the inline freshness (the doc was updated with LG Gram
Round 1 resolutions on 2026-07-26 but the header still read
'as of 2026-06-29').
- SCRIPT-BEHAVIOR-MATRIX.md: reconciled the self-contradiction
about apply-patches.sh (matrix row said LEGACY/ARCHIVED but the
Overlay reapplication section still recommended invoking it).
Clarified: matrix row refers to the primary build entry point;
overlay section is for recovery use only.
- archived/README.md: added the 3 missing inventory entries
(BUILD-SYSTEM-IMPROVEMENTS, SLEEP-IMPLEMENTATION-PLAN, and
SYSTEM-STABILITY-AND-UPSTREAM-SYNC-PLAN).
- legacy-obsolete-2026-07-25/SUPERSEDED.md: minor entry added
to track the round-6 relibc fix.
Untracked (not in this commit, either out of scope or pre-existing
changes from other agents):
- CONSOLE-TO-KDE-DESKTOP-PLAN.md (v5.9) — needs a v6.0 bump
to reflect v5.0/v5.2/v5.3/v5.6 fixes. Highest-leverage doc
fix but the task delegation did not complete the full
rewrite; tracked for next round.
- UPSTREAM-SYNC-PROCEDURE.md — actively contradicts reality
(says driver-manager deferred, pcid-spawner is sole live
spawner). Highest-impact stale doc; needs full rewrite or
archived move. Tracked for next round.
- HARDWARE-VALIDATION-MATRIX.md — modified by another agent
pre-round-6; not part of this commit.
Per local/AGENTS.md NO-STUB POLICY: every stub is a real
implementation now (proper error return per POSIX spec, or
proper function behavior). No panics on real POSIX calls.
* kf6-kwallet: enable the kwalletd6 daemon binary. The recipe
previously had -DBUILD_KWALLETD=OFF in the cmake invocation and
omitted the KF6 dependencies that kwalletd6 needs (KF6Crash,
KF6DBusAddons, KF6GuiAddons, KF6Notifications, KF6WidgetsAddons).
This commit:
- Adds the five missing KF6 dependencies to the [build] list.
- Removes -DBUILD_KWALLETD=OFF so kwalletd6 is actually built.
- Adds a kwalletd6-wrapper.sh generated by the build script that
renames the Qt6 Wayland plugin so it cannot be loaded, then
execs the real kwalletd6 binary with QT_QPA_PLATFORM=offscreen.
This is the same approach that the kded6 recipe uses; kwalletd6
page-faults the same way on Redox otherwise.
- Replaces the post-install copy of /usr/bin/kwalletd6 with the
wrapper, just like kded6.
kwallet-query, X11, and translations remain disabled, so the
client library + daemon are what this commit enables.
* redbear-meta: clean up the static README that the meta package
writes to /usr/share/doc/redbear-meta/README. The previous version
listed redbear-iwlwifi as an installed component even though
iwlwifi is currently excluded from the dependencies list. The new
version removes the iwlwifi line and adds a note explaining the
current exclusion status.
* redbear-meta: update the iwlwifi-exclusion comment. The previous
comment referenced src/linux_port.c / mac80211.h; mac80211.h
does not exist in the source tree. The new comment lists the
actual source files (src/linux_port.c, src/linux_mvm.c,
src/linux_mld.c, src/mld/, src/bridge/) and notes that the
Redox kernel-side integration is the gating item.
* DBUS-PLAN bumped to v3.7 (2026-07-26). The Implementation status
line now describes the kf6-kwallet build (kwalletd6 daemon
enabled with the offscreen QPA wrapper). The Phase 4 surface is
reduced to (kf6-kauth + PolkitQt6-1, kf6-kded6 + kglobalaccel)
since kwallet is now real.
Tested: cargo check skipped per user request (no build). 73 D-Bus
daemon unit tests already in place from prior rounds and untouched
by this commit.