Shell scripts are run by bash (WSL/Linux/CI). With core.autocrlf=true the
working tree gets CRLF, and bash then fails on the stray CR: the packing step
of build.bat died with
pack_system_image.sh: line 13: $'\r': command not found
pack_system_image.sh: line 14: set: pipefail\r: invalid option name
core.autocrlf is a per-clone setting and is not shared, so the only reliable
fix is a repository-level attribute. Pin *.sh to LF for every checkout.