Skip to content

TS-47496 Keep the executable flags in the distribution archives - #960

Merged
Stef2k16 merged 1 commit into
masterfrom
ts/47496_executable_flags
Aug 19, 2026
Merged

TS-47496 Keep the executable flags in the distribution archives#960
Stef2k16 merged 1 commit into
masterfrom
ts/47496_executable_flags

Conversation

@DreierF

@DreierF DreierF commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Addresses issue TS-47496

  • Changes are tested adequately
  • Teamscale documentation updated in case of user-visible changes
  • CHANGELOG.md updated
  • Present new features in N&N
  • TGA Tutorial updated
  • TIA Tutorial updated

Please respect the vote of the Teamscale bot or flag irrelevant findings as tolerated or false positives. If you feel that the Teamscale config needs adjustment, please state so in a comment and discuss this with your reviewer.

Archive tasks are reproducible by default since Gradle 9, which packages
every file with fixed permissions of 644 instead of taking them from the
file system. The upgrade in 36.0.0 therefore stripped the executable flag
from installer.sh and from the launchers and native binaries of the
installer's Linux runtime image, so the profiler could not be installed
from the zip without a chmod first.

Only bin/convert kept its flag, because the application plugin sets the
permissions of the bin directory explicitly rather than relying on the
file system.

The distribution archives now opt out of that part of reproducibility
again via useFileSystemPermissions(); the fixed file order and timestamps
stay in place, and permissions set explicitly still win. Comparing the
rebuilt zip against 35.2.1, the last release built with Gradle 8, shows
the same set of executables again, up to the JDK's own binaries changing
between the two runtime versions.

VerifyExecutablePermissions guards the entries that have to stay
executable and runs as part of check. It is skipped on Windows, which has
no executable flag to preserve; the released distribution is built on
Linux.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Stef2k16
Stef2k16 enabled auto-merge August 19, 2026 12:26
@Stef2k16
Stef2k16 merged commit b8a0a16 into master Aug 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants