Skip to content

Preserve executable permissions for macOS installs - #711

Merged
embetten merged 8 commits into
masterfrom
users/embetten/install-script+x
Sep 28, 2026
Merged

embetten merged 8 commits into
masterfrom
users/embetten/install-script+x

Conversation

@embetten

@embetten embetten commented Aug 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Use unzip with a secure temporary file for macOS archives to preserve the credential provider apphost's executable bit.
  • Retain the existing tar extraction path as a fallback.
  • Validate executable permissions in bash and POSIX shell installation tests.
  • Document installer requirements and musl/Alpine behavior.

Fixes #709

Validation

  • Updated direct install-script validation for bash and POSIX shell paths.

embetten and others added 5 commits July 9, 2026 11:20
Cherry-pick of 8ac35c4 from
users/embetten/broker-shim-signing-fix-master.

## Summary
- Add prebuilt dotnet tool shim runtime identifiers for macOS and
Windows.
- Include the win-x86 RID.

## Validation
- Local restore, publish, and pack validated successfully.
- Verified shim entries in the produced nupkg.
Add PackageId and ToolCommandName to csproj (under PackAsTool condition)
so that dotnet publish generates shims with:
- The correct command name
(nuget-plugin-microsoft-artifacts-credential-provider) so dotnet tool
install uses the pre-built signed shim instead of generating its own
ad-hoc signed one
- The correct embedded DLL path matching the tool store layout

Update nuspec to include extensionless macOS shims that are not matched
by the existing **\*.* glob pattern.

Co-authored-by: embetten <embetten@embettens-MacBook-Pro.local>
installcredprovider.sh piped every asset into 'tar xz'. On macOS the self-contained asset is a .zip, and tar does not restore the +x bit stored in the archive, so the CredentialProvider.Microsoft apphost landed without execute permission (GitHub UI/unzip extraction preserved it).

Use unzip for .zip assets only, guarded by 'command -v unzip' and falling back to the original 'tar xz' behavior if unzip is unavailable or fails. The .tar.gz path is unchanged.

Add a +x check for the self-contained apphost to the Linux/macOS install and release validation templates (bash and sh); guarded by file existence so runtime-dependent (.dll-only) installs are unaffected.
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@embetten

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Comment thread README.md Resolved
Comment thread README.md Resolved
Comment thread helpers/installcredprovider.sh Resolved
@embetten
embetten merged commit fd03bdf into master Sep 28, 2026
55 checks passed
@embetten
embetten deleted the users/embetten/install-script+x branch September 28, 2026 16:05
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.

[Bug]: Install script does not respect +x on MacOs

3 participants