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:
+1
-1
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user