Wire Phase 2 compositor proof: KWin virtual + 60s survival verdict
This commit is contained in:
@@ -400,7 +400,31 @@ if ! wait_for_wayland_socket; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /usr/bin/wayland-session
|
/usr/bin/wayland-session
|
||||||
|
smoke_exit=$?
|
||||||
|
|
||||||
|
echo "wayland-session exited with code $smoke_exit"
|
||||||
|
|
||||||
|
# 60-second KWin survival verdict
|
||||||
|
survival_ok="$HOME/.kwin-60s-survival.ok"
|
||||||
|
survival_err="$HOME/.kwin-60s-survival.err"
|
||||||
|
rm -f "$survival_ok" "$survival_err"
|
||||||
|
|
||||||
|
elapsed=0
|
||||||
|
while kill -0 "$kwin_pid" 2>/dev/null; do
|
||||||
|
if [ "$elapsed" -ge 60 ]; then
|
||||||
|
echo "KWin survived 60 seconds (pid=$kwin_pid)" > "$survival_ok"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
elapsed=$((elapsed + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ ! -f "$survival_ok" ]; then
|
||||||
|
echo "KWin died before 60 seconds (pid=$kwin_pid, elapsed=${elapsed}s)" > "$survival_err"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "redbear-validation-session: complete (smoke_exit=$smoke_exit, survival=$([ -f "$survival_ok" ] && echo ok || echo failed))"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
|
|||||||
@@ -51,13 +51,15 @@ type = "oneshot_async"
|
|||||||
path = "/usr/lib/init.d/20_display.service"
|
path = "/usr/lib/init.d/20_display.service"
|
||||||
data = """
|
data = """
|
||||||
[unit]
|
[unit]
|
||||||
description = "Legacy display compatibility shim"
|
description = "Compositor proof (Phase 2: KWin virtual + Qt6 smoke + 60s survival)"
|
||||||
requires_weak = [
|
requires_weak = [
|
||||||
|
"12_dbus.service",
|
||||||
|
"13_redbear-sessiond.service",
|
||||||
|
"13_seatd.service",
|
||||||
]
|
]
|
||||||
|
|
||||||
[service]
|
[service]
|
||||||
cmd = "ion"
|
cmd = "redbear-validation-session"
|
||||||
args = ["-c", "true"]
|
|
||||||
envs = { VT = "3" }
|
envs = { VT = "3" }
|
||||||
type = "oneshot_async"
|
type = "oneshot_async"
|
||||||
"""
|
"""
|
||||||
@@ -66,17 +68,13 @@ type = "oneshot_async"
|
|||||||
path = "/usr/lib/init.d/20_greeter.service"
|
path = "/usr/lib/init.d/20_greeter.service"
|
||||||
data = """
|
data = """
|
||||||
[unit]
|
[unit]
|
||||||
description = "Red Bear greeter service"
|
description = "Red Bear greeter service (disabled for Phase 2 compositor proof; re-enable for Phase 3 user sessions)"
|
||||||
requires_weak = [
|
requires_weak = [
|
||||||
"12_dbus.service",
|
|
||||||
"13_redbear-sessiond.service",
|
|
||||||
"13_seatd.service",
|
|
||||||
"19_redbear-authd.service",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[service]
|
[service]
|
||||||
cmd = "/usr/bin/redbear-greeterd"
|
cmd = "ion"
|
||||||
envs = { VT = "3", REDBEAR_GREETER_USER = "greeter" }
|
args = ["-c", "true"]
|
||||||
type = "oneshot_async"
|
type = "oneshot_async"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user