Skip to content

ci: 引导用的 mcpp 自带一份 xlings,而那份早于一次索引移动 - #12

Closed
Sunrisepeak wants to merge 1 commit into
mainfrom
ci/bridge-bundled-xlings
Closed

ci: 引导用的 mcpp 自带一份 xlings,而那份早于一次索引移动#12
Sunrisepeak wants to merge 1 commit into
mainfrom
ci/bridge-bundled-xlings

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

⚠️ 过渡步骤,待 mcpp#515 发布后移除。

缺陷

一个 mcpp 发布内嵌一份 xlings 在 <install>/registry/bin/xlings,而解析 runtime binding 的是那一份,不是 quick_install 装的那一份。

xim:glibclatest 移到 2.44.2,而只有 xlings 2026.8.27.1 改为从索引读默认绑定(openxlings/xlings#567)。旧的内嵌副本要 glibc@2.44,干净环境装出 2.44.2,工具链 post-install 停住:

error: selected RuntimeBinding glibc@2.44 requires payload
       '.../xpkgs/xim-x-glibc/2.44', but it is not installed

在每一台新机器上出现,在任何已存在的机器上都不出现 —— 所以它在开发机上不可见。索引的 pkgs/g/glibc.lua 把这次失败逐字记着,并说明「the consumer ships first」。

归因(实测)

读数
mcpp_ref 指向 mcpp#515 分支 ❌ 同一处错
mcpp_ref=main(对照) 同一处错 ⇒ 与被验证的改动无关
mcpp_ref 留空(装已发布版,不从源码构建) ✅ 但它跳过了出错的那一步,不是有效对照

这一步做什么

只在内嵌副本与已装副本版本不同时替换,并打印替换了什么 —— 静默替换不可能发生。mcpp 2026.8.27.1 内嵌的就是 2026.8.27.1,那之后是空操作。

@Sunrisepeak Sunrisepeak reopened this Aug 27, 2026
@Sunrisepeak
Sunrisepeak force-pushed the ci/bridge-bundled-xlings branch from 6ce95ac to d95a5ba Compare August 27, 2026 02:21
`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)发布后移除:它接受
「版本精化了请求」的已装载荷,从它引导就不需要这一步。
@Sunrisepeak
Sunrisepeak force-pushed the ci/bridge-bundled-xlings branch from d95a5ba to fbb6c2a Compare August 27, 2026 03:15
@Sunrisepeak

Copy link
Copy Markdown
Member Author

Closing: the bridge this branch adds never executed.

The guard tested $HOME/.mcpp/registry/bin/xlings at a point in the script where
mcpp had not yet created its registry, so the block was skipped on every run. What
I first read as its output in the logs was the workflow echoing its own script
text, unexpanded.

The premise was also unreachable. xlings install glibc@2.44 resolves the request
to 2.44.2 and creates a directory of that name, so it cannot produce the 2.44
directory an older binding looks for.

What actually stopped the failure was reverting the xlings pin, one commit
earlier: openkal cross-build was already green at 02:10, 02:41 and 02:57, before
this branch existed. mcpp-community/mcpp#515 carries the same revert of the bridge
in the engine repository, with the run history that shows it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants