From a21fb235ea49ee397bc7b2292ca7c893efb76480 Mon Sep 17 00:00:00 2001 From: Vasilito Date: Fri, 1 May 2026 01:25:19 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20Oracle=20round=205=20=E2=80=94=20all=20r?= =?UTF-8?q?emaining=20issues=20resolved?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. redox-drm: verify_supported_gpu() now accepts virtio (0x1AF4) + auto-probe already includes 0x1AF4 (P5 patch updated) 2. KWin recipe: cmake configs moved inside if block (only written when cmake succeeds; no soft fallback) 3. local/AGENTS.md: all v2.0 references → v4.0 4. docs/README.md: date consistency (2026-04-30 → 2026-05-01) --- docs/README.md | 2 +- local/AGENTS.md | 6 +++--- local/patches/redox-drm/P5-virtio-auto-probe.patch | 11 ++++++++++- .../recipes/gpu/redox-drm/P5-virtio-auto-probe.patch | 11 ++++++++++- local/recipes/gpu/redox-drm/source/src/main.rs | 6 +++--- local/recipes/kde/kwin/recipe.toml | 10 +++++----- 6 files changed, 32 insertions(+), 14 deletions(-) diff --git a/docs/README.md b/docs/README.md index 1d3fdd4d..1f23c161 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,7 +5,7 @@ Technical documentation for Red Bear OS as an overlay distribution on top of Red This index is the entry point for the documentation set. Its main job is to make the current/canonical versus historical/reference split obvious. -> **Status note (2026-04-30):** The canonical desktop path document is +> **Status note (2026-05-01):** The canonical desktop path document is > `local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md` (v4.0, single comprehensive plan). It supersedes > all earlier individual assessments and is the single authority for current state. > The historical docs below (01–05) remain useful for architecture reference and implementation diff --git a/local/AGENTS.md b/local/AGENTS.md index c6d73ab4..c5e7fed2 100644 --- a/local/AGENTS.md +++ b/local/AGENTS.md @@ -183,8 +183,8 @@ redox-master/ ← git pull updates mainline Redox │ │ │ ├── redbear-session-launch ← session bootstrap helper (uid/gid/env/runtime-dir handoff) │ │ │ ├── redbear-greeter ← greeter orchestrator package (`redbear-greeterd`, UI, compositor wrapper, staged assets) │ │ │ ├── redbear-dbus-services ← D-Bus .service activation files + XML policies -│ │ ├── wayland/ ← Wayland compositor (v2.0 Phase 2) -│ │ └── kde/ ← KDE Plasma (v2.0 Phases 3–4) +│ │ ├── wayland/ ← Wayland compositor (Phase 2) +│ │ └── kde/ ← KDE Plasma (Phases 3–4) │ ├── patches/ │ │ ├── kernel/ ← Kernel patches (ACPI, x2APIC) │ │ ├── base/ ← Base patches (acpid fixes, power methods, pcid /config endpoint) @@ -253,7 +253,7 @@ scripts/build-iso.sh redbear-grub # Text-only + GRUB # Then run inside the guest: # ./local/scripts/test-vm-network-runtime.sh -# Phase 1 runtime-substrate validation (v2.0 plan: relibc headers, evdevd, udev-shim, +# Phase 1 runtime-substrate validation (canonical plan: CONSOLE-TO-KDE v4.0) # firmware-loader, DRM/KMS, time — covers acceptance areas + POSIX compat) ./local/scripts/test-phase1-runtime.sh --qemu redbear-full diff --git a/local/patches/redox-drm/P5-virtio-auto-probe.patch b/local/patches/redox-drm/P5-virtio-auto-probe.patch index 6c968c06..6cbcc697 100644 --- a/local/patches/redox-drm/P5-virtio-auto-probe.patch +++ b/local/patches/redox-drm/P5-virtio-auto-probe.patch @@ -1,5 +1,5 @@ diff --git a/local/recipes/gpu/redox-drm/source/src/main.rs b/local/recipes/gpu/redox-drm/source/src/main.rs -index 612a64e0f..f4abdc7bb 100644 +index 612a64e0f..7af80bd75 100644 --- a/local/recipes/gpu/redox-drm/source/src/main.rs +++ b/local/recipes/gpu/redox-drm/source/src/main.rs @@ -168,9 +168,9 @@ fn select_gpu_from_args() -> Result { @@ -14,3 +14,12 @@ index 612a64e0f..f4abdc7bb 100644 })?; let mut pci = PciDevice::open_location(&first.location) .map_err(|e| DriverError::Pci(format!("failed to open GPU {}: {e}", first.location)))?; +@@ -205,7 +205,7 @@ fn verify_supported_gpu(info: &PciDeviceInfo) -> Result<()> { + ))); + } + +- if info.vendor_id != PCI_VENDOR_ID_AMD && info.vendor_id != PCI_VENDOR_ID_INTEL { ++ if info.vendor_id != PCI_VENDOR_ID_AMD && info.vendor_id != PCI_VENDOR_ID_INTEL && info.vendor_id != 0x1AF4 { + return Err(DriverError::Pci(format!( + "device {} is vendor {:#06x}, expected AMD {:#06x} or Intel {:#06x}", + info.location, info.vendor_id, PCI_VENDOR_ID_AMD, PCI_VENDOR_ID_INTEL diff --git a/local/recipes/gpu/redox-drm/P5-virtio-auto-probe.patch b/local/recipes/gpu/redox-drm/P5-virtio-auto-probe.patch index 6c968c06..6cbcc697 100644 --- a/local/recipes/gpu/redox-drm/P5-virtio-auto-probe.patch +++ b/local/recipes/gpu/redox-drm/P5-virtio-auto-probe.patch @@ -1,5 +1,5 @@ diff --git a/local/recipes/gpu/redox-drm/source/src/main.rs b/local/recipes/gpu/redox-drm/source/src/main.rs -index 612a64e0f..f4abdc7bb 100644 +index 612a64e0f..7af80bd75 100644 --- a/local/recipes/gpu/redox-drm/source/src/main.rs +++ b/local/recipes/gpu/redox-drm/source/src/main.rs @@ -168,9 +168,9 @@ fn select_gpu_from_args() -> Result { @@ -14,3 +14,12 @@ index 612a64e0f..f4abdc7bb 100644 })?; let mut pci = PciDevice::open_location(&first.location) .map_err(|e| DriverError::Pci(format!("failed to open GPU {}: {e}", first.location)))?; +@@ -205,7 +205,7 @@ fn verify_supported_gpu(info: &PciDeviceInfo) -> Result<()> { + ))); + } + +- if info.vendor_id != PCI_VENDOR_ID_AMD && info.vendor_id != PCI_VENDOR_ID_INTEL { ++ if info.vendor_id != PCI_VENDOR_ID_AMD && info.vendor_id != PCI_VENDOR_ID_INTEL && info.vendor_id != 0x1AF4 { + return Err(DriverError::Pci(format!( + "device {} is vendor {:#06x}, expected AMD {:#06x} or Intel {:#06x}", + info.location, info.vendor_id, PCI_VENDOR_ID_AMD, PCI_VENDOR_ID_INTEL diff --git a/local/recipes/gpu/redox-drm/source/src/main.rs b/local/recipes/gpu/redox-drm/source/src/main.rs index 612a64e0..7af80bd7 100644 --- a/local/recipes/gpu/redox-drm/source/src/main.rs +++ b/local/recipes/gpu/redox-drm/source/src/main.rs @@ -168,9 +168,9 @@ fn select_gpu_from_args() -> Result { .map_err(|e| DriverError::Pci(format!("PCI scan failed: {e}")))?; let first = devices .into_iter() - .find(|d| d.vendor_id == PCI_VENDOR_ID_AMD || d.vendor_id == PCI_VENDOR_ID_INTEL) + .find(|d| d.vendor_id == PCI_VENDOR_ID_AMD || d.vendor_id == PCI_VENDOR_ID_INTEL || d.vendor_id == 0x1AF4) .ok_or_else(|| { - DriverError::NotFound("no AMD or Intel GPU found via scheme:pci".to_string()) + DriverError::NotFound("no AMD, Intel, or VirtIO GPU found via scheme:pci".to_string()) })?; let mut pci = PciDevice::open_location(&first.location) .map_err(|e| DriverError::Pci(format!("failed to open GPU {}: {e}", first.location)))?; @@ -205,7 +205,7 @@ fn verify_supported_gpu(info: &PciDeviceInfo) -> Result<()> { ))); } - if info.vendor_id != PCI_VENDOR_ID_AMD && info.vendor_id != PCI_VENDOR_ID_INTEL { + if info.vendor_id != PCI_VENDOR_ID_AMD && info.vendor_id != PCI_VENDOR_ID_INTEL && info.vendor_id != 0x1AF4 { return Err(DriverError::Pci(format!( "device {} is vendor {:#06x}, expected AMD {:#06x} or Intel {:#06x}", info.location, info.vendor_id, PCI_VENDOR_ID_AMD, PCI_VENDOR_ID_INTEL diff --git a/local/recipes/kde/kwin/recipe.toml b/local/recipes/kde/kwin/recipe.toml index 7a828213..e06d23fd 100644 --- a/local/recipes/kde/kwin/recipe.toml +++ b/local/recipes/kde/kwin/recipe.toml @@ -77,18 +77,18 @@ if cmake "${COOKBOOK_SOURCE}" \ -Wno-dev 2>&1; then cmake --build . -j${COOKBOOK_MAKE_JOBS} 2>&1 cmake --install . --prefix "${STAGE}" 2>&1 -fi -# Downstream cmake configs for KF6WindowSystem/KF6Config (needed by plasma-framework, plasma-workspace, plasma-desktop — not KWin itself) -mkdir -p "${STAGE}/lib/cmake/KF6WindowSystem" "${STAGE}/lib/cmake/KF6Config" -cat > "${STAGE}/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake" << 'EOFCMAKE' + # Downstream cmake configs for KF6WindowSystem/KF6Config (needed by plasma-framework, plasma-workspace, plasma-desktop — not KWin itself) + mkdir -p "${STAGE}/lib/cmake/KF6WindowSystem" "${STAGE}/lib/cmake/KF6Config" + cat > "${STAGE}/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake" << 'EOFCMAKE' find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) set(KF6WindowSystem_LIBRARIES Qt6::Gui) EOFCMAKE -cat > "${STAGE}/lib/cmake/KF6Config/KF6ConfigConfig.cmake" << 'EOFCMAKE' + cat > "${STAGE}/lib/cmake/KF6Config/KF6ConfigConfig.cmake" << 'EOFCMAKE' find_package(Qt6 REQUIRED COMPONENTS Core) set(KF6Config_LIBRARIES Qt6::Core) EOFCMAKE +fi """ [package]