fix: Oracle round 5 — all remaining issues resolved

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)
This commit is contained in:
2026-05-01 01:25:19 +01:00
parent 8cad68ec41
commit a21fb235ea
6 changed files with 32 additions and 14 deletions
+1 -1
View File
@@ -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 (0105) remain useful for architecture reference and implementation
+3 -3
View File
@@ -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 34)
│ │ ├── wayland/ ← Wayland compositor (Phase 2)
│ │ └── kde/ ← KDE Plasma (Phases 34)
│ ├── 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
@@ -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<PciDeviceInfo> {
@@ -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
@@ -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<PciDeviceInfo> {
@@ -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
@@ -168,9 +168,9 @@ fn select_gpu_from_args() -> Result<PciDeviceInfo> {
.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
+5 -5
View File
@@ -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]