ZaStoGram_desktop/.gitattributes
loop-uh dfce4b3bf8 Keep qtbase patches LF so they apply on Windows
.gitattributes normalises everything through `* text=auto` and pins *.diff to LF,
but the qtbase patches under Telegram/build/patches_extra are *.patch and were
left out. On a Windows checkout they arrive with CRLF, and prepare.py applies
them to freshly cloned Qt sources that are LF, so git apply cannot match its own
context:

  error: patch failed: src/widgets/kernel/qwidgetrepaintmanager.cpp:1042
  error: src/widgets/kernel/qwidgetrepaintmanager.cpp: patch does not apply

The Qt stage prints that error and still reports success, because the failing
git apply sits inside a for loop whose exit code the generated batch does not
propagate. The result is a stage marked complete with Qt neither patched, built,
nor installed, and the failure only surfaces much later as "Neither Qt6 nor Qt5
is found" when configuring Telegram itself.

CI never hit this: it restores a Libraries cache built back when the patch still
applied, so the Qt stage never reruns there.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 16:20:08 +03:00

13 lines
533 B
Text

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Ensure diffs have LF endings. This covers *.patch too: the qtbase patches under
# Telegram/build/patches_extra are applied by prepare.py to freshly cloned Qt sources,
# which are LF. Checked out with CRLF under `* text=auto`, they stop matching their
# own context and git apply fails with "patch does not apply".
*.diff text eol=lf
*.patch text eol=lf
*.bat text eol=crlf
# Ensure lottie animations are treated as binary files
*.lottie binary