sync.sh: install 'file' -- install-build-deps.py hard-requires it

Confirmed root cause of ci run #61's failure: install-build-deps.py's
dev_list() shells out to `file -L <path>` to detect ELF architecture;
this minimal Ubuntu cloud image doesn't ship it by default.
(FileNotFoundError: [Errno 2] No such file or directory: 'file')

This is a real, ordinary failure with a full clean run and proper
teardown around it -- the sshExecScript PTY-EOF fix is confirmed working
end to end.
This commit is contained in:
Philip Peterson 2026-08-05 02:45:59 -08:00
parent c3e94b7484
commit 1462524931

17
sync.sh
View file

@ -30,13 +30,18 @@ redact() {
sed -E 's#x-access-token:[^@]*@#x-access-token:REDACTED@#g'
}
echo "===== strace (for stall-watch.py diagnostics, if a hang happens again) ====="
# Best-effort, not fatal: strace is a diagnostic nicety, not a build
# requirement -- stall-watch.py already degrades gracefully without it.
if ! command -v strace >/dev/null 2>&1; then
apt-get update -qq && apt-get install -y strace \
|| echo "strace install failed, continuing without it"
echo "===== base packages (file, strace) ====="
# `file` is a hard requirement: install-build-deps.py's dev_list() shells
# out to it (via `file -L <path>`) to detect ELF architecture, and this
# minimal Ubuntu cloud image doesn't ship it by default (confirmed: ci run
# #61, 2026-08-05, FileNotFoundError: 'file'). strace is a diagnostic
# nicety for stall-watch.py, not a build requirement -- best-effort only.
if ! command -v file >/dev/null 2>&1 || ! command -v strace >/dev/null 2>&1; then
apt-get update -qq
fi
command -v file >/dev/null 2>&1 || apt-get install -y file
command -v strace >/dev/null 2>&1 || apt-get install -y strace \
|| echo "strace install failed, continuing without it"
echo "===== depot_tools ====="
if [ ! -d "$HOME/depot_tools" ]; then