Skip to content

feat(pangocairo): 删掉 cairo.h 变通 —— cairo 的修复已经发布 - #329

Merged
Sunrisepeak merged 2 commits into
mainfrom
feat/pango-cairo-module
Aug 31, 2026
Merged

feat(pangocairo): 删掉 cairo.h 变通 —— cairo 的修复已经发布#329
Sunrisepeak merged 2 commits into
mainfrom
feat/pango-cairo-module

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

#328 的收尾。freedesktop.cairo 1.18.2-mcpp3 已在 main(697 个名字,cairo_t 与 192 个枚举量都在),所以 gnome.pangocairo 里那个自己扫 cairo.h 的变通可以删了,改成普通的 export import cairo;

⚠️ 难的是次序,不是代码

这个变通不能和修 cairo 放在同一个改动里:gnome.pangocairo已发布的索引解析 cairo,而一个索引 PR 没法同时验证两边 —— 一个成员只能声明一个项目级 index repo:

error: xlings install_packages failed … with 2 index repos configured
       [freedesktop -> …, gnome -> …]; ≥2 project-level index repos is a
       known xlings resolution gap

所以 tests/examples/pangocairo 不可能同时用本地的 gnome.* 描述符和本地的 freedesktop.* 描述符。

我一度反过来做了 —— 每一行代码都是对的,次序错了,两边都红。 已回滚、按正确次序重来,并把理由写进 gnome.pangocairo 的描述符和设计文档 §23.5 / §23.6,免得下次再犯。

改了什么

gnome.pangocairo 不再扫 cairo.h;export import cairo;
三个 pango 描述符 新 sha e6664cfe…,CN 容器 tag 1.56.1-7
设计文档 §23.6 记下这条次序约束

验证

五个示例(cairo、libdisplay-info、pango、pangoft2、pangocairo)× 两条工具链全绿;pango fork 本地六个测试双绿。

freedesktop.cairo 1.18.2-mcpp3 已在 main:697 个名字,cairo_t 与 192 个枚举量
都在。普通的 export import cairo; 就够了 —— 本来就该够 —— 而且模块名现在是
cairo。

⚠️ 难的是次序不是代码。这个包从**已发布的**索引解析 cairo,而一个索引 PR 没法
同时验证两边:一个成员只能声明一个项目级 index repo(xlings#374 / mcpp#238),
所以 tests/examples/pangocairo 不能同时用本地的 gnome.* 和本地的 freedesktop.*
描述符。在 cairo 发布之前删这个变通,会让两边都红,而每一行代码都是对的。

tarball 重切:sha256 → e6664cfe…,CN 容器 tag → 1.56.1-7。

五个示例 × 两条工具链全绿。
删掉 cairo.h 变通后 pangocairo 正确地从 284 个导出降到 32(它不再自己转出 cairo
的名字,而是转出 cairo 模块)—— 32 对上游 33 个 pango_cairo_* 函数是对的。

下限留在 200 会把一次**正确的收缩**判成红,这和下限存在的目的正相反:它们是用来
抓**塌陷**的,而这次没有塌陷。

sha256 → e9a1c28d…,CN 容器 tag → 1.56.1-8。
@Sunrisepeak
Sunrisepeak merged commit 2284bb8 into main Aug 31, 2026
11 checks passed
@Sunrisepeak
Sunrisepeak deleted the feat/pango-cairo-module branch August 31, 2026 14:56
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.

1 participant