Skip to content

Commit 5b82b17

Browse files
committed
ci(bootstrap): the two Linux xlings tarballs do not have the same shape
Fetching the right architecture got as far as `No such file or directory`, exit 127. Measured on the 2026.8.17.2 assets: linux-x86_64 subos/default/bin/xlings 513 entries linux-aarch64 bin/xlings 494 entries The path is now found rather than named, bounded to depth 5, and an empty result is a hard error — a bootstrap that continues without xlings fails forty lines later on something that reads like a different problem. ⚠️ Checked before changing the three hosts that already worked: on x86_64 the find resolves `bin/xlings` where the line before named `subos/default/bin/xlings`, and those are the same file — the second is a symlink to the first, md5 94b8e2f2… for both. A find that quietly moved macOS and Windows onto a different binary would have been worse than the defect it fixed.
1 parent c185a66 commit 5b82b17

1 file changed

Lines changed: 32 additions & 1 deletion

File tree

.github/actions/bootstrap-mcpp/action.yml

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,38 @@ runs:
117117
"https://github.com/d2learn/xlings/releases/download/v${XLINGS_VERSION}/${tarball}" \
118118
"${WORK}/${tarball}"
119119
tar -xzf "${WORK}/${tarball}" -C "${WORK}"
120-
"${WORK}/${tarball%.tar.gz}/subos/default/bin/xlings" self install
120+
# ⚠️⚠️ THE TWO LINUX TARBALLS DO NOT HAVE THE SAME SHAPE, and this line
121+
# named one of them. Measured on the 2026.8.17.2 assets:
122+
#
123+
# linux-x86_64 → subos/default/bin/xlings (513 entries)
124+
# linux-aarch64 → bin/xlings (494 entries)
125+
#
126+
# so fetching the right architecture — the fix immediately above — got
127+
# as far as `No such file or directory`, exit 127.
128+
#
129+
# ⭐ FOUND RATHER THAN ASSUMED, AND THE SEARCH IS BOUNDED. `-maxdepth 5`
130+
# keeps it from wandering into the payload tree, and an empty result is
131+
# a hard error: a bootstrap that silently continues without xlings fails
132+
# forty lines later on something that reads like a different problem.
133+
#
134+
# ⚠️ CHECKED BEFORE CHANGING THE THREE HOSTS THAT ALREADY WORKED. On
135+
# x86_64 this now resolves `bin/xlings` where the line before named
136+
# `subos/default/bin/xlings` — and those are the same file:
137+
#
138+
# subos/default/bin/xlings -> ../../../bin/xlings (symlink)
139+
# md5 94b8e2f2… for both
140+
#
141+
# A find that quietly moved macOS and Windows onto a different binary
142+
# would have been a worse defect than the one being fixed.
143+
XL_BOOT="$(find "${WORK}/${tarball%.tar.gz}" -maxdepth 5 -type f \
144+
-name xlings -perm -u+x | head -1)"
145+
[ -n "$XL_BOOT" ] || {
146+
echo "::error::no xlings executable inside ${tarball}"
147+
find "${WORK}/${tarball%.tar.gz}" -maxdepth 3 | head -20
148+
exit 1
149+
}
150+
echo "bootstrap xlings: ${XL_BOOT#${WORK}/}"
151+
"$XL_BOOT" self install
121152
export PATH="$HOME/.xlings/subos/default/bin:$PATH"
122153
echo "$HOME/.xlings/subos/default/bin" >> "$GITHUB_PATH"
123154
xlings --version

0 commit comments

Comments
 (0)