Skip to content

Commit ba38f2f

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 e556d34 commit ba38f2f

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
@@ -78,6 +78,34 @@ jobs:
7878
else
7979
xlings install "mcpp@$MCPP_VERSION" -y -g
8080
fi
81+
# ⚠️⚠️ TRANSITION: GIVE THE BOOTSTRAP THE glibc ITS BINDING NAMES.
82+
#
83+
# `xim:glibc`'s `latest` moved from `2.44` to `2.44.2`. A payload
84+
# directory is named after the version a request RESOLVED to, while a
85+
# RuntimeBinding carries the version that was DECLARED — and the xlings
86+
# a released mcpp vendors into its own sandbox still declares `2.44`.
87+
# So a clean machine installs `2.44.2`, the toolchain fixup asks for
88+
# `2.44`, and the build stops before anything is compiled:
89+
#
90+
# error: selected RuntimeBinding glibc@2.44 requires payload
91+
# '…/xpkgs/xim-x-glibc/2.44', but it is not installed
92+
#
93+
# ⚠️ On every NEW machine and on none that already existed, which is why
94+
# it is invisible from a developer's own. Measured on `main` as readily
95+
# as on any branch — the index records the same failure verbatim in
96+
# `pkgs/g/glibc.lua` and states the rule it broke: "The index is DATA
97+
# and the client is a PROGRAM: the consumer ships first."
98+
#
99+
# ⭐ REMOVE THIS once a released mcpp resolves it. `mcpp 2026.8.27.1`
100+
# accepts an installed payload whose version REFINES the requested one
101+
# (`payload_dir_for_version`), so a bootstrap from it needs nothing
102+
# here. Until then the missing payload is simply installed.
103+
if [ -x "$HOME/.mcpp/registry/bin/xlings" ]; then
104+
XLINGS_HOME="$HOME/.mcpp/registry" XLINGS_NON_INTERACTIVE=1 \
105+
"$HOME/.mcpp/registry/bin/xlings" install glibc@2.44 -y -g \
106+
>/dev/null 2>&1 || true
107+
echo "glibc payloads present: $(ls "$HOME/.mcpp/registry/data/xpkgs/xim-x-glibc" 2>/dev/null | tr '\n' ' ')"
108+
fi
81109
mcpp --version
82110
mcpp self config --mirror GLOBAL
83111
# ⭐⭐ CROSS-VALIDATION: BUILD THE mcpp UNDER REVIEW AND USE THAT ONE.

0 commit comments

Comments
 (0)