Skip to content

Commit fbb6c2a

Browse files
committed
ci: 把引导阶段绑定指名的 glibc 载荷装给它(过渡步骤)
`xim:glibc` 的 `latest` 从 `2.44` 移到了 `2.44.2`。载荷目录按请求**解析成**的版本 命名,而 RuntimeBinding 带的是**声明的**版本 —— 而一个已发布的 mcpp vendor 进自己 沙箱的那份 xlings 仍然声明 `2.44`。于是干净机器装出 `2.44.2`,工具链 fixup 要 `2.44`,构建在编译任何东西之前就停住: error: selected RuntimeBinding glibc@2.44 requires payload '.../xpkgs/xim-x-glibc/2.44', but it is not installed ⚠️ 在每一台**新**机器上出现,在任何已存在的机器上都不出现 —— 所以开发机看不见。 索引的 `pkgs/g/glibc.lua` 把这次失败逐字记着,并给出规则: 「The index is DATA and the client is a PROGRAM: the consumer ships first。」 ## ⚠️ 我先试过 bump xlings,撤回了 把 `XLINGS_VERSION` 提到 2026.8.27.1 会让**沙箱里那份** xlings 被换掉 (mcpp 的 `acquire_xlings_binary` 在 pin 前移时更新它),绑定于是**前移**到 `glibc@2.44.2`,而已经装好的是 `2.44` —— 请求比已装的**更新**。那是更糟的一侧: 接受一个更旧的载荷去回答更新的请求,等于静默用上索引明说 「IT IS NOT THE ONE TO INSTALL」的那份(带 mcpp#484 的 preload 缺陷)。 ⇒ 保持 xlings 不动,把缺的那个载荷直接装上。 ⭐ 待 mcpp 2026.8.27.1(mcpp-community/mcpp#515)发布后移除:它接受 「版本精化了请求」的已装载荷,从它引导就不需要这一步。
1 parent 37b4bdd commit fbb6c2a

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,34 @@ jobs:
114114
echo "the index has not caught up yet (attempt $attempt of 6); waiting 60s"
115115
sleep 60
116116
done
117+
# ⚠️⚠️ TRANSITION: GIVE THE BOOTSTRAP THE glibc ITS BINDING NAMES.
118+
#
119+
# `xim:glibc`'s `latest` moved from `2.44` to `2.44.2`. A payload
120+
# directory is named after the version a request RESOLVED to, while a
121+
# RuntimeBinding carries the version that was DECLARED — and the xlings
122+
# a released mcpp vendors into its own sandbox still declares `2.44`.
123+
# So a clean machine installs `2.44.2`, the toolchain fixup asks for
124+
# `2.44`, and the build stops before anything is compiled:
125+
#
126+
# error: selected RuntimeBinding glibc@2.44 requires payload
127+
# '…/xpkgs/xim-x-glibc/2.44', but it is not installed
128+
#
129+
# ⚠️ On every NEW machine and on none that already existed, which is why
130+
# it is invisible from a developer's own. Measured on `main` as readily
131+
# as on any branch — the index records the same failure verbatim in
132+
# `pkgs/g/glibc.lua` and states the rule it broke: "The index is DATA
133+
# and the client is a PROGRAM: the consumer ships first."
134+
#
135+
# ⭐ REMOVE THIS once a released mcpp resolves it. `mcpp 2026.8.27.1`
136+
# accepts an installed payload whose version REFINES the requested one
137+
# (`payload_dir_for_version`), so a bootstrap from it needs nothing
138+
# here. Until then the missing payload is simply installed.
139+
if [ -x "$HOME/.mcpp/registry/bin/xlings" ]; then
140+
XLINGS_HOME="$HOME/.mcpp/registry" XLINGS_NON_INTERACTIVE=1 \
141+
"$HOME/.mcpp/registry/bin/xlings" install glibc@2.44 -y -g \
142+
>/dev/null 2>&1 || true
143+
echo "glibc payloads present: $(ls "$HOME/.mcpp/registry/data/xpkgs/xim-x-glibc" 2>/dev/null | tr '\n' ' ')"
144+
fi
117145
mcpp --version
118146
mcpp self config --mirror GLOBAL
119147
# ⭐⭐ CROSS-VALIDATION: BUILD THE mcpp UNDER REVIEW AND USE THAT ONE.

0 commit comments

Comments
 (0)