@@ -238,6 +238,65 @@ PASS: 215_pack_has_no_build_machine_paths.sh ← shard 2
238238
239239---
240240
241+ ---
242+
243+ ## 7. 生态验收(用** 发布出去的** 那份,不是本地构建)
244+
245+ 发布之后按生态路径重做了一遍 —— 因为「本地构建能跑」和「用户装到的能跑」是两个断言。
246+
247+ ``` console
248+ $ xlings update && xlings install mcpp@2026.8.10.2 -y
249+ ✓ xim:mcpp@2026.8.10.2 done
250+ xim:mcpp@2026.8.10.2 installed, but 'mcpp' still resolves to 2026.8.8.2
251+ $ xlings use mcpp 2026.8.10.2
252+ [xlings] mcpp -> 2026.8.10.2 (xim:mcpp 2026.8.8.2 -> 2026.8.10.2)
253+ $ mcpp --version
254+ mcpp 2026.8.10.2
255+ ```
256+
257+ > ⚠️ ` install ` ** 不会** 自动切换已装的旧版本,它会明说。只看 ` install ` 的成功输出
258+ > 就以为切过去了,是这一步最容易的误读。
259+
260+ 用这个生态装出来的 mcpp 重跑图形验收:
261+
262+ | 项 | 结果 |
263+ | ---| ---|
264+ | imgui 模板 A(缓存 MISS) | ✅ |
265+ | imgui 模板 B(缓存 ** HIT** —— #405 的那一格) | ✅ ` Cached imgui v0.0.6 (9 units) ` |
266+ | 产物标签 | ✅ 可执行 ` DT_RPATH ` ,11 个库全 ` DT_RUNPATH ` ,rule E 零 violation |
267+ | ` artifacts ` | ` [] ` —— 环境未声明,报 ` NOT_DECLARED ` (见 §3) |
268+
269+ ### 顺带验到 2026.8.10.2 的一个不足(已由 2026.8.10.3 修)
270+
271+ 同一个 imgui 工程,` mcpp pack --mode self-contained ` :
272+
273+ ``` console
274+ # 生态里的 2026.8.10.2
275+ Packed b-0.1.0-x86_64-linux-gnu-bundle-all.tar.gz ← 照打不误,也没有 HOST-REQUIREMENTS
276+
277+ # 带 .3 修复的构建
278+ error: --mode self-contained cannot be used by a program that needs the host to
279+ provide abi:glibc, opengl.glx.driver, x11.display.
280+ use: --mode vendored — …
281+ ```
282+
283+ 原因:` .2 ` 的那道门读的是** 根 manifest** ,而这条能力来自依赖
284+ (` capability:opengl.glx.driver <- compat.glfw@3.4 ` )。** 真实工程恰恰是这个形态。**
285+ ` 216 ` 的 fixture 当时在根工程声明能力,所以它通过的理由比它声称的范围窄 ——
286+ 这一轮反复写的那条判据,这次落在自己头上。已改成依赖声明 + 前置断言。
287+
288+ ### 身份判决的渲染也验了(环境没声明,就自己造一个)
289+
290+ 符号链接仍指向 ` 0.1.1 ` 、声明 ` xim:vendor@0.1.2 ` :
291+
292+ ```
293+ artifacts:
294+ - library …/current/lib/libvendor.so <- … [xim:vendor@0.1.2; identity=mismatch]
295+ ^ STALE BINDING: this resolves into a different version than the one declared.
296+ ```
297+
298+ 正是设计里描述的那一格,而且是纯路径事实 —— 不需要认识 GL。
299+
241300## 附:今天重复了三次的同一条
242301
243302> ** 要说"验过了",先说清楚验的是哪一片。**
0 commit comments