From dd0e0b55cc5e0686591840f54ffe88a1f6fb1fed Mon Sep 17 00:00:00 2001 From: Yogthos Date: Sun, 21 Jun 2026 15:32:16 -0400 Subject: [PATCH] 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. --- .github/workflows/tests.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f2f699d..1841eb7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,9 +18,12 @@ jobs: run: | sudo apt-get update 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 - 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 chez --version || true