Abhishek Chaudhary created FINERACT-3011:
--------------------------------------------
Summary: Source release tarball does not keep gradlew and the
shell scripts executable
Key: FINERACT-3011
URL: https://issues.apache.org/jira/browse/FINERACT-3011
Project: Apache Fineract
Issue Type: Bug
Components: Build
Affects Versions: 1.16.0, 1.16.1
Reporter: Abhishek Chaudhary
Fix For: 1.17.0
Since the upgrade to Gradle 9 (FINERACT-2799), archive tasks store every file
as 0644 and every directory as 0755, so {{srcDistTar}} no longer keeps the
executable bit from the working tree. In the 1.16.0 and 1.16.1 source tarballs,
{{gradlew}} and all shell scripts are 0644, and building from an extracted
source release fails at the first step:
{noformat}
$ ./gradlew build
bash: ./gradlew: Permission denied
{noformat}
The 1.15.0 source tarball still had them executable.
*Steps to reproduce*
# {{./gradlew :fineract-war:srcDistTar}}
# {{tar tvzf fineract-war/build/distributions/apache-fineract-src-*.tar.gz |
grep -E '/gradlew$|\.sh$'}}
*Expected*
{{gradlew}} and the shell scripts are {{-rwxr-xr-x}}, as they are in git.
*Proposed fix*
Set the permissions of {{gradlew}} and {{**/*.sh}} explicitly in the source
distribution in {{fineract-war/build.gradle}}. The tarball stays reproducible
and does not depend on the file modes of the machine that builds it.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)