Windows: Force cairo msys version to a rayon-compatible one #1561
+133
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to #1536 ? (should fix it but TBC).
The issue is that msys2/MINGW-packages@305ebda added a patch to the windows msys cairo version that uses direct2D and probably makes the cairo text calls inside rayon impossible without crashing (if there is more gpu-related code, having it run on multiple threads won't work if they call to the same gpu...). At least that's my reading of the patch.
So it's either we downgrade cairo (this is what I'm doing here) or we remove the rayon call (#1536 (comment)) on windows for text.
Given that this only happens on the patched msys version, I'd go with option 1 for now and then report to msys (not yet done, maybe this needs a minimal example of text layout calls inside rayon ..).
There's also some windows CI fixes. The 2025 windows server image now includes Inno and that makes the CI fail (winget tries to install, then see it's already installed and the step failed with exit code 1 https://github.com/Doublonmousse/rnote/actions/runs/18626734337/job/53105785678#step:2:34). So test if inno is installed first, and if not call winget. Given that inno seems to appear/disappear from the window image, I'd reckon leaving the new logic as is is probably for the better (it'll then work wherever inno is in the image or not).
Window release build to test : https://github.com/Doublonmousse/rnote/actions/runs/18626906789