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
+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]