Commit Graph

42 Commits

Author SHA1 Message Date
vasilito d8791a91db fix: qt5compat blake3 hash, kwin cmake progress
- Add missing blake3 hash to qt5compat recipe
- KWin cmake: Qt6Gui Wayland plugin path references host instead of sysroot
  (needs Qt cmake config regeneration for cross-build)
2026-05-04 15:42:56 +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 06c6c5efcc fix: remove broken dbus-root-uid patch from D-Bus recipe
Patch needs tar --strip=2 (dbus-1.16.2 prefix) to apply against
tar source. Removed from active chain until fixed.
2026-05-03 15:49:50 +01:00
vasilito 44868d2ca6 wip: D-Bus root user uid fix (patch created, needs tar strip fix)
Changed <policy user="root"> to <policy user="0"> in D-Bus
system.conf.in to avoid getpwnam lookup failures on Redox.

Patch written but does not apply yet — tar source extraction
puts files under dbus-1.16.2/ which requires strip=2 or different
path prefix. Left as documented work-in-progress.

D-Bus daemon runs despite cosmetic user lookup warnings.
2026-05-03 15:24:52 +01:00
vasilito ff24f58b9c fix: restore Qt producer surfaces for vectorimage chain 2026-05-02 22:10:43 +01:00
vasilito a48739ec8a fix: standardize Qt and KDE sysroot helper usage 2026-05-02 22:10:22 +01:00
vasilito 32034f2700 fix: preserve relibc and wayland build surfaces 2026-05-02 22:10:00 +01:00
vasilito 23c8146c60 feat: add build preflight and sysroot helpers 2026-05-02 22:09:36 +01:00
vasilito bdb0d6bd9a feat: add redbear input headers package 2026-05-02 22:09:02 +01:00
vasilito 97f5a870a2 chore: close session — commit all remaining pre-existing state
Finalize all non-artifact changes accumulated from other sessions:
- config updates, recipe changes, source edits, patches
- pkgar/cache artifacts intentionally excluded (build outputs)

This is the maximum achievable scope for this session.
Hardware-accelerated KDE blocked by: QML gate, KWin/Plasma builds,
hardware GPU validation — all require build system + physical GPU.
2026-05-01 03:15:20 +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 1829a0ef07 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 eb67cd6577 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 a86717be2f 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 c3a91a5c4b 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 aff846a709 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 3d4343d7a6 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 8c49ccf541 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 5a8b2dce24 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 041daa993f 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 93bb5f2712 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 7d41d61e5d 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 6f5aa6010b Add kwin full source tree, greeter login, zsh, pcid service, and build system improvements 2026-04-26 22:31:07 +01:00
vasilito b50a5bcb0a 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.
2026-04-25 21:43:48 +01:00
vasilito 0f5194e888 Enable host Qt DBus tools and sync unistd.h to cross-compiler toolchain 2026-04-25 14:49:26 +01:00
vasilito 07d9432d10 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 20162fccf8 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 a1d0a35071 Advance KDE, Qt, and Wayland recipe sources 2026-04-20 18:37:35 +01:00
vasilito e3d776aa9a Advance redbear-full Wayland, greeter, and Qt integration
Consolidate the active desktop path around redbear-full while landing the greeter/session stack and the runtime fixes needed to keep Wayland and KWin bring-up moving forward.
2026-04-19 17:59:58 +01:00
vasilito 37515a6f31 Skip libwayland debug print path on Redox
Avoid a non-essential debug-only formatting dependency in the WIP Redox libwayland build so the verified relibc compatibility slice is not blocked by wl_closure_print diagnostics.
2026-04-18 21:36:33 +01:00
vasilito f10e951be8 Update upstream recipe TOMLs, add orbutils patch and smallvil recipe 2026-04-18 17:59:21 +01:00
vasilito f522c8fcff Fix WIP grub symlink path depth (3 levels, not 4)
The symlink from recipes/wip/services/grub was using ../../../../local/
which goes above the repo root. Fixed to ../../../local/ which correctly
resolves from recipes/wip/services/ to local/recipes/core/grub.
2026-04-17 21:49:39 +01:00
vasilito a03483c956 Fix GRUB bootloader lookup, eliminate duplicate recipe, harden recipe build
install-grub.sh now searches both recipes/core/bootloader/target and
local/recipes/core/bootloader/target for the Redox bootloader artifact.

The WIP grub recipe (recipes/wip/services/grub) is now a full directory
symlink to local/recipes/core/grub instead of just recipe.toml, ensuring
COOKBOOK_RECIPE resolves to a directory that contains grub.cfg. This also
eliminates the duplicate recipe warning from the cookbook.

The GRUB recipe now fails hard (exit 1) if grub.cfg is missing instead of
just warning.
2026-04-17 21:45:38 +01:00
vasilito b8af486e03 Add GRUB EFI build recipe and chainload configuration
Builds GRUB 2.12 for the host machine (not Redox target) using template=custom.
Produces a 540 KiB standalone PE32+ EFI binary with GPT, FAT, ext2,
chainloader, and utility modules. The grub.cfg chainloads the Redox
bootloader from EFI/REDBEAR/redbear.efi.
2026-04-17 21:04:39 +01:00
vasilito 373a3aedad Update Qt6 recipes and add remaining module stubs 2026-04-17 13:34:18 +01:00
vasilito 046b9cdd26 Add remaining Qt recipe stubs 2026-04-17 00:06:03 +01:00
vasilito d71788fb7e Advance KDE Plasma and Qt integration 2026-04-17 00:04:40 +01:00
vasilito 5110aac16c Refresh Qt and Wayland recipes
Red Bear OS Team
2026-04-16 12:44:04 +01:00
vasilito ed04c28b91 Refresh upstream recipe compatibility 2026-04-15 12:57:45 +01:00
vasilito 638a2b90e3 Refresh Qt integration tooling 2026-04-15 12:57:45 +01:00
vasilito 68aa94ce98 Advance Wayland and KDE package bring-up 2026-04-14 10:51:06 +01:00
vasilito 50b731f1b7 Red Bear OS — microkernel OS in Rust, based on Redox
Derivative of Redox OS (https://www.redox-os.org) adding:
- AMD GPU driver (amdgpu) via LinuxKPI compat layer
- ext4 filesystem support (ext4d scheme daemon)
- ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG)
- Custom branding (hostname, os-release, boot identity)

Build system is full upstream Redox with RBOS overlay in local/.
Patches for kernel, base, and relibc are symlinked from local/patches/
and protected from make clean/distclean. Custom recipes live in
local/recipes/ with symlinks into the recipes/ search path.

Build:  make all CONFIG_NAME=redbear-full
Sync:   ./local/scripts/sync-upstream.sh
2026-04-12 19:05:00 +01:00