vasilito
34360e1e4f
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
24289bf93f
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
vasilito
d4385ae9d8
feat: konsole recipe (KDE terminal) — blocked by libiconv fetch
...
Created local/recipes/kde/konsole with Qt6+KDE cmake build.
v24.08.3, depends on 21 KF6 packages (all available).
Blocked by transitive libiconv→glib→gettext fetch chain
(libiconv fetch fails: missing /share/aclocal/libtool.m4 on host).
Recipe is complete — unblocks when libiconv host issue resolved.
2026-04-30 09:38:53 +01:00
vasilito
8fa62d20c9
state: Qt6::Sensors + libinput both built — 2 of 3 platform prerequisites resolved
...
Platform prerequisite status:
- Qt6::Sensors: BUILT (v6.11.0, 520KB pkgar, dummy backend)
- libinput: BUILT (v1.30.2, with libevdev v1.13.2 + linux-input-headers)
- QML/Quick JIT: still disabled on Redox (blocks real KWin binary,
kirigami, plasma-framework)
KWin: now attempts real cmake build with Sensors + libinput deps
enabled. Falls back to redbear-compositor shim on cmake failure
(QML/Quick gate). Previously kwin was pure stub — now it's a
bounded build attempt with fallback.
Enabled in config (new this session):
- qt6-sensors, libevdev, libinput, kdecoration, kf6-kcmutils
Previously OOTB dependencies now resolved:
- libevdev → libinput → KWin real build path opened
- linux-input-headers → libevdev → libinput chain
- qt6-sensors → KWin Sensors dependency satisfied
2026-04-30 08:47:15 +01:00
vasilito
5b4cd3a2a7
feat: Qt6 Sensors v6.11.0 — builds on Redox, pkgar in repo
...
- Created local/recipes/qt/qt6-sensors with real cmake build
- Replaced WIP stub (Qt 6.6.1) with Qt 6.11.0 source matching qtbase
- Sensorfw disabled (Linux-specific), SBOM generation off
- Dummy backend provides no-op sensor readings
- Enabled in redbear-full.toml config
- Unblocks KWin real build (Qt6::Sensors prerequisite resolved)
- Stage.pkgar: 520KB in repo
2026-04-30 07:33:35 +01:00
vasilito
761e0d9de7
state: 36/48 KDE packages build, 12 blocked — honest final state
...
The literal task 'build ALL KDE packages' cannot be 100% completed
because 12 packages require upstream dependencies not available on Redox:
- kirigami + plasma* (4): QML JIT disabled — no QQuickWindow/QQmlEngine
- kwin real build (1): Qt6::Sensors port needed
- breeze + kf6-kio + kf6-knewstuff + kde-cli-tools (4): source issues
- plasma extras (3): transitive blockers
What WAS completed:
- Cookbook topological sort fix (root cause — all deps now correct order)
- kf6-attica recipe (183 files, 2.4MB pkgar)
- 12 I2C/GPIO/UCSI daemons archived as durable patches
- Source archival system (make sources)
- Config + all docs synced, no contradictions
2026-04-30 01:54:09 +01:00
vasilito
e8a15d396a
fix: KF6Attica recipe, kf6-knewstuff Attica dep, topo-sort cycle error
...
- Created kf6-attica recipe (minimal core library build providing
KF6::Attica cmake target, needed by kf6-knewstuff). v6.10.0,
QML/tests/examples disabled.
- Added kf6-attica to redbear-full.toml config, integrate-redbear.sh
symlink, and recipes/kde/ symlink.
- Fixed kf6-knewstuff: removed stale find_package(KF6Attica)
suppression; added kf6-attica as dependency. Now publishes
to repo (core-only build produces empty package — upstream
code structure yields no libs with QtQuick/widgets/tools off).
- Cookbook topo-sort: changed cycle fallback from silent
Ok(recipes) to Err(Recursion) — surfaces dependency graph
bugs instead of hiding them.
- Fixed stale QtNetwork comment: QtNetwork IS enabled in qtbase
since 2026-04-29 (relibc DNS resolver hardened).
- Verified: kf6-attica builds, kf6-knewstuff publishes to repo
2026-04-30 01:32:25 +01:00
vasilito
f32ef447bd
fix: I2C/GPIO/UCSI drivers - all 12 compile with API fixes, wired in recipe
...
- Uncommented amd-mp2-i2cd and intel-thc-hidd in Cargo.toml workspace + recipe BINS
- Fixed amd-mp2-i2cd: replaced .try_mem() with PciFunctionHandle::map_bar()
- Fixed intel-thc-hidd: replaced .try_map_bar() with PciFunctionHandle::map_bar()
- P2 patch regenerated (5938 lines, 32 files, 195KB) with all 12 drivers
- Verified: all 10 daemons in /usr/bin + 2 PCI drivers in /usr/lib/drivers
2026-04-30 00:12:49 +01:00
vasilito
4ee7fdeecb
fix: KF6 config, kwin stub, docs, greeter, I2C/GPIO drivers, bootstrap
...
- KF6 config: enable 31 KF6 frameworks + kdecoration + kglobalacceld
(was only kwin stub; 22 additional recipes now enabled)
- KWin: honest #TODO naming real blockers (Qt6::Sensors WIP,
libinput ignored, no canberra); kwin_wayland shim delegates to
redbear-compositor
- Greeter: enable redbear-greeterd replacing /usr/bin/true stub
- Mini config: suppress curl/git/mc (broken deps, not boot-critical)
- Docs: fix KF6 count (9->31 enabled), kwin status (stub, not real
build), plasma blocked, config surface accuracy across
CONSOLE-TO-KDE-DESKTOP-PLAN, DESKTOP-STACK-CURRENT-STATUS,
local/AGENTS
- P2-i2c-gpio-ucsi-drivers.patch: 10 I2C/GPIO/UCSI daemon sources
(gpiod, i2cd, dw-acpi-i2cd, intel-lpss-i2cd, i2c-gpio-expanderd,
intel-gpiod, i2c-hidd, ucsid, i2c-interface, acpi-resource);
amd-mp2-i2cd + intel-thc-hidd excluded (PCI API changed)
- P0-bootstrap-workspace-fix.patch: empty [workspace] in bootstrap
Cargo.toml prevents auto-detection of parent workspace (fixes
base-initfs from-scratch build)
- QEMU boot verified: kernel -> PCI -> NVMe -> ACPI -> display ->
networking -> services -> RB_SERIAL_PROBE_OK
2026-04-30 00:01:49 +01:00
vasilito
87367f3b0e
plan: v3.0 round 3 — doc consistency, plasma honesty
...
- plasma-workspace: stub deps deferrable, not unresolved blockers
- knewstuff/kwallet: deferrable (not blocking plasma builds)
- make all vs make live distinction for rebuild
2026-04-29 14:13:00 +01:00
vasilito
8acc73d774
milestone: desktop path Phases 1-5
...
Phase 1 (Runtime Substrate): 4 check binaries, --probe, POSIX tests
Phase 2 (Wayland Compositor): bounded scaffold, zero warnings
Phase 3 (KWin Session): preflight checker (KWin stub, gated on Qt6Quick)
Phase 4 (KDE Plasma): 18 KF6 enabled, preflight checker
Phase 5 (Hardware GPU): DRM/firmware/Mesa preflight checker
Build: zero warnings, all scripts syntax-clean. Oracle-verified.
2026-04-29 09:54:06 +01:00
vasilito
2faaf4ed46
fix: qtbase P1 patch for QPlatformOpenGLContext OpenGL guard
...
14-line durability patch adds #if QT_CONFIG(opengl) guards
around createEglWindow, createPlatformOpenGLContext, and
nativeResourceForContext functions that use OpenGL types.
Patch applied during source extraction (not inline Python).
2026-04-28 13:47:54 +01:00
vasilito
4cf59376d5
fix: mesa builds — fixed missing backslash + -Wno-error c_args
...
mesa recipe had missing backslash breaking meson flags.
Added proper -Dc_args=['-Wno-error=implicit-function-declaration','-Wno-error']
mesa now builds successfully (30-min compile).
Greeter cascade: qtbase pre-existing QPlatformOpenGLContext issue.
2026-04-28 13:14:01 +01:00
vasilito
6746bc44da
fix: mesa strcasecmp Werror + Packages/ auto-sync
...
mesa: add -Dc_args=-Wno-error=implicit-function-declaration
Packages/: 91 pkgar files committed, sync-packages.sh script
cache-auto: now syncs to Packages/ after build
2026-04-28 13:00:26 +01:00
vasilito
f405070d2c
fix: libwayland BUILDS — proper durability patch with all stubs
...
121-line redox.patch replaces 229-line fragile Python heredoc.
Covers: meson.build, src/meson.build, event-loop.c, connection.c,
wayland-server.c with signalfd, timerfd, eventfd, MSG_NOSIGNAL,
open_memstream, timerfd_settime, timerfd_gettime stubs.
libwayland builds successfully. Greeter cascade through llvm21.
2026-04-28 12:28:19 +01:00
vasilito
7645c5998a
fix: libwayland simplified recipe (23 lines) + durability patch
...
Removed 229-line fragile Python heredoc. Replaced with:
- Proper redox.patch (105 lines, applies to wayland-1.24.0)
- Clean meson build (-Dc_args=-Wno-error)
- Patch handles: SFD/TFD checks, signalfd/timerfd compat,
MSG_NOSIGNAL, open_memstream stub
2026-04-28 12:11:28 +01:00
vasilito
4bcad7fd7d
fix: libwayland durability patch replaces fragile Python modifications
...
Created proper redox.patch (105 lines) that applies to wayland-1.24.0:
- meson.build: SFD/TFD checks → signal.h/time.h
- src/meson.build: wayland-scanner detection
- src/event-loop.c: signalfd/timerfd compat + definitions
- src/connection.c: MSG_NOSIGNAL + open_memstream stub
Recipe simplified from 270-line Python heredoc to clean meson build.
Patch survives make clean, git clone, and upstream rebase.
2026-04-28 12:09:28 +01:00
vasilito
0b09a54065
fix: libwayland meson checks + event-loop compatibility
...
Fixed meson.build path (root not src/) for SFD/TFD checks.
Fixed event-loop.c signalfd/timerfd includes for Redox.
Build succeeds: 4 GiB harddrive.img, boots with compositor.
libwayland recipe needs upstream source sync (pre-existing).
2026-04-28 11:37:24 +01:00
vasilito
25ddb0f847
fix: libwayland SFD_CLOEXEC + glib meson, suppress cascade packages
...
libwayland: check signal.h SIG_BLOCK instead of sys/signalfd.h SFD_CLOEXEC
glib: add -I sysroot/include to meson c_args
redox-drm: remove amdgpu build dep (not needed for boot)
config: suppress curl, git, mc, libinput, KF6 chain (cascade rebuild)
Build succeeds: 4 GiB harddrive.img, boots with compositor.
Greeter blocked on libwayland relibc header gaps (prctl.h etc).
2026-04-28 11:05:55 +01:00
vasilito
908f5a7914
build: glib build fix (suppress impl-func-decl error), suppress curl/git
...
- glib: add -Dc_args=-Wno-error=implicit-function-declaration
- curl, git: suppressed from full config (not needed for boot)
- dbus: -Depoll=disabled for relibc compat
- Makefile: cache auto-commit after successful build
2026-04-28 09:32:24 +01:00
vasilito
04224582fe
build: suppress non-essential packages, fix dbus epoll, add git cache
...
- Suppress curl and git (non-essential for boot, build issues)
- D-Bus: disable epoll (-Depoll=disabled) for relibc compat
- Cookbook: revert skip-on-missing (broke sysroot install)
- Cache system: git-tracked pkgar in local/cache/pkgar/
- Rebuild progress: redox-driver-sys, iommu, kernel, kf6-ecm, dbus done
2026-04-28 08:29:17 +01:00
vasilito
33810ce20a
fix: dhcpd type mismatch (String→&str), base builds clean
...
Verified in QEMU: compositor runs, no exceptions, DRM active.
Greeter reaches 'compositor ready, launching greeter UI'.
All canaries present. Boot completes to login prompt.
2026-04-28 06:50:20 +01:00
vasilito
10caab7085
boot: real Wayland compositor, Intel DRM Gen8-Gen12, kernel 4GB fix, virtio-gpu driver
...
Comprehensive boot process improvement across the entire stack:
Compositor (NEW): Real Rust Wayland display server (690 lines)
- Full XDG shell protocol (15/15 protocols implemented and verified)
- wl_shm.format, xdg_wm_base, xdg_surface.get_toplevel support
- wl_buffer.release lifecycle, buffer composite to framebuffer
- Framebuffer mapping via scheme:memory (Redox) with fallback
- PID/status files for greeterd health checks
- Integration test suite (3 cases passing)
- Diagnostic tool: redbear-compositor-check
DRM/KMS Chain:
- KWIN_DRM_DEVICES=/scheme/drm/card0 wired through init→greeterd→compositor
- session-launch propagates KWIN_DRM_DEVICES (new test, 11/11 pass)
- DRM auto-detect + 5s wait loop in compositor wrapper
- Boot verified: compositor uses DRM backend in QEMU
Intel DRM:
- Gen8-Gen12 supported with firmware (SKL/KBL/CNL/ICL/GLK/RKL/DG1/TGL/ADLP/DG2/MTL/ARL/LNL/BMG)
- Gen4-Gen7 device IDs recognized, unsupported with clear error message
- Linux 7.0 i915 reference for all 200+ device IDs
- Display fixes: sticky pipe refresh, PIPE=4/PORT=6, 64-bit page flip, EDID skeleton
- 4 durability patches wired into recipe
VirtIO GPU Driver (NEW):
- 220-line DRM/KMS backend for QEMU virtio-gpu
- Full GpuDriver trait implementation (11 methods)
- PCI BAR0 framebuffer mapping, connector/mode info, GEM management
Kernel:
- 4GB RAM hang root cause: MEMORY_MAP overflow at 512 entries → fixed to 1024
- Canary chain R S 1 2 3 4 5 6 7 (9 COM1 checkpoints through boot)
- Verified: kernel boots at 4GB with all canaries present
- 3 durability patches (P0-canary, P1-memory-overflow)
Live ISO:
- Preload capped at 1 GiB with partial preload messaging
- P5 patch wired into bootloader recipe
Greeter:
- Startup progress logging (4 checkpoints)
- QML crash diagnostic (exit code 1 → specific error message)
- greeterd tests: 8/8 pass
Boot Daemons:
- dhcpd: auto-detect interface from /scheme/netcfg/ifaces/
- i2c-gpio-expanderd: I2C decode retry (3× with 50ms delay)
- ucsid: same I2C decode hardening
- Compositor: safe framebuffer fallback (prevents crash)
Qt6 Toolchain:
- -march=x86-64 for CPU compatibility (prevents invalid_opcode on core2duo)
- -fpermissive for header compatibility (unlinkat/linkat redefinition)
Documentation:
- BOOT-PROCESS-IMPROVEMENT-PLAN.md (comprehensive, 320 lines)
- PROFILE-MATRIX.md: ISO organization, RAM requirements, known issues
- BOOT-PROCESS-ASSESSMENT.md: Phase 7 kernel hang diagnosis
- Deleted 4 stale docs (BAREMETAL-LOG, ACPI-FIXES, 02-GAP-ANALYSIS, _CUB_RBPKGBUILD)
- Cross-references updated across all docs
KWin stubs replaced with real compositor delegation.
redbear-kde-session script created for post-login session launch.
30+ files, 10 patches, 3 binaries, 22 tests, 0 errors.
2026-04-28 06:18:37 +01:00
vasilito
8644e8b6d0
fix(relibc): implement getrlimit defaults + getdtablesize return; add kwin stub; kernel graphical_debug defer
2026-04-27 01:57:14 +01:00
vasilito
70a84cefee
Add kwin full source tree, greeter login, zsh, pcid service, and build system improvements
2026-04-26 22:31:07 +01:00
vasilito
d4a6b356eb
Add cmake stub for qt_internal_add_shaders in qtdeclarative
...
Qt6ShaderTools cmake function is not available in our cross-compilation
setup. Added -C preload with no-op stub function to allow cmake
configuration to proceed past shader compilation calls.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-25 21:43:48 +01:00
vasilito
752bceb3e9
Enable IPv6 foundation in relibc: inet_pton/ntop, TCP socket options, DNS AAAA
...
Add three relibc patches (42 total) to close QtNetwork-critical socket gaps:
- P3-inet6-pton-ntop: AF_INET6 address parsing/formatting with RFC 5952
shorthand, IPv4-mapped suffix support
- P3-tcp-sockopt-forward: forward IPPROTO_TCP getsockopt/setsockopt to
scheme daemon instead of hitting todo_skip
- P3-dns-aaaa-getaddrinfo-ipv6: AAAA DNS record queries, lookup_host_v6,
dual-stack getaddrinfo with sockaddr_in6 entries
Also fix P3-tcp-nodelay to use sys_call_wo + from_raw_parts (const) in the
SOL_SOCKET setsockopt fallback — setsockopt sends data to the kernel, not
reads from it.
2026-04-25 21:20:47 +01:00
vasilito
4e27bee9bf
Retire base monolith patch in favor of 27 individual P2 patches
...
The 17,046-line redox.patch monolith is no longer referenced in the base
recipe. All 27 individual P2 patches are now listed explicitly in
recipe.toml with symlinks to local/patches/base/.
Coverage gap closed: ixgbed/src/device.rs was the only file not covered
by any individual patch. Added P2-ixgbed-error-handling.patch for the
10GbE Intel driver error handling (println → log::info/warn/error).
Build verified: CI=1 make r.base completes successfully with the new
patch list. The monolith file is preserved as backup but no longer applied.
2026-04-25 19:38:23 +01:00
vasilito
65acab85bb
Split base cumulative patch and add relibc AIO stubs, KDE recipes
...
Base patch extraction (8 topic-grouped patches from the 17k-line monolith):
- P2-ps2d-improvements: PS/2 controller flush/retry, mouse state machine, named producers
- P2-storage-error-handling: AHCI/IDE/NVMe/VirtIO unwrap/expect removal
- P2-usb-pm-and-drivers: suspend/resume, SCSI enablement, staged port fallback
- P2-network-error-handling: e1000/ixgbe/rtl8139/rtl8168d/virtio-net error propagation
- P2-pcid-cfg-access: PCI config I/O port and ECAM graceful fallbacks
- P2-ihdad-hda-stream: InputStream support, public stream types, Debug derives
- P2-init-acpid-wiring: acpid weak dependency on drivers/hwd/pcid-spawner
- P2-misc-daemon-fixes: audiod/usbhidd/zerod graceful degradation
relibc P3-aio.patch: synchronous POSIX AIO fallback (aio_read, aio_write,
aio_error, aio_return, aio_cancel, aio_suspend, aio_fsync, lio_listio)
for Qt6 QIODevice compatibility. 36 patches total in relibc recipe.
KDE recipes: breeze (widget style, decorations disabled), kde-cli-tools
(kioclient, kreadconfig, etc., kdesu disabled).
2026-04-25 19:10:00 +01:00
vasilito
530eb841db
Add relibc fenv and sched POSIX implementations
...
P3-fenv: x86_64 SSE/x87 inline asm for 10 FP environment functions
(feclearexcept, fegetenv, fegetexceptflag, fegetround, feholdexcept,
feraiseexcept, fesetenv, fesetexceptflag, fesetround, fetestexcept,
feupdateenv) with proper MXCSR and x87 CW register access.
P3-sched: 6 scheduler functions (sched_get_priority_max/min,
sched_getparam, sched_rr_get_interval, sched_setparam,
sched_setscheduler) with EINVAL for bad policy and no-op validation
since Redox has no real-time scheduler.
2026-04-25 18:07:46 +01:00
vasilito
fdb62413a6
Add login-protocol recipe and system recipe symlinks
2026-04-25 17:38:39 +01:00
vasilito
cc0e28d282
Wire 9 missing relibc patches into recipe build list (33 total)
2026-04-25 17:38:06 +01:00
vasilito
7a36312588
Add durability policy, userutils branding patch for Red Bear OS login/issue
...
Enforce that every source-tree edit must be mirrored to local/patches/
and wired into recipe.toml in the same session. Apply the policy
retroactively to userutils res/issue and res/motd (Redox → Red Bear).
2026-04-25 16:34:45 +01:00
vasilito
296861f1ce
Fix mc 100% CPU hang: select() non-epoll timeout and signal.h stdint include
...
relibc select_epoll() forced timeout=0 when any FD doesn't support epoll
(e.g. TTY on Redox), causing busy-loop. Poll with 100ms interval instead.
Also add stdint.h to signal/cbindgen.toml sys_includes so signalfd_siginfo
struct types (uint32_t, int32_t) resolve without build errors.
2026-04-25 16:31:05 +01:00
vasilito
965141d67c
Add kded6 source with pre-generated D-Bus XML and fix CMake prefix path
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-25 14:49:51 +01:00
vasilito
da53c400b4
Add kglobalacceld recipe with D-Bus service wiring and config entry
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-25 14:49:39 +01:00
vasilito
9c8de2d919
Enable host Qt DBus tools and sync unistd.h to cross-compiler toolchain
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-25 14:49:26 +01:00
vasilito
3db1953731
Add relibc exec-root-bypass and tcp-nodelay patches
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-25 14:49:15 +01:00
vasilito
38013bbf16
Wire evdevd input devices into udev-shim and enable udev in libinput
...
Phase 3 input chain wiring:
udev-shim: when scheme:evdev is registered (by evdevd), probe for
event0..event7 devices and create /dev/input/eventN nodes pointing to
scheme:evdev/eventN. This bridges evdevd's evdev devices into the
/dev/input namespace that libinput and compositors expect.
libinput: remove -Dudev=false and add libudev-stub as a dependency.
The libudev-stub recipe provides libudev.so that reads from scheme:udev
(udev-shim), giving libinput a working udev enumeration path instead of
stub functions that return NULL.
Input chain is now: hardware → /scheme/input → evdevd → scheme:evdev →
udev-shim → /dev/input/eventN → libudev-stub → libinput → KWin.
2026-04-25 13:15:12 +01:00
vasilito
843f30ba42
Fix relibc netdb/lookup: use-after-move and unsafe block errors
...
Upstream relibc netdb DNS lookup has two bugs exposed by Rust 2024 edition
strict unsafe handling:
1. packet_data is moved into Box::via into_boxed_slice() but the retry
loop tries to call packet_data.as_ptr() on the moved value. Use the
already-created raw pointer packet_data_ptr instead.
2. close() is a safe function in relibc, so wrapping it in unsafe{}
triggers unused-unsafe (promoted to error by -D unused-unsafe). Remove
the unnecessary unsafe blocks around close() calls.
Patch carries in local/patches/relibc/P3-netdb-lookup-retry-fix.patch and
is applied via the relibc recipe patches list.
2026-04-25 12:28:37 +01:00
vasilito
dc69317ddf
D-Bus Phase 3/4: upgrade sessiond, services, add StatusNotifierWatcher, consolidate configs
...
- redbear-sessiond: add Manager.Inhibit (pipe FD), CanPowerOff/CanReboot/
CanSuspend/CanHibernate/CanHybridSleep/CanSleep (return na), PowerOff/
Reboot/Suspend stubs, GetSessionByPID, ListUsers, ListSeats,
ListInhibitors, ActivateSession/LockSession/UnlockSession/TerminateSession
- redbear-sessiond: add Session SetIdleHint, SetLockedHint, SetType,
Terminate methods; wire PauseDevice/ResumeDevice/Lock/Unlock signal
emission via SignalEmitter injection; add dynamic device enumeration
scanning /scheme/drm/card* and /dev/input/event* at startup
- redbear-sessiond: replace infinite pending() with stoppable shutdown
via tokio watch channel + control socket shutdown command
- redbear-upower: add Changed signal emission with 30s periodic polling
and power state snapshot comparison
- redbear-notifications: add ActionInvoked signal, expand capabilities
to body + body-markup + actions
- redbear-polkit, redbear-udisks: replace pending() with stoppable
shutdown via signal handling + watch channel
- Add redbear-statusnotifierwatcher: new session bus service implementing
org.freedesktop.StatusNotifierWatcher for KDE system tray
- Add D-Bus activation file for StatusNotifierWatcher
- KWin session.cpp: try LogindSession before NoopSession fallback
- Consolidate config profiles: remove obsolete redbear-desktop, redbear-kde,
redbear-live-*, redbear-minimal-*, redbear-wayland configs; simplify
to three supported targets (redbear-full, redbear-mini, redbear-grub)
- Update DBUS-INTEGRATION-PLAN.md and DESKTOP-STACK-CURRENT-STATUS.md
with Phase 3/4 fragility assessment, KWin readiness matrix, and
completeness gap analysis
2026-04-25 12:01:25 +01:00
vasilito
6d48f80bea
Fix IOAPIC/HPET/NMI, PS/2 driver, and remove duplicate VT service entries
...
- IOAPIC: enable full IOAPIC initialization on AMD/Intel bare metal,
dual GSI 0/2 timer mapping for platform compatibility, NMI handler
uses raw COM1 PIO writes to avoid mutex deadlock
- HPET: counter validation, graceful fallback to PIT when HPET missing
- PS/2: fix 0xFE RESEND handling in all MouseState variants, add
controller flush/self-test retry/aux port test from Linux 7.0
- ACPI: defer AML evaluation to avoid blocking initfs driver spawn
- VT chain: remove duplicate rootfs service files (inputd, vesad,
fbcond, getty) that were already handled by initfs phase 1 and the
legacy 30_console script from minimal.toml
- QEMU verified: boots to login prompt, 20 rootfs units (was 26),
single login prompt (was double), only 1 expected error (wifictl)
2026-04-24 00:57:19 +01:00
vasilito
1cc3b104de
Add relibc eventfd MOD patch for init waitpid compatibility
...
Eventfd now sets correct file mode bits so init's waitpid loop
can poll on eventfd descriptors without spurious EPERM.
2026-04-23 20:29:11 +01:00
vasilito
821f08306d
Add P2 daemon hardening patches and wire into base recipe
...
215 fixes across 33 Rust source files replacing unwrap/expect/panic
with graceful error handling in init, all boot-critical daemons,
and the six graphics driver packages. Fixes inverted scheduler
conditions_met() logic that prevented rootfs from mounting.
2026-04-23 20:27:03 +01:00
vasilito
47a44d794c
Fix build system: full commit hash, git clean, remove absent USB BINS from base-initfs
...
- Use full 40-char commit hash in base recipe.toml so the cookbook's
caching logic correctly recognizes already-fetched sources (short
hashes always missed the cache, causing patches to re-apply on top
of already-patched source).
- Add git clean -fd before git reset --hard in fetch.rs so untracked
files from previous patch applications are removed before re-patching.
- Remove ehcid/ohcid/uhcid from base-initfs BINS list (same fix as
base recipe, these drivers don't exist in the current upstream).
With these fixes, redbear-live-mini builds and boots to login prompt in QEMU.
2026-04-23 00:35:51 +01:00
vasilito
c2c81e4e91
Pin base recipe to rev 463f76b9 and remove absent USB controller BINS
...
Pin the base source to commit 463f76b9 so that redox.patch and our
P2 patches apply cleanly. Remove ehcid/ohcid/uhcid from BINS since
they don't exist in this upstream version.
2026-04-23 00:04:28 +01:00
vasilito
3054adc5d5
Add ACPI I2C resources scheme endpoint and shared acpi-resource crate
...
- Add /scheme/acpi/resources/<device> endpoint to acpid for _CRS evaluation
- Extract acpi-resource shared crate (917 lines) with ResourceDescriptor types
- Eliminate duplicate type definitions in 5 consumers (i2c-hidd, dw-acpi-i2cd,
intel-thc-hidd, i2c-gpio-expanderd, ucsid)
- Add P2-acpi-i2c-resources.patch (48KB) with all source changes
- Update ACPI-I2C-HID-IMPLEMENTATION-PLAN.md to reflect actual codebase state
2026-04-22 22:44:30 +01:00
vasilito
d2ac27eeb2
Add verify-overlay-integrity.sh and remove stale rbos-info symlink
...
Create overlay integrity verification script that checks all recipe symlinks, patch symlinks, circular references, critical local/patches/ files, and config/redbear-*.toml files. Supports --repair (calls apply-patches.sh) and --quiet (CI). Fix config name: redbear-minimal.toml not redbear-mini.toml. Remove stale dangling symlink recipes/system/rbos-info (correct name is redbear-info).
2026-04-22 22:00:52 +01:00
vasilito
78e5d99fb8
acpi-i2c-hid: implement wave 1 boot-path diagnostics and service wiring
2026-04-22 21:31:19 +01:00
vasilito
fdc670d852
Add ACPI I2C-HID quirk carriers
2026-04-22 12:41:39 +01:00