This commit closes the C-7 inline-sed-to-external-patch
arc for all 17 KF6 recipes whose upstream 6.26.0 still
contains the ecm_install_po_files_as_qm call. 16 of 17
now have a durable external patch in
`local/patches/<name>/01-initial-migration.patch`. The
17th, kf6-kbookmarks, is a no-op (line is absent from
upstream 6.26.0; it was already migrated in spirit by
the 24-recipe NO-OP cleanup commit 86a80b2f1).
Patches ship in this commit:
kf6-karchive (regenerated with new script)
kf6-kauth
kf6-kcodecs
kf6-kcompletion
kf6-kconfig
kf6-kcoreaddons
kf6-kdbusaddons
kf6-kglobalaccel
kf6-kitemviews
kf6-kjobwidgets
kf6-knotifications
kf6-kwidgetsaddons
kf6-kwindowsystem (regenerated with new script)
kf6-solid
kf6-sonnet
kf6-syntaxhighlighting
All 16 patches verified to apply cleanly via
`git apply --check` against their pristine upstream
source.
New helper: `local/scripts/migrate-kf6-seds-direct.sh`
Why: the original `migrate-kf6-seds-to-patches.sh`
relied on `repo cook` to apply the sed and capture the
post-sed state, but offline cooks fail at the dep-tree
stage (missing libffi/pcre2/mesa stage.pkgar) before
reaching the recipe's [build].script. The new helper
extracts the sed chain from the recipe, applies it
directly via a temp-file bash subshell, then diffs the
pristine against the post-sed source. No cook required.
Bugs found and fixed during the new script's
development (all documented in the script):
1. Bash `$(...)` strips trailing newlines, breaking
multi-line `sed -i ... \\` continuations. Fix:
write the chain to a temp file and source it.
2. `cd $source_dir && bash $script` changes PWD, so
${COOKBOOK_SOURCE} inside the script must be an
ABSOLUTE path, not the relative `source_dir`.
3. `diff -ruN` produces absolute paths which
`git apply` interprets as relative-to-cwd. Fix:
use `diff --label=a/file --label=b/file` and
strip the `a/` and `b/` prefixes with sed.
4. `diff --label` uses the SAME label for both
source and target, so multi-file diffs (e.g.
kf6-kjobwidgets with both CMakeLists.txt and
src/CMakeLists.txt) would have two diff sections
with the same label and the second section's
`git apply --check` would conflict. Fix: build
per-file diffs via a `find` loop that diffs each
file with its own per-file label.
5. sed with `-E` and the `#` delimiter fails on
the `;` between two s-expressions. Fix: use
`-e 's#...#...#' -e 's#...#...#'` instead of
`-E 's#...#...#; s#...#...#'`.
6. `patch -p1 --dry-run` cannot apply patches with
absolute paths. The script's pre-existing
verification used the wrong tool. Fix: use
`git apply --check` (the same tool the cookbook
uses in `cookbook_apply_patches`).
7. Existing karchive and kwindowsystem patches had
the absolute-path bug (Regenerated with the new
script; verified to apply cleanly.)
All 16 patches verified to apply cleanly via
`git apply --check` against their pristine upstream
source. Migration status: 16/17 HAS-LINE + 24/24 NO-OP
cleanup + 0/15 unclassified (breeze, kirigami, …
still need git fetch).
Red Bear OS
A microkernel operating system written in Rust, derived from Redox OS
What is Red Bear OS?
Red Bear OS is a general-purpose, Unix-like operating system with a microkernel architecture, written in Rust. It is a full fork of Redox OS, with added hardware support, filesystem drivers, and a KDE Plasma desktop path. The current development branch is 0.2.3 and the current Red Bear OS version is 0.2.3 (same as the branch name).
Goals:
- AMD & Intel parity — first-class support for both platforms on bare metal
- KDE Plasma desktop — Wayland-based desktop environment via the KWin compositor
- Hardware GPU acceleration — AMD GPU (amdgpu) and Intel GPU drivers via
redox-drm - Modern subsystems — USB, Wi‑Fi, Bluetooth, ext4, GRUB, D-Bus
- Offline-first builds — reproducible from archived, BLAKE3-verified sources
Quick Start
Prerequisites
Linux x86_64 host with Rust nightly, QEMU, nasm, and standard build tools.
See the Redox Build Guide for full setup.
Build & Run
# Clone
git clone https://gitea.redbearos.org/vasilito/RedBear-OS.git
cd RedBear-OS
# Build and run the desktop target in QEMU
./scripts/run.sh --build
# Build a live ISO for bare metal
./scripts/build-iso.sh redbear-full
# Build the text-only recovery target
./scripts/run.sh --build --config redbear-mini
Repository Hosting
The canonical Red Bear OS Git server is Gitea at
https://gitea.redbearos.org/vasilito/RedBear-OS.git. GitHub is not a Red Bear OS source of
truth and must not be used for pushes, issues, releases, or project coordination.
Public Scripts
| Script | Purpose |
|---|---|
scripts/run.sh |
Build and run in QEMU (-b to build, -c <config> for target) |
scripts/build-iso.sh |
Build a live ISO for bare-metal boot |
scripts/build-all-isos.sh |
Build all live ISO targets |
scripts/network-boot.sh |
PXE network boot helper |
scripts/dual-boot.sh |
Dual-boot installation helper |
Config Targets
| Target | Type | Description |
|---|---|---|
redbear-full |
Desktop | Wayland + KDE + GPU drivers + D-Bus services |
redbear-mini |
Console | Text-only recovery / install target |
redbear-grub |
Console | Text-only with GRUB boot manager |
Current Status
Red Bear OS boots to a login prompt in QEMU with working wired networking, D-Bus system bus, hardware detection daemons, and filesystem support (RedoxFS, ext4, FAT).
| Area | Status |
|---|---|
| Boot (ACPI/x2APIC/SMP) | ✅ Bare-metal proven |
| Userspace drivers (PCI, storage, net) | ✅ Working in QEMU |
| D-Bus system bus + services | ✅ Working (login1, PolicyKit, UDisks, UPower) |
| ext4 / FAT filesystems | ✅ Compiles, installer-wired |
| POSIX gaps (relibc) | 🚧 Bounded Wayland-facing support |
| DRM/KMS display drivers | 🚧 AMD + Intel compile; HW validation pending |
| Wayland compositor | 🚧 Bounded proof; Qt6/KF6 clients crash at init |
| KDE Plasma desktop | 🔄 In progress (Qt6/KF6 compile; KWin/QML blocked) |
| Wi‑Fi / Bluetooth | 📋 Planned (architected, implementation pending) |
How It Works
Red Bear OS uses a userspace driver model — all drivers run as unprivileged daemons:
Kernel (microkernel)
└── schemes: memory, irq, event, pipe, debug
└── Driver daemons (userspace)
├── pcid → PCI enumeration
├── e1000d → Intel ethernet
├── xhcid → USB controller
└── vesad → Display framebuffer
The kernel provides minimal services (memory, interrupts, IPC). Everything else — filesystems, networking, graphics, input — runs in userspace.
Documentation
- Implementation Plan — roadmap and execution model
- Desktop Path Plan — kernel → DRM → Mesa → Wayland → KDE
- D-Bus Integration — session bus architecture
- USB Plan — USB stack design
- Wi‑Fi Plan — wireless architecture
- Bluetooth Plan — BT stack design
- Documentation Index — full doc map
Contributing
Red Bear OS uses a full fork model. Upstream Redox sources are frozen and archived. All custom work lives in local/:
local/
├── sources/ # Red Bear source forks (git repos, directly editable)
├── recipes/ # Custom packages (drivers, GPU, system)
├── docs/ # Integration and planning docs
└── scripts/ # Build, test, and release tooling
We welcome contributions made with or without AI assistance — we care about quality, not how the code was produced.
License
MIT — same as upstream Redox OS.