Skip to content

Commit 8479f2b

Browse files
committed
feat(pangocairo): 删掉 cairo.h 变通 —— cairo 的修复已经发布
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。 五个示例 × 两条工具链全绿。
1 parent d1151b8 commit 8479f2b

4 files changed

Lines changed: 27 additions & 18 deletions

File tree

.agents/docs/2026-08-30-graphics-stack-coverage-design.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2261,7 +2261,16 @@ error: xlings install_packages failed … with 2 index repos configured
22612261
⚠️ 我一度反过来做了(先把 pango 的变通删掉),两边都红。**代码是对的,次序是
22622262
错的**;已经回滚并把这段理由写进了 `gnome.pangocairo` 的描述符,免得下次再犯。
22632263

2264-
### 23.6 结果
2264+
### 23.6 收尾:pango 随后切过来
2265+
2266+
cairo 落地后,`gnome.pangocairo``cairo.h` 变通**已经删掉**,改成普通的
2267+
`export import cairo;`。两侧都绿。
2268+
2269+
> **代码是对的,次序错了,两边都红。** 这不是本 fork 的问题,是索引机制的形状:
2270+
> 一个成员只能声明一个项目级 index repo,所以跨 namespace 的联动改动**必须**分两
2271+
> 次落地,而且顺序唯一。
2272+
2273+
### 23.7 结果
22652274

22662275
| | |
22672276
|---|---|

pkgs/p/gnome.pango.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ package = {
8484
["1.56.1"] = {
8585
url = {
8686
GLOBAL = "https://github.com/mcpplibs/pango/archive/refs/tags/1.56.1.tar.gz",
87-
-- ⚠️ The container tag is `1.56.1-6`, not `1.56.1`. gitcode
87+
-- ⚠️ The container tag is `1.56.1-7`, not `1.56.1`. gitcode
8888
-- refuses to REPLACE an asset of the same name in an
8989
-- existing release, so each corrected tarball needs a new
9090
-- container tag while the PACKAGE version stays upstream's.
9191
-- Verified byte-identical to the GLOBAL tag archive.
92-
CN = "https://gitcode.com/mcpp-res/pango/releases/download/1.56.1-6/pango-1.56.1.tar.gz",
92+
CN = "https://gitcode.com/mcpp-res/pango/releases/download/1.56.1-7/pango-1.56.1.tar.gz",
9393
},
94-
sha256 = "19507c6712304750a0e9cc282135dda1919a1b89c0c4ce61e22411df0532a980",
94+
sha256 = "e6664cfefd58df72ea59b529527088e0efb5418c2eb59510f33742591c810429",
9595
},
9696
},
9797
},

pkgs/p/gnome.pangocairo.lua

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@
3131
--
3232
-- It surfaced here because pangocairo CANNOT mix the two routes
3333
-- (`pangocairo.h` reaches glib and therefore <stdio.h>), so it had to ask the
34-
-- module for `cairo_t` and got nothing. This package therefore scans cairo.h
35-
-- itself.
34+
-- module for `cairo_t` and got nothing. This package carried a workaround —
35+
-- scanning cairo.h itself — for two releases; it is GONE, and it re-exports
36+
-- the `cairo` module plainly.
3637
--
37-
-- ⚠️ THAT WORKAROUND STAYS UNTIL cairo's FIX IS PUBLISHED, not merely written.
38-
-- It is fixed in `1.18.2-mcpp3` (697 names), but this package resolves cairo
39-
-- from the PUBLISHED indexand the change cannot even be TESTED in one index
40-
-- PR, because a member may declare only ONE project-level index repo:
38+
-- ⚠️ THE ORDER WAS THE HARD PART, not the code. The workaround could not be
39+
-- removed in the same change that fixed cairo: this package resolves cairo
40+
-- from the PUBLISHED index, and a member may declare only ONE project-level
41+
-- index repo
4142
--
4243
-- error: ≥2 project-level index repos is a known xlings resolution gap
4344
--
4445
-- so an example cannot use a local `gnome.*` descriptor and a local
45-
-- `freedesktop.*` descriptor at the same time. cairo lands first; this
46-
-- follows.--
46+
-- `freedesktop.*` descriptor together. cairo landed first; this follows.--
4747
-- ─────────────────────────────────────────────────────────────────────────
4848
-- ⭐ TWO WAYS TO CONSUME IT, AND YOU PICK ONE
4949
--
@@ -106,14 +106,14 @@ package = {
106106
["1.56.1"] = {
107107
url = {
108108
GLOBAL = "https://github.com/mcpplibs/pango/archive/refs/tags/1.56.1.tar.gz",
109-
-- ⚠️ The container tag is `1.56.1-6`, not `1.56.1`. gitcode
109+
-- ⚠️ The container tag is `1.56.1-7`, not `1.56.1`. gitcode
110110
-- refuses to REPLACE an asset of the same name in an
111111
-- existing release, so each corrected tarball needs a new
112112
-- container tag while the PACKAGE version stays upstream's.
113113
-- Verified byte-identical to the GLOBAL tag archive.
114-
CN = "https://gitcode.com/mcpp-res/pango/releases/download/1.56.1-6/pango-1.56.1.tar.gz",
114+
CN = "https://gitcode.com/mcpp-res/pango/releases/download/1.56.1-7/pango-1.56.1.tar.gz",
115115
},
116-
sha256 = "19507c6712304750a0e9cc282135dda1919a1b89c0c4ce61e22411df0532a980",
116+
sha256 = "e6664cfefd58df72ea59b529527088e0efb5418c2eb59510f33742591c810429",
117117
},
118118
},
119119
},

pkgs/p/gnome.pangoft2.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ package = {
6868
["1.56.1"] = {
6969
url = {
7070
GLOBAL = "https://github.com/mcpplibs/pango/archive/refs/tags/1.56.1.tar.gz",
71-
-- ⚠️ The container tag is `1.56.1-6`, not `1.56.1`. gitcode
71+
-- ⚠️ The container tag is `1.56.1-7`, not `1.56.1`. gitcode
7272
-- refuses to REPLACE an asset of the same name in an
7373
-- existing release, so each corrected tarball needs a new
7474
-- container tag while the PACKAGE version stays upstream's.
7575
-- Verified byte-identical to the GLOBAL tag archive.
76-
CN = "https://gitcode.com/mcpp-res/pango/releases/download/1.56.1-6/pango-1.56.1.tar.gz",
76+
CN = "https://gitcode.com/mcpp-res/pango/releases/download/1.56.1-7/pango-1.56.1.tar.gz",
7777
},
78-
sha256 = "19507c6712304750a0e9cc282135dda1919a1b89c0c4ce61e22411df0532a980",
78+
sha256 = "e6664cfefd58df72ea59b529527088e0efb5418c2eb59510f33742591c810429",
7979
},
8080
},
8181
},

0 commit comments

Comments
 (0)