vasilito
efbd295cce
docs: redbear-power v1.2 — config file, AMD CCD, tabs, D-Bus methods
...
Updates the v1.1 §24 deferred items to "implemented in v1.2".
CONSOLE-TO-KDE-DESKTOP-PLAN.md:
- New §3.3.2 v1.2 section after v1.1, documenting:
- Config file (TOML): /etc/redbear-power.toml + ~/.config/redbear-power.toml
- AMD Zen CCD topology via leaf 0x8000001E (NC field) and 0x80000026 (Zen 4+)
- Multi-view tab system (Per-CPU / System / Info) with Tabs widget
- D-Bus methods: cycle/set_governor, toggle_throttle, force_*, set_pstate
- Mouse sub-panel navigation (left/right/middle click conventions)
- v1.2 source state: 2758 LoC across 11 modules; 3.2 MB stripped binary
redbear-power-improvement-plan.md:
- New §25 "Status Update — v1.2 Deferred Items Implemented"
- Removes the v1.1 §24 "Remaining work" list (all items now implemented)
- Documents implementation order and final module structure
ISO rebuild status: still blocked by pre-existing upstream nix-0.30.1
vs Redox relibc SaFlags incompatibility in uutils.
2026-06-20 14:24:24 +03:00
vasilito
ed92bce14b
redbear-power: v1.1 — full Phase A→D implementation
...
Comprehensive implementation per local/docs/redbear-power-improvement-plan.md.
Source: 2376 LoC across 10 modules (was 1396/6 in v0.6, +980 LoC).
Cross-compile: 2.8 MB stripped Redox ELF binary.
SHA256: 1b6f9db6ce79e77957bbb1fd606c430516015d5f02f3b64cb6f395e2f63b8e04
Modules:
- main.rs (376) — event loop, key + mouse dispatch, render orchestration
- app.rs (421) — App, CpuRow, Governor, ThrottleMode, PackageThermal, HybridInfo
- render.rs (498) — header/table/controls/help/snapshot rendering
- acpi.rs (166) — CPU enumeration, ACPI _PSS, CPUID fallback
- cpuid.rs (350) — CPUID leaf decoding (vendor, family, model, SIMD, cache, hybrid)
- bench.rs (123) — prime-sieve stress benchmark for thermal response testing
- dbus.rs (202) — D-Bus export via zbus 5 (org.redbear.Power, --dbus flag)
- msr.rs (127) — MSR constants + PackageThermal decoder
- cpufreq.rs (50) — governor hint read/write
- theme.rs (72) — central color palette (const Style)
Phase A — bug fixes:
- R1: PROCHOT pulse bug — Instant::now() math always ~0, pulse never toggled.
Replaced with Frame::count() so the bar pulses at a frame-rate-stable rate.
- R5: removed duplicate comment block in snapshot().
- C2: PackageThermal struct + 13 PKG_THERM_* bit constants; full decode of
IA32_PACKAGE_THERM_STATUS (PL1/PL2/CRIT/TT1/TT2/HFI/temp) surfaced in header.
Phase B — quality:
- R3: input poll decoupled from refresh cadence (50ms vs 250-2000ms).
- R4: Rect::centered replaces hand-rolled centered_rect helper.
- R6: area.layout(&Layout) destructuring with compile-time size check.
- O2: theme.rs central color palette (LABEL, BORDER_*, STATUS_*).
- C9: ratatui 0.30 Stylize shorthand across all renders.
Phase C — features:
- C1/C8: cpuid.rs reads leaves 0/1/4/7/0x80000000+/0x1A/0x8000001E.
- C3: SIMD display header line.
- C5: cache hierarchy header line.
- C7: dynamic refresh interval via / key (typed input 50..60000ms + Enter).
- C6: prime-sieve benchmark via b/B keys (one thread per core, AtomicU64
counter, run/stop/status).
Phase D remaining (was deferred per plan s23):
- C4: hybrid CPU detection (CoreType enum, Intel leaf 0x1A, AMD leaf 0x8000001E),
per-CPU row prefixed with type label, Hybrid: 8P + 16E header.
- O1: termion MouseTerminal wrapper enables xterm mouse protocols.
Wheel = scroll, Left-click = select/toggle, Right-click = expand P-state.
hit_test() maps (x, y) to panel rects cached after every render.
- O3: dbus.rs publishes org.redbear.Power on session bus (opt-in via --dbus).
Properties: cpu_count, avg_freq_khz, max_temp_c, avg_load_pct, governor,
throttle_mode, prochot_asserted. Background thread owns the tokio runtime
+ zbus Connection; main thread sends snapshots via mpsc channel. Graceful
degradation if redbear-sessiond is unreachable.
Verification:
- cargo build --release (host): 0 errors, 21 warnings.
- ./redbear-power --once (Linux host, AMD 24-core): renders all features.
- ./redbear-power --dbus (via script(1)): registers on session bus,
emits xterm mouse capture sequences.
- cook redbear-power (Redox target): 2.8 MB stripped binary at
local/recipes/system/redbear-power/target/x86_64-unknown-redox/stage/usr/bin/redbear-power.
ISO rebuild status: blocked by pre-existing upstream nix-0.30.1 vs Redox
relibc SaFlags incompatibility in uutils (recipes/core/uutils). The v1.1
binary IS staged and will be packaged into the next successful ISO build
once that issue is resolved (separate scope).
Docs:
- local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md s3.3.2 - v1.0 + v1.1 sections.
- local/docs/redbear-power-improvement-plan.md s24 - full status update.
- local/docs/RATATUI-APP-PATTERNS.md - canonical ratatui 0.30 guide
(1161 lines), includes s13 ratatui 0.30 Best-Practices Update + s14
Cross-Reference redbear-power as a Reference Implementation.
Cargo.toml: new dependencies zbus = "5" (tokio feature) and tokio = "1"
(rt + rt-multi-thread + macros) for the D-Bus export.
2026-06-20 13:26:24 +03:00
vasilito
f9ffe1947a
tlc: update parity assessment — P4a+P4b complete (~93%)
...
Adds P4a (Ctrl-Insert, Shift-Delete, Ctrl-N, Shift-Tab) and P4b (filepos) rows. Updates the binding table to mark them as completed. Bumps total parity estimate from ~90% to ~93%.
2026-06-20 11:19:00 +03:00
vasilito
98b3ade744
tlc: update parity assessment — P3.5 complete (~90%)
...
Adds P3.5 row (start_line + buttonbar) and bumps total parity estimate from ~85% to ~90%.
2026-06-20 10:27:03 +03:00
vasilito
3d80ed0a40
tlc: MC parity P1+P2+P3 — 40+ keybindings, viewer parity, feature gaps (1094 tests)
2026-06-20 09:16:38 +03:00
vasilito
dc68054305
restore lost packages from 0.2.3 + fix overwritten 0.2.4 files
...
- Restore 29 recipe symlinks (libdrm, qtbase, dbus, sddm, pipewire, etc.)
- Restore 33 patches (KDE, libdrm, mesa, pipewire, sddm, wireplumber)
- Restore 20+ local/scripts (audit, lint, test, build helpers)
- Restore src/cook/scheduler.rs, status.rs, gnu-config/
- Restore scripts/patch-inclusion-gate.sh, run_mini1.sh, validate-collision-log.sh
- Recover TLC source from HEAD (was overwritten by 0.2.3 checkout)
- Recover 11 local/docs plans from HEAD (were overwritten)
- Recover qt6-wayland-smoke symlink from HEAD
- Fix MOTD: remove garbled ASCII art, use clean text
- Update version: 0.2.0 -> 0.2.4 in os-release, motd, config
- Reduce filesystem_size: 1536 -> 512 MiB
- Add ABSOLUTE RULE to AGENTS.md: never delete/ignore packages
- Reduce pcid scheme log verbosity: info -> debug
2026-06-19 12:39:14 +03:00
vasilito
06b316076f
restore driver-manager + pcid service + lost configs from 0.2.3→0.2.4 sync
...
Root cause: the 0.2.4 upstream sync silently removed driver-manager (our
in-house PCI driver orchestrator) and never added a pcid init service,
leaving /scheme/pci uncreated and breaking all PCI device enumeration.
Changes:
- base-initfs/recipe.toml: restore driver-manager dep, binary copy,
drivers.d/ config dir, set -eo pipefail
- redbear-device-services.toml: add driver-manager = {} to packages
- redbear-boot-stages.toml: restore from 0.2.3 (109 lines)
- protected-recipes.toml: restore from 0.2.3 (99 lines)
- redbear-mini.toml: add boot-stages to include chain
- driver-manager Cargo.toml: fix pcid path from symlink to physical
- base fork pointer: acdcb183 (adds 35_pcid.service to initfs)
- UPSTREAM-SYNC-PROCEDURE.md: document sync flaw, never-delete rule,
driver-manager rationale
- PACKAGE-BUILD-QUIRKS.md: document pcid/pcid-spawner architecture,
Redox flag values, kernel kcall on AcpiScheme
Verified: redbear-mini boots to login prompt in QEMU UEFI with working
PCI enumeration (6 devices), e1000d network driver, DHCP, driver-manager.
2026-06-19 11:39:24 +03:00
vasilito
1648147405
docs: add PACKAGE-BUILD-QUIRKS.md, update sync docs with build quirks
...
- Create local/docs/PACKAGE-BUILD-QUIRKS.md: central reference for all
known cross-compilation build issues (DYNAMIC_INIT behavior, m4
CFLAGS/LDFLAGS ordering, ninja-build BUILD_TESTING, general patterns)
- Update UPSTREAM-SYNC-PROCEDURE.md: add m4 LDFLAGS ordering quirk
(must be set AFTER DYNAMIC_INIT), ninja-build BUILD_TESTING=OFF,
DYNAMIC_INIT overwrite behavior, source reversion root cause summary
- Update AGENTS.md: reference PACKAGE-BUILD-QUIRKS.md in WHERE TO LOOK
table, add DYNAMIC_INIT and cross-compilation test conventions
- Fix ninja-build recipe: add cmakeflags=['-DBUILD_TESTING=OFF']
(tests require host gtest which conflicts with Redox sysroot stdlib.h)
2026-06-19 01:32:06 +03:00
vasilito
75d10c2f90
docs: comprehensive update to upstream-sync known issues
...
Document all kernel compile errors and fixes from V151-V156:
- Feature gates (asm_cfg, if_let_guard)
- Unsafe blocks (Rust 2024 edition)
- Removed Red Bear APIs (SchedPolicy, RUN_QUEUE_COUNT, etc.)
- CONTEXT_SWITCH_LOCK missing
- new_addrsp_guard field missing
- switch.rs must be replaced entirely (EEVDF replaces DWRR)
- kcall signature change
- ProcSchemeVerb new variants
- notify_files type change (Vec -> SmallVec)
- RSDP signature change
- Cookbook symlink behavior for local forks
- m4 platform detection and -fcommon fix
Author: vasilito <adminpupkin@gmail.com >
2026-06-19 00:09:51 +03:00
vasilito
a853c9250e
docs: document known issues and fixes from 2026-06-18 upstream sync
...
Author: vasilito <adminpupkin@gmail.com >
2026-06-18 22:22:29 +03:00
vasilito
60a062132a
sync: relibc upstream + build system fixes
...
- relibc: update local fork to upstream 99675e2b, switch recipe to path source
- prefix.mk: auto-sync relibc artifacts from sysroot to gcc-install
- script.rs: add prefix sysroot -L to LDFLAGS for correct libc.a resolution
- config.rs: env vars always override cookbook.toml (fix COOKBOOK_OFFLINE bug)
- docs: add UPSTREAM-SYNC-PROCEDURE.md for repeatable fork updates
2026-06-18 20:27:46 +03:00
vasilito
b9cefe0806
docs: comprehensive audit fixes (build paths, python314, stubs, my-→redbear-, immutability)
...
Top-level + local docs audit (2026-06-18). Findings and fixes:
1. AGENTS.md CONVENTIONS section — corrected 'my-' prefix contradiction.
The legacy 'my-*' prefix is deprecated and git-ignored. Use 'redbear-*'
for tracked first-class configs.
2. README.md quick-start — promoted 'local/scripts/build-redbear.sh' to
the recommended entry point. Bare 'scripts/run.sh --build' remains as
a secondary path. Added note about build-redbear.sh's policy gates
(.config checking, REDBEAR_ALLOW_PROTECTED_FETCH=1).
3. docs/06-BUILD-SYSTEM-SETUP.md — restructured Building section to put
'build-redbear.sh' first, then 'make all' as legacy/advanced with
clear notes on what gates it bypasses.
4. docs/05-KDE-PLASMA-ON-REDOX.md — replaced 'Stub-only package for
dependency resolution' wording for kirigami. Per project policy
(local/AGENTS.md STUB AND WORKAROUND POLICY — ZERO TOLERANCE),
stubs are forbidden. The kirigami build is blocked at the QML gate;
the recipe is honest and ships no fake/fallback package.
5. local/docs/BUILD-TOOLS-PORTING-PLAN.md — replaced all 'python312'
references with 'python314' (matches V8.3 P0 bump from earlier).
6. local/AGENTS.md — added 'LOCAL RECIPE SOURCE IMMUTABILITY' section
documenting the cb8b093564 guarantee. Any path matching
/local/recipes/ is unconditionally immutable; no env var or flag
can override. REDBEAR_ALLOW_LOCAL_UNFETCH=1 was removed as a kill
switch and is now dead code. distclean-nuclear is now a no-op for
local recipes.
2026-06-18 15:29:11 +03:00
vasilito
950edaa65f
cub: full AUR package manager + Phase 1-5 native build tools
...
cub redesign (local/recipes/system/cub/):
- AUR RPC v5 client (serde_json) with search/info
- ~/.cub/ user-local recipe/source/repo storage
- Enhanced PKGBUILD parser: optdepends, .SRCINFO, split packages, 19 linuxism patterns
- Recipe generation: host: prefix on dev-deps, shallow_clone, cargopath, installs, optional-packages
- Dependency resolver: scans build errors for missing commands/headers/libs/pkgconfig, maps to packages
- Dependency installation: checks installed packages, fetches AUR deps, interactive prompt
- ~110 Arc→Redox dependency mappings
- ratatui TUI: search, info, install, build, query views
- 14 Arch-style CLI switches (-S/-Si/-Syu/-G/-R/-Q/-Qi/-Ql)
- 65 tests, 0 failures, clean build
Phase 1-5 native build tools (local/recipes/dev/):
- P1 Substrate: tar, m4, diffutils (gnulib bypass), mkfifo kernel patch (1085 lines)
- P2 Build Systems: bison, flex, meson (standalone wrapper), ninja-build, libtool
- P3 Native GCC: gcc-native, binutils-native (cross-compiled for redox host)
- P4 Native LLVM: llvm-native (clang + lld from monorepo)
- P5 Native Rust: rust-native (rustc + cargo)
- Groups: build-essential-native, dev-essential expanded
Config:
- redbear-mini: +7 tools (diffutils, tar, bison, flex, meson, ninja, m4)
- redbear-full: +4 native tools (gcc, binutils, llvm, rust)
- All recipes moved to local/ with symlinks for cookbook discovery (Red Bear policy)
Docs:
- BUILD-TOOLS-PORTING-PLAN.md: phased porting roadmap
- CUB-WORKFLOW-ASSESSMENT.md: gap analysis and integration assessment
2026-05-08 00:13:31 +01:00
vasilito
8cd3f6035a
docs: document Cub package manager
2026-05-07 21:15:08 +01:00
vasilito
408023e8fd
fix: Oracle review — delete 50 stale .bak files, update Wayland doc
...
- git rm 50 stale .bak patch backup files (surviving across 4+ sessions)
- Update WAYLAND-IMPLEMENTATION-PLAN.md: acknowledge kded6 offscreen
workaround is temporary until Qt6 Wayland null+8 crash is fixed.
kded6 is a headless D-Bus daemon — Wayland adds no functionality.
This addresses Oracle verification gaps: stale doc cleanup now committed,
doc/code contradiction resolved by acknowledging the temporary nature
of the kded6 offscreen workaround.
2026-05-06 15:29:04 +01:00
vasilito
08411ea679
fix: restore libwayland redox.patch to working state, update docs
...
- Reverted redox.patch to original 39-line version (build-tested)
- Documented libwayland→qtbase→kded6 build dependency chain
- Updated WAYLAND-IMPLEMENTATION-PLAN.md to v2.1
- Deleted 45 stale .bak patch files
- pkgar restored from packages/ backup
2026-05-06 14:39:55 +01:00
vasilito
3ad461340b
docs: Wayland-only path — no framebuffer workarounds. Add Qt6 instrumentation.
...
- WAYLAND-IMPLEMENTATION-PLAN.md v2.0: document architecture decision
that Wayland is the only supported display path. Remove all
framebuffer fallback workarounds (offscreen QPA, redox QPA shim).
- qwaylanddisplay.cpp: add fprintf instrumentation for crash diagnosis;
skip xkb_context_new on Redox to eliminate potential xkb crash vector.
- greeter-ui/main.cpp: remove QT_QPA_PLATFORM=redox workaround.
The greeter must use Wayland. Accept the crash until Qt6 is fixed.
- Ruled out: relibc calloc (zeroes correctly), libwayland proxy_create
(correct), compositor protocol (compliant). Root cause is in Qt6
generated Wayland wrappers passing NULL to wl_proxy_add_listener.
2026-05-06 12:21:05 +01:00
vasilito
8761e80d44
docs: fix all remaining stale claims in assessment — S1-S4 fully reflected
2026-05-05 22:05:02 +01:00
vasilito
506d0a67b8
docs: update assessment — S1-S4 all implemented, remove stale 'no implementation' claims
2026-05-05 21:59:45 +01:00
vasilito
c68ace12de
feat: relibc S1 — sem_open refcounting + glibc cross-reference assessment
...
Phase S1 (Critical Correctness):
- sem_open/sem_close: global refcounting via BTreeMap + AtomicUsize
- sem_close: decrements refcount, munmaps only at zero
- sem_open: reuses existing mapping, O_EXCL returns EEXIST
- sem_unlink: marks entry for removal before shm_unlink
- va_list parsing: reads mode_t and value from stack after oflag
- All 11 sem_* functions verified in libc.so T
Phase S2-S4 (Designed, documented):
- eventfd() function, signalfd read path, EINTR handling
- name canonicalization, cancellation safety
- Full plan in local/docs/RELIBC-AGAINST-GLIBC-ASSESSMENT.md
Reference: glibc 2.41 cloned to local/reference/glibc/
Boot verified: greeter ready on VT 3 with refcounted semaphores
2026-05-05 21:12:08 +01:00
vasilito
f65bc145a1
fix: comprehensive boot warnings and exceptions — fixable silenced, unfixable diagnosed
...
Build system (5 gaps hardened):
- COOKBOOK_OFFLINE defaults to true (fork-mode)
- normalize_patch handles diff -ruN format
- New 'repo validate-patches' command (25/25 relibc patches)
- 14 patched Qt/Wayland/display recipes added to protected list
- relibc archive regenerated with current patch chain
Boot fixes (fixable):
- Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset)
- D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped)
- redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped)
- daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch)
- udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async)
- relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs
- greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait)
- greeter-ui: built and linked (header guard unification, sem_compat stubs removed)
- mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps
- greeter config: removed stale keymapd dependency from display/greeter services
- prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified
Unfixable (diagnosed, upstream):
- i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort
- kded6/greeter-ui: page fault 0x8 — Qt library null deref
- Thread panics fd != -1 — Rust std library on Redox
- DHCP timeout / eth0 MAC — QEMU user-mode networking
- hwrngd/thermald — no hardware RNG/thermal in VM
- live preload allocation — BIOS memory fragmentation, continues on demand
2026-05-05 20:20:37 +01:00
vasilito
2e6592a7d1
docs: QEMU desktop boot evidence — virtio-gpu works, login prompt reached
...
redbear-full (4GB) boots in QEMU with virtio-gpu-pci:
- virtio-gpu detected: display 0 (1280x800px) ✅
- framebuffer console: 'RedBear Login:' prompt appears ✅
- Wayland compositor: fails on /dev/fd/63 (bash process substitution
not supported on Redox) — documented as blocker in plan
- D-Bus system bus: session broker registered ✅
- KDE session assembly helper: started ✅
- iommu: no AMD-Vi units in QEMU (expected) ✅
CONSOLE-TO-KDE-DESKTOP-PLAN.md v4.1:
- Updated compositor blocker: /dev/fd missing on Redox
- Added QEMU boot evidence date and details
- Removed P2-rebrand from kernel recipe (line-number conflict
with consolidated patch — needs rebase)
Remaining errors (pre-existing):
- fbcond: 'No display present yet' (timing, self-recovers)
- procmgr: SIGCHLD to PID 1 not permitted
- cpufreqd: MSR write fails (QEMU, expected)
- keymapd: Bad file number on scheme read
2026-05-04 19:32:39 +01:00
vasilito
18bba8572c
feat: IOMMU-aware DmaAllocator + comprehensive DMA/thread audit
...
dma.rs: IommuDmaAllocator (145 lines)
- New struct wires existing IOMMU daemon (1003 lines) to existing DmaBuffer (261)
- allocate(): phys-contiguous alloc via scheme:memory, then MAP through IOMMU domain
- unmap(): sends UNMAP to IOMMU domain, releases IOVA
- Inlined IOMMU protocol constants — no new crate dependency
- encode_iommu_request/decode_iommu_response for scheme write/read cycle
Documentation updates:
- IMPLEMENTATION-MASTER-PLAN.md: K2 DMA/IOMMU section expanded from 3-line gap
list to full audit with component inventory, gap analysis, implementation plan
(D2.1-D2.5), Linux reference table. Added K2b thread/fork audit.
- CPU-DMA-IRQ-MSI-SCHEDULER-FIX-PLAN.md: Phase 1 (MSI) marked complete with
per-task status. Phase 2 (DMA) re-scoped from 'create' to 'wire' based on
audit. Phase 3 (scheduler) marked mostly done.
- IRQ-AND-LOWLEVEL-CONTROLLERS-ENHANCEMENT-PLAN.md: kernel MSI support noted
as materially strong with P8-msi.patch reference.
Audit findings:
- IOMMU daemon is solid: 1003-line lib.rs with full scheme protocol,
427-line amd_vi.rs, host-runnable tests. Needs wiring, not rewriting.
- DmaBuffer exists but is IOMMU-unaware — IommuDmaAllocator bridges this.
- relibc rlct_clone is correct for threads (shares addr space implicitly).
'3 IPC hops' claim is microkernel-architectural, not a real perf issue.
- No stale docs to archive at this time.
2026-05-04 18:18:04 +01:00
vasilito
765d9f3421
feat: kirigami builds (QML gate cleared)
...
- QNetworkReply stub header for Redox cross-build
- GuiPrivate + Network in find_package
- QElapsedTimer include fix
- networkAccessManager null stub in icon.cpp
- Primitives target links Qt6::Network for headers
2026-05-04 15:29:00 +01:00
vasilito
bfeedfe268
docs: add authoritative master implementation plan
2026-05-04 14:45:21 +01:00
vasilito
48ec92b486
fix: udev-shim panic, sessiond duplicate, scheme Bad-fd handling
...
- udev-shim: replace .expect() with graceful errors (no more panic on Broken pipe)
- P4-initfs: remove duplicate sessiond (conflicted with config)
- accessibility/ime/keymapd: break instead of exit(1) on EBADF
- P6 driver patches rebased
- Docs: archive old reports, add implementation master plan
2026-05-04 14:04:03 +01:00
vasilito
1b5c19b22a
chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches
...
Kirigami: remove stub .cpp, add Qt platform integration headers for
QML gate. Matches KDE src/pattern for direct header-only builds.
Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs).
Kernel: consolidate patch chain, add debug-scheme-serial-fix.
Docs: archive old audit reports, add CHANGELOG and hardware validation
matrix. Update AGENTS.md with Linux reference source policy.
Scripts: add test-network-qemu.sh, test-storage-qemu.sh.
.gitignore: add local/reference/ exclusion.
2026-05-04 11:57:48 +01:00
vasilito
15d0707e74
feat: USB storage read/write proof + full Red Bear OS tree sync
...
Add redbear-usb-storage-check in-guest binary that validates USB mass
storage read and write I/O: discovers /scheme/disk/ devices, writes a
test pattern to sector 2048, reads it back, verifies match, restores
original content. Updates test-usb-storage-qemu.sh with write-proof
verification step.
Includes all accumulated Red Bear OS work: kernel patches, relibc
patches, driver infrastructure, DRM/GPU, KDE recipes, firmware,
validation tooling, build system hardening, and documentation.
2026-05-03 23:03:24 +01:00
vasilito
b31fd7d3e5
feat: build system hardening — collision detection, validation gates, init path enforcement
...
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.
2026-05-03 22:25:22 +01:00
vasilito
98e68b7999
docs: final stale doc cleanup — 22 archived, 18 active
...
Archived: IOMMU-SPEC, KERNEL-IPC, KERNEL-SCHEDULER, PROFILE-MATRIX,
QUIRKS-IMPROVEMENT, RELIBC-IPC, repo-governance, SCHEDULER-REVIEW,
SCRIPT-BEHAVIOR, USB-VALIDATION, XHCID-DEVICE-IMPROVEMENT.
Active: all implementation plans + 3 audits + governance docs.
2026-05-03 16:26:13 +01:00
vasilito
3ed5bd9754
docs: comprehensive fix plan (final) — KDE build chain, graphical boot, remaining gaps
...
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).
2026-05-03 10:46:19 +01:00
vasilito
5c8ecbe3aa
docs: graphical boot assessment — redbear-full KDE build chain broken
...
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.
2026-05-03 10:44:05 +01:00
vasilito
dcb672ec6e
docs: comprehensive fix and improvement plan — consolidated P0-P4 roadmap
...
Merges findings from both boot audits into a single authoritative plan:
- 0. Current state (12 patches, 3 targets, completed phases)
- 1. Priority matrix (P0 blocking → P4 deferred)
- 2. P0 — 2 blocking issues (boot redbear-full, clean build verify)
- 3. P1 — 4 critical gaps (D-Bus runtime, ion job control, tab completion, DRM in boot)
- 4. P2 — 4 high priority (shadow support, rate limiting, network in initfs, polkit)
- 5. P3 — 6 medium priority (ion features, fbcond, ACPI sleep, thermal, battery)
- 6. P4 — 6 deferred items
- 7. Week-by-week implementation order with parallel opportunities
- 8. Acceptance gates (G1-G5)
- 9. Total effort: ~103h / ~13 days solo, ~1 week with 2 devs
2026-05-03 09:42:14 +01:00
vasilito
07da88c5bf
docs: second-pass boot audit (D-Bus honesty, shell quality, login), archive 4 stale docs
...
BOOT-PROCESS-SECOND-AUDIT-2026-05-03.md: deep dive into:
- D-Bus implementation honesty (15/19 login1 methods real, not stubs)
- ion shell quality matrix (vs bash/dash)
- Login prompt completeness (getty→login→ion chain)
- Per-subsystem hardware init status (storage/display/input/network/USB/audio/ACPI)
- Implementation plan Phases F1-F6
Archived 4 completed/deferred plans: GRUB, VFAT, USB-BOOT-INPUT, ZSH-PORTING
2026-05-03 09:37:09 +01:00
vasilito
3e9b79fb8d
docs: comprehensive boot process audit + archive stale plans
...
BOOT-PROCESS-AUDIT-2026-05-03.md: full daemon-by-daemon review
of boot sequence from power-on to login prompt. Covers:
- 25+ daemons assessed (critical path, input, display, hardware,
storage, network, audio, UI, system services)
- Hardware initialization completeness matrix
- ion shell analysis (strengths/gaps vs bash/dash)
- Stale documentation inventory
Archived 5 superseded plans to local/docs/archived/:
- ACPI-I2C-HID, BOOT-PROCESS-IMPROVEMENT, DEVICE-INIT,
GREETER-LOGIN-ANALYSIS, INTEL-HDA-IMPLEMENTATION
Improvement plan: 5 phases (boot reliability, drivers, UX,
documentation, security) across 6 weeks
2026-05-03 08:47:24 +01:00
vasilito
62a3c9f3fa
docs: define build invariants and fix-before-disable policy
2026-05-02 22:09:19 +01:00
vasilito
9af8da420a
feat: build system transition to release fork + archive hardening
...
Release fork infrastructure:
- REDBEAR_RELEASE=0.1.1 with offline enforcement (fetch/distclean/unfetch blocked)
- 195 BLAKE3-verified source archives in standard format
- Atomic provisioning via provision-release.sh (staging + .complete sentry)
- 5-phase improvement plan: restore format auto-detection, source tree
validation (validate-source-trees.py), archive-map.json, REPO_BINARY fallback
Archive normalization:
- Removed 87 duplicate/unversioned archives from shared pool
- Regenerated all archives in consistent format with source/ + recipe.toml
- BLAKE3SUMS and manifest.json generated from stable tarball set
Patch management:
- verify-patches.sh: pre-sync dry-run report (OK/REVERSED/CONFLICT)
- 121 upstream-absorbed patches moved to absorbed/ directories
- 43 active patches verified clean against rebased sources
- Stress test: base updated to upstream HEAD, relibc reset and patched
Compilation fixes:
- relibc: Vec imports in redox-rt (proc.rs, lib.rs, sys.rs)
- relibc: unsafe from_raw_parts in mod.rs (2024 edition)
- fetch.rs: rev comparison handles short/full hash prefixes
- kibi recipe: corrected rev mismatch
New scripts: restore-sources.sh, provision-release.sh, verify-sources-archived.sh,
check-upstream-releases.sh, validate-source-trees.py, verify-patches.sh,
repair-archive-format.sh, generate-manifest.py
Documentation: AGENTS.md, README.md, local/AGENTS.md updated for release fork model
2026-05-02 01:41:17 +01:00
vasilito
495b8e3a1d
docs: fix last stale KWin "Stub" → "Blocked — cmake fails on Qt6Core5Compat"
2026-05-01 03:31:02 +01:00
vasilito
4aa45fdc9e
docs: round 16 — final stale doc references sweep
...
KERNEL-IPC-CREDENTIAL, 05-KDE, RELIBC-IPC, AGENTS.md, wip/AGENTS
all updated: COMPREHENSIVE-OS-ASSESSMENT, QT6-PORT-STATUS,
RELIBC-COMPLETENESS replaced with CONSOLE-TO-KDE-DESKTOP-PLAN.md
2026-05-01 02:46:15 +01:00
vasilito
a736d897ca
docs: round 15 — remaining deleted-doc refs in KERNEL-IPC, WAYLAND, 05-KDE
...
Fixed stale references to COMPREHENSIVE-OS-ASSESSMENT, DESKTOP-STACK,
QT6-PORT in subsystem plans. All now point to CONSOLE-TO-KDE v4.0.
2026-05-01 02:41:02 +01:00
vasilito
5c1a481aae
fix: Oracle round 10 — AGENTS stale state, config stray keys, redbear-kde→full
...
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
2026-05-01 02:10:10 +01:00
vasilito
9ab11d59ca
docs: remaining v3.0 → v4.0 references in subsystem plans
...
GREETER-LOGIN, DBUS-INTEGRATION, BOOT-PROCESS-IMPROVEMENT
all now reference CONSOLE-TO-KDE v4.0
2026-05-01 02:01:28 +01:00
vasilito
b0783213dd
fix: Oracle round 7 — all kwin_wayland_wrapper references → redbear-compositor
...
Replaced in:
- config/wayland.toml (session launcher)
- redbear-kde-session (KDE session launcher)
- redbear-greeter-compositor (compositor selection)
- test-kde-session.sh (validation script)
- build-system/003-config.patch (durable reapply patch)
- GREETER-LOGIN-IMPLEMENTATION-PLAN.md
- DBUS-INTEGRATION-PLAN.md
Zero kwin_wayland_wrapper references remaining. Redbear-compositor
is the single Wayland compositor throughout the entire repo.
2026-05-01 01:37:27 +01:00
vasilito
165046c401
docs: final stale reference cleanup — all dead doc links removed
...
Fixed remaining Oracle-found issues:
- docs/AGENTS.md: RELIBC-COMPLETENESS → CONSOLE-TO-KDE,
RELIBC-IMPLEMENTATION → KERNEL-IPC-CREDENTIAL
- docs/07: QT6-PORT-STATUS + DESKTOP-STACK → CONSOLE-TO-KDE
- CONSOLE-TO-KDE: KWin status updated (no longer has wrapper
scripts; redbear-compositor provides kwin_wayland separately)
All 13 deleted docs now have zero references in canonical docs.
2026-05-01 01:04:09 +01:00
vasilito
3d4c8a120a
docs: mesa virgl status → BUILDS (virtio_gpu_dri.so confirmed)
2026-05-01 00:39:31 +01:00
vasilito
d6d2a6b971
docs: honest virgl assessment — linker blocker, exact root cause
...
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
2026-05-01 00:30:45 +01:00
vasilito
6b6ef2eaff
docs: virtio-gpu + virgl assessment — honest state, linux-7.0 cache protected
...
Virtio-gpu display driver (217 lines) exists in redox-drm — KMS, GEM,
page flip all work. QEMU display path functional.
Mesa virgl (3D acceleration for QEMU):
- Build attempted with -Dgallium-drivers=swrast,virgl
- Reaches 932/1104 objects
- Blocked: virgl_screen.c int-conversion errors, vtest winsys needs
bits/safamily-t.h
- Reverted to swrast-only for stability
- Remaining virgl port documented as WIP
Linux 7.0 kernel source:
- Cloned to local/linux-kernel-cache/linux-7.0 (durable, survives clean)
- Symlinked from build/linux-kernel-cache/linux-7.0
- Added to .gitignore (embedded repo)
- Drivers/gpu/drm/virtio/ available for virgl protocol reference
2026-05-01 00:13:20 +01:00
vasilito
5a8a73e7af
docs: consolidate — CONSOLE-TO-KDE v4.0 supersedes all individual plans
...
CONSOLE-TO-KDE-DESKTOP-PLAN.md rewritten as v4.0 comprehensive plan:
- Single authority for all desktop-path decisions
- Full layer reassessment: DRM→Mesa→Wayland→KDE (6 layers)
- Honest blocker map with effort estimates
- Credential syscalls marked RESOLVED
- Software-rendered path: 8-14 weeks
- Hardware-accelerated path: 20-34 weeks
Stale docs deleted (13, consolidated):
- COMPREHENSIVE-OS-ASSESSMENT, DESKTOP-STACK-CURRENT-STATUS
- AMD-FIRST-INTEGRATION, HARDWARE-3D-ASSESSMENT, DMA-BUF-IMPROVEMENT, INPUT-SCHEME-ENHANCEMENT
- BOOT-PROCESS-ASSESSMENT, LINUX-BORROWING-RUST
- QT6-PORT-STATUS, REDBEAR-INFO-RUNTIME-REPORT
- RELIBC-COMPREHENSIVE, RELIBC-COMPLETENESS, RELIBC-IMPLEMENTATION
docs/README.md: updated status matrix, removed dead references
2026-04-30 23:59:36 +01:00
vasilito
2e99d4073b
feat: P0-P6 kernel scheduler + relibc threading comprehensive implementation
...
P0-P2: Barrier SMP, sigmask/pthread_kill races, robust mutexes, RT scheduling, POSIX sched API
P3: PerCpuSched struct, per-CPU wiring, work stealing, load balancing, initial placement
P4: 64-shard futex table, REQUEUE, PI futexes (LOCK_PI/UNLOCK_PI/TRYLOCK_PI), robust futexes, vruntime tracking, min-vruntime SCHED_OTHER selection
P5: setpriority/getpriority, pthread_setaffinity_np, pthread_setname_np, pthread_setschedparam (Redox)
P6: Cache-affine scheduling (last_cpu + vruntime bonus), NUMA topology kernel hints + numad userspace daemon
Stability fixes: make_consistent stores 0 (dead TID fix), cond.rs error propagation, SPIN_COUNT adaptive spinning, Sys::open &str fix, PI futex CAS race, proc.rs lock ordering, barrier destroy
Patches: 33 kernel + 58 relibc patches, all tracked in recipes
Docs: KERNEL-SCHEDULER-MULTITHREAD-IMPROVEMENT-PLAN.md updated, SCHEDULER-REVIEW-FINAL.md created
Architecture: NUMA topology parsing stays userspace (numad daemon), kernel stores lightweight NumaTopology hints
2026-04-30 18:21:48 +01:00
vasilito
46197a111e
feat: supplementary groups + credential syscalls — setgroups/getgroups/RLIMIT
...
Kernel (3 files, 32 lines):
- Context.groups: Vec<u32> — supplementary group storage
- CallerCtx.groups — exposed to schemes for access control
- Proc scheme Groups handle — auth-{fd}-groups read/write path
- Fork inheritance — new-context copies parent groups to child
Relibc (4 files, 82 insertions, 84 deletions):
- posix_setgroups()/posix_getgroups() in redox-rt sys.rs
- DynamicProcInfo.groups cache in lib.rs
- setgroups() real impl via thr_fd.dup(auth-{fd}-groups)
- getgroups() kernel-only (no /etc/group fallback)
- initgroups() functional via setgroups()
- getrlimit/setrlimit userspace stubs with defaults
Patches:
- local/patches/kernel/P4-supplementary-groups.patch
- local/patches/relibc/P4-setgroups-getgroups.patch
Docs updated:
- COMPREHENSIVE-OS-ASSESSMENT: credential blocker → RESOLVED
- KERNEL-IPC-CREDENTIAL-PLAN: marked Phases K1-K2,K4 complete
- local/AGENTS.md: credential gap section → RESOLVED
Unblocks: polkit, dbus-daemon, logind, sudo/su, redbear-authd
2026-04-30 10:08:54 +01:00