CI: invoke Chez via a scheme wrapper, not a symlink

Chez derives its boot-file name from argv0, so a symlink named chez looks for a
nonexistent chez.boot (CI failed at the first gate step). Replace the symlink
with a wrapper that exec's scheme, preserving argv0 so the boot files resolve.
This commit is contained in:
Yogthos 2026-06-21 15:32:16 -04:00
parent 39efb29134
commit dd0e0b55cc

View file

@ -18,9 +18,12 @@ jobs:
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y chezscheme sudo apt-get install -y chezscheme
# the gate invokes `chez`; Debian/Ubuntu installs it as `scheme` # the gate invokes `chez`; Debian/Ubuntu installs it as `scheme`. A symlink
# won't do — Chez derives its boot-file name from argv0, so `chez` would look
# for a nonexistent chez.boot. A wrapper that exec's `scheme` keeps argv0.
if ! command -v chez >/dev/null 2>&1; then if ! command -v chez >/dev/null 2>&1; then
sudo ln -s "$(command -v scheme)" /usr/local/bin/chez printf '#!/bin/sh\nexec scheme "$@"\n' | sudo tee /usr/local/bin/chez >/dev/null
sudo chmod +x /usr/local/bin/chez
fi fi
chez --version || true chez --version || true