Refresh status docs and add a visible changelog
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -111,7 +111,13 @@ All drivers are **userspace daemons** that access hardware through:
|
||||
|
||||
**Storage**: ided (IDE), ahcid (SATA), nvmed (NVMe), usbscsid (USB SCSI)
|
||||
|
||||
**Network**: e1000d (Intel GigE), rtl8168d (Realtek), ixgbed (Intel 10G)
|
||||
**Network**: e1000d (Intel GigE), rtl8168d (Realtek 8168/8169/8125 path), ixgbed (Intel 10G), virtio-netd (VirtIO)
|
||||
|
||||
The native wired stack in this tree is userspace end to end: `pcid-spawner` autoloads NIC daemons,
|
||||
drivers expose `network.*` schemes through `driver-network`, `smolnetd` provides the `ip`/`tcp`/
|
||||
`udp`/`icmp`/`netcfg` schemes, and `dhcpd` plus config files under `/etc/net/` supply runtime
|
||||
addressing. Red Bear additionally ships a small native `netctl` compatibility command for profile-
|
||||
driven wired setup.
|
||||
|
||||
**Audio**: ac97d, ihdad (Intel HD Audio), sb16d (Sound Blaster)
|
||||
|
||||
@@ -179,17 +185,19 @@ Architectures: i586, x86_64, aarch64, riscv64gc.
|
||||
|
||||
### Known POSIX Gaps (blocking Wayland)
|
||||
|
||||
These are the specific missing features found in libwayland's `redox.patch`:
|
||||
These were the specific missing features originally identified from libwayland's `redox.patch`.
|
||||
Today, most exist in-tree in relibc, but downstream Wayland consumers still carry compatibility
|
||||
patches, so this table is a current-state summary rather than an untouched historical claim.
|
||||
|
||||
| Missing API | Used By | Status |
|
||||
|-------------|---------|--------|
|
||||
| `signalfd` / `SFD_CLOEXEC` | libwayland event loop | Not implemented |
|
||||
| `timerfd` / `TFD_CLOEXEC` / `TFD_TIMER_ABSTIME` | libwayland timers | Not implemented |
|
||||
| `eventfd` / `EFD_CLOEXEC` | libwayland server | Not implemented |
|
||||
| `F_DUPFD_CLOEXEC` | libwayland fd management | Not implemented |
|
||||
| `MSG_CMSG_CLOEXEC` | libwayland socket recv | Not implemented |
|
||||
| `MSG_NOSIGNAL` | libwayland connection | Not implemented |
|
||||
| `open_memstream` | libdrm, libwayland | Not implemented |
|
||||
| `signalfd` / `SFD_CLOEXEC` | libwayland event loop | Implemented in-tree; downstream libwayland still patched around usage |
|
||||
| `timerfd` / `TFD_CLOEXEC` / `TFD_TIMER_ABSTIME` | libwayland timers | Implemented in-tree; downstream libwayland still patched around usage |
|
||||
| `eventfd` / `EFD_CLOEXEC` | libwayland server | Implemented in-tree; downstream libwayland still patched around usage |
|
||||
| `F_DUPFD_CLOEXEC` | libwayland fd management | Implemented in-tree |
|
||||
| `MSG_CMSG_CLOEXEC` | libwayland socket recv | Implemented in-tree |
|
||||
| `MSG_NOSIGNAL` | libwayland connection | Implemented in-tree; downstream libwayland still omits flag |
|
||||
| `open_memstream` | libdrm, libwayland | Implemented in-tree; downstream libwayland still bypasses usage |
|
||||
|
||||
## 6. Build System (This Repository)
|
||||
|
||||
@@ -257,8 +265,8 @@ Config: `config/wayland.toml`
|
||||
|
||||
### Key Blockers for Wayland
|
||||
|
||||
1. **relibc POSIX gaps** (signalfd, timerfd, eventfd, open_memstream)
|
||||
1. **Downstream Wayland compatibility patches remain** (`libwayland/redox.patch` still bypasses some interfaces even though relibc-side APIs now exist in-tree)
|
||||
2. **No GPU acceleration** (only software rendering)
|
||||
3. **No libinput** (requires evdev + udev)
|
||||
4. **No DRM/KMS** (libdrm has all GPU drivers disabled)
|
||||
5. **cosmic-comp**: missing keyboard input, performance issues
|
||||
3. **Input/runtime integration remains incomplete** (`evdevd`, `udev-shim`, and libinput exist, but compositor input is not fully validated)
|
||||
4. **DRM/KMS runtime validation remains incomplete** (`redox-drm` exists in-tree, but full Wayland/driver runtime integration is still open)
|
||||
5. **cosmic-comp**: keyboard/input integration and performance issues remain
|
||||
|
||||
+54
-26
@@ -7,6 +7,34 @@ This document maps the distance between current Redox OS 0.9.0 and three goals:
|
||||
2. **KDE Plasma desktop** → see [05-KDE-PLASMA-ON-REDOX.md](05-KDE-PLASMA-ON-REDOX.md)
|
||||
3. **Linux driver compatibility layer** → see [04-LINUX-DRIVER-COMPAT.md](04-LINUX-DRIVER-COMPAT.md)
|
||||
|
||||
## Status Correction (2026-04-14)
|
||||
|
||||
Most of this document is a historical roadmap and no longer reflects the repository's current state.
|
||||
Use the matrix below as the authoritative phase summary before reading the older milestone text.
|
||||
|
||||
| Layer / Phase | Current repo state | Evidence |
|
||||
|---|---|---|
|
||||
| P0 ACPI / bare-metal boot | Complete in-tree | `local/docs/ACPI-FIXES.md`, `local/patches/kernel/redox.patch`, `local/patches/base/redox.patch` |
|
||||
| P1 driver infrastructure | Complete in-tree, compile-oriented | `local/recipes/drivers/redox-driver-sys/`, `local/recipes/drivers/linux-kpi/`, `local/recipes/system/firmware-loader/` |
|
||||
| P2 DRM / AMD+Intel display | Complete in-tree, hardware validation pending | `local/docs/P2-AMD-GPU-DISPLAY.md`, `local/recipes/gpu/redox-drm/`, `local/recipes/gpu/amdgpu/` |
|
||||
| P3 POSIX + input | Implemented in-tree; consumer-visible `signalfd`/`timerfd`/`eventfd`/`open_memstream` header-export path fixed in this repo pass; runtime validation still pending | `recipes/core/relibc/source/src/header/`, `recipes/core/relibc/source/include/sys/signalfd.h`, `local/patches/relibc/`, `local/recipes/system/evdevd/`, `local/recipes/system/udev-shim/` |
|
||||
| P4 Wayland stack | Partially complete | `recipes/wip/wayland/`, `recipes/wip/libs/other/libinput/`, `recipes/wip/services/seatd/` |
|
||||
| P5 AMD acceleration / IOMMU | Partial | `local/recipes/gpu/amdgpu/`, `local/recipes/system/iommu/` (now buildable via surfaced recipe) |
|
||||
| P6 KDE Plasma | In progress with mixed real builds and stubs/shims | `config/redbear-kde.toml`, `local/recipes/kde/`, `local/docs/QT6-PORT-STATUS.md` |
|
||||
|
||||
### Ordered Remaining Gaps
|
||||
|
||||
1. **Validate the completed P3→P4 bridge in practice**: `libwayland` now rebuilds with `signalfd`, `timerfd`, `eventfd`, `open_memstream`, `MSG_CMSG_CLOEXEC`, and `MSG_NOSIGNAL` restored, but compositor/runtime validation is still outstanding.
|
||||
2. **Complete P4 runtime path**: libinput/seatd/GBM/Wayland compositor integration is still incomplete even though the base libraries now build, `seatd` now builds for Redox, and the KDE runtime config now starts a seatd service.
|
||||
3. **Separate KDE real builds from scaffolding**: parts of the KDE stack are genuine builds, while others are shimmed or stubbed only to satisfy dependency resolution.
|
||||
4. **Hardware validation remains open** for AMD/Intel DRM and the IOMMU path, even though the IOMMU daemon now builds.
|
||||
|
||||
### P7 Note
|
||||
|
||||
The repository's tracked phase model currently stops at **P6**. What a user might call "P7"
|
||||
only appears here as later milestone-style work (for example M7/M8 below), not as a first-class
|
||||
implemented phase with its own config/recipe/doc boundary.
|
||||
|
||||
## Dependency Chain: Hardware → KDE Desktop
|
||||
|
||||
```
|
||||
@@ -34,28 +62,28 @@ This document maps the distance between current Redox OS 0.9.0 and three goals:
|
||||
|
||||
| API | Status | Where to implement | Effort |
|
||||
|-----|--------|--------------------|--------|
|
||||
| `signalfd`/`signalfd4` | **Missing** | `relibc/src/header/signal/mod.rs` + `signal/types.rs` | Medium |
|
||||
| `timerfd_create/settime/gettime` | **Missing** | `relibc/src/header/sys_timerfd/` (NEW directory) | Medium |
|
||||
| `eventfd`/`eventfd_read`/`eventfd_write` | **Missing** | `relibc/src/header/sys_eventfd/` (NEW directory) | Low |
|
||||
| `F_DUPFD_CLOEXEC` | **Missing** | `relibc/src/header/fcntl/mod.rs` (add constant) | Low |
|
||||
| `MSG_CMSG_CLOEXEC` | **Missing** | `relibc/src/header/sys_socket/mod.rs` | Low |
|
||||
| `MSG_NOSIGNAL` | **Missing** | `relibc/src/header/sys_socket/mod.rs` | Low |
|
||||
| `open_memstream` | **Missing** | `relibc/src/header/stdio/src.rs` | Low |
|
||||
| `signalfd`/`signalfd4` | **Implemented in-tree** | `relibc/src/header/signal/mod.rs` + `signal/signalfd.rs` | Runtime validation still needed |
|
||||
| `timerfd_create/settime/gettime` | **Implemented in-tree** | `relibc/src/header/sys_timerfd/` | Runtime validation still needed |
|
||||
| `eventfd`/`eventfd_read`/`eventfd_write` | **Implemented in-tree** | `relibc/src/header/sys_eventfd/` | Runtime validation still needed |
|
||||
| `F_DUPFD_CLOEXEC` | **Implemented in-tree** | `relibc/src/header/fcntl/mod.rs` | Verify against downstream consumers |
|
||||
| `MSG_CMSG_CLOEXEC` | **Implemented in-tree** | `relibc/src/header/sys_socket/mod.rs` | Verify against downstream consumers |
|
||||
| `MSG_NOSIGNAL` | **Implemented in-tree** | `relibc/src/header/sys_socket/mod.rs` | Verify against downstream consumers |
|
||||
| `open_memstream` | **Implemented in-tree** | `relibc/src/header/stdio/open_memstream.rs` | Verify against downstream consumers |
|
||||
| UDS + FD passing | **Done** | Already implemented | — |
|
||||
| `epoll` (event scheme) | **Done** | Redox `scheme:event` | — |
|
||||
| `mmap`/`mprotect` | **Done** | Kernel syscalls | — |
|
||||
| `fork`/`exec` | **Done** | Userspace via `thisproc:` scheme | — |
|
||||
|
||||
**Proof of gap**: See `recipes/wip/wayland/libwayland/redox.patch` — all 7 missing APIs are stubbed there.
|
||||
**Current blocker**: The build-side relibc/libwayland bridge is now in place, but downstream Wayland still needs runtime validation and the wider compositor stack (`evdevd`/`seatd`/DRM/GBM) is still incomplete.
|
||||
|
||||
### Layer 2: GPU / Display Infrastructure
|
||||
|
||||
| Component | Status | Where to implement | Concrete doc |
|
||||
|-----------|--------|--------------------|-------------|
|
||||
| DRM/KMS scheme | **Missing** | New daemon: `redox-drm` crate | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| DRM/KMS scheme | **Present in-tree** | `local/recipes/gpu/redox-drm/` | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| GPU driver (Intel) | Experimental modeset only | `redox-drm/src/drivers/intel/` | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| GEM buffers | **Missing** | `redox-drm/src/gem.rs` | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| DMA-BUF sharing | **Missing** | `redox-drm/src/dmabuf.rs` | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| GEM buffers | **Present in-tree** | `local/recipes/gpu/redox-drm/source/src/gem.rs` | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| DMA-BUF sharing | **Present in-tree** | `local/recipes/gpu/redox-drm/source/src/dmabuf.rs` | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| Mesa hardware backend | **Missing** | Mesa winsys for Redox DRM | [03 §3.4](03-WAYLAND-ON-REDOX.md) |
|
||||
| GPU OpenGL | Software only | Blocked on GPU driver | [04](04-LINUX-DRIVER-COMPAT.md) |
|
||||
|
||||
@@ -63,17 +91,17 @@ This document maps the distance between current Redox OS 0.9.0 and three goals:
|
||||
|
||||
| Component | Status | Where to implement | Concrete doc |
|
||||
|-----------|--------|--------------------|-------------|
|
||||
| evdev daemon | **Missing** | New: `recipes/core/evdevd/` | [03 §2](03-WAYLAND-ON-REDOX.md) |
|
||||
| udev shim | **Missing** | New: `recipes/wip/wayland/udev-shim/` | [03 §2](03-WAYLAND-ON-REDOX.md) |
|
||||
| libinput | **Missing** | `recipes/wip/wayland/libinput/` (NEW) | [03 §2](03-WAYLAND-ON-REDOX.md) |
|
||||
| evdev daemon | **Present in-tree** | `local/recipes/system/evdevd/` | [03 §2](03-WAYLAND-ON-REDOX.md) |
|
||||
| udev shim | **Present in-tree** | `local/recipes/system/udev-shim/` | [03 §2](03-WAYLAND-ON-REDOX.md) |
|
||||
| libinput | **Present as WIP port** | `recipes/wip/libs/other/libinput/` | [03 §2](03-WAYLAND-ON-REDOX.md) |
|
||||
| XKB layouts | **Done** | `xkeyboard-config` ported | — |
|
||||
| seatd | Recipe exists, untested | `recipes/wip/wayland/seatd/` | — |
|
||||
| seatd | Builds and is wired into KDE config, runtime unvalidated | `recipes/wip/services/seatd/`, `config/redbear-kde.toml` | — |
|
||||
|
||||
### Layer 4: Wayland Protocol
|
||||
|
||||
| Component | Status | Recipe | Blocker |
|
||||
|-----------|--------|--------|---------|
|
||||
| libwayland | Patched, broken timers | `recipes/wip/wayland/libwayland/` | Layer 1 POSIX gaps |
|
||||
| libwayland | Patched, downstream compatibility workarounds remain | `recipes/wip/wayland/libwayland/` | Reduce/remove `redox.patch` and verify runtime behavior |
|
||||
| cosmic-comp | No keyboard input | `recipes/wip/wayland/cosmic-comp/` | Layer 3 libinput |
|
||||
| smallvil (Smithay) | Basic, slow | `recipes/wip/wayland/smallvil/` | Layer 2+3 for DRM+input |
|
||||
| wlroots/sway/hyprland | Not tested | `recipes/wip/wayland/wlroots/` | Layer 2+3 |
|
||||
@@ -82,28 +110,28 @@ This document maps the distance between current Redox OS 0.9.0 and three goals:
|
||||
|
||||
| Component | Status | Concrete doc |
|
||||
|-----------|--------|-------------|
|
||||
| Qt 6 | Not ported | [05 Phase KDE-A](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| KDE Frameworks | Not ported | [05 Phase KDE-B](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| KWin | Not ported | [05 Phase KDE-C](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| Plasma Shell | Not ported | [05 Phase KDE-C](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| Qt 6 | Ported in-tree | [05 Phase KDE-A](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| KDE Frameworks | Partially ported in-tree | [05 Phase KDE-B](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| KWin | Recipe exists, still incomplete | [05 Phase KDE-C](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| Plasma Shell | Recipe exists, still incomplete | [05 Phase KDE-C](05-KDE-PLASMA-ON-REDOX.md) |
|
||||
| D-Bus | **Ported** | `config/x11.toml` has it working |
|
||||
|
||||
### Layer 6: Linux Driver Compatibility
|
||||
|
||||
| Component | Status | Concrete doc |
|
||||
|-----------|--------|-------------|
|
||||
| `redox-driver-sys` crate | Not started | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| `linux-kpi` C headers | Not started | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| i915 C driver port | Not started | [04 §4](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| amdgpu C driver port | Not started | [04 §5](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| `redox-driver-sys` crate | Present in-tree | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| `linux-kpi` C headers | Present in-tree | [04 §3](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| i915 C driver port | Not started as Linux C port | [04 §4](04-LINUX-DRIVER-COMPAT.md) |
|
||||
| amdgpu C driver port | Present in-tree, hardware validation pending | [04 §5](04-LINUX-DRIVER-COMPAT.md) |
|
||||
|
||||
---
|
||||
|
||||
## Concrete Roadmap with Milestones
|
||||
|
||||
### Milestone M1: "libwayland works natively" (2-4 weeks)
|
||||
- Implement 7 POSIX APIs in relibc (see Layer 1 table)
|
||||
- Remove `redox.patch` from libwayland recipe
|
||||
- Build-side part now substantially complete: relibc exports the needed consumer-visible POSIX headers/symbols and `libwayland` rebuilds with only residual Redox-specific build tweaks
|
||||
- Remaining work: runtime validation (`wayland-rs_simple_window`, compositor bring-up)
|
||||
- **Test**: `wayland-rs_simple_window` runs without crashes
|
||||
- **Delivers**: libwayland, wayland-protocols, libdrm all build natively
|
||||
|
||||
|
||||
@@ -8,11 +8,31 @@ Get a working Wayland compositor on Redox OS that can run KDE Plasma application
|
||||
|
||||
- `config/wayland.toml` exists — launches `cosmic-comp` or `smallvil` via `orbital-wayland`
|
||||
- 21 Wayland recipes in `recipes/wip/wayland/` — most untested
|
||||
- `libwayland` 1.24.0 builds with `redox.patch` that stubs out 7 POSIX APIs
|
||||
- `libwayland` 1.24.0 now rebuilds with a much smaller `redox.patch`; the P3 POSIX path (`signalfd`, `timerfd`, `eventfd`, `open_memstream`, `MSG_CMSG_CLOEXEC`, `MSG_NOSIGNAL`) is back on the native path, and the remaining patch is down to Redox-specific build quirks
|
||||
- `smallvil` (Smithay) runs as basic compositor, performance poor
|
||||
- `cosmic-comp` builds but has no keyboard input (missing libinput)
|
||||
- `cosmic-comp` builds but still has no working keyboard input; the remaining issue is runtime/input integration, not simply the absence of a libinput recipe
|
||||
- `libdrm` builds with all GPU drivers disabled
|
||||
- Mesa uses OSMesa (software rendering only)
|
||||
- **evdevd** (`scheme:evdev`) provides Linux-compatible `/dev/input/eventX` interface
|
||||
- **udev-shim** (`scheme:udev`) provides udev-like device enumeration
|
||||
- **seatd** now builds for Redox and is wired into the KDE runtime config, but DRM-lease/runtime validation is still open
|
||||
- **redox-drm** (`scheme:drm`) provides DRM/KMS with AMD + Intel GPU support
|
||||
|
||||
---
|
||||
|
||||
## Status Correction (2026-04-14)
|
||||
|
||||
This document is partly historical. The repo already contains substantial P3/P4 work in-tree,
|
||||
but the downstream Wayland stack is still not free of compatibility patches.
|
||||
|
||||
What is actually true today:
|
||||
- relibc now contains in-tree implementations for `signalfd`, `timerfd`, `eventfd`, `open_memstream`, `MSG_CMSG_CLOEXEC`, and `MSG_NOSIGNAL` support paths
|
||||
- the relibc module wiring plus the consumer-visible `signalfd` / `timerfd` / `eventfd` / `open_memstream` export path were fixed in this repo pass
|
||||
- `libwayland/redox.patch` has been reduced to residual Redox-specific build tweaks (`wayland-scanner` detection and `F_DUPFD_CLOEXEC` guard), so the old POSIX bypasses are no longer the main blocker
|
||||
- `evdevd`, `udev-shim`, and `redox-drm` exist in-tree, but full compositor/runtime validation remains open
|
||||
- `seatd` now also builds in-tree for Redox and is started by the KDE runtime config, but has not yet been validated end-to-end with the compositor/DRM path
|
||||
|
||||
Read the step-by-step sections below as design history plus implementation notes, not as an exact current-state checklist.
|
||||
|
||||
---
|
||||
|
||||
@@ -20,8 +40,10 @@ Get a working Wayland compositor on Redox OS that can run KDE Plasma application
|
||||
|
||||
### What to implement
|
||||
|
||||
These are the 7 APIs that libwayland's `redox.patch` removes. Each must be added
|
||||
to `relibc` (repo: https://gitlab.redox-os.org/redox-os/relibc).
|
||||
Historically these were the 7 APIs that `libwayland/redox.patch` worked around. They now exist
|
||||
in-tree in relibc, and this repo pass restored the full build-side path for `signalfd`, `timerfd`,
|
||||
`eventfd`, `open_memstream`, and the related message flags. The remaining work is no longer basic
|
||||
POSIX availability, but runtime validation of the full Wayland stack.
|
||||
|
||||
#### 1.1 `signalfd` / `signalfd4`
|
||||
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
# 04 — Linux Driver Compatibility Layer: Concrete Implementation Path
|
||||
|
||||
> **Status note (2026-04-14):** This file is now partly historical design material. The repository
|
||||
> already contains `local/recipes/drivers/redox-driver-sys/`, `local/recipes/drivers/linux-kpi/`,
|
||||
> `local/recipes/system/firmware-loader/`, `local/recipes/gpu/redox-drm/`, and
|
||||
> `local/recipes/gpu/amdgpu/`. Treat the sections below as architecture rationale and porting notes,
|
||||
> not as an accurate statement that those components are still "not started".
|
||||
|
||||
## Current State Snapshot
|
||||
|
||||
| Component | Current repo state |
|
||||
|---|---|
|
||||
| `redox-driver-sys` | Present and compiling in `local/recipes/drivers/redox-driver-sys/` |
|
||||
| `linux-kpi` | Present and compiling in `local/recipes/drivers/linux-kpi/` |
|
||||
| `firmware-loader` | Present and compiling in `local/recipes/system/firmware-loader/` |
|
||||
| `redox-drm` | Present and compiling in `local/recipes/gpu/redox-drm/` |
|
||||
| Intel path | Compile-oriented, no hardware validation yet |
|
||||
| AMD path | Compile-oriented via `amdgpu` + AMD DC port, no hardware validation yet |
|
||||
| IOMMU | Partial — daemon now builds, hardware validation still TODO in `local/recipes/system/iommu/` |
|
||||
|
||||
## Goal
|
||||
|
||||
Enable running Linux GPU drivers (amdgpu, i915, nouveau) on Redox OS with minimal
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# 05 — KDE Plasma on Redox: Concrete Implementation Path
|
||||
|
||||
> **Status note (2026-04-14):** This file mixes current status with older forward-looking porting
|
||||
> instructions. `config/redbear-kde.toml` already exists, the Qt6 stack is built, many KF6 recipes
|
||||
> exist under `local/recipes/kde/`, and the current gap is no longer "start KDE from scratch".
|
||||
> The real frontier is distinguishing true builds from shimmed/stubbed packages and then closing
|
||||
> the KWin / Plasma runtime path.
|
||||
|
||||
## Current State Snapshot
|
||||
|
||||
| Area | Current repo state |
|
||||
|---|---|
|
||||
| Qt6 | Built in-tree (`qtbase`, `qtdeclarative`, `qtsvg`, `qtwayland`) |
|
||||
| KF6 | Mixed: many real builds, some still partial |
|
||||
| `config/redbear-kde.toml` | Present with KDE session launcher |
|
||||
| `kwin`, `plasma-workspace`, `plasma-desktop` | Recipes exist, still marked TODO |
|
||||
| `kirigami` | Stub-only package for dependency resolution |
|
||||
| `kf6-kio` | Heavy shim-based build recipe |
|
||||
| `kf6-kcmutils` | Stripped widget-only build recipe |
|
||||
| `libxcvt` | Now builds as a real package; no longer needs to stay in the KWin stub bucket |
|
||||
|
||||
### What remains true from this document
|
||||
|
||||
- KWin / Plasma assembly is still the main functional blocker.
|
||||
- Mesa/GBM/libinput/seatd integration still matters for a real session.
|
||||
- QML/QtQuick-heavy components remain riskier than the already-built widget/core stack.
|
||||
|
||||
## Goal
|
||||
|
||||
Run KDE Plasma 6 desktop environment on Redox OS, starting with a minimal viable
|
||||
@@ -8,15 +33,45 @@ desktop and expanding to full Plasma.
|
||||
## Prerequisites (from docs 03 and 04)
|
||||
|
||||
Before KDE work begins, these MUST be complete:
|
||||
- [x] relibc POSIX gaps fixed (signalfd, timerfd, eventfd, etc.)
|
||||
- [x] evdevd + libinput working
|
||||
- [x] DRM/KMS scheme working (at least Intel modesetting)
|
||||
- [x] Wayland compositor running (Smithay/smallvil)
|
||||
- [x] Mesa EGL + software OpenGL (already ported)
|
||||
- [~] relibc POSIX APIs now reach `libwayland` on the native build path, but runtime validation of the full Wayland base still blocks calling the prerequisite fully complete in practice
|
||||
- [x] evdevd compiled, libevdev built, libinput 1.30.2 built (comprehensive redox.patch)
|
||||
- [x] DRM/KMS scheme daemon compiled (redox-drm: 15+ ioctls, AMD+Intel drivers)
|
||||
- [x] Wayland: libwayland + wayland-protocols built
|
||||
- [x] Mesa: OSMesa + LLVMpipe software rendering (EGL platform_redox.c exists, Orbital-only)
|
||||
- [x] D-Bus 1.16.2 built for Redox
|
||||
- [x] Qt6: qtbase (Core+Gui+Widgets+DBus+Wayland), qtdeclarative, qtsvg, qtwayland ALL BUILT
|
||||
- [ ] Mesa EGL+GBM with LLVMpipe (platform_redox.c needs GBM extension — planned)
|
||||
- [ ] libdrm amdgpu+intel enablement (in progress)
|
||||
|
||||
## Three-Phase KDE Implementation
|
||||
|
||||
### Phase KDE-A: Qt Foundation (2-3 months)
|
||||
### Phase KDE-A: Qt Foundation — ✅ COMPLETE
|
||||
|
||||
Qt6 core stack fully built for x86_64-unknown-redox:
|
||||
|
||||
| Module | Version | Status | Libraries |
|
||||
|--------|---------|--------|-----------|
|
||||
| qtbase | 6.11.0 | ✅ | Core, Gui, Widgets, Concurrent, Xml, DBus, WaylandClient |
|
||||
| qtdeclarative | 6.11.0 | ✅ | QML, QtQuick (JIT disabled) |
|
||||
| qtsvg | 6.11.0 | ✅ | Svg, SvgWidgets |
|
||||
| qtwayland | 6.11.0 | ✅ | WaylandClient (compositor disabled) |
|
||||
|
||||
### Phase KDE-B: KF6 Frameworks — 🔄 IN PROGRESS (21/30+ built)
|
||||
|
||||
Built: ecm, kcoreaddons, kwidgetsaddons, kconfig, ki18n, kcodecs, kguiaddons,
|
||||
kcolorscheme, kauth, kwindowsystem, knotifications, kjobwidgets, kconfigwidgets,
|
||||
karchive, sonnet, kcompletion, kitemviews, kitemmodels, solid
|
||||
|
||||
Building: kdbusaddons, kcrash
|
||||
|
||||
Recipes ready: kiconthemes, kservice, kpackage, kglobalaccel, kxmlgui, ktextwidgets,
|
||||
kio, kbookmarks, kdeclarative, kcmutils, kirigami, plasma-framework
|
||||
|
||||
### Phase KDE-C: KDE Plasma Assembly — 📋 PLANNED
|
||||
|
||||
Recipes created: kwin, plasma-workspace, plasma-desktop
|
||||
Config: config/redbear-kde.toml
|
||||
Blocked on: KF6 completion, Mesa EGL/GBM, libdrm amdgpu+intel
|
||||
|
||||
**Goal**: A Qt application displays a window on the Redox Wayland compositor.
|
||||
|
||||
|
||||
+6
-5
@@ -1,7 +1,8 @@
|
||||
# DOCS — ARCHITECTURE & INTEGRATION DOCUMENTATION
|
||||
|
||||
7 comprehensive technical documents covering Redox architecture, gap analysis, and integration paths.
|
||||
For AMD-first integration, see `local/docs/AMD-FIRST-INTEGRATION.md`.
|
||||
7 technical documents covering Redox architecture, gap analysis, and integration paths.
|
||||
Some are now historical roadmap documents; check each file's top-level status note before treating it as current state.
|
||||
For current Red Bear OS status, also read `local/docs/AMD-FIRST-INTEGRATION.md` and `local/docs/QT6-PORT-STATUS.md`.
|
||||
|
||||
## STRUCTURE
|
||||
|
||||
@@ -22,8 +23,8 @@ docs/
|
||||
|----------|----------|-------------|
|
||||
| How does the kernel work? | 01 | §1 Microkernel, §2 Scheme System |
|
||||
| How do drivers access hardware? | 01 | §3 Driver Model, §6 Build System |
|
||||
| What's missing for Wayland? | 02 | Layer 1-4 gap matrix |
|
||||
| How to fix POSIX gaps? | 03 | §1 (signalfd, timerfd, eventfd implementations) |
|
||||
| What's missing for Wayland? | 02 | Status correction + ordered remaining gaps |
|
||||
| How to fix POSIX gaps? | 03 | Status correction + historical §1 notes |
|
||||
| How to build evdevd? | 03 | §2 (evdev input daemon architecture) |
|
||||
| How to build DRM/KMS? | 03 | §3 (drmd daemon, Intel driver) |
|
||||
| How to port a Wayland compositor? | 03 | §4 (Smithay Redox backends) |
|
||||
@@ -38,7 +39,7 @@ docs/
|
||||
|
||||
## KEY NUMBERS
|
||||
|
||||
- **POSIX gaps**: 7 APIs blocking libwayland (signalfd, timerfd, eventfd, F_DUPFD_CLOEXEC, MSG_CMSG_CLOEXEC, MSG_NOSIGNAL, open_memstream)
|
||||
- **POSIX gap story**: APIs now largely exist in-tree, but downstream Wayland consumers still carry compatibility patches
|
||||
- **Wayland recipes**: 21 in `recipes/wip/wayland/`
|
||||
- **KDE apps**: 9 WIP recipes in `recipes/wip/kde/`
|
||||
- **To Wayland compositor**: ~26 weeks (2 developers)
|
||||
|
||||
+16
-8
@@ -3,6 +3,11 @@
|
||||
Technical documentation for forking Redox OS to include Wayland protocol support,
|
||||
KDE Plasma desktop environment, and a Linux driver compatibility layer.
|
||||
|
||||
> **Status note (2026-04-14):** several documents below are historical implementation plans whose
|
||||
> original "missing / not started" language is now stale. The repo already contains substantial
|
||||
> Red Bear OS work under `local/`; use each document's top-level status notes together with
|
||||
> `local/docs/AMD-FIRST-INTEGRATION.md` and `local/docs/QT6-PORT-STATUS.md` for current state.
|
||||
|
||||
## Documents
|
||||
|
||||
| # | Document | Description |
|
||||
@@ -14,16 +19,19 @@ KDE Plasma desktop environment, and a Linux driver compatibility layer.
|
||||
| 05 | [KDE Plasma on Redox](05-KDE-PLASMA-ON-REDOX.md) | Feasibility study and implementation plan for KDE Plasma |
|
||||
| 06 | [Build System Setup](06-BUILD-SYSTEM-SETUP.md) | How to build Redox from this repository |
|
||||
|
||||
## Current State Summary (as of Redox 0.9.0)
|
||||
## Current State Summary (as of 2026-04-14)
|
||||
|
||||
- **Display server**: Orbital (custom, scheme-based) — works
|
||||
- **Wayland**: Experimental, WIP. Smallvil (Smithay) and cosmic-comp partially working.
|
||||
libwayland patched with shimmed-out `signalfd`, `timerfd`, `eventfd`.
|
||||
- **X11**: Working via X.org dummy driver inside Orbital.
|
||||
- **Mesa**: Software-rendered only (LLVMpipe/OSMesa). No GPU acceleration.
|
||||
- **GPU drivers**: VESA framebuffer + VirtIO GPU only. Experimental Intel modesetting.
|
||||
- **KDE**: 19 app recipes in WIP, no KDE Plasma infrastructure.
|
||||
- **Linux driver compat**: None. Redox explicitly chose source-level porting over binary compat.
|
||||
- **Wayland**: libwayland + wayland-protocols built. Smallvil/cosmic-comp remain partial runtime experiments.
|
||||
- **Qt6**: qtbase 6.11.0 (Core+Gui+Widgets+DBus+Wayland), qtdeclarative, qtsvg, qtwayland ALL BUILT
|
||||
- **D-Bus**: 1.16.2 built for Redox. Qt6DBus enabled.
|
||||
- **KF6 Frameworks**: mixed state — many real builds, but some packages are still shimmed or stubbed.
|
||||
- **Mesa**: software-rendered path is present; full GBM / hardware-validated Wayland path is still incomplete.
|
||||
- **GPU drivers**: redox-drm scheme daemon and AMD+Intel compile-oriented paths exist; hardware validation is still pending.
|
||||
- **Input**: evdevd compiled, libevdev built, libinput 1.30.2 built
|
||||
- **Networking**: native wired stack present (`pcid-spawner` → NIC daemon → `smolnetd`/`dhcpd`/`netcfg`), Red Bear ships a native `netctl` command, and RTL8125 is wired into the existing Realtek autoload path
|
||||
- **KDE**: `redbear-kde.toml` exists and the recipe tree is populated, but the runtime stack is still incomplete.
|
||||
- **Linux driver compat**: linux-kpi (31 C headers + 13 Rust FFI), redox-driver-sys, firmware-loader all compile.
|
||||
|
||||
## Quick Start
|
||||
|
||||
|
||||
Reference in New Issue
Block a user