fix(ci): pin LLVM 18 for Windows cross-compilation #17

Merged
naomi merged 3 commits from fix/ci into main 2026-04-13 16:21:43 -07:00
Owner

Summary

The Windows build job has been failing on every PR since the initial release. The root cause is that the default clang/lld/llvm apt packages resolve to an older version of llvm-rc that cannot handle PNG-compressed entries in .ico files — and all six images in icon.ico use PNG compression.

Pinning to clang-18, lld-18, and llvm-18 (available in Ubuntu 24.04's default repos) and registering them via update-alternatives ensures llvm-rc, clang-cl, lld-link, and friends all resolve to a version that handles the icon resource correctly.

This PR was created with help from Hikari~ 🌸

## Summary The Windows build job has been failing on every PR since the initial release. The root cause is that the default `clang`/`lld`/`llvm` apt packages resolve to an older version of `llvm-rc` that cannot handle PNG-compressed entries in `.ico` files — and all six images in `icon.ico` use PNG compression. Pinning to `clang-18`, `lld-18`, and `llvm-18` (available in Ubuntu 24.04's default repos) and registering them via `update-alternatives` ensures `llvm-rc`, `clang-cl`, `lld-link`, and friends all resolve to a version that handles the icon resource correctly. ✨ This PR was created with help from Hikari~ 🌸
hikari added 1 commit 2026-04-13 11:50:50 -07:00
fix(ci): pin LLVM 18 for Windows cross-compilation
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 1m18s
CI / Lint & Check (pull_request) Successful in 14m56s
CI / Build Windows (pull_request) Failing after 2m31s
42b4958c2a
Older llvm-rc versions cannot handle PNG-compressed ICO entries,
causing the Windows build to fail. Pinning to LLVM 18 and setting
up alternatives ensures llvm-rc, clang-cl, and lld-link all resolve
to a version that handles the icon resource correctly.
hikari added 1 commit 2026-04-13 12:13:50 -07:00
fix(ci): use LLVM 18 bin path instead of update-alternatives
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 2m6s
CI / Lint & Check (pull_request) Successful in 15m25s
CI / Build Windows (pull_request) Failing after 30m52s
ef7f74a919
clang-cl-18 does not have a versioned symlink in /usr/bin on this
runner, causing update-alternatives to fail and abort the step before
llvm-rc was ever configured. Prepending /usr/lib/llvm-18/bin to PATH
is more robust and ensures all LLVM 18 tools (clang-cl, lld-link,
llvm-rc) are resolved correctly without relying on symlink names.
hikari added 1 commit 2026-04-13 13:15:12 -07:00
fix(ci): regenerate icon.ico with BMP-only entries
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 1m23s
CI / Lint & Check (pull_request) Successful in 13m5s
CI / Build Windows (pull_request) Successful in 28m40s
0903033180
All six entries in the original icon.ico used PNG compression inside
the ICO container. Older versions of llvm-rc (used during Windows
cross-compilation) cannot parse PNG-compressed ICO entries, causing
the resource compilation step to fail since PR #1.

Regenerated with ImageMagick using -compress None to force BMP format
for all sizes including 256x256. Reverts the LLVM pinning attempts
as they are no longer needed.
naomi merged commit 5bfd25e60d into main 2026-04-13 16:21:43 -07:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nhcarrigan/tatsumi#17