dotnet / dotnet/arcade

Signtool will not preserve executable bits of loose Linux or Mac binaries if they are signed in some circumstances

Open
#16,303 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
729
Forks
397
Avg merge
3d 15m
Merged PRs (30d)
149

Description

If a binary is "loose" (meaning not within a parent container), and is designated to be signed, in certain circumstances the executable bit might not be preserved. This can happen in the following cases:
- Mac executable notarization - The initial signing step does preserve the bits due to using ditto before sending a loose binary. This is required by the signing service. The notarization step doesn't use ditto (service doesn't expect an archive). The file is returned without the executable bit and copied over the original. We don't typically notarize executables in a standalone fashion.
- Linux executables - Similar to mac notarization, if you were to sign the executable in some way that alters the file content, then the returned file would not have the executable bit.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.