Update stacked: fontconfig 2.18.2 + pango 1.58.0 - #493
Conversation
Bundles #488 and #487, which are each other's blocker. #488 (fontconfig 2.17.1 -> 2.18.2) fails `minimal build` on both arches because pango 1.56.4 no longer compiles against it: ../pango/pangofc-fontmap.c:4010:8: error: implicit declaration of function 'FcFreeTypeQueryAll' [-Wimplicit-function-declaration] FcFreeTypeQueryAll is a fontconfig API; 2.18.2 stops declaring it where pango 1.56.4 expects, and pango builds with -Werror=implicit, so a missing declaration is fatal rather than a warning. #487 (pango 1.56.4 -> 1.58.0) passes on its own only because it still builds against fontconfig 2.17.1, where the declaration is present. So each PR is green or red depending on the other's absence, and neither can land first: merging #488 breaks the tree, and merging #487 alone leaves the fontconfig CVE-relevant bump blocked. Landing them together is the fix, and it is the same shape as #485 (node + c-ares), where pairing the dependent with its dependency resolved an identical break. Versions and checksums are taken unmodified from #487 and #488. This is a hypothesis the build gate should confirm: pango 1.58.0 is expected to have dropped or re-guarded the FcFreeTypeQueryAll call, but that has NOT been verified against pango's source — the combination has never been built. If CI fails here, pango 1.58.0 is not the fix and fontconfig needs a patch or a newer pango instead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 42 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughFontconfig is updated to 2.18.2 and Pango to 1.58.0. Their build specifications now use the corresponding source archive SHA-256 checksums. ChangesPackage version updates
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/fontconfig/build.ncl`:
- Line 21: Update the upstream URL comment in the fontconfig build configuration
so its directory version matches the fetched fontconfig-2.18.2 archive,
replacing the stale 2.17.1 component with 2.18.2.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: d283ebc9-952b-46bc-805d-92485eeff7c8
📒 Files selected for processing (2)
packages/fontconfig/build.nclpackages/pango/build.ncl
The upstream URL comment read .../fontconfig/2.17.1/fontconfig-2.18.2.tar.xz — the filename was bumped but the release-directory component was not, so the comment points at a URL that doesn't exist. Inherited unmodified from #488, i.e. generated by pkgmgr's updater rather than introduced here. The same defect is on main in ocaml (5.3.0 vs 5.5.0), yojson (2.2.2 vs 3.0.0) and dune (3.20.2 vs 3.24.0), all of the form .../download/<OLD>/<name>-<NEW>.ext. Fixing the updater is tracked separately; this just corrects the file in flight. Caught by CodeRabbit. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bundles #488 and #487, which turn out to be each other's blocker.
Why #488 fails
minimal buildfails on both arches. The check run has no output (infra#316), andrun.jsonldoesn't carry it either — the error is only in the per-build log (59.jsonl, "Project name: pango"):FcFreeTypeQueryAllis a fontconfig API. 2.18.2 stops declaring it where pango 1.56.4 expects it, and pango compiles with-Werror=implicit, so a missing declaration is fatal rather than a warning.Why neither PR can land alone
Each is green or red purely because of the other's absence. Merging #488 breaks the tree; merging #487 alone leaves fontconfig blocked. Same shape as #485 (node + c-ares) — pairing the dependent with its dependency was the fix there too.
Versions and checksums taken unmodified from #487 and #488.
This is a hypothesis, and the gate should decide it
I have not verified against pango's source that 1.58.0 drops or re-guards the
FcFreeTypeQueryAllcall — the combination has never been built anywhere. It's the obvious candidate (1.58.0 postdates fontconfig 2.18), but if CI fails here then pango 1.58.0 is not the fix, and fontconfig needs a patch or a newer pango.If this goes green, #487 and #488 can close in favour of it.
Note
#488's body also flags 5 new pkgscan signals, risk score 10.0 on the fontconfig bump. That's independent of the build failure and still wants a look before merge.
🤖 Generated with Claude Code
Summary by CodeRabbit