From 1aca85e48c5ebb64b9d8af36d69a20eba361b97c Mon Sep 17 00:00:00 2001 From: Vasilito Date: Mon, 4 May 2026 19:41:04 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20greeter=20compositor=20=E2=80=94=20repla?= =?UTF-8?q?ce=20bash=20process=20substitution=20with=20POSIX=20for=20loop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit redbear-greeter-compositor: line 35 was using 'done < <(cmd)' bash process substitution which creates /dev/fd/63. Redox kernel does not implement /dev/fd, causing 'No such file or directory' error and compositor startup failure. Replaced 'while read; do ...; done < <(parse_drm_devices)' with 'for device in ; do ...; done' — pure POSIX, no /dev/fd dependency. Device names contain no whitespace so word splitting is correct for this use case. --- .../system/redbear-greeter/source/redbear-greeter-compositor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/local/recipes/system/redbear-greeter/source/redbear-greeter-compositor b/local/recipes/system/redbear-greeter/source/redbear-greeter-compositor index dc805916..8865edbd 100755 --- a/local/recipes/system/redbear-greeter/source/redbear-greeter-compositor +++ b/local/recipes/system/redbear-greeter/source/redbear-greeter-compositor @@ -36,11 +36,11 @@ drm_devices_ready() { local devices="${1:-}" local device="" - while IFS= read -r device; do + for device in $(parse_drm_devices "$devices"); do if [ ! -e "$device" ]; then return 1 fi - done < <(parse_drm_devices "$devices") + done return 0 }