Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Git auto-detects text vs binary; text files are stored as LF in the index.
* text=auto

# Files that MUST be LF on every platform.
# Shell scripts, the Gradle wrapper launcher, the published KEYS file, and the
# Dockerfile all run on Linux during release verification. CRLF in any of them
# breaks the verification flow (kernel rejects scripts with bash\r shebangs and
# verify-keys.sh fails the byte-for-byte SVN comparison).
*.sh text eol=lf
gradlew text eol=lf
KEYS text eol=lf
Dockerfile text eol=lf
*.properties text eol=lf

# Files that MUST be CRLF (Windows scripts).
*.bat text eol=crlf
*.cmd text eol=crlf
gradlew.bat text eol=crlf

# Common binary types - never normalize.
*.jar binary
*.zip binary
*.gz binary
*.tgz binary
*.7z binary
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.pdf binary
*.p12 binary
*.gpg binary
*.keystore binary
*.class binary
*.so binary
*.dylib binary
*.dll binary
9 changes: 9 additions & 0 deletions etc/bin/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ ADD --chown=groovy gradlew /home/groovy/scripts
ADD --chown=groovy KEYS /home/groovy/scripts
ADD --chown=groovy gradle/wrapper/gradle-wrapper.jar /home/groovy/scripts/gradle/wrapper
ADD --chown=groovy gradle/wrapper/gradle-wrapper.properties /home/groovy/scripts/gradle/wrapper

# Defensive line-ending normalization. The repository's .gitattributes pins
# shell scripts, gradlew, KEYS, and the Dockerfile to LF on every platform, but
# committers with a pre-existing local checkout under core.autocrlf=true may
# still feed CRLF into the build context. Linux refuses scripts with bash\r
# shebangs and verify-keys.sh would fail the byte-for-byte SVN comparison.
# Strip CRs from any text file that must be LF on Linux.
RUN find /home/groovy/scripts -type f \( -name '*.sh' -o -name 'gradlew' -o -name 'KEYS' -o -name '*.properties' \) -exec sed -i 's/\r$//' {} \;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this is really only for windows? I have never had this problem on a mac

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

100%, I had fixed it a long time ago, but now have 4 copies of grails-core across a few machines and ran into it again.


ENV PATH="/home/groovy/scripts:/home/groovy/scripts/etc/bin:$PATH"
ENV CI=true
ENV LANG=C.UTF-8
Expand Down
Loading