Moved to new phase

This commit is contained in:
2026-03-20 09:45:20 +01:00
parent 31e2574e18
commit d6ea38db14
9 changed files with 521 additions and 19 deletions

View File

@@ -484,7 +484,7 @@ for f in rc.conf inittab fstab.template zprofile; do
fi
done
for daemon in eudev syslog dbus dhcpcd pipewire; do
for daemon in eudev seatd syslog dbus dhcpcd pipewire; do
script="${PROJECT_ROOT}/configs/rc.d/${daemon}"
if [ -x "$script" ]; then
if bash -n "$script" 2>/dev/null; then
@@ -544,7 +544,7 @@ done
# anywhere in the file within the DAEMONS block (or just present as a daemon entry)
RC_CONF="${PROJECT_ROOT}/configs/rc.conf"
if [ -f "$RC_CONF" ]; then
for svc in eudev dbus dhcpcd pipewire; do
for svc in eudev seatd dbus dhcpcd pipewire; do
if grep -q "^[[:space:]]*${svc}" "$RC_CONF"; then
record_test "chain.daemon_listed.${svc}" "pass"
else
@@ -591,10 +591,89 @@ if [ -f "$ZPROFILE" ]; then
else
record_test "chain.zprofile_xdg_runtime" "fail" "zprofile missing XDG_RUNTIME_DIR setup"
fi
# D-Bus user session — required by PipeWire and polkit
if grep -q 'dbus-launch' "$ZPROFILE"; then
record_test "chain.zprofile_dbus_session" "pass"
else
record_test "chain.zprofile_dbus_session" "fail" "zprofile missing dbus-launch — PipeWire and polkit won't work"
fi
# polkit authentication agent — needed for GUI password prompts (e.g., Steam)
if grep -q 'policykit-agent\|polkit.*agent' "$ZPROFILE"; then
record_test "chain.zprofile_polkit_agent" "pass"
else
record_test "chain.zprofile_polkit_agent" "fail" "zprofile missing polkit agent — no GUI password prompts"
fi
# LIBSEAT_BACKEND — seatd environment for wlroots/dwl
if grep -q 'LIBSEAT_BACKEND' "$ZPROFILE"; then
record_test "chain.zprofile_seatd_env" "pass"
else
record_test "chain.zprofile_seatd_env" "fail" "zprofile missing LIBSEAT_BACKEND — dwl may not get GPU access"
fi
# pipewire-pulse — PulseAudio compat server needed by Firefox/Steam
if grep -q 'pipewire-pulse' "$ZPROFILE"; then
record_test "chain.zprofile_pipewire_pulse" "pass"
else
record_test "chain.zprofile_pipewire_pulse" "fail" "zprofile missing pipewire-pulse — Firefox/Steam audio won't work"
fi
# wireplumber — session manager for PipeWire
if grep -q 'wireplumber' "$ZPROFILE"; then
record_test "chain.zprofile_wireplumber" "pass"
else
record_test "chain.zprofile_wireplumber" "fail" "zprofile missing wireplumber — audio routing won't work"
fi
else
record_test "chain.zprofile_dwl" "fail" "zprofile file missing entirely"
fi
# 7.11 — dwl config.h exists with keybindings
DWL_CONFIG="${PROJECT_ROOT}/configs/dwl/config.h"
if [ -f "$DWL_CONFIG" ]; then
record_test "chain.dwl_config_exists" "pass"
# Check for critical keybindings
if grep -q 'XKB_KEY_Return' "$DWL_CONFIG" && grep -q 'termcmd' "$DWL_CONFIG"; then
record_test "chain.dwl_config_terminal" "pass"
else
record_test "chain.dwl_config_terminal" "fail" "dwl config.h missing terminal keybinding"
fi
if grep -q 'browsercmd\|firefox' "$DWL_CONFIG"; then
record_test "chain.dwl_config_browser" "pass"
else
record_test "chain.dwl_config_browser" "fail" "dwl config.h missing browser keybinding"
fi
if grep -q 'steamcmd\|steam' "$DWL_CONFIG"; then
record_test "chain.dwl_config_steam" "pass"
else
record_test "chain.dwl_config_steam" "fail" "dwl config.h missing Steam keybinding"
fi
if grep -q 'XF86Audio' "$DWL_CONFIG"; then
record_test "chain.dwl_config_audio_keys" "pass"
else
record_test "chain.dwl_config_audio_keys" "fail" "dwl config.h missing audio key controls"
fi
else
record_test "chain.dwl_config_exists" "fail" "configs/dwl/config.h missing — dwl will use defaults (no custom keybindings)"
fi
# 7.12 — Installer deploys rc.d scripts and dwl config to target
INSTALLER_PKG="${PROJECT_ROOT}/src/install/modules/packages.sh"
if [ -f "$INSTALLER_PKG" ]; then
if grep -q 'rc\.d' "$INSTALLER_PKG" && grep -q 'cp.*rc\.d' "$INSTALLER_PKG"; then
record_test "chain.installer_deploys_rcd" "pass"
else
record_test "chain.installer_deploys_rcd" "fail" "Installer doesn't copy rc.d scripts to target"
fi
if grep -q 'dwl' "$INSTALLER_PKG"; then
record_test "chain.installer_deploys_dwl_config" "pass"
else
record_test "chain.installer_deploys_dwl_config" "fail" "Installer doesn't copy dwl config to target"
fi
fi
# 7.7 — rc.d/pipewire does NOT hardcode a username (should auto-detect)
PW_SCRIPT="${PROJECT_ROOT}/configs/rc.d/pipewire"
if [ -f "$PW_SCRIPT" ]; then
@@ -786,7 +865,9 @@ if [ "$QUICK_MODE" = false ] && [ "$ISO_PREREQS_OK" = true ]; then
"install/modules/user.sh:user module in live rootfs" \
"install/modules/locale.sh:locale module in live rootfs" \
"install/modules/packages.sh:packages module in live rootfs" \
"install/configs/zprofile:zprofile for target user in live rootfs"; do
"install/configs/zprofile:zprofile for target user in live rootfs" \
"etc/rc.d/seatd:seatd daemon in live rootfs" \
"install/configs/dwl/config.h:dwl config.h for target in live rootfs"; do
fpath="${check_file%%:*}"
fdesc="${check_file##*:}"
if sudo test -f "$SQFS_MNT/$fpath"; then