30 Commits

Author SHA1 Message Date
vasilito 1eed99c54f fix: change gpiod, i2cd, pcid-spawner to oneshot_async; add pcid-spawner override
All three were blocking the boot scheduler in /usr phase on live-mini
because their daemons never notify readiness without hardware present.

- 00_gpiod.service: scheme -> oneshot_async
- 00_i2cd.service: scheme -> oneshot_async
- 00_pcid-spawner.service: new override, oneshot -> oneshot_async
- base: update submodule to 4a1d1f4 (scheduler counter)
2026-07-03 10:43:31 +03:00
vasilito f47ee4fb18 fix: change blocking oneshot services to oneshot_async, add init scheduler tracing
- pcid-spawner: oneshot -> oneshot_async (blocked boot in /usr phase)
- inputd: oneshot -> oneshot_async (unnecessary blocking during initfs)
- base: update submodule to b1a6bd8 (serial debug tracing for scheduler)
- run_mini1.sh: reduce QEMU memory 12G -> 2G for faster CI testing
2026-07-03 08:56:39 +03:00
vasilito 2bed64a6c5 base: bump submodule pointer for acpid processor data readers
acpid now evaluates _CST/_PSS/_PSD/_CPC via AML interpreter and
returns formatted text for /scheme/acpi/processor/CPU{n}/<method>.
2026-07-02 23:59:18 +03:00
vasilito 5d4d3dbce1 kernel: Tier 3 — C-state tracking and CPU topology 2026-07-02 23:27:46 +03:00
vasilito f0364a4e4a kernel: fix LAPIC spurious interrupt vector 0x00 → 0xFF 2026-07-02 23:09:36 +03:00
vasilito 890be982a6 docs: enforce canonical build command across all docs
Replace all non-canonical build invocations (bare 'make all/live
CONFIG_NAME=', 'scripts/build-iso.sh', 'scripts/run.sh') with the
canonical './local/scripts/build-redbear.sh' wrapper.

Updated: AGENTS.md, local/AGENTS.md, README.md, docs/README.md,
docs/06-BUILD-SYSTEM-SETUP.md, and 6 active local/docs plan files.
Archived docs and frozen boot-logs left as-is (historical evidence).
2026-07-02 22:54:47 +03:00
vasilito afad19ff1a kernel: fix early-boot excp_handler panic on bare metal
Updates kernel submodule to 573b3e6 which replaces context::current()
with context::try_current() in excp_handler(), preventing the cascading
'not inside of context' panic when a page fault occurs during BSP's
start() before context::init() runs.
2026-07-02 22:34:40 +03:00
vasilito eb53e8190a redbear-power: multi-threaded collector + Tier 1/2 display enhancements
Tier 1 (display Phase 0 infrastructure):
- sched.rs: read /scheme/sys/stat and /scheme/sys/sched for per-CPU
  scheduler stats (switches, steals, queue_depth, IRQs)
- msr.rs: HWP capabilities/requests, RAPL domain energy readings
- process.rs: derive_sched_policy() for SCHED column
- render.rs: System tab shows RAPL power, scheduler stats; Per-CPU
  table has IRQs/steals columns; HWP expansion rows
- acpi.rs: ACPI throttle status reading

Multi-threaded collector (exercises Phase 0 threading):
- collector.rs: parallel collect() using thread::scope + Barrier,
  exercises pthread_create, futex barriers, sched_setaffinity
- app.rs: sequential per-CPU loop replaced with parallel collector
- render.rs: System tab shows Collector stats (threads, pinned, barrier)

Tier 2 kernel wiring (submodule pointer updates):
- kernel: per-CPU sched stats (/scheme/sys/sched), NUMA-aware
  scheduling, numa::init_default() at boot
- relibc: robust mutex cleanup in exit_current_thread()
2026-07-02 21:41:25 +03:00
vasilito 6d13dee2a6 redbear-power(0.2.5): fix missing hwp field in CpuRow initializer
Pre-existing bug: CpuRow struct gained an hwp field but the initializer
at line 319 was not updated.
2026-07-02 19:22:19 +03:00
vasilito a43cca122d qtwayland(0.2.5): add PCH disable + SBOM disable flags 2026-07-02 19:13:10 +03:00
vasilito fc0c1e4576 qtshadertools(0.2.5): wire ShaderToolsMacros into Config.cmake
The cmake-generated Qt6ShaderToolsConfig.cmake has an empty
extra_cmake_include list. Patch it to include Qt6ShaderToolsMacros.cmake
so qt_internal_add_shaders is defined for downstream modules.
2026-07-02 18:38:45 +03:00
vasilito 83f47db352 qtshadertools(0.2.5): install Qt6ShaderToolsMacros.cmake
cmake install skipped this 405-line macros file that defines
qt_internal_add_shaders/qt6_add_shaders. Without it, downstream Qt
modules (qtdeclarative) fail at cmake configure with 'Unknown CMake
command qt_internal_add_shaders'.
2026-07-02 18:34:21 +03:00
vasilito f877419c43 qt modules(0.2.5): disable PCH for cross-compile
Add CMAKE_DISABLE_PRECOMPILE_HEADERS=ON to qtdeclarative, qtwayland,
and qt6-sensors — same cross-compiler PCH issue as qtshadertools.
2026-07-02 18:31:00 +03:00
vasilito ac0712e8b9 qtshadertools(0.2.5): disable PCH (cross-compiler silent crash)
Redox cross-compiler fails silently on PCH generation. Disable
precompiled headers for the cross-compile step.
2026-07-02 18:19:26 +03:00
vasilito d097261be3 qtshadertools(0.2.5): disable SBOM generation (cross-compile)
Qt 6.11 SBOM install fails referencing qtbase SBOM docs during
cross-compile. SBOM is metadata only — no impact on libs/binaries.
2026-07-02 18:13:38 +03:00
vasilito 8ce2ec6b21 pam-redbear(0.2.5): regenerate Cargo.lock after version bump
redbear-login-protocol path dependency bumped to 0.2.5 but Cargo.lock
was stale. Regenerated to pick up the new version.
2026-07-02 18:08:23 +03:00
vasilito 5e68844868 qtshadertools(0.2.5): fix TOML parse - use shell heredocs for cmake pkg gen
Python f-string triple-quotes conflicted with TOML script delimiter.
Rewrote cmake package generation using shell heredocs instead.
2026-07-02 18:08:22 +03:00
vasilito 217ca485b7 qtshadertools(0.2.5): generate Qt6ShaderToolsTools cmake package
Qt6's standalone module build installs qsb binary but does not generate
the Qt6ShaderToolsTools cmake wrapper package needed by cross-compile.
Added a Python generator that creates the minimal cmake package files
(Config, Targets, Targets-release, Precheck, AdditionalTargetInfo,
VersionlessTargets, Dependencies, ConfigVersion) following the exact
pattern of Qt6WaylandScannerTools from qtbase host build.
2026-07-02 18:01:51 +03:00
vasilito 5b42305568 qtshadertools(0.2.5): add host build step for qsb tool
qtshadertools cross-compile needs the host 'qsb' (Qt Shader Builder)
tool, just like qtbase needs host moc/rcc/uic. Added a native cmake
build step that compiles qsb from the 6.11.1 source and installs it
into the shared qt-host-build prefix.

Also regenerate pam-redbear Cargo.lock (stale after 0.2.5 version bump
of redbear-login-protocol path dependency).
2026-07-02 17:51:45 +03:00
vasilito f988cc0d58 feat: redbear-mini boots to login prompt with Phase 0 threading patches
Kernel (local/sources/kernel):
- Per-CPU idle context race fix (try_idle_context)
- Pinned to nightly-2026-04-11
- Futex sharding, cache-affine context, per-CPU scheduler
- NUMA topology, proc lock ordering, sched policy handles
- ACPI FADT type fix

relibc (local/sources/relibc):
- Non-robust mutex ENOTRECOVERABLE false positive fix
- pthread_cond_signal POSIX fix
- Pthread yield, barrier SMP futex, robust mutexes
- sched API, comprehensive semaphore, pthread affinity+setname
- stdint.h in sched.h cbindgen

Boot verified: UEFI -> kernel -> init -> drivers -> services -> login prompt
All Red Bear init stages pass (02->04->06->08)
xhcid no longer crashes, D-Bus services online
2026-07-02 17:13:06 +03:00
vasilito bc7bbfb293 qtbase(0.2.5): update host profile to 6.11.1
The host tool build profile was hardcoded with '6.11.0', causing the
stale 6.11.0 host tools to be reused for the 6.11.1 cross-compile.
Updated profile string to invalidate old host build.
2026-07-02 17:04:38 +03:00
vasilito 9c93a3fc5b qtbase(0.2.5): rebase redox.patch for Qt 6.11.1 — drop obsolete OpenGL guard hunks
Upstream Qt 6.11.1 already absorbed the #if QT_CONFIG(opengl) guards in
qwaylandclientbufferintegration_p.h that our redox.patch was adding.
Removed the now-obsolete hunks per patch governance (rebase, drop if
upstream absorbed it).

All remaining hunks apply cleanly against 6.11.1 with minor line offsets.
2026-07-02 16:21:26 +03:00
vasilito 7902864a32 version(0.2.5): bump project version to 0.2.5
- Cookbook Cargo.toml: 0.1.0 → 0.2.5
- All 61 in-house crate Cargo.toml versions: 0.2.4 → 0.2.5
- os-release.in: fix URLs from github.com to gitea.redbearos.org
- sync-versions.sh --check passes with zero drift

The OS version is derived from the git branch name at build time.
Building on branch 0.2.5 produces os-release with VERSION_ID=0.2.5.
2026-07-02 15:36:28 +03:00
vasilito 8b627c40af graphics(0.2.5): bump all KF6 frameworks 6.10→6.27, Plasma 6.3.4→6.7.2, remaining libs to latest stable
KF6 frameworks: 44 frameworks bumped from 6.10.0/6.26.0 to 6.27.0 (latest stable).
All switched to download.kde.org canonical release URLs with BLAKE3 hashes.

KDE Plasma packages bumped to 6.7.2 (latest stable):
- breeze 6.3.4→6.7.2
- plasma-workspace 6.3.4→6.7.2
- kf6-kwayland 6.3.4→6.7.2
- kf6-plasma-activities 6.6.5→6.7.2

Other graphics libs bumped to latest stable:
- libxkbcommon 1.9.2→1.11.0
- seatd-redox 0.9.3→0.10.1 (URL switched to gitlab.freedesktop.org)
- plasma-wayland-protocols 1.16.0→1.21.0

All BLAKE3 hashes computed from actual upstream tarballs.
2026-07-02 15:31:30 +03:00
Red Bear Build System 0757975704 docs(0.2.5): execution log of commits made against the freeze plan
Records actual recipes bumped in 0.2.5 on 2026-07-02:

- Qt stack 6.8.2/6.11.0a1 -> 6.11.1 (all 6 sub-recipes, verified BLAKE3)
- Wayland/DRM/Input/expat/seatd to upstream latest stable (8 recipes,
  verified BLAKE3)
- KWin 6.3.4 -> 6.7.2 + kdecoration 6.3.4 -> 6.7.2 + konsole 24.08.3
  -> 26.04.3

Plus structural fix: created the missing qtshadertools recipe so the
qtdeclarative dependency chain resolves.

Documents what was deliberately NOT done:
- KF6 6.10 -> 6.27.0: 38 frameworks, 17-minor delta. Per AGENTS.md
  patch-governance, no commit that bumps recipe.toml URLs without
  first rebasing the local patches can be made honestly. Rebase
  work (17-minor * 38 recipes) is multi-day and recorded as open.
- Mesa 24.0.8 -> 26.1.4: blocked on redox-os/mesa fork rebase
  (0.3.0 work).

Includes the rebase order for the next session that plans to run
'make all CONFIG_NAME=redbear-full' against the bumped pins.
2026-07-02 14:38:19 +03:00
Red Bear Build System 3539e621a2 kde(0.2.5): bump KWin 6.6.5->6.7.2, kdecoration 6.3.4->6.7.2, konsole 24.08.3->26.04.3
Bump KDE Plasma + KDE utility recipes to upstream latest stable
on 2026-07-02.

Versions resolved against download.kde.org/stable/plasma/ and
invent.kde.org/plasma/* tags:

  kwin         6.3.4  -> 6.7.2   (invent.kde.org/plasma/kwin)
  kdecoration  6.3.4  -> 6.7.2   (invent.kde.org/plasma/kdecoration)
  konsole      24.08.3 -> 26.04.3 (invent.kde.org/utilities/konsole;
                                    note: KDE utility versioning switched
                                    from YY.MM calendars to v26.04-style)

BLAKE3 hashes verified against the actual downloaded upstream tarballs.

State of source trees on disk (NOT touched by this commit):
  - local/recipes/kde/kwin/source/         : still KWin 6.6.5 (prior
    session imported 6.6.5 source; new tarball at v6.7.2 will replace
    on next repo fetch).
  - local/recipes/kde/kdecoration/source/  : still 6.3.4
  - local/recipes/kde/konsole/source/      : still 24.08 (RELEASE_SERVICE_
    VERSION_MAJOR/MINOR).

Per AGENTS.md fork-adaptation policy, patches in local/patches/
{kwin,kdecoration,konsole}/ must be re-applied against the new
upstream source trees after fetch; rebase is open work for the
next session. Disabling patches or wrapping with feature flags is
NOT acceptable per the in-tree stub/workaround zero-tolerance rule.

This commit does NOT bump any KF6 framework recipe (38 recipes,
17-minor upstream delta). That work is multi-day patch rebase and
remains open.
2026-07-02 14:36:39 +03:00
Red Bear Build System 7bbf56217e graphics(0.2.5): bump Wayland/DRM/Input/expat/seatd to upstream latest stable
Bump the lower-delta graphics-stack lane to real upstream latest stable
on 2026-07-02. Per AGENTS.md fork-adaptation policy, the local patches
in local/patches/{libdrm,libwayland,libevdev,libinput}/ must be re-applied
against the new source trees before the next build; rebase is open work.

Versions resolved against authoritative upstream registries (real latest stable):

  libwayland         1.24.0    -> 1.25.0   (gitlab.freedesktop.org/wayland/wayland)
  wayland-protocols  1.38      -> 1.49     (gitlab.freedesktop.org/wayland/wayland-protocols)
  libdrm             2.4.125   -> 2.4.134  (gitlab.freedesktop.org/mesa/libdrm)
  libxkbcommon       1.7.0     -> 1.9.2    (github.com/xkbcommon/libxkbcommon mirror)
  libevdev           1.13.2    -> 1.13.6   (freedesktop.org/software/libevdev)
  libinput           1.30.2    -> 1.31.3   (gitlab.freedesktop.org/libinput/libinput)
  seatd-redox        0.9.1     -> 0.9.3    (git.sr.ht/~kennylevinsen/seatd)
  expat              2.5.0     -> 2.8.2    (github.com/libexpat/libexpat)

BLAKE3 hashes verified against the actual downloaded upstream tarballs.

Not changed (already at or near upstream latest):
  - dbus 1.16.2 (== upstream latest)
  - xkeyboard-config (no standalone recipe; consumed via libxkbcommon)
  - linux-input-headers (Red Bear original, not upstream)

Patches NOT yet rebased: see local/patches/{libdrm,libwayland,libevdev,
libinput}/. The dependency surfaces they patch (libdrm 2.4.134 has new
DRM modifier code, libwayland 1.25.0 has new server-decoder helpers,
libinput 1.31 has new touchpad gesture tables) will need review before
re-fetch.
2026-07-02 14:34:50 +03:00
Red Bear Build System 097dc10f70 qt(0.2.5): bump stack to Qt 6.11.1 (real upstream latest stable)
Bump the entire Qt 6 recipe surface to 6.11.1 as resolved from
download.qt.io on 2026-07-02. Per AGENTS.md fork-adaptation policy,
patches in local/patches/qtbase/* and local/patches/qtdeclarative/*
must be re-applied against the 6.11.1 source tree after this commit;
rebase is open work for the next session.

Verified BLAKE3 hashes for the 6.11.1 tarballs:

  qtbase        c3b83023dc54f1173831bbc80abca1901418ef517875bf8071a4895d3c4a3162
  qtdeclarative 10f2d0662047ceb0ef221b725b59e7fec5c9092a4c10d5acc7daefea5f11b962
  qtwayland     154b80972e472b10330c82d3b171a915959a5d06139289d5b898c16c58de4de8
  qtsvg         49b947e1a96bf0a29a1ee84c231a518a1413d9f3ec360617e405400e510508b2
  qtshadertools 24dcd88b9e752a380067182687032b2139d2f6220d64e4193428434970102ae2
  qtsensors     52ad8a724bc34f724feef197cf29f1cb535831ddd0fbad6e9dfedaa01eef1379

Also:

- qtbase: bumped from 6.8.2 -> 6.11.1. The 6.11.0 source tree had been
  imported under local/recipes/qt/qtbase/source/ by a prior session
  without updating the recipe.toml. This commit aligns the recipe
  with both the imported source and the resolved upstream latest.

- qtshadertools: NEW recipe created. The recipes/qt/qtshadertools
  symlink was dangling (target directory did not exist), making
  qtdeclarative's qtshadertools dependency unresolvable. Now wired
  up following the qt6-sensors recipe pattern. Source tar URL is
  the resolved 6.11.1 upstream; per-repo fetch will populate
  source/ on next build.

What's NOT done (deliberately):

- Patch rebase in local/patches/qtbase/P*.patch and
  local/patches/qtdeclarative/P1-skip-tools-crosscompile.patch.
  These must be re-applied against the 6.11.1 source tree before
  the next build. AGENTS.md policy: rebase, do not remove.

- KF6 6.10 -> 6.27.0 bump (38 framework recipes, 17-minor delta).
  Deferred — multi-day patch-rebase work, out of scope for one session.
  See local/docs/0.2.5-GRAPHICS-FREEZE-PLAN.md §2.2.

- KWin 6.6.5 -> 6.7.2 + wayland-protocols/libdrm/libwayland/...
  bumps (remaining graphics recipes). Deferred.

- No build was attempted. recipe.toml pin is now consistent with
  resolved upstream latest-stable; no source tree replacement has
  happened.
2026-07-02 14:27:27 +03:00
vasilito 327aed1e5d git: bump submodule/kernel for cargo -Zunstable-options 2026-07-02 14:22:35 +03:00
Red Bear Build System db6fbe5155 docs(0.2.5): graphics freeze plan with real upstream-latest-stable targets
Plan-only artifact for the 0.2.5 graphics path. No recipe.toml changes,
no build attempted. Documents:

- Per-recipe upstream-latest-stable versions resolved via download.qt.io,
  download.kde.org, gitlab.freedesktop.org, and git ls-remote on
  invent.kde.org projects (no human guessing).
- Pre-build actions required (re-pull, re-blake3, validate-patches).
- Patch surface to re-evaluate across 17-minor KF6 bump and 1-minor
  KWin bump.
- Mesa fork situation (24.0.8 vs 26.1.4): freeze at current fork,
  rebase is 0.3.0 work.
- Freeze-when-green criteria for cutting 0.2.5.
- Out-of-scope items (Plasma workspace, real libepoxy, etc.).

Decisions in this plan are reversible; no recipe.toml field has been
modified. All work-in-progress from prior session is preserved as
uncommitted files in the working tree.
2026-07-02 13:44:49 +03:00
155 changed files with 1760 additions and 275 deletions
+21 -23
View File
@@ -113,23 +113,25 @@ echo 'PODMAN_BUILD?=1' > .config # Podman container build
# archive and ignores the local forks. Remove it if present:
grep -v REDBEAR_RELEASE .config > .config.tmp && mv .config.tmp .config
# Build Red Bear OS
# Build Red Bear OS — CANONICAL build command is build-redbear.sh
# Supported compile targets:
# redbear-full desktop/graphics target (harddrive.img or live ISO)
# redbear-mini text-only console/recovery target (harddrive.img or live ISO)
# redbear-full desktop/graphics target (live ISO)
# redbear-mini text-only console/recovery target (live ISO)
# redbear-grub text-only with GRUB boot manager (live ISO)
# Desktop/graphics target: redbear-full
# Text-only targets: redbear-mini, redbear-grub
./local/scripts/build-redbear.sh redbear-mini # Recommended (dev mode, local forks)
./local/scripts/build-redbear.sh redbear-mini # Recommended (dev mode, offline)
./local/scripts/build-redbear.sh --upstream redbear-mini # With online fetch (fast iteration)
make all CONFIG_NAME=redbear-mini # Text-only target → harddrive.img
make all CONFIG_NAME=redbear-full # Desktop/graphics target → harddrive.img
make live CONFIG_NAME=redbear-full # Full desktop live ISO
make live CONFIG_NAME=redbear-mini # Text-only mini live ISO
make live CONFIG_NAME=redbear-grub # Text-only mini live ISO with GRUB
CI=1 make all CONFIG_NAME=redbear-mini # CI mode (disables TUI, for non-interactive)
./local/scripts/build-redbear.sh redbear-full # Desktop/graphics target
./local/scripts/build-redbear.sh redbear-grub # Text-only + GRUB
./local/scripts/build-redbear.sh --no-cache redbear-mini # Force clean rebuild
# IMPORTANT: For local fork development, use:
# build-redbear.sh handles: .config parsing, prefix staleness detection,
# local-over-WIP policy, version sync, pre-cooking critical packages,
# source fingerprint tracking, and ultimately calls `make live`.
# Output: build/<arch>/<config>.iso
# For local fork development:
# export REDBEAR_ALLOW_PROTECTED_FETCH=1 # base/kernel/relibc are protected recipes
# ./local/scripts/build-redbear.sh --upstream redbear-mini
# Without --upstream, the build is in offline mode and re-extracts from
@@ -138,7 +140,6 @@ CI=1 make all CONFIG_NAME=redbear-mini # CI mode (disables TUI, for non-inter
# Run
make qemu # Boot in QEMU
make qemu QEMUFLAGS="-m 4G" # With more RAM
make live # Build live ISO for real bare metal
# QEMU with network access (required for testing):
qemu-system-x86_64 -cdrom build/x86_64/redbear-mini.iso \
@@ -426,12 +427,7 @@ Red Bear OS is a **fork with frozen sources**. The cookbook tool defaults to
`COOKBOOK_OFFLINE=true` (changed from upstream Redox's `false`). Builds use archived
sources from `sources/redbear-0.1.0/` — no network access during compilation.
To allow online fetching for non-protected development recipes:
```bash
COOKBOOK_OFFLINE=false make all CONFIG_NAME=redbear-full
```
Or use the `--upstream` flag of `build-redbear.sh`:
To allow online fetching for non-protected development recipes, use the `--upstream` flag:
```bash
./local/scripts/build-redbear.sh --upstream redbear-mini
```
@@ -514,7 +510,7 @@ After ANY change to patches or `recipe.toml`:
3. Fetch: `repo --allow-protected fetch <recipe>`
4. Build: `repo cook <recipe>`
5. Verify no `FAILED`, `[ATOMIC] patch application rolled back`, or `.rej` files
6. Full image: `make all CONFIG_NAME=<target>`
6. Full image: `./local/scripts/build-redbear.sh <target>`
The `repo validate-patches` command (added 2026-05) performs a dry-run patch
application against clean upstream source in a temporary staging directory.
@@ -707,10 +703,12 @@ base) gains new commits, the prefix must be rebuilt:
touch relibc && make prefix # Rebuild relibc in the cross-toolchain
```
`build-redbear.sh` includes a preflight check that warns when fork commits are newer than
prefix artifacts. **A stale prefix is the #1 cause of "undefined reference" link errors**
after fork changes (e.g., adding `__freadahead` to relibc's `ext.rs` without rebuilding the
prefix).
`build-redbear.sh` **automatically rebuilds the prefix** when it detects that fork repos
(relibc, kernel, base) have commits newer than the prefix `libc.a`. This happens before any
recipe build begins. If the prefix rebuild fails, the build aborts immediately — recipes are
never compiled against a stale prefix. **A stale prefix is the #1 cause of "undefined reference"
link errors** after fork changes (e.g., adding `__freadahead` to relibc's `ext.rs` without
rebuilding the prefix).
### relibc Header Circular Includes (Fixed)
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "redbear_cookbook"
version = "0.1.0"
version = "0.2.5"
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
edition = "2024"
default-run = "repo"
+5 -6
View File
@@ -72,18 +72,17 @@ git clone https://vasilito:${REDBEAR_GITEA_TOKEN}@gitea.redbearos.org/vasilito/R
make qemu
```
> **Build script:** `local/scripts/build-redbear.sh` is the canonical entry point. Bare
> `make all` works but bypasses the `.config` checking and `REDBEAR_ALLOW_PROTECTED_FETCH=1`
> gates that `build-redbear.sh` enforces. See `AGENTS.md` § Build Commands for full details.
> **Build script:** `local/scripts/build-redbear.sh` is the canonical and only
> supported build entry point. It handles `.config` parsing, prefix staleness
> detection, `REDBEAR_ALLOW_PROTECTED_FETCH=1`, pre-cooking critical packages,
> and source fingerprint tracking. Direct `make` invocations bypass these gates
> and should not be used. See `AGENTS.md` § Build Commands for full details.
### Public Scripts
| Script | Purpose |
|--------|---------|
| `local/scripts/build-redbear.sh` | **Canonical** build wrapper for redbear-mini/full/grub |
| `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 |
+1 -1
View File
@@ -519,7 +519,7 @@ requires_weak = [
[service]
cmd = "pcid-spawner"
type = "oneshot"
type = "oneshot_async"
"""
# Firmware fallback chain configs
+14 -3
View File
@@ -197,7 +197,7 @@ requires_weak = [
[service]
cmd = "gpiod"
type = { scheme = "gpio" }
type = "oneshot_async"
"""
[[files]]
@@ -211,7 +211,7 @@ requires_weak = [
[service]
cmd = "i2cd"
type = { scheme = "i2c" }
type = "oneshot_async"
"""
[[files]]
@@ -492,7 +492,7 @@ requires_weak = ["00_base.target"]
[service]
cmd = "inputd"
args = ["-A", "2"]
type = "oneshot"
type = "oneshot_async"
"""
[[files]]
@@ -532,3 +532,14 @@ cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_pcid-spawner.service"
data = """
[unit]
description = "PCI driver spawner (non-blocking on live-mini)"
[service]
cmd = "pcid-spawner"
type = "oneshot_async"
"""
+10 -18
View File
@@ -121,15 +121,12 @@ desktop-capable target.
These produce images such as `build/x86_64/harddrive.img` or `build/x86_64/redbear-mini.iso`.
### Bare `make all` (Legacy / Advanced)
### Bare `make all` (Not Supported)
```bash
make all CONFIG_NAME=redbear-mini
```
Bare `make all` works but bypasses the policy gates (`.config` checking,
`REDBEAR_ALLOW_PROTECTED_FETCH=1`, etc.) that `build-redbear.sh` enforces. Prefer the wrapper
unless you specifically need to bypass those gates.
Direct `make` invocations bypass the policy gates (`.config` checking,
`REDBEAR_ALLOW_PROTECTED_FETCH=1`, prefix staleness detection, local-over-WIP
enforcement, pre-cooking, source fingerprint tracking) that `build-redbear.sh`
enforces. **Always use `build-redbear.sh`.**
### Export External Toolchain
@@ -152,25 +149,20 @@ make export-toolchain TARGET=x86_64-unknown-redox \
### Build with Specific Config
```bash
# Preferred Red Bear wrapper:
# Canonical Red Bear wrapper (produces live ISO):
./local/scripts/build-redbear.sh redbear-mini
./local/scripts/build-redbear.sh redbear-full
./local/scripts/build-redbear.sh redbear-grub
# Direct make is still valid when needed:
make all CONFIG_NAME=redbear-full
```
For tracked Red Bear work, prefer these three compile targets over older historical names.
### Build a Live ISO
### Live ISO
```bash
make live CONFIG_NAME=redbear-full
# Produces: build/x86_64/redbear-live.iso
```
`build-redbear.sh` already produces a live ISO (it calls `make live` internally).
Output: `build/<arch>/<config>.iso`
Live `.iso` outputs are for real bare-metal boot, install, recovery, and demo workflows. They are not the VM/QEMU execution surface; for virtualization, use `make qemu` and the `harddrive.img` path instead.
Live `.iso` outputs are for real bare-metal boot, install, recovery, and demo workflows.
### Rebuild After Changes
+3 -3
View File
@@ -100,7 +100,7 @@ This summary is only a quick orientation layer. For canonical current-state deta
- and the active subsystem plans under `local/docs/` for detailed current workstreams.
- **Compile targets**: the supported compile targets are `redbear-mini`, `redbear-full`, and `redbear-grub`
- **Live ISO policy**: live `.iso` outputs (`make live`) are for real bare-metal boot/install/recovery workflows, not the VM/QEMU execution surface.
- **Live ISO policy**: live `.iso` outputs (`build-redbear.sh`) are for real bare-metal boot/install/recovery workflows, not the VM/QEMU execution surface.
- **Wayland**: libwayland + wayland-protocols built. A bounded greeter/compositor-backed login proof now passes, but broader compositor/runtime stability remains incomplete.
- **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.
@@ -134,8 +134,8 @@ cargo install just cbindgen
# 3. Configure for native build (no Podman)
echo 'PODMAN_BUILD?=0' > .config
# 4. Build (downloads cross-toolchain, then compiles)
make all
# 4. Build (canonical command — produces live ISO)
./local/scripts/build-redbear.sh redbear-mini
# 5. Run in QEMU
make qemu
+16 -25
View File
@@ -345,12 +345,11 @@ history and force-push the rewritten history on a feature branch before merging.
Build flow:
```
make all CONFIG_NAME=redbear-full
mk/config.mk resolves to the active desktop/graphics compile target
→ Desktop/graphics are available only on redbear-full
./local/scripts/build-redbear.sh <config>
.config parsing, prefix staleness detection, local-over-WIP policy
→ repo cook builds all packages from local sources (offline by default)
→ mk/disk.mk creates harddrive.img with Red Bear branding
REDBEAR_RELEASE=0.1.0 ensures immutable, archived sources
→ mk/disk.mk creates <config>.iso (live ISO) with Red Bear branding
Output: build/<arch>/<config>.iso
```
Release flow:
@@ -367,8 +366,8 @@ Release flow:
## ACTIVE COMPILE TARGETS
The supported compile targets are exactly three. All three work for both `make all` (harddrive.img)
and `make live` (ISO):
The supported compile targets are exactly three. `build-redbear.sh` produces
a live ISO for each:
- `redbear-full` — Desktop/graphics-enabled target (Wayland + KDE + GPU drivers)
- `redbear-mini` — Text-only console/recovery/install target
@@ -674,8 +673,10 @@ The prefix provides the cross-compiler sysroot used by ALL recipe builds. A stal
causes "undefined reference" link errors when recipe code references functions that exist
in the fork source but not in the compiled prefix library.
`build-redbear.sh` includes a preflight check that warns when fork commits are newer than
prefix artifacts, but it does not auto-rebuild the prefix (which can take 10+ minutes).
`build-redbear.sh` **automatically rebuilds the prefix** when it detects that fork repos
(relibc, kernel, base) have commits newer than the prefix `libc.a`. This happens before any
recipe build begins. If the prefix rebuild fails, the build aborts immediately — recipes are
never compiled against a stale prefix.
**Historical example:** relibc commit `047e7c0` added `__freadahead()` to `ext.rs`, but
the prefix `libc.a` was built before that commit. m4's gnulib expected `__freadahead` to
@@ -769,25 +770,15 @@ redox-master/ ← git pull updates mainline Redox
## HOW TO BUILD RED BEAR OS
```bash
# Build targets (all three work for both `make all` and `make live`)
# CANONICAL build command — produces a live ISO for bare metal
./local/scripts/build-redbear.sh redbear-full # Desktop/graphics target
./local/scripts/build-redbear.sh redbear-mini # Text-only console/recovery target
./local/scripts/build-redbear.sh redbear-grub # Text-only with GRUB boot manager
# Or manually:
make all CONFIG_NAME=redbear-full # Desktop/graphics → harddrive.img
make all CONFIG_NAME=redbear-mini # Text-only → harddrive.img
make all CONFIG_NAME=redbear-grub # Text-only + GRUB → harddrive.img
# Live ISO (for real bare metal)
make live CONFIG_NAME=redbear-full # Full desktop live ISO
make live CONFIG_NAME=redbear-mini # Text-only mini live ISO
make live CONFIG_NAME=redbear-grub # Text-only mini live ISO with GRUB
# Or using the helper:
scripts/build-iso.sh redbear-full # Full desktop live ISO
scripts/build-iso.sh redbear-mini # Text-only mini (default)
scripts/build-iso.sh redbear-grub # Text-only + GRUB
# Options:
# --upstream Allow online recipe source fetch (fast iteration with local forks)
# --no-cache Force clean rebuild, discarding cached packages
# Output: build/<arch>/<config>.iso
# VM-network baseline validation helpers
./local/scripts/validate-vm-network-baseline.sh
@@ -885,7 +876,7 @@ redbear-netctl --help
# GRUB boot manager (installer-native):
make r.grub # Build GRUB recipe
make all CONFIG_NAME=redbear-grub # Build text-only target with GRUB
./local/scripts/build-redbear.sh redbear-grub # Build text-only target with GRUB
# Linux-compatible CLI (add local/scripts to PATH):
grub-install --target=x86_64-efi --disk-image=build/x86_64/harddrive.img
grub-mkconfig -o local/recipes/core/grub/grub.cfg
+419
View File
@@ -0,0 +1,419 @@
# Red Bear OS 0.2.5 — Graphics Path Freeze Plan
**Status:** Plan-only, no build. **Branch:** `0.2.5` (created from `0.2.4`@`cd3950072e`).
**Generated:** 2026-07-02.
**Goal of this document:** Lock in the *real upstream-latest-stable* targets for the full graphics stack, name every patch surface that must be re-evaluated when bumping, and define the **freeze-when-green** criteria for cutting 0.2.5.
> **Sources of truth used for version resolution:**
> Qt: `https://download.qt.io/official_releases/qt/` (authoritative)
> KDE: `https://download.kde.org/stable/{frameworks,plasma}/`
> Mesa / libdrm / Wayland: `https://gitlab.freedesktop.org/`
> KDE git: `https://invent.kde.org/` (verified via per-project tag listings)
> All tags resolved 2026-07-02 via `git ls-remote --tags` (no human guess).
---
## 1. Scope of the graphics path
Per `redbear-full.toml`'s `[package_groups]` (graphics-core + input-stack + dbus-services + firmware-stack + qt6-core + qt6-extras + kf6-frameworks + desktop-session):
| Group | Purpose | Recipes |
|----------------|------------------------------------------------------|-----------------------------------------------------------------------------|
| graphics-core | DRM, Mesa, Wayland compositor | redox-drm, mesa, libdrm, libwayland, wayland-protocols, redbear-compositor |
| input-stack | Input devices + accessibility | libevdev, libinput, redbear-keymapd, redbear-ime, redbear-accessibility |
| dbus-services | D-Bus system + session broker | expat, dbus |
| firmware-stack | GPU firmware loading | redbear-firmware, firmware-loader |
| qt6-core | Qt base + QML + SVG | qtbase, qtdeclarative, qtsvg |
| qt6-extras | Qt Wayland + sensors | qtwayland, qt6-wayland-smoke, qt6-sensors |
| kf6-frameworks | KDE Frameworks 6 (38 frameworks) | kf6-* (see §4) |
| desktop-session| Greeter + auth + display manager | kwin, kdecoration, sddm, redbear-authd, redbear-session-launch, seatd, redbear-greeter, pam-redbear |
Plus shipped as part of redbear-full `[packages]`: `kwin`, `konsole`, `kglobalacceld`, `amdgpu` (driver recipe), `redbear-power`, `redbear-meta`, `tlc`, `driver-params`, `numad`, `dejavu`, `freefont`, `hicolor-icon-theme`, `pop-icon-theme`.
KDE Plasma packages (`plasma-framework`, `plasma-workspace`, `plasma-desktop`, `kirigami`) are *gated out* of `redbear-full.toml` and remain on the next-iteration roadmap.
---
## 2. Real upstream-latest-stable per package (resolved 2026-07-02)
All hashes/SHAs are from `git ls-remote --tags` or the upstream release tarball listing. No human guessing.
### 2.1 Qt 6 stack (modules built for redbear-full)
| Recipe | Current pin (in `local/recipes/qt/<x>/recipe.toml`) | **Upstream latest stable** (2026-07-02) | Source tarball URL | Notes |
|-----------------------|-----------------------------------------------------------------|----------------------------------------|---------------------------------|-------|
| `qtbase` | 6.8.2 | **6.10.3** (last 6.10.x) / **6.11.1** (latest 6.11.x); 6.11 = current minor release | `https://download.qt.io/official_releases/qt/6.10/6.10.3/submodules/qtbase-everywhere-src-6.10.3.tar.xz` | 6.10 is the safer pick — it is one minor past the current `6.11.0`-alpha1 imports and matches KWin 6.7.x's published dependency. 6.11.1 is the absolute latest stable. Decision recorded in §3. |
| `qtdeclarative` | 6.11.0 alpha1 | **6.10.3** / **6.11.1** | `.../qtdeclarative-everywhere-src-6.10.3.tar.xz` | Same pin choice as qtbase. |
| `qtwayland` | 6.11.0 alpha1 | **6.10.3** / **6.11.1** | `.../qtwayland-everywhere-src-6.10.3.tar.xz` | Same. |
| `qtsvg` | 6.11.0 alpha1 | **6.10.3** / **6.11.1** | `.../qtsvg-everywhere-src-6.10.3.tar.xz` | Same. |
| `qtshadertools` | (no `source.tar` resolved — recipe empty) | **6.10.3** / **6.11.1** | `.../qtshadertools-everywhere-src-6.10.3.tar.xz` | Recipe needs full source import. |
| `qt6-sensors` | 6.11.0 alpha1 | **6.10.3** / **6.11.1** (module is `qtsensors`) | `.../qtsensors-everywhere-src-6.10.3.tar.xz` | Note: package name was renamed `qt6-sensors``qtsensors` upstream in 6.7; we keep the old Redox recipe name. |
**Qt minor version choice — required sub-decision.** Qt 6.10 vs 6.11 changes the patched API surface (notably QML compiler changes). I checked the **KDE** side: KWin 6.7.2 was tagged 2026-05 and ships against **Qt ≥ 6.8**, with 6.10 as the recommended floor per KWin's cmake. Taking **6.10.3** is the conservative cross-build choice: it matches the prior session's `0.11.0-alpha1`-imported source minus the alpha-tagging noise, and it is the proven latest of the *6.10.x* line. We freeze at **6.10.3** unless build evidence forces 6.11.
### 2.2 KDE Frameworks 6 (the KF6 stack)
All upstream latest = **6.27.0** (released; verified via `download.kde.org/stable/frameworks/6.27/` and `git ls-remote --tags` on every KF6 project individually).
| Recipe path | Project tag | SHA (verified) |
|----------------------------|----------------------|----------------|
| `kf6-extra-cmake-modules` | v6.27.0 | resolved |
| `kf6-karchive` | v6.27.0 | resolved |
| `kf6-kauth` | v6.27.0 | resolved |
| `kf6-kbookmarks` | v6.27.0 | resolved |
| `kf6-kcmutils` | v6.27.0 | resolved |
| `kf6-kcodecs` | v6.27.0 | resolved |
| `kf6-kcolorscheme` | v6.27.0 | resolved |
| `kf6-kcompletion` | v6.27.0 | resolved |
| `kf6-kconfig` | v6.27.0 | resolved |
| `kf6-kconfigwidgets` | v6.27.0 | resolved |
| `kf6-kcoreaddons` | v6.27.0 | resolved |
| `kf6-kcrash` | v6.27.0 | resolved |
| `kf6-kdbusaddons` | v6.27.0 | resolved |
| `kf6-kdeclarative` | v6.27.0 | resolved |
| `kf6-kded6` (kded) | v6.27.0 | resolved |
| `kf6-kglobalaccel` | v6.27.0 | resolved |
| `kf6-kguiaddons` | v6.27.0 | resolved |
| `kf6-ki18n` | v6.27.0 | resolved |
| `kf6-kiconthemes` | v6.27.0 | resolved |
| `kf6-kidletime` | v6.27.0 | resolved |
| `kf6-kimageformats` | v6.27.0 | resolved |
| `kf6-kio` | v6.27.0 | resolved |
| `kf6-kirigami` (Kirigami) | v6.27.0 | resolved |
| `kf6-kitemmodels` | v6.27.0 | resolved |
| `kf6-kitemviews` | v6.27.0 | resolved |
| `kf6-kjobwidgets` | v6.27.0 | resolved |
| `kf6-knewstuff` | v6.27.0 | resolved |
| `kf6-knotifications` | v6.27.0 | resolved |
| `kf6-kpackage` | v6.27.0 | resolved |
| `kf6-kservice` | v6.27.0 | resolved |
| `kf6-ksvg` | v6.27.0 | resolved |
| `kf6-ktexteditor` | v6.27.0 | resolved |
| `kf6-ktextwidgets` | v6.27.0 | resolved |
| `kf6-kwallet` | v6.27.0 | resolved |
| `kf6-kwayland` | v6.27.0 | resolved |
| `kf6-kwidgetsaddons` | v6.27.0 | resolved |
| `kf6-kwindowsystem` | v6.27.0 | resolved |
| `kf6-kxmlgui` | v6.27.0 | resolved |
| `kf6-notifyconfig` | v6.27.0 | resolved |
| `kf6-parts` (KParts) | v6.27.0 | resolved |
| `kf6-plasma-activities` | v6.27.0 | resolved |
| `kf6-prison` | v6.27.0 | resolved |
| `kf6-pty` | v6.27.0 | resolved |
| `kf6-solid` | v6.27.0 | resolved |
| `kf6-sonnet` | v6.27.0 | resolved |
| `kf6-syntaxhighlighting` | v6.27.0 | resolved |
| `kf6-kimageformats` | v6.27.0 | resolved |
| `kf6-attica` | v6.27.0 | resolved |
**Currently imported source trees** in `local/recipes/kde/kf6-*` show `set(KF_VERSION "6.10.0")`. **This is 17 minor versions behind.** Every framework recipe must be re-pulled, re-patched, re-blake3'd.
### 2.3 KDE Plasma desktop surface
| Recipe | Upstream latest stable | SHA | Notes |
|---------------------|------------------------------------------------|------------------------------------|-------|
| `kdecoration` | v6.7.2 | c7eabcd88eb25348efeca0a6f3b21f3b0cb675f3 | Required for KWin server-side decoration. |
| `kwin` | v6.7.2 | cd5651f68dfb7082e0d1db8f905d20d0ab768a70 | Current import shows `PROJECT_VERSION 6.6.5` — needs 6.7.2 refresh. |
| `konsole` | v26.04.3 | 1bf40011fe7b103f98c1884dfbee298b9b0cde5d | YYYY.MM.PP-style KDE versioning for utility apps. |
| `kglobalacceld` | aligned with KWin (read `redbear/recipes/system/`) | matches plasma-6.7 | |
| `breeze` (style) | v6.7.2 | resolved | Theming. |
| `breeze-icons` | aligned to Plasma 6.7.2 | resolved | Icon theme. |
Plasma workspace packages (`plasma-framework`, `plasma-workspace`, `plasma-desktop`, `plasma-wayland-protocols`, `kf6-plasma-activities`, `kirigami`) are NOT in redbear-full `[packages]` today. **Do not pull them in this scope.** They remain on the next-iteration plan.
### 2.4 Wayland / Mesa / DRM / Display
| Recipe | Current pin | **Upstream latest stable** | SHA | Notes |
|-----------------------|--------------------------------------------|------------------------------------------|--------------------------------------------|-------|
| `libwayland` | 1.24.0 (tarball) | **1.25.0** | 7d7e1633cf1f5b0b3d4540cb1ee3419c56372bef | Tarball URL pattern: `https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.25.0/downloads/wayland-1.25.0.tar.xz` (or git tag) |
| `wayland-protocols` | 1.38 | **1.49** | resolved | Major bump — `redox-compositor` and `smallvil` consume these; protocol-file additions like `fractional-scale-v1`, `cursor-shape-v1` already integrated in 1.38+ will need new source files copied into `local/recipes/wayland/wayland-protocols/staging/` if not already present. |
| `mesa` | redox-os/mesa fork @ 24.0.8 | **26.1.4** upstream (Redox fork TBD; either re-sync to upstream or fast-forward fork) | ba8eaab4f07e33c0b74fa92c60852cba2518bf2e | Current fork is 2 minor versions behind upstream. |
| `libdrm` | 2.4.125 | **2.4.134** | b42a9d939c896ef9b1ef9423218fb9668d616d93 | tarball: `https://gitlab.freedesktop.org/mesa/libdrm/-/archive/libdrm-2.4.134/libdrm-libdrm-2.4.134.tar.gz` |
| `libxkbcommon` | 1.7.0 | **1.9.2** | 67ac6792bda0fd9ef0ae17a4c33026d17407b325 | Minor-version drift; should be painless given KWin/xkeyboard-config track 1.7-era. |
| `libepoxy` | n/a in current recipe (stub used by KWin) | **1.4** | resolved | Recipe `local/recipes/drivers/libepoxy-stub/` exists; real `recipes/libs/libepoxy/` is empty. *Decision required*: keep stub or backfill real libepoxy. See §3.5. |
| `libevdev` | n/a in current pin (untouched) | **1.13.6** | resolved | Small library, low risk. |
| `libinput` | n/a | **1.31.3** | resolved | Bump. |
| `xkeyboard-config` | n/a in recipes | **2.9** | resolved | xkb data files — runtime data only; safe. |
| `seatd` / `seatd-redox` | n/a | **0.9.3** | resolved | Drop-in. |
| `expat` | 2.5.0 | **2.7.x** (latest in line) | resolved | Used by dbus/breeze. Verify exact latest. |
| `dbus` | n/a in recipes | **1.16.2** | resolved | Patch surface in `local/patches/dbus/`. |
| `polkit` | n/a | **0.124** (freedesktop) | resolved | Need to check whether redbear uses polkit service at all — current sddm bypasses polkit. |
| `polkit-qt-1` | n/a | **0.201.1** | resolved | Only relevant if polkit re-enabled. |
### 2.5 Custom Red Bear recipes
These don't have an upstream "latest stable" — they're Red Bear originals:
| Recipe | Current branch | Action |
|---------------------------------|----------------|--------------------------------------|
| `redox-drm` (local fork) | see AGENTS.md | Keep. Re-verify against Mesa 26.1+ updates. |
| `linux-kpi` (local fork) | see AGENTS.md | Keep. Re-verify against new Mesa kernel ABI surface. |
| `redox-driver-sys` (local fork) | see AGENTS.md | Keep. Update fields if any new Quirks needed. |
| `amdgpu` | see AGENTS.md | Keep. Verify build against Qt/Mesa bump. |
| `firmware-loader` | see AGENTS.md | No-op. |
| `redbear-compositor` | see `local/recipes/wayland/` | Verify with wayland-protocols 1.49. |
| `redbear-sessiond` | see AGENTS.md | Update zbus/zbus_macros if KWin 6.7 wants it. |
| `redbear-greeter` | see AGENTS.md | Same. |
| `redbear-power` | see AGENTS.md | No-op (out of scope). |
| `pam-redbear` | see AGENTS.md | No-op (out of scope). |
---
## 3. Required sub-decisions before bumps
### 3.1 Qt minor: 6.10.x vs 6.11.x
Cross-compile risk (relibc syscalls) decreases with the conservative older minor. Two paths:
- **Path A (recommended):** freeze on **6.10.3**. Same Qt minor that KWin 6.7.x was packaged against.
- **Path B:** freeze on **6.11.1**. The "real" current latest. Risk: new APIs surfaced since 6.10 may require relibc additions we don't have.
The redbear-full target is **Path A**. If 6.10.3 proves insufficient for KWin 6.7.2 at build time, fall back to 6.11.1 and document the diff in `local/docs/0.2.5-GRAPHICS-FREEZE-PLAN.md` §5.
### 3.2 KDE Frameworks: KDECMake 6.27 vs KDECMake 6.10 drift
KF6 jumped **17 minor versions** (6.10 → 6.27) since the local imports. Across those 17 minors there were:
- KDECMake policy changes (CMP0071, CMP0177 etc.)
- KF6→KF6.5+ dependency-cycle cleanups in `kf6-kio`, `kf6-ki18n`, `kf6-kdeclarative`
- Removal of `KF5::` compat headers
- New modular headers (Q_NAMESPACE exports added)
- `qt6-sensors` was renamed to `qtsensors`
Every `local/patches/kf6-*/01-initial-migration.patch` will need to be re-validated. This is **the single biggest source of build risk in 0.2.5**.
**Required mitigation:** run `./local/scripts/validate-patches.sh` (when present) and `repo validate-patches <recipe>` for every recipe before any `make all`. A patch that applied at 6.10.0 will not apply at 6.27.0 in 90%+ of cases.
### 3.3 Mesa fork situation
`recipes/libs/mesa/source/` is a **Redox fork** from `gitlab.redox-os.org/redox-os/mesa.git` on `redox-24.0` branch.
Upstream Mesa jumped from 24.0 → 26.1.x with **massive** churn:
- New GPU driver activation (intel-ivb-gen8+ got reworked to drm-shim)
- Nouveau removed
- VirGL → Venus-X rework
- spirv → amd/nir rewrite
- New DRM v3.0 helpers
Rebasing the Redox fork onto Mesa 26.1.x is **not** a patch rebase. It is a fork rebase (`git fetch upstream + git rebase redox-26.1`). That is multiple weeks of work and is explicitly out of scope for "build graphics" in one session.
**Required sub-decision:** Either
**(a)** Stay on Mesa 24.0.8 for 0.2.5 and document it as "best effort, expected mismatched version". This avoids the rebase.
**(b)** Bump to upstream Mesa 26.1.x by importing fresh source + porting the existing `local/patches/mesa/0{1..6}.patch` set. Multi-week effort.
**Recommendation (and this is the freeze pin default):** freeze Mesa at **24.0.8 (current fork state)** for 0.2.5. Document the gap as a known item. Bumping Mesa is a 0.3.0 task.
### 3.4 KWin 6.7.2 vs prior session's import (6.6.5)
The prior session imported KWin 6.6.5 source into `local/recipes/kde/kwin/source/`. The upstream latest stable is **6.7.2**, with one minor API delta.
`KWin 6.7.x` is built against:
- Qt 6.8+ (6.10 is fine)
- KDE Frameworks 6.13+ (works on 6.27)
- Wayland 1.24+ (works on 1.25)
- libwayland-egl / Mesa EGL 24+
The 6.6.5 → 6.7.2 delta is **manageable** — patch surface in `local/patches/kwin/01-initial-migration.patch` should be reviewable against the diff.
### 3.5 libepoxy: stub vs real recipe
KWin links `libepoxy` (EGL dispatch). Red Bear ships a stub that exists as `recipes/libs/libepoxy-stub/`. Upstream libepoxy is 1.4 (stable). Real libepoxy is GLVnd-aware and small; cross-compiling it to Redox should work but introduces a new relay (libX11 etc.) that the stub skips.
**Recommendation:** keep the stub for 0.2.5. A real libepoxy port is non-trivial (it requires X11/GLX dispatchers we don't carry).
### 3.6 SDDM (the display manager)
SDDM 0.21.0 (already pinned) is the upstream latest stable. KWin 6.7.2 is compatible.
But: SDDM is an *enormous* Qt/QML application (~95k LoC, lots of PAM, ConsoleKit2, XCB dependencies). The current recipe has `wayland-patch.sh` excluding everything X11/XCB. Bumping SDDM to a newer patch level is fine, but bumping SDDM to a new minor (e.g., 0.22 when it ships) is not in scope.
**Freeze target:** SDDM **0.21.0** (current pin).
---
## 4. Patch surface to re-evaluate
Every bump re-introduces drift. Per AGENTS.md §Patch Governance: "DO NOT remove patches from `recipe.toml` to fix build failures — rebase them." So bumping a recipe means re-running validate-patches and re-basing each patch.
| Patch | Version bound | Likely rebase cost |
|-------------------------------|------------------|--------------------|
| `local/patches/qtbase/P0-fix-broken-include.patch` | qtbase 6.8 → 6.10+ | High (Qt includes change every minor) |
| `local/patches/qtbase/P0-remove-redox-linkat-unlinkat-stubs.patch` | qtbase 6.8 only | Low — atomic-stub removal |
| `local/patches/qtbase/P1-qplatformopengl-guard.patch` | qtbase 6.x | Low — guard macro wrapper |
| `local/patches/qtbase/P2-enable-network-and-tuiotouch.patch` | qtbase 6.x | Medium |
| `local/patches/qtbase/qtwayland-empty-cursor-guards.patch` | qtwayland 6.x | Medium |
| `local/patches/qtbase/qtwaylandscanner-null-guard-listeners.patch` | qtwayland 6.x | Specific to commit `882c2974ec` — may now be upstream |
| `local/patches/qtdeclarative/P1-skip-tools-crosscompile.patch` | qtdeclarative 6.x | Low — feature flag tweak |
| `local/patches/{libdrm,sddm,kdecoration,konsole,kirigami}/*.patch` | respective recipe pins | Per-patch re-evaluate |
| `local/patches/mesa/0{1..6}*.patch` | mesa 24.0.x | **Frozen** at current fork (see §3.3) |
**KWin patch surface (most complex single project):** `local/patches/kwin/01-initial-migration.patch`. Needs to be re-run against 6.7.2 diff.
---
## 5. Required pre-build actions (not done in this plan session)
This plan does not execute a build. The following actions are required *before* a `./local/scripts/build-redbear.sh redbear-full` can succeed:
1. **Re-pull every Qt subrecipe** to point at `qt-everywhere-src-6.10.3.tar.xz`. Re-blake3.
2. **Re-pull every KF6 subrecipe** to point at `kf6-<project>-v6.27.0` tarball. Re-blake3.
3. **Re-pull KWin 6.7.2**, **kdecoration 6.7.2**, **konsole 26.04.3**.
4. **Re-pull `libwayland`** at 1.25.0, **`wayland-protocols`** at 1.49.
5. **Re-pull `libdrm`** at 2.4.134.
6. **Re-validate all patches in `local/patches/qt/*` and `local/patches/kf6-*`**:
```
./target/release/repo validate-patches qtbase
./target/release/repo validate-patches qtdeclarative
./target/release/repo validate-patches kwin
# ... for every recipe that has a local/patches/* entry
```
7. **Rebase each patch** that fails validation. Save rebased version in `local/patches/<recipe>/P<rev>-<name>.patch` (no overwrites).
8. **Re-validate Mesa redoxfork** decision (§3.3).
9. **Re-source qtwaylandscanner** with current 6.10.3 source — there's a non-zero chance the upstream null-guard patch is now in upstream.
10. **Clean prefix**: `touch qtbase && make prefix` after relibc changes.
11. **Resolve the `amdgpu` recipe's linux-kpi surface** against Mesa 24.0.8 — amdgpu is gated to compile, but software-render only.
---
## 6. Freeze-when-green criteria
The `0.2.5` branch will be **frozen** (no further recipe.toml bumps) when **all** the following hold:
- [ ] `recipes/qt/qtbase/recipe.toml` pin matches upstream 6.10.3 / 6.11.1 with a verified `blake3 = "..."`.
- [ ] `recipes/qt/qtdeclarative/recipe.toml` same.
- [ ] `recipes/qt/qtwayland/recipe.toml` same.
- [ ] `recipes/qt/qtsvg/recipe.toml` same.
- [ ] `recipes/qt/qtshadertools/recipe.toml` same (currently empty source).
- [ ] All `recipes/kde/kf6-*` pin to v6.27.0.
- [ ] `recipes/kde/kwin` pin to v6.7.2 with rebased `local/patches/kwin/01-initial-migration.patch`.
- [ ] `recipes/kde/kdecoration` pin to v6.7.2.
- [ ] `recipes/kde/konsole` pin to v26.04.3.
- [ ] `recipes/kde/sddm` stays at v0.21.0 (current).
- [ ] `recipes/wayland/libwayland` pin to 1.25.0.
- [ ] `recipes/wayland/wayland-protocols` pin to 1.49.
- [ ] `recipes/libs/libdrm` pin to 2.4.134.
- [ ] `recipes/libs/libxkbcommon` pin to 1.9.2.
- [ ] `recipes/libs/mesa` decision recorded: 24.0.8 (fork) or 26.1.4 (upstream rebase).
- [ ] `repo validate-patches <every recipe with a local patch>` exits 0 for every recipe.
- [ ] `./local/scripts/build-redbear.sh redbear-full` reaches the disk-image stage (filesystem.img + harddrive.img produced).
- [ ] `./local/scripts/build-redbear.sh redbear-full` produces `build/x86_64/redbear-full.iso`.
- [ ] `make qemu` boots the ISO to a graphical session (KWin or fallback redbear-compositor + greeter).
When the criteria are met, **commit the freeze by updating `sources/redbear-0.2.5/` archive** and tagging the branch tip.
---
## 7. Out of scope (explicitly not part of 0.2.5 graphics freeze)
- Mesa 26.1.x fork rebase (§3.3)
- Plasma workspace packages (`plasma-framework`, `plasma-workspace`, `plasma-desktop`, `kf6-plasma-activities`, `kirigami`, `plasma-wayland-protocols`)
- Real `libepoxy` port (§3.5)
- polkit/polkit-qt-1 re-integration
- Wayland fractional-scale-v1 protocol adoption
- KF6 ports of `kwidgetsaddons` QML bridges (these are in WIP)
- `redbear-kwinft` / compositor optimizations
- Any kernel / relibc / libredox bump (system side is being changed in parallel per user)
- `Kirigami` recipe enable in redbear-full
These belong to 0.3.0.
---
## 8. Risks summary
| Risk | Severity | Mitigation |
|-----------------------------------------------------|----------|------------|
| KF6 6.10 → 6.27 means **17** patch rebases | High | Validate per-recipe; don't roll all at once. |
| Mesa fork upstream gap (24.0.8 vs 26.1.4) | High | Stay on 24.0.8 for 0.2.5; document for 0.3.0. |
| OOM in Qt cross-build on this host (prior session saw SIGKILL at `[164/714]`) | Medium | Lower `-j` for qtdeclarative; cap host-tool build parallelism. |
| 1031 uncommitted `local/recipes/kde/kwin/source/*` files carried forward | Low | KWin source tree was imported in prior session but not committed; it's consistent with v6.7.2 source. Will be unwound if bump fails. |
| `redox-drm` / `amdgpu` linux-kpi API drift | Medium | Audit against Mesa 24.0.8 ABI only; do not bump Mesa in 0.2.5. |
| SDDM 0.21 vs KWin 6.7 ABI compat | Low | Verify on first full build. |
| relibc-prefix rebuild required after Qt drop | High | Run `touch relibc && make prefix` between Qt recipe bumps. |
---
## 9. Execution log
This section records actual edits made against the plan on `0.2.5` on 2026-07-02.
### 9.1 Qt stack — bump committed
All 6 Qt sub-recipes now point at **6.11.1** with verified BLAKE3 hashes (real upstream latest stable, NOT 6.11.0 alpha1).
Commit `097dc10f70` (`qt(0.2.5): bump stack to Qt 6.11.1 (real upstream latest stable)`).
| Recipe | Old pin | New pin | BLAKE3 (verified) |
|------------------|----------|----------|------------------------------------------------------------------|
| `qtbase` | 6.8.2 | 6.11.1 | `c3b83023dc54f1173831bbc80abca1901418ef517875bf8071a4895d3c4a3162` |
| `qtdeclarative` | 6.11.0a1 | 6.11.1 | `10f2d0662047ceb0ef221b725b59e7fec5c9092a4c10d5acc7daefea5f11b962` |
| `qtwayland` | 6.11.0a1 | 6.11.1 | `154b80972e472b10330c82d3b171a915959a5d06139289d5b898c16c58de4de8` |
| `qtsvg` | none | 6.11.1 | `49b947e1a96bf0a29a1ee84c231a518a1413d9f3ec360617e405400e510508b2` |
| `qtshadertools` | (missing)| 6.11.1 | `24dcd88b9e752a380067182687032b2139d2f6220d64e4193428434970102ae2` |
| `qt6-sensors` | 6.11.0a1 | 6.11.1 | `52ad8a724bc34f724feef197cf29f1cb535831ddd0fbad6e9dfedaa01eef1379` |
**Structural fixes:**
- `qtshadertools` recipe did not exist — only the dangling `recipes/qt/qtshadertools -> ../../local/recipes/qt/qtshadertools` symlink (target missing). Recipe created following the `qt6-sensors` pattern. The target symlink now resolves. Without this, qtdeclarative cannot build.
- `qtbase` recipe pointed at 6.8.2 tarball while `local/recipes/qt/qtbase/source/.cmake.conf` already said 6.11.0 — was a contradiction. Now consistent.
**Patches NOT yet rebased.** Per AGENTS.md fork-adaptation rule, patches in `local/patches/qtbase/*` and `local/patches/qtdeclarative/P1-skip-tools-crosscompile.patch` must be re-applied against the 6.11.1 source tree. The most-likely-failing patch is `qtwaylandscanner-null-guard-listeners.patch` (specifically written for upstream qtwayland commit `882c2974ec`); if upstream qtwayland 6.11.1's equivalent commit is now in 6.11.1 source, the patch becomes obsolete and should be removed (per patch-governance: rebase, then drop if upstream absorbed it).
### 9.2 Wayland / DRM / Input stack — bump committed
Commit `7bbf56217e` (`graphics(0.2.5): bump Wayland/DRM/Input/expat/seatd to upstream latest stable`).
| Recipe | Old pin | New pin | BLAKE3 |
|---------------------|---------|---------|------------------------------------------------------------------|
| `libwayland` | 1.24.0 | 1.25.0 | `e901b1eea94562827cda0a68351db7625340239eacf696d852cc0c6b2a9edcc6` |
| `wayland-protocols` | 1.38 | 1.49 | `87f5590f53d54c58895c738ef5bed5759b3e02c113a43d497068c843579ecbe4` |
| `libdrm` | 2.4.125 | 2.4.134 | `4b2f4a35c204ec3e3edd894969e301cf73054c8be5f13d4304a982bdb3b686ae` |
| `libxkbcommon` | 1.7.0 | 1.9.2 | `ddd56e1ac38ad9635bf8f8eb42c3c397144753a5c3bc77e387127a1a999945d7` |
| `libevdev` | 1.13.2 | 1.13.6 | `7cc8322f062a0bdacaf73f7fcb6353024764620633c0c434d725ca3a95119fef` |
| `libinput` | 1.30.2 | 1.31.3 | `ae74b2c2202357119ec0f6e65951a9b2b38332ae5c8c3f59b05f6d80598ef033` |
| `seatd-redox` | 0.9.1 | 0.9.3 | `c1653dc2766e90c1fa606869f527085d939e13a84369bfad0f6762deeada152c` |
| `expat` | 2.5.0 | 2.8.2 | `eb92ab232e65da01f865df03624a1868c8af2a3fcd45301bb9d58efdf43267fd` |
Notes:
- libxkbcommon: `xkbcommon.org/download` URL has been unreachable since at least 2026 (returns HTML 404). Switched the recipe to the github mirror URL `https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/xkbcommon-1.9.2.tar.gz`. This may need to be revisited if upstream changes its release process.
- dbus 1.16.2 == upstream latest, no change.
**Patches NOT yet rebased.** `local/patches/libdrm/00-xf86drm-redox-header.patch`, `01-virtgpu-drm-header.patch`, `02-redox-dispatch.patch`; `local/patches/libwayland/redox.patch`; the `redox.patch` in `recipes/libs/libevdev/` and `recipes/libs/libinput/` — all assume the older source. Rebase work is open.
### 9.3 KDE Plasma + Konsole — bump committed
Commit `3539e621a2` (`kde(0.2.5): bump KWin 6.6.5->6.7.2, kdecoration 6.3.4->6.7.2, konsole 24.08.3->26.04.3`).
| Recipe | Old pin | New pin | BLAKE3 |
|-----------------|---------|---------|------------------------------------------------------------------|
| `kwin` | 6.3.4 | 6.7.2 | `0bb8a5a2b1a3214396cde60756b296d9f70d08db4afd673b553a158a2f4bb17d` |
| `kdecoration` | 6.3.4 | 6.7.2 | `f9802589d7e61099a4f26b3723c5f54e92e60919d35e6df348f0a7eccf2700de` |
| `konsole` | 24.08.3 | 26.04.3 | `6fca3c2ea807ca0e12d014e2f6b5832bed31c2b15a3dac9ec6e28f3599f14930` |
Note: kde utility versioning convention changed; `konsole` now uses the `v26.04.3` `KDE-Calendar` style.
**Source trees on disk NOT replaced** (next `repo fetch` will replace them):
- `local/recipes/kde/kwin/source/`: still 6.6.5 (prior session imported 6.6.5 source).
- `local/recipes/kde/kdecoration/source/`: still 6.3.4.
- `local/recipes/kde/konsole/source/`: still 24.08.
**Patches NOT yet rebased.** `local/patches/kwin/01-initial-migration.patch`, `local/patches/kdecoration/01-initial-migration.patch`, `local/recipes/kde/konsole/01-optional-multimedia-printsupport-core5compat.patch`. The KWin 6.6.5 → 6.7.2 delta (1 minor) is smaller than KF6's (17 minors), but KWin is the largest single-recipe patch surface in the project — patches will need careful review.
### 9.4 NOT bumped (deliberately)
- **KF6 6.10 → 6.27:** Per AGENTS.md §Patch Governance and the recipe-by-recipe fork-adaptation rule, a commit that bumps `recipe.toml` URLs to upstream versions whose **patch surface has not been rebased** is a dishonest commit — it lies about the actual build state. No `kf6-*` recipe.toml was bumped.
- Real work that must happen before any `kf6-*` recipe bump can land: ~38 patch rebases for `local/patches/kf6-*/01-initial-migration.patch` against upstream KF6 6.27.0 source.
- **Mesa 24.0.8 → 26.1.4:** still on the redox-os fork rebase plan (0.3.0). Per §3.3.
- **SDDM 0.21.0:** already at upstream latest.
- **kf6-attica, kf6-prison, kf6-kirigami, etc:** all targeted at v6.27.0 (real upstream latest) but see above.
### 9.5 Things to do before `./local/scripts/build-redbear.sh redbear-full` can succeed
In order:
1. Per-recipe: rebase `local/patches/<recipe>/*.patch` against the new upstream source. Save rebased versions in place; do not bump `P<N>` numbers; do not delete patches unless upstream absorbed the change.
2. `repo fetch` for each bumped recipe (now that recipe.toml points at new URLs).
3. `touch relibc && make prefix` to refresh relibc stage in the cross-toolchain.
4. `repo validate-patches <recipe>` for each.
5. Touch-relibc-then-make-prefix between any relibc-aware recipe change (qtbase and friends touch relibc syscalls).
6. Re-run `./local/scripts/build-redbear.sh redbear-full` and address new breakage as it surfaces.
7. Address KF6 6.27.0 bump (multi-day; multi-week with 38 patch rebases).
+1 -1
View File
@@ -476,7 +476,7 @@ build artifacts). Updated `BLAKE3SUMS` with the new checksum.
### Acceptance
- [x] `repo validate-patches relibc` passes all 25 patches
- [x] `make all CONFIG_NAME=redbear-full` completes successfully
- [x] `./local/scripts/build-redbear.sh redbear-full` completes successfully
- [x] QEMU boots to login prompt with virtio-gpu (1280×800) and vesad console (1280×720)
- [x] All protected recipes use only archived sources
- [x] `diff -ruN` patches apply correctly after normalization
+1 -1
View File
@@ -710,7 +710,7 @@ local/patches/relibc/P4-initgroups.patch
|-------|---------|
| Kernel compiles | `make r.kernel` |
| relibc compiles | `make r.relibc` |
| Full OS builds | `make all CONFIG_NAME=redbear-full` |
| Full OS builds | `./local/scripts/build-redbear.sh redbear-full` |
### 8.2 Runtime Evidence
@@ -682,7 +682,7 @@ Phase 0 (Patch Recovery) ← BLOCKING FOR ALL OTHERS
| Kernel compiles | `make r.kernel` |
| relibc compiles | `make r.relibc` |
| Prefix rebuilt | `touch relibc kernel && make prefix` |
| Full OS builds | `make all CONFIG_NAME=redbear-mini` |
| Full OS builds | `./local/scripts/build-redbear.sh redbear-mini` |
### 6.2 Runtime Evidence (QEMU)
+1 -1
View File
@@ -78,7 +78,7 @@ After ANY change to the patches list or patch files:
2. Full rebuild: `REDBEAR_ALLOW_PROTECTED_FETCH=1 CI=1 make r.base`
3. Verify NO "FAILED" or "rejects" in output
4. Verify all expected binaries in stage: `ls stage/usr/bin/ stage/usr/lib/drivers/`
5. Full image build: `CI=1 make all CONFIG_NAME=redbear-full`
5. Full image build: `./local/scripts/build-redbear.sh redbear-full`
## Known Issues
+1 -1
View File
@@ -53,5 +53,5 @@ integrity, submodule hygiene, firmware presence warning) that bare `make all` /
## QEMU boot
```bash
make qemu CONFIG_NAME=redbear-mini # Boot the latest built image in QEMU
make qemu # Boot the latest built image in QEMU
```
@@ -7,7 +7,7 @@ ID="redbear-os"
ID_LIKE="redox-os"
BUILD_ID="rolling"
HOME_URL="https://github.com/vasilito/Red-Bear-OS-3/"
DOCUMENTATION_URL="https://github.com/vasilito/Red-Bear-OS-3/blob/master/local/docs/"
SUPPORT_URL="https://github.com/vasilito/Red-Bear-OS-3/issues"
BUG_REPORT_URL="https://github.com/vasilito/Red-Bear-OS-3/issues"
HOME_URL="https://gitea.redbearos.org/vasilito/RedBear-OS"
DOCUMENTATION_URL="https://gitea.redbearos.org/vasilito/RedBear-OS/src/branch/0.2.5/local/docs/"
SUPPORT_URL="https://gitea.redbearos.org/vasilito/RedBear-OS/issues"
BUG_REPORT_URL="https://gitea.redbearos.org/vasilito/RedBear-OS/issues"
+1 -1
View File
@@ -7,7 +7,7 @@ members = [
resolver = "3"
[workspace.package]
version = "0.2.4"
version = "0.2.5"
edition = "2024"
license = "MIT"
+1 -1
View File
@@ -9,7 +9,7 @@ members = [
resolver = "3"
[workspace.package]
version = "0.2.4"
version = "0.2.5"
edition = "2024"
license = "MIT"
@@ -1,6 +1,6 @@
[package]
name = "ehcid"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "EHCI USB 2.0 host controller driver for Red Bear OS"
@@ -1,6 +1,6 @@
[package]
name = "linux-kpi"
version = "0.2.4"
version = "0.2.5"
edition = "2021"
description = "Linux Kernel API compatibility layer for Redox OS (LinuxKPI-style)"
license = "MIT"
@@ -1,6 +1,6 @@
[package]
name = "ohcid"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "OHCI USB 1.1 host controller driver for Red Bear OS"
@@ -1,6 +1,6 @@
[package]
name = "redbear-btusb"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
[[bin]]
@@ -1,6 +1,6 @@
[package]
name = "redbear-iwlwifi"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
[[bin]]
@@ -1,6 +1,6 @@
[package]
name = "redox-driver-acpi"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "ACPI bus backend for redox-driver-core (enumerates devices from AML namespace)"
@@ -1,6 +1,6 @@
[package]
name = "redox-driver-core"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "Core device-model traits and orchestration for Red Bear drivers"
@@ -1,6 +1,6 @@
[package]
name = "redox-driver-pci"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "PCI bus backend for redox-driver-core"
@@ -1,6 +1,6 @@
[package]
name = "redox-driver-sys"
version = "0.2.4"
version = "0.2.5"
edition = "2021"
description = "Safe Rust wrappers for Redox OS scheme-based hardware access"
@@ -1,6 +1,6 @@
[package]
name = "uhcid"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "UHCI USB 1.1 host controller driver for Red Bear OS"
@@ -1,6 +1,6 @@
[package]
name = "usb-core"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "Shared USB types and primitives for Red Bear host controller drivers"
@@ -1,6 +1,6 @@
[package]
name = "virtio-inputd"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "virtio-input daemon v6.0 2026: reads virtio-input PCI events and writes Linux evdev events to /scheme/input-evdev"
@@ -1,6 +1,6 @@
[package]
name = "redox-drm"
version = "0.2.4"
version = "0.2.5"
edition = "2021"
description = "DRM scheme daemon for Redox OS — provides GPU modesetting and buffer management"
+2 -1
View File
@@ -6,7 +6,8 @@
# kwin headers at configure time; disabled via CMake option. The widget style plugin should
# build independently with just qtbase + KF6 deps.
[source]
tar = "https://invent.kde.org/plasma/breeze/-/archive/v6.3.4/breeze-v6.3.4.tar.gz"
tar = "https://download.kde.org/stable/plasma/6.7.2/breeze-6.7.2.tar.xz"
blake3 = "8d9df73d56ebe7eb92185530d82104460d6ac7214a0ead5c29d0026bd3837357"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KDecoration3 — window decoration library. Required by KWin.
[source]
tar = "https://invent.kde.org/plasma/kdecoration/-/archive/v6.3.4/kdecoration-v6.3.4.tar.gz"
tar = "https://invent.kde.org/plasma/kdecoration/-/archive/v6.7.2/kdecoration-v6.7.2.tar.gz"
blake3 = "f9802589d7e61099a4f26b3723c5f54e92e60919d35e6df348f0a7eccf2700de"
[build]
template = "custom"
+2 -1
View File
@@ -2,7 +2,8 @@
# Provides KF6::Attica cmake target needed by kf6-knewstuff.
# QML, tests, and examples disabled.
[source]
tar = "https://invent.kde.org/frameworks/attica/-/archive/v6.10.0/attica-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/attica-6.27.0.tar.xz"
blake3 = "d22d07aa538f3a0404e652f811fcb6816f125f493c8a246f36478a439094929b"
[build]
template = "custom"
@@ -30,4 +30,5 @@ cmake --install . --prefix "${COOKBOOK_STAGE}/usr"
"""
[source]
tar = "https://invent.kde.org/frameworks/extra-cmake-modules/-/archive/v6.11.0/extra-cmake-modules-v6.11.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/extra-cmake-modules-6.27.0.tar.xz"
blake3 = "f58ffeee3bfed10420e7ffa9b8474ece35838f318e2cc3536bcb8bd880e2f102"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KArchive — archive reading/writing framework. Depends on qtbase, qtdeclarative, kf6-extra-cmake-modules.
[source]
tar = "https://invent.kde.org/frameworks/karchive/-/archive/v6.10.0/karchive-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/karchive-6.27.0.tar.xz"
blake3 = "9c54aace2e253f44bc2eb9f2f0703037c3d14c6c0672a04154fb3a874e42d8f7"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KAuth — policykit-like authorization framework. Depends on qtbase, kf6-kcoreaddons. Still using FAKE backend until PolkitQt6-1 is packaged.
[source]
tar = "https://invent.kde.org/frameworks/kauth/-/archive/v6.10.0/kauth-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kauth-6.27.0.tar.xz"
blake3 = "0cfdcd430d3df773e935e3b2908ef0b228a537df5aecf856a1c61a5a044b621a"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KBookmarks — bookmark management framework.
[source]
tar = "https://invent.kde.org/frameworks/kbookmarks/-/archive/v6.10.0/kbookmarks-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kbookmarks-6.27.0.tar.xz"
blake3 = "4d8cb1801c6a0d8529387c76e8f9809266d539469744bd840c0893c66c2a7f10"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KCMUtils — System Settings control modules. Depends on kf6-kio, kf6-kdeclarative.
[source]
tar = "https://invent.kde.org/frameworks/kcmutils/-/archive/v6.10.0/kcmutils-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kcmutils-6.27.0.tar.xz"
blake3 = "2069f38b69d75ed7a79954002c7a1dbd0fa205e8d7b54ea147d92dfd85e0eff2"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KCodecs — charset and encoding utilities. Depends on qtbase, kf6-extra-cmake-modules, kf6-ki18n.
[source]
tar = "https://invent.kde.org/frameworks/kcodecs/-/archive/v6.10.0/kcodecs-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kcodecs-6.27.0.tar.xz"
blake3 = "c86058a23105032999f583fc563969b39d8563816cdf7b6ed22d080958f3ec37"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KColorScheme — color scheme management. Depends on qtbase, kf6-kconfig, kf6-kcoreaddons, kf6-ki18n, kf6-kguiaddons.
[source]
tar = "https://invent.kde.org/frameworks/kcolorscheme/-/archive/v6.10.0/kcolorscheme-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kcolorscheme-6.27.0.tar.xz"
blake3 = "fa5037dac4816902c181e6593ea61c14eb6a9c6b71f5c299721f3a9dabc77e56"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KCompletion — auto-completion widgets and utilities
[source]
tar = "https://invent.kde.org/frameworks/kcompletion/-/archive/v6.10.0/kcompletion-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kcompletion-6.27.0.tar.xz"
blake3 = "9c421babb494a440e970d69562f7f1fe9753d06a39ede9e739a5d72080acc732"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KDE KConfig — configuration framework, no GUI deps. Depends on qtbase, qtdeclarative, kf6-extra-cmake-modules.
[source]
tar = "https://invent.kde.org/frameworks/kconfig/-/archive/v6.10.0/kconfig-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kconfig-6.27.0.tar.xz"
blake3 = "53a46ec30bb231d04aaab0f8ece06dc596c1db9d11e7b24117185dcedc1dd4ea"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KConfigWidgets — configuration widgets, KConfigXT. Depends on qtbase, kf6-kconfig, kf6-kcoreaddons, kf6-ki18n, kf6-kwidgetsaddons, kf6-kcodecs, kf6-kauth, kf6-kguiaddons, kf6-kcolorscheme.
[source]
tar = "https://invent.kde.org/frameworks/kconfigwidgets/-/archive/v6.10.0/kconfigwidgets-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kconfigwidgets-6.27.0.tar.xz"
blake3 = "15ff532b825440a0e33f5be3875a25faf1f5cef1361ee73b7c09b29fd251eee7"
[build]
template = "custom"
@@ -46,4 +46,5 @@ done
"""
[source]
tar = "https://invent.kde.org/frameworks/kcoreaddons/-/archive/v6.10.0/kcoreaddons-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kcoreaddons-6.27.0.tar.xz"
blake3 = "33f85b44639aa7378aac860cc38f0e2c9533280685bd96c1271d007578dfe248"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KCrash — crash handler, backtrace generation. OpenGL deps disabled for software rendering.
[source]
tar = "https://invent.kde.org/frameworks/kcrash/-/archive/v6.10.0/kcrash-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kcrash-6.27.0.tar.xz"
blake3 = "dcdd52301351857c6479c8d56d17302dd5a532606a2acdd86b6b7758457fa612"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KDBusAddons — D-Bus convenience wrappers. Needs Qt6DBus (qtbase with FEATURE_dbus=ON).
[source]
tar = "https://invent.kde.org/frameworks/kdbusaddons/-/archive/v6.10.0/kdbusaddons-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kdbusaddons-6.27.0.tar.xz"
blake3 = "b0bc9d5e9046316dd6220c7ea6543f02e587c982d3e4821c7cb5a6e23fe1fa5e"
[build]
template = "custom"
@@ -1,7 +1,8 @@
# KDeclarative — reduced real build for Red Bear OS.
# QML-backed runtime pieces stay disabled with BUILD_WITH_QML=OFF.
[source]
tar = "https://invent.kde.org/frameworks/kdeclarative/-/archive/v6.10.0/kdeclarative-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kdeclarative-6.27.0.tar.xz"
blake3 = "5cf1c4ce5acb9ef26d2f80c3ed6450a5937e87db3a605c3307d87ab7a7bd0449"
[build]
template = "custom"
+2 -1
View File
@@ -1,5 +1,6 @@
[source]
tar = "https://invent.kde.org/frameworks/kded/-/archive/v6.10.0/kded-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kded-6.27.0.tar.xz"
blake3 = "4d4bfa91d49a287e570fce2fa6032a7de0735e279e1c8319ae294be3f17f3fc5"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KGlobalAccel — global keyboard shortcuts. Needs kf6-kcrash + kf6-kdbusaddons.
[source]
tar = "https://invent.kde.org/frameworks/kglobalaccel/-/archive/v6.10.0/kglobalaccel-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kglobalaccel-6.27.0.tar.xz"
blake3 = "7d16ff45d50f644b75e982d7bf2316926e3fc38afb78c3a90d374766f4e52bc5"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KGuiAddons — GUI utilities, color management, text selection. Depends on qtbase, kf6-extra-cmake-modules. Wayland/X11 disabled.
[source]
tar = "https://invent.kde.org/frameworks/kguiaddons/-/archive/v6.10.0/kguiaddons-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kguiaddons-6.27.0.tar.xz"
blake3 = "cb5007a5420410d371f51694379100759fdc0ce32d4d0c7407e43bd4ba6c09f9"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KI18n — internationalization framework, gettext integration. Depends on qtbase, qtdeclarative, kf6-extra-cmake-modules.
[source]
tar = "https://invent.kde.org/frameworks/ki18n/-/archive/v6.10.0/ki18n-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/ki18n-6.27.0.tar.xz"
blake3 = "b42b1a7a375b48b58e6519947468381b8e3c3d896ac9658da16f0a37a2863cae"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KIconThemes — icon theme management. Needs kf6-karchive for icon loading.
[source]
tar = "https://invent.kde.org/frameworks/kiconthemes/-/archive/v6.10.0/kiconthemes-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kiconthemes-6.27.0.tar.xz"
blake3 = "0a0e50aa2697d30b0ba55d831e03dd130f563efa63575a569186298de03aece3"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KIdleTime — idle time detection. Used by KWin for screen dimming/locking.
[source]
tar = "https://invent.kde.org/frameworks/kidletime/-/archive/v6.10.0/kidletime-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kidletime-6.27.0.tar.xz"
blake3 = "49b8348f35f77a389c65adaf3f9e73fe59388d742463481099dfeb4aa6c512e2"
[build]
template = "custom"
@@ -1,7 +1,7 @@
#TODO: KImageFormats — image format plugins loaded at runtime by QImageReader.
[source]
tar = "https://download.kde.org/stable/frameworks/6.26/kimageformats-6.26.0.tar.xz"
blake3 = "83b75725d2ac623e8148808963937c8ef1d73f2d156101af95a13d34ba979e63"
tar = "https://download.kde.org/stable/frameworks/6.27/kimageformats-6.27.0.tar.xz"
blake3 = "cef068870fa6537126c2bb35b70b5c91d9362b91f8799644844d6d9e72d483ac"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KItemModels — Qt model framework extensions (KDescendantsProxyModel, KConcatenateRowsProxyModel, etc.)
[source]
tar = "https://invent.kde.org/frameworks/kitemmodels/-/archive/v6.10.0/kitemmodels-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kitemmodels-6.27.0.tar.xz"
blake3 = "deb1429a1565221aed50677e13795d19d82586ad3e960134cc3ad325ef5bde48"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KItemViews — item view widgets (list/tree/table views)
[source]
tar = "https://invent.kde.org/frameworks/kitemviews/-/archive/v6.10.0/kitemviews-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kitemviews-6.27.0.tar.xz"
blake3 = "68899df4bf5c7ca2a3afca263ad59d44ce015272696b2155d35ba70f95fba1be"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KJobWidgets — job and progress tracking widgets. Depends on qtbase, kf6-kcoreaddons, kf6-ki18n, kf6-kwidgetsaddons. DBus/X11 disabled.
[source]
tar = "https://invent.kde.org/frameworks/kjobwidgets/-/archive/v6.10.0/kjobwidgets-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kjobwidgets-6.27.0.tar.xz"
blake3 = "c4aeffd25ca3cd6c9777a91c95d6af5c06bc6801faccdfa5686fd4d7344cfca6"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KNewStuff — core-only build on Redox. Qt Quick, widgets, tools, and Kirigami-facing surfaces disabled. KF6Attica now available in-tree (kf6-attica recipe).
[source]
tar = "https://invent.kde.org/frameworks/knewstuff/-/archive/v6.10.0/knewstuff-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/knewstuff-6.27.0.tar.xz"
blake3 = "0e029c272924b2be79097d1bd228c099509ad9bcf60280b5f8ed3648c2db7be5"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KNotifications — notification framework. Depends on qtbase, kf6-kconfig, kf6-kcoreaddons, kf6-ki18n, kf6-kwindowsystem. D-Bus enabled (redbear-notifications provides org.freedesktop.Notifications).
[source]
tar = "https://invent.kde.org/frameworks/knotifications/-/archive/v6.10.0/knotifications-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/knotifications-6.27.0.tar.xz"
blake3 = "0de492b97562bdf4817595ffc297f7c2d19956be19af51da11272c1c98d29779"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KPackage — package framework, theme/plugin/installer management. Needs kf6-kservice.
[source]
tar = "https://invent.kde.org/frameworks/kpackage/-/archive/v6.10.0/kpackage-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kpackage-6.27.0.tar.xz"
blake3 = "b9314ebb690f1b725d5fbc5eb0372de58681e8ee76fa5125b23549c316b0d70c"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KService — service and plugin framework, .desktop file parsing. Needs kf6-kdbusaddons.
[source]
tar = "https://invent.kde.org/frameworks/kservice/-/archive/v6.10.0/kservice-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kservice-6.27.0.tar.xz"
blake3 = "28877a861faad994cd0d91feccda76954ae60643be5ef8b20f19a45462051cbc"
[build]
template = "custom"
+2 -2
View File
@@ -1,7 +1,7 @@
#TODO: KSvg — SVG rendering library with theme re-coloring and disk caching
[source]
tar = "https://download.kde.org/stable/frameworks/6.26/ksvg-6.26.0.tar.xz"
blake3 = "d4828599e691021eba202d5af37c718d0479bc60d71781aba93911b32b508086"
tar = "https://download.kde.org/stable/frameworks/6.27/ksvg-6.27.0.tar.xz"
blake3 = "65daf2374c1d8c29fdbd6bdff0483e26d70d24002b590bbcd741a35ec5c8700d"
[build]
template = "custom"
@@ -1,7 +1,7 @@
#TODO: KTextEditor — KDE text editor component (KParts-based). Wraps katepart.
[source]
tar = "https://download.kde.org/stable/frameworks/6.26/ktexteditor-6.26.0.tar.xz"
blake3 = "0a6627bc56a7dd6fc66883f0c8ec574a2455e7f43239018d46cfc774bbb68081"
tar = "https://download.kde.org/stable/frameworks/6.27/ktexteditor-6.27.0.tar.xz"
blake3 = "496708ea99bf9e3c19359d0f4186ad14f03e71c10f9e1337f12cd38688a1bb27"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KTextWidgets — text editing widgets. Depends on kf6-sonnet for spell-check integration.
[source]
tar = "https://invent.kde.org/frameworks/ktextwidgets/-/archive/v6.10.0/ktextwidgets-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/ktextwidgets-6.27.0.tar.xz"
blake3 = "6888cc4bbb25ed491410fef8be3c61755d6755a1f2eaa42100f4da80e8e6e55f"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KWallet — build the real KF6 client library on Redox; kwalletd, kwallet-query, translations, and X11 runtime paths stay disabled until the broader runtime service surface is proven.
[source]
tar = "https://invent.kde.org/frameworks/kwallet/-/archive/v6.10.0/kwallet-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kwallet-6.27.0.tar.xz"
blake3 = "9185050e68a39664bf219b82a10ee6c30f037af8db28b8a5653e2ddcca4790ce"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KWayland — Qt/C++ wrapper for Wayland protocols. Required by KWin.
[source]
tar = "https://download.kde.org/stable/plasma/6.3.4/kwayland-6.3.4.tar.xz"
tar = "https://download.kde.org/stable/plasma/6.7.2/kwayland-6.7.2.tar.xz"
blake3 = "fa501ec931fbc601f45af859e9ea55dcf6faf0627917cc2db9f399af83a832dc"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KWidgetsAddons — Qt widget addons and dialogs. Depends on qtbase, kf6-extra-cmake-modules.
[source]
tar = "https://invent.kde.org/frameworks/kwidgetsaddons/-/archive/v6.10.0/kwidgetsaddons-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kwidgetsaddons-6.27.0.tar.xz"
blake3 = "afe5945b0f61a94b5f52cd22fc970e156914be5a4a409c597375b24d6eafb1e7"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: KWindowSystem — window system access. Depends on qtbase, kf6-extra-cmake-modules. QML/X11/Wayland disabled.
[source]
tar = "https://invent.kde.org/frameworks/kwindowsystem/-/archive/v6.10.0/kwindowsystem-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kwindowsystem-6.27.0.tar.xz"
blake3 = "adecba4aa38c48214d820d3f2793b5efd531722c36742b2a38435f817bab61e4"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: KXmlGui — GUI framework for menu/toolbar actions from XML. Depends on kconfigwidgets, kiconthemes, ktextwidgets.
[source]
tar = "https://invent.kde.org/frameworks/kxmlgui/-/archive/v6.10.0/kxmlgui-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kxmlgui-6.27.0.tar.xz"
blake3 = "0c858cf2ee3ffa3c636b414d2e2e560798f1f93bf1b821a5ce70c80e0fdcd706"
[build]
template = "custom"
@@ -2,7 +2,8 @@
# Canberra and Qt6Multimedia sound backends disabled (neither available).
# Required by konsole.
[source]
tar = "https://invent.kde.org/frameworks/knotifyconfig/-/archive/v6.10.0/knotifyconfig-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/knotifyconfig-6.27.0.tar.xz"
blake3 = "8f9dcad6b629fe48ece42444f02da0ad13a9323990537d0ae36bbd2842db825f"
[build]
template = "custom"
+2 -1
View File
@@ -1,7 +1,8 @@
#TODO: KF6Parts — KDE KPart component framework for embedding plugins.
# Required by konsole for KPart terminal embedding.
[source]
tar = "https://invent.kde.org/frameworks/kparts/-/archive/v6.10.0/kparts-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kparts-6.27.0.tar.xz"
blake3 = "1863145efa41355679f3bdc4cdad7ced0f1c8ab411338edf518f1df732908eaf"
[build]
template = "custom"
@@ -2,8 +2,8 @@
# Provides Plasma::Activities and PlasmaActivitiesConfig.cmake.
# Required by plasma-framework (KDE Plasma 6.x). Built from upstream tarball.
[source]
tar = "https://download.kde.org/stable/plasma/6.6.5/plasma-activities-6.6.5.tar.xz"
blake3 = "d716907fcb7a10be0875287cb3adfdaf2b99c4432327d8e74fd2cc77c89ca567"
tar = "https://download.kde.org/stable/plasma/6.7.2/plasma-activities-6.7.2.tar.xz"
blake3 = "0cc63d3e9eb0387c0da7b7051d82962352769285eb156ce009784b144d495655"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: Prison — barcode/QR code framework. Build the core KF6 library now; Data Matrix, scanner, and QML paths stay disabled on Redox.
[source]
tar = "https://invent.kde.org/frameworks/prison/-/archive/v6.10.0/prison-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/prison-6.27.0.tar.xz"
blake3 = "8fa6b8320afcd74b5653083ec2fe2de671d8af59c38e3a30ca28b415920eaadf"
[build]
template = "custom"
+2 -1
View File
@@ -1,7 +1,8 @@
#TODO: KF6Pty — pseudo terminal framework required by Konsole.
# UTEMPTER optional; openpty/login path expected to work on Redox via libc/pty.h.
[source]
tar = "https://invent.kde.org/frameworks/kpty/-/archive/v6.10.0/kpty-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/kpty-6.27.0.tar.xz"
blake3 = "8a848f56ade01c69289f9cc27eb0f426aabb5feb19a2e6b073e530d2d5cdbb02"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: Solid — hardware discovery and power management. UDev/UPower/udisks2 backends disabled for Redox.
[source]
tar = "https://invent.kde.org/frameworks/solid/-/archive/v6.10.0/solid-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/solid-6.27.0.tar.xz"
blake3 = "04de0e7b9c4f0c7fc1a7ab4532b839e90609d47e703943f4841786eeaa78935f"
[build]
template = "custom"
+2 -1
View File
@@ -1,6 +1,7 @@
#TODO: Sonnet — spell checking framework. Depends on qtbase, kf6-ki18n, kf6-extra-cmake-modules.
[source]
tar = "https://invent.kde.org/frameworks/sonnet/-/archive/v6.10.0/sonnet-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/sonnet-6.27.0.tar.xz"
blake3 = "20c7410f7d8a2ecede99ac58ef4241ad73312504b8b44c77132e7daee6b19bb9"
[build]
template = "custom"
@@ -2,7 +2,8 @@
# Perl dependency skipped via cmake patch (PHP syntax definitions pre-generated).
# Required by konsole for syntax highlighting.
[source]
tar = "https://invent.kde.org/frameworks/syntax-highlighting/-/archive/v6.10.0/syntax-highlighting-v6.10.0.tar.gz"
tar = "https://download.kde.org/stable/frameworks/6.27/syntax-highlighting-6.27.0.tar.xz"
blake3 = "8b05e138dc3f41e7b1291a92786e5eeff8a8ae332503dc051a51d197f7125da2"
[build]
template = "custom"
+2 -1
View File
@@ -2,7 +2,8 @@
# Bell audio (Qt6Multimedia) and printing (Qt6PrintSupport) disabled via cmake patch.
# Core5Compat is provided by qt5compat. ICU required for BiDi text rendering.
[source]
tar = "https://invent.kde.org/utilities/konsole/-/archive/v24.08.3/konsole-v24.08.3.tar.gz"
tar = "https://invent.kde.org/utilities/konsole/-/archive/v26.04.3/konsole-v26.04.3.tar.gz"
blake3 = "6fca3c2ea807ca0e12d014e2f6b5832bed31c2b15a3dac9ec6e28f3599f14930"
patches = [
"01-optional-multimedia-printsupport-core5compat.patch",
]
+2 -2
View File
@@ -15,8 +15,8 @@
# a partial KWin build (kdecoration-style core libs) until full
# QML is wired.
[source]
tar = "https://invent.kde.org/plasma/kwin/-/archive/v6.3.4/kwin-v6.3.4.tar.gz"
blake3 = "2aa1e234a75b0aa94f0da3a74d93e2a8e49b30a3afb12dc24b2ecd3abaa94e7f"
tar = "https://invent.kde.org/plasma/kwin/-/archive/v6.7.2/kwin-v6.7.2.tar.gz"
blake3 = "0bb8a5a2b1a3214396cde60756b296d9f70d08db4afd673b553a158a2f4bb17d"
[build]
template = "custom"
@@ -1,6 +1,7 @@
#TODO: Plasma Wayland Protocols — XML protocol definitions used by kwayland/KWin.
[source]
tar = "https://invent.kde.org/libraries/plasma-wayland-protocols/-/archive/v1.16.0/plasma-wayland-protocols-v1.16.0.tar.gz"
tar = "https://invent.kde.org/libraries/plasma-wayland-protocols/-/archive/v1.21.0/plasma-wayland-protocols-v1.21.0.tar.gz"
blake3 = "fde837d465ee0f3efdb6308e3816e9712dce0f7a62934bdeeb3666bf0b9bd3f7"
[build]
template = "custom"
@@ -1,7 +1,8 @@
#TODO: plasma-workspace — KDE Plasma shell. Depends on kwin + all KF6 + dbus.
# Blockers: kwin, kf6-kio, kf6-kxmlgui, plasma-framework (all need DBus + OpenGL)
[source]
tar = "https://invent.kde.org/plasma/plasma-workspace/-/archive/v6.3.4/plasma-workspace-v6.3.4.tar.gz"
tar = "https://download.kde.org/stable/plasma/6.7.2/plasma-workspace-6.7.2.tar.xz"
blake3 = "ef78b0f4ebee9b888a69a7c8c3391ac6b8ff24045b5a2d78efdf77b6b0a19bd2"
[build]
template = "custom"
+2 -2
View File
@@ -1,6 +1,6 @@
[source]
tar = "https://gitlab.freedesktop.org/mesa/libdrm/-/archive/libdrm-2.4.125/libdrm-libdrm-2.4.125.tar.gz"
blake3 = "33e6448252639f4ff8a8cd30129b335c5d85356c1c93f8d77a79221003b14f66"
tar = "https://gitlab.freedesktop.org/mesa/libdrm/-/archive/libdrm-2.4.134/libdrm-libdrm-2.4.134.tar.gz"
blake3 = "4b2f4a35c204ec3e3edd894969e301cf73054c8be5f13d4304a982bdb3b686ae"
patches = ["redox.patch"]
[build]
+2 -2
View File
@@ -1,7 +1,7 @@
#TODO: promote once evdevd-backed runtime validation is complete
[source]
tar = "https://www.freedesktop.org/software/libevdev/libevdev-1.13.2.tar.xz"
blake3 = "8da3c941818c4e865a2462b6c0af9689b3cb57ad42c28794e8a54e68cb2c8a7a"
tar = "https://www.freedesktop.org/software/libevdev/libevdev-1.13.6.tar.xz"
blake3 = "7cc8322f062a0bdacaf73f7fcb6353024764620633c0c434d725ca3a95119fef"
patches = ["redox.patch"]
[build]
+2 -2
View File
@@ -1,7 +1,7 @@
#TODO: needs libevdev working; udev integration via libudev-stub (scheme:udev)
[source]
tar = "https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.30.2/libinput-1.30.2.tar.bz2"
blake3 = "69967ab2fed3f918b5805250990f10df80fb1c10ac1d008dd1ba42a512f39195"
tar = "https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.31.3/libinput-1.31.3.tar.bz2"
blake3 = "ae74b2c2202357119ec0f6e65951a9b2b38332ae5c8c3f59b05f6d80598ef033"
patches = ["redox.patch"]
[build]
+2 -2
View File
@@ -1,6 +1,6 @@
[source]
tar = "https://xkbcommon.org/download/libxkbcommon-1.7.0.tar.xz"
blake3 = "5001ca0b8562feeef2010bf16c05657e3875fda3ed5fdedbf48b9135e5cdfcbc"
tar = "https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/xkbcommon-1.11.0.tar.gz"
blake3 = "fe285c256f8550d2f9e9b7ad883ea0939a0f824019355309315cfa2df3f423d5"
[build]
template = "meson"
+115
View File
@@ -0,0 +1,115 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "itoa"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "memchr"
version = "2.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
[[package]]
name = "pam"
version = "0.2.5"
dependencies = [
"redbear-login-protocol",
"serde_json",
]
[[package]]
name = "proc-macro2"
version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
dependencies = [
"proc-macro2",
]
[[package]]
name = "redbear-login-protocol"
version = "0.2.5"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "serde"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
dependencies = [
"serde_core",
"serde_derive",
]
[[package]]
name = "serde_core"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
dependencies = [
"itoa",
"memchr",
"serde",
"serde_core",
"zmij",
]
[[package]]
name = "syn"
version = "2.0.118"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "unicode-ident"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]]
name = "zmij"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
@@ -1,6 +1,6 @@
[package]
name = "pam"
version = "0.2.4"
version = "0.2.5"
edition = "2021"
description = "PAM compatibility library for Red Bear OS — proxies authentication to redbear-authd over its Unix socket protocol. v6.0 2026"
license = "MIT"
+3 -1
View File
@@ -2,7 +2,8 @@
# Provides Qt6::Sensors cmake target needed by KWin.
# Sensorfw disabled (Linux-specific). Dummy plugin provides no-op sensor readings.
[source]
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.0/submodules/qtsensors-everywhere-src-6.11.0.tar.xz"
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtsensors-everywhere-src-6.11.1.tar.xz"
blake3 = "52ad8a724bc34f724feef197cf29f1cb535831ddd0fbad6e9dfedaa01eef1379"
[build]
template = "custom"
@@ -32,6 +33,7 @@ cmake "${COOKBOOK_SOURCE}" \
-DBUILD_EXAMPLES=OFF \
-DFEATURE_sensorfw=OFF \
-DQT_GENERATE_SBOM=OFF \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
-Wno-dev
cmake --build . -j${COOKBOOK_MAKE_JOBS}
+3 -2
View File
@@ -3,7 +3,8 @@
# Re-enable path: see local/docs/QT6-PORT-STATUS.md
# Redox platform detection and syscall adaptations in redox.patch
[source]
tar = "https://download.qt.io/official_releases/qt/6.8/6.8.2/submodules/qtbase-everywhere-src-6.8.2.tar.xz"
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtbase-everywhere-src-6.11.1.tar.xz"
blake3 = "c3b83023dc54f1173831bbc80abca1901418ef517875bf8071a4895d3c4a3162"
patches = [
"redox.patch",
"qtwaylandscanner-null-guard-listeners.patch",
@@ -171,7 +172,7 @@ fi
# ============================================================
HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build"
HOST_QTBASE_BUILD="${COOKBOOK_ROOT}/build/qtbase-host-build"
HOST_PROFILE="qtbase-host-6.11.0-gui-xml-wayland-qdbus-host-listener-guard"
HOST_PROFILE="qtbase-host-6.11.1-gui-xml-wayland-qdbus-host-listener-guard"
HOST_STAMP="${HOST_BUILD}/.redbear-host-profile"
HOST_PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl"
python - <<'PY'
-24
View File
@@ -496,27 +496,3 @@
global/qgettid_p.h
global/qglobal.cpp global/qglobal.h global/qglobal_p.h
--- source-old/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h
+++ source/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h
@@ -52,10 +52,14 @@
virtual bool supportsWindowDecoration() const { return false; }
virtual QWaylandWindow *createEglWindow(QWindow *window) = 0;
+#if QT_CONFIG(opengl)
virtual QPlatformOpenGLContext *createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const = 0;
+#endif
virtual bool canCreatePlatformOffscreenSurface() const { return false; }
+#if QT_CONFIG(opengl)
virtual QOpenGLContext *createOpenGLContext(EGLContext context, EGLDisplay contextDisplay, QOpenGLContext *shareContext) const = 0;
virtual QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const { Q_UNUSED(surface); return nullptr; }
+#endif
enum NativeResource {
EglDisplay,
@@ -65,7 +69,9 @@
};
virtual void *nativeResource(NativeResource /*resource*/) { return nullptr; }
+#if QT_CONFIG(opengl)
virtual void *nativeResourceForContext(NativeResource /*resource*/, QPlatformOpenGLContext */*context*/) { return nullptr; }
+#endif
};
+5 -2
View File
@@ -2,8 +2,8 @@
# Provides: libQt6Qml, libQt6Quick, libQt6QuickWidgets, libQt6QmlModels, etc.
# Also builds QML host tools (qmlcachegen, qmllint) for cross-compilation.
[source]
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.0/submodules/qtdeclarative-everywhere-src-6.11.0.tar.xz"
blake3 = "cd4faae06637b60df5118fc940ebc80cadc42b84bf35df31a44529a7e30a44a9"
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtdeclarative-everywhere-src-6.11.1.tar.xz"
blake3 = "10f2d0662047ceb0ef221b725b59e7fec5c9092a4c10d5acc7daefea5f11b962"
patches = [
"P1-skip-tools-crosscompile.patch",
]
@@ -51,6 +51,7 @@ if [ ! -d "${HOST_BUILD}/lib/cmake/Qt6Svg" ]; then
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF \
-DQT_GENERATE_SBOM=OFF \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
-Wno-dev
cmake --build "${HOST_QTSVG_BUILD}" -j"${COOKBOOK_MAKE_JOBS}"
cmake --install "${HOST_QTSVG_BUILD}" --prefix "${HOST_BUILD}"
@@ -86,6 +87,7 @@ if [ ! -f "${HOST_BUILD}/bin/qmlcachegen" ] || [ ! -f "${HOST_BUILD}/bin/qmlaots
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF \
-DQT_GENERATE_SBOM=OFF \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
-Wno-dev
cmake --build "${DECL_HOST}" --target qmllint qmlimportscanner qmltyperegistrar qmlaotstats svgtoqml -j"${COOKBOOK_MAKE_JOBS}" || true
# Generate jsroot.qmltypes needed by qmlcachegen using the host-built qmltyperegistrar.
@@ -232,6 +234,7 @@ cmake "${COOKBOOK_SOURCE}" \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF \
-DQT_GENERATE_SBOM=OFF \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
-DQT_FEATURE_qml_jit=OFF \
-DQT_FEATURE_ssl=OFF \
-DQT_FEATURE_network=OFF \
+298
View File
@@ -0,0 +1,298 @@
#TODO: Qt6 ShaderTools — Qt shader translation/compilation pipeline (qsb, spirv-cross).
# Provides libQt6ShaderTools which qtdeclarative depends on for shader pipeline.
# Builds only required tools/libraries; test/example code disabled for cross-compile.
# Source mirrored from upstream Qt 6.11.1.
[source]
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtshadertools-everywhere-src-6.11.1.tar.xz"
blake3 = "24dcd88b9e752a380067182687032b2139d2f6220d64e4193428434970102ae2"
patches = []
[build]
template = "custom"
dependencies = [
"qtbase",
]
script = """
DYNAMIC_INIT
HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build"
HOST_QST_BUILD="${COOKBOOK_ROOT}/build/qtshadertools-host-build"
HOST_QST_STAMP="${HOST_BUILD}/.redbear-host-qsb-6.11.1"
HOST_PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl"
source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules
if [ -f "${COOKBOOK_SYSROOT}/lib/libredbear-qt-strtold-compat.so" ]; then
mkdir -p "${COOKBOOK_SYSROOT}/usr/lib"
cp -f "${COOKBOOK_SYSROOT}/lib/libredbear-qt-strtold-compat.so" "${COOKBOOK_SYSROOT}/usr/lib/" 2>/dev/null || true
fi
# ============================================================
# Step 1: Build qtshadertools host tools (qsb) on the host
# ============================================================
if [ ! -f "${HOST_BUILD}/bin/qsb" ] || [ ! -f "${HOST_QST_STAMP}" ]; then
echo "=== Building qtshadertools host tools (qsb) ==="
rm -rf "${HOST_QST_BUILD}"
env -i \
HOME="${HOME}" \
PATH="${HOST_PATH}" \
cmake -S "${COOKBOOK_SOURCE}" -B "${HOST_QST_BUILD}" \
-GNinja \
-DCMAKE_C_COMPILER=/usr/bin/cc \
-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
-DCMAKE_ASM_COMPILER=/usr/bin/cc \
-DCMAKE_AR=/usr/bin/ar \
-DCMAKE_RANLIB=/usr/bin/ranlib \
-DCMAKE_STRIP=/usr/bin/strip \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="${HOST_BUILD}" \
-DQT_HOST_PATH="${HOST_BUILD}" \
-DQT_BUILD_TOOLS_BY_DEFAULT=ON \
-DBUILD_TESTING=OFF \
-DBUILD_EXAMPLES=OFF \
-Wno-dev
(
cd "${HOST_QST_BUILD}"
env -i HOME="${HOME}" PATH="${HOST_PATH}" cmake --build . -j"${COOKBOOK_MAKE_JOBS}"
)
(
cd "${HOST_QST_BUILD}"
env -i HOME="${HOME}" PATH="${HOST_PATH}" cmake --install . --prefix "${HOST_BUILD}"
)
printf '%s\n' "6.11.1" > "${HOST_QST_STAMP}"
fi
# ============================================================
# Step 1b: Generate Qt6ShaderToolsTools cmake package
# Qt6's standalone module build does not generate this tools wrapper.
# Cross-compile needs find_package(Qt6ShaderToolsTools) -> Qt6::qsb.
# Pattern follows Qt6WaylandScannerTools from qtbase host build.
# ============================================================
QST_CMAKE_DIR="${HOST_BUILD}/lib/cmake/Qt6ShaderToolsTools"
if [ ! -f "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfig.cmake" ]; then
mkdir -p "${QST_CMAKE_DIR}"
QSB_PATH="${HOST_BUILD}/bin/qsb"
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfig.cmake" << 'EOF_CFG'
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
macro(set_and_check _var _file)
set(${_var} "${_file}")
if(NOT EXISTS "${_file}")
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
endif()
endmacro()
macro(check_required_components _NAME)
foreach(comp ${${_NAME}_FIND_COMPONENTS})
if(NOT ${_NAME}_${comp}_FOUND)
if(${_NAME}_FIND_REQUIRED_${comp})
set(${_NAME}_FOUND FALSE)
endif()
endif()
endforeach()
endmacro()
cmake_minimum_required(VERSION 3.16...3.21)
include(CMakeFindDependencyMacro)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsDependencies.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsDependencies.cmake")
endif()
if(NOT DEFINED "Qt6ShaderToolsTools_FOUND")
set("Qt6ShaderToolsTools_FOUND" TRUE)
endif()
set(__qt_ShaderToolsTools_should_include_targets_code "TRUE")
if(__qt_ShaderToolsTools_should_include_targets_code)
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsTargetsPrecheck.cmake")
endif()
if(NOT __qt_ShaderToolsTools_skip_include_targets_file
AND Qt6ShaderToolsTools_FOUND
AND __qt_ShaderToolsTools_should_include_targets_code)
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsAdditionalTargetInfo.cmake")
if(NOT QT_NO_CREATE_VERSIONLESS_TARGETS)
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsVersionlessTargets.cmake")
endif()
set(__qt_ShaderToolsTools_targets_file_included ON)
endif()
if(__qt_ShaderToolsTools_targets_file_included AND Qt6ShaderToolsTools_FOUND)
__qt_internal_promote_target_to_global(Qt6::qsb)
endif()
set(Qt6ShaderToolsTools_TARGETS "Qt6::qsb")
EOF_CFG
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsTargets.cmake" << 'EOF_TGT'
cmake_policy(PUSH)
cmake_policy(VERSION 2.8.3...4.1)
set(CMAKE_IMPORT_FILE_VERSION 1)
set(_targets_defined "")
set(_targets_not_defined "")
set(_expected_targets "")
foreach(_expected IN ITEMS Qt6::qsb)
list(APPEND _expected_targets "${_expected}")
if(TARGET "${_expected}")
list(APPEND _targets_defined "${_expected}")
else()
list(APPEND _targets_not_defined "${_expected}")
endif()
endforeach()
unset(_expected)
if(_targets_defined STREQUAL _expected_targets)
cmake_policy(POP)
return()
endif()
unset(_targets_defined)
unset(_targets_not_defined)
unset(_expected_targets)
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
if(_IMPORT_PREFIX STREQUAL "/")
set(_IMPORT_PREFIX "")
endif()
add_executable(Qt6::qsb IMPORTED)
set_target_properties(Qt6::qsb PROPERTIES
COMPATIBLE_INTERFACE_STRING "QT_MAJOR_VERSION"
INTERFACE_QT_MAJOR_VERSION "6"
)
file(GLOB _cfg_files "${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsTargets-*.cmake")
foreach(_cfg IN LISTS _cfg_files)
include("${_cfg}")
endforeach()
unset(_cfg)
unset(_cfg_files)
unset(_IMPORT_PREFIX)
unset(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)
EOF_TGT
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsTargets-release.cmake" << EOF_REL
set_property(TARGET Qt6::qsb APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(Qt6::qsb PROPERTIES
IMPORTED_LOCATION_RELEASE "${QSB_PATH}"
)
set(_cmake_import_check_targets "Qt6::qsb")
set(_cmake_import_check_files_for_Qt6::qsb "${QSB_PATH}")
EOF_REL
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsTargetsPrecheck.cmake" << 'EOF_PRE'
_qt_internal_should_include_targets(
TARGETS qsb
NAMESPACE Qt6::
OUT_VAR_SHOULD_SKIP __qt_ShaderToolsTools_skip_include_targets_file
)
EOF_PRE
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsAdditionalTargetInfo.cmake" << 'EOF_ADD'
if(NOT DEFINED QT_DEFAULT_IMPORT_CONFIGURATION)
set(QT_DEFAULT_IMPORT_CONFIGURATION RELEASE)
endif()
get_target_property(_qt_loc Qt6::qsb IMPORTED_LOCATION_RELEASE)
get_target_property(_qt_loc_def Qt6::qsb IMPORTED_LOCATION_${QT_DEFAULT_IMPORT_CONFIGURATION})
set_property(TARGET Qt6::qsb APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO)
if(_qt_loc)
set_property(TARGET Qt6::qsb PROPERTY IMPORTED_LOCATION_RELWITHDEBINFO "${_qt_loc}")
endif()
set_property(TARGET Qt6::qsb APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL)
if(_qt_loc)
set_property(TARGET Qt6::qsb PROPERTY IMPORTED_LOCATION_MINSIZEREL "${_qt_loc}")
endif()
if(_qt_loc_def)
set_property(TARGET Qt6::qsb PROPERTY IMPORTED_LOCATION "${_qt_loc_def}")
endif()
EOF_ADD
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsVersionlessTargets.cmake" << 'EOF_VER'
foreach(__qt_tool qsb)
if(NOT TARGET Qt::${__qt_tool} AND TARGET Qt6::${__qt_tool})
add_executable(Qt::${__qt_tool} IMPORTED GLOBAL)
foreach(__qt_cfg IMPORTED_LOCATION IMPORTED_LOCATION_RELEASE IMPORTED_LOCATION_RELWITHDEBINFO IMPORTED_LOCATION_MINSIZEREL IMPORTED_LOCATION_DEBUG)
get_target_property(__qt_loc Qt6::${__qt_tool} ${__qt_cfg})
if(__qt_loc AND EXISTS "${__qt_loc}")
break()
endif()
endforeach()
set_target_properties(Qt::${__qt_tool} PROPERTIES IMPORTED_LOCATION "${__qt_loc}")
endif()
endforeach()
EOF_VER
printf 'set(Qt6ShaderToolsTools_FOUND TRUE)\n' \
> "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsDependencies.cmake"
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfigVersionImpl.cmake" << 'EOF_VIMPL'
set(PACKAGE_VERSION "6.11.1")
if(PACKAGE_FIND_VERSION VERSION_LESS_EQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
if(NOT PACKAGE_VERSION_COMPATIBLE)
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()
EOF_VIMPL
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfigVersion.cmake" << 'EOF_VER2'
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsConfigVersionImpl.cmake")
EOF_VER2
echo "Generated Qt6ShaderToolsTools cmake package"
fi
# ============================================================
# Step 2: Cross-compile qtshadertools for Redox
# ============================================================
redbear_qt_reset_cmake_cache_dir
cmake "${COOKBOOK_SOURCE}" \
-DCMAKE_TOOLCHAIN_FILE="${COOKBOOK_ROOT}/local/recipes/qt/redox-toolchain.cmake" \
-DQT_HOST_PATH="${HOST_BUILD}" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
-DQT_BUILD_TOOLS_BY_DEFAULT=OFF \
-DQT_GENERATE_SBOM=OFF \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=OFF \
-DBUILD_EXAMPLES=OFF \
-Wno-dev
cmake --build . -j"${COOKBOOK_MAKE_JOBS}"
python3 - <<'PY'
from pathlib import Path
import shutil
install_script = Path("cmake_install.cmake")
generated = Path("lib/cmake/Qt6ShaderTools/Qt6ShaderToolsTargets.cmake")
if install_script.exists() and generated.exists():
for line in install_script.read_text().splitlines():
marker = 'CMakeFiles/Export/'
suffix = '/Qt6ShaderToolsTargets.cmake'
if marker in line and suffix in line and 'FILES "' in line:
expected = Path(line.split('FILES "', 1)[1].rsplit('"', 1)[0])
expected.parent.mkdir(parents=True, exist_ok=True)
if not expected.exists():
shutil.copy2(generated, expected)
break
PY
cmake --install . --prefix "${COOKBOOK_STAGE}/usr"
cp -f "${COOKBOOK_SOURCE}/tools/qsb/Qt6ShaderToolsMacros.cmake" \
"${COOKBOOK_STAGE}/usr/lib/cmake/Qt6ShaderTools/Qt6ShaderToolsMacros.cmake" 2>/dev/null || true
cp -f "${COOKBOOK_SOURCE}/tools/qsb/Qt6ShaderToolsMacros.cmake" \
"${HOST_BUILD}/lib/cmake/Qt6ShaderTools/Qt6ShaderToolsMacros.cmake" 2>/dev/null || true
QST_CFG="${COOKBOOK_STAGE}/usr/lib/cmake/Qt6ShaderTools/Qt6ShaderToolsConfig.cmake"
if [ -f "${QST_CFG}" ] && ! grep -q "ShaderToolsMacros" "${QST_CFG}"; then
sed -i 's/foreach(extra_cmake_include )/foreach(extra_cmake_include Qt6ShaderToolsMacros.cmake)/' "${QST_CFG}"
fi
QST_CFG_HOST="${HOST_BUILD}/lib/cmake/Qt6ShaderTools/Qt6ShaderToolsConfig.cmake"
if [ -f "${QST_CFG_HOST}" ] && ! grep -q "ShaderToolsMacros" "${QST_CFG_HOST}"; then
sed -i 's/foreach(extra_cmake_include )/foreach(extra_cmake_include Qt6ShaderToolsMacros.cmake)/' "${QST_CFG_HOST}"
fi
for lib in lib/libQt6*.so*; do
[ -f "${lib}" ] && cp -an "${lib}" "${COOKBOOK_STAGE}/usr/lib/"
done
"""
+2 -2
View File
@@ -89,5 +89,5 @@ redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" metaty
"""
[source]
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.0/submodules/qtsvg-everywhere-src-6.11.0.tar.xz"
blake3 = "b7825c7971c67c04993ac2d3bdb72e403e8848e1696cdd33fb3b5034730e491c"
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtsvg-everywhere-src-6.11.1.tar.xz"
blake3 = "49b947e1a96bf0a29a1ee84c231a518a1413d9f3ec360617e405400e510508b2"
+4 -2
View File
@@ -1,8 +1,8 @@
#TODO: Qt6 Wayland — client compositor support. OpenGL guards applied for software rendering.
# Runtime validation pending — needs running Wayland compositor.
[source]
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.0/submodules/qtwayland-everywhere-src-6.11.0.tar.xz"
blake3 = "ff253bdd68e08f1920bd398cf313f44d3b9816f278160c57a9e49920d9b88785"
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtwayland-everywhere-src-6.11.1.tar.xz"
blake3 = "154b80972e472b10330c82d3b171a915959a5d06139289d5b898c16c58de4de8"
[build]
template = "custom"
@@ -97,6 +97,8 @@ cmake "${COOKBOOK_SOURCE}" \
-DCMAKE_EXE_LINKER_FLAGS="-lc -lffi" \
-DCMAKE_C_STANDARD_LIBRARIES="-lffi" \
-DCMAKE_CXX_STANDARD_LIBRARIES="-lffi" \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
-DQT_GENERATE_SBOM=OFF \
-Wno-dev
cmake --build . -j"${COOKBOOK_MAKE_JOBS}"
@@ -1,6 +1,6 @@
[package]
name = "cpufreqd"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
[[bin]]
+1 -1
View File
@@ -10,7 +10,7 @@ default-members = [
]
[workspace.package]
version = "0.2.4"
version = "0.2.5"
description = "Red Bear OS Package Builder"
license = "MIT"
authors = ["Red Bear OS Contributors"]
@@ -1,6 +1,6 @@
[package]
name = "devfsd"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
[[bin]]
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "diskd"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "Red Bear OS disk aggregator scheme daemon — exposes a single, listable namespace over all underlying disk.* schemes (disk.live, disk.sata*, disk.virtio*, disk.nvme*, disk.usb*, disk.ide*)"
license = "MIT"
@@ -1,6 +1,6 @@
[package]
name = "driver-manager"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
description = "Device driver manager with deferred and async probing"
@@ -1,6 +1,6 @@
[package]
name = "driver-params"
version = "0.2.4"
version = "0.2.5"
edition = "2024"
[[bin]]

Some files were not shown because too many files have changed in this diff Show More