Compare commits
30 Commits
7fdf828c75
...
0.2.5
| Author | SHA1 | Date | |
|---|---|---|---|
| 1eed99c54f | |||
| f47ee4fb18 | |||
| 2bed64a6c5 | |||
| 5d4d3dbce1 | |||
| f0364a4e4a | |||
| 890be982a6 | |||
| afad19ff1a | |||
| eb53e8190a | |||
| 6d13dee2a6 | |||
| a43cca122d | |||
| fc0c1e4576 | |||
| 83f47db352 | |||
| f877419c43 | |||
| ac0712e8b9 | |||
| d097261be3 | |||
| 8ce2ec6b21 | |||
| 5e68844868 | |||
| 217ca485b7 | |||
| 5b42305568 | |||
| f988cc0d58 | |||
| bc7bbfb293 | |||
| 9c93a3fc5b | |||
| 7902864a32 | |||
| 8b627c40af | |||
| 0757975704 | |||
| 3539e621a2 | |||
| 7bbf56217e | |||
| 097dc10f70 | |||
| 327aed1e5d | |||
| db6fbe5155 |
@@ -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
@@ -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"
|
||||
|
||||
@@ -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 |
|
||||
|
||||
|
||||
@@ -519,7 +519,7 @@ requires_weak = [
|
||||
|
||||
[service]
|
||||
cmd = "pcid-spawner"
|
||||
type = "oneshot"
|
||||
type = "oneshot_async"
|
||||
"""
|
||||
|
||||
# Firmware fallback chain configs
|
||||
|
||||
@@ -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"
|
||||
"""
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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).
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -7,7 +7,7 @@ members = [
|
||||
resolver = "3"
|
||||
|
||||
[workspace.package]
|
||||
version = "0.2.4"
|
||||
version = "0.2.5"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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,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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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,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",
|
||||
]
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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,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'
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
"""
|
||||
@@ -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"
|
||||
|
||||
@@ -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]]
|
||||
|
||||
@@ -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,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
Reference in New Issue
Block a user