feat(aqua): make bin paths executable#6010
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR enables making binary paths executable for aqua-managed tools that don't have proper executable permissions in their archives. It reapplies a previously reverted change with improvements to handle multiple binary files and ensures executability for formats like tar, zip, and compressed files.
- Adds logic to make binary paths executable for certain archive formats
- Refactors binary path handling to support multiple binaries per package
- Updates registry to re-enable aqua backends for tools that previously had permission issues
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/backend/aqua.rs | Implements executable permission setting for binary paths and refactors to handle multiple binaries |
| registry.toml | Re-enables aqua backends for tools that previously had executable permission issues |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Owner
|
bugbot run |
Owner
|
bugbot run |
| file::un_bz2(&tarball_path, &bin_path)?; | ||
| file::make_executable(&bin_path)?; | ||
| file::un_bz2(&tarball_path, first_bin_path)?; | ||
| make_executable = true; |
There was a problem hiding this comment.
Bug: Package Installation Fails for Subdirectories and Executable Permissions
The commit introduces two issues during package installation:
- For
raw,gz,xz,zst, andbz2formats,file::copyorfile::un_*operations fail iffirst_bin_path(derived fromfile.src()) includes subdirectories. This occurs because only theinstall_pathis created, not the necessary parent directories for the target binary. - For
GithubArchiveandGithubContentpackage types, themake_executableflag is not set. Consequently, extracted binaries are not made executable, potentially leaving tools unusable if their archives lack executable permissions.
Contributor
Author
There was a problem hiding this comment.
- That's true, but I don't think we need to care about it, as we shouldn't have
files[].srcfor single binaries. - I intentionally excluded it because they should set permissions in Git. I'll consider it if someone find such cases.
jdx
pushed a commit
that referenced
this pull request
Aug 14, 2025
### 📦 Registry - enable kubecolor test by [@risu729](https://github.com/risu729) in [#6008](#6008) - fix os specific backends for usage by [@risu729](https://github.com/risu729) in [#6007](#6007) - use aqua backend for restish by [@risu729](https://github.com/risu729) in [#5986](#5986) - add cfssljson ([aqua:cloudflare/cfssl/cfssljson](https://github.com/cloudflare/cfssl/cfssljson)) by [@disintegrator](https://github.com/disintegrator) in [#6013](#6013) - add claude-squad ([aqua:smtg-ai/claude-squad](https://github.com/smtg-ai/claude-squad)) by [@TyceHerrman](https://github.com/TyceHerrman) in [#5894](#5894) ### 🚀 Features - **(aqua)** make bin paths executable by [@risu729](https://github.com/risu729) in [#6010](#6010) - added header bar during `mise install` by [@jdx](https://github.com/jdx) in [#6022](#6022) ### 🐛 Bug Fixes - **(aqua)** improve warnings for packages without repo_owner and repo_name (2nd attempt) by [@risu729](https://github.com/risu729) in [#6009](#6009) - version prefix detection by [@risu729](https://github.com/risu729) in [#5943](#5943) - respect MISE_DEFAULT_CONFIG_FILENAME by [@risu729](https://github.com/risu729) in [#5899](#5899) ### New Contributors - @disintegrator made their first contribution in [#6013](#6013)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reapplies #5998 (reverted in #6004) with some changes.
Some tools don't set
+xpermissions to their executable files in the archives:powershell(Installed `PowerShell` but got `"Permission denied"` when trying to run #5552)bobgitumirrordCQLabs/homebrew-dcm(fix(aqua): add executable permissions for zip-extracted binaries #5998)Since both
.tarand.zipcan include permissions in the archive, this is not a mise bug, but their issues.However, I think supporting them would be beneficial for some users.
aquasupports this because they use shims.ubibackend also supports this but I'm not sure why.