Taps can include completion scripts for external commands under
`completions/bash`, `completions/fish`, or `completions/zsh`. `brew tap`
will automatically install these into the correct directories during
install.
This is the same that happens in the command 'install'. By passing
the invalid option names, we enable the formula installer to output
warnings if necessary.
This is a temporary measure until:
- #1862 is merged
- I can a test on `brew uses` against every formula in the official
taps to verify that exceptions are no longer raised.
Fixes#1848 by sharing recursive dependency resolution between
dependencies and requirements.
Coincidentally, this also fixes the errors introduced by #1784 that
necessitated it being reverted in #1797.
Unfortunately `brew linkapps` cannot behave nicely with e.g. Spotlight
using either aliases or symlinks and Homebrew formulae do not build
"proper" `.app` bundles that can be relocated. Instead, please consider
using `brew cask` and migrate formulae using `.app`s to casks.
Fixes#1776.
If any known formula had a dependency on an untapped tap,
Formula#recursive_dependencies would throw an exception, which would be
caught by the outer exception handler, causing the rest of the
dependencies for that formula to be skipped and incomplete output to be
generated.
To fix this, I added a check to avoid analysing the dependencies of
formulae from uninstalled taps.
Additionally, I removed the aforementioned outer exception handler added
in 5fdb89aed90f03413cdb21af430411c4a722876e, because the only other
place that should be capable of throwing such an exception is the
statement that was surrounded by another wider exception handler in
Homebrew/legacy-homebrew#40682.
Imports from homebrew/versions are migrated from that tap and then
renamed immediately when they hit homebrew/core. This did not trigger
our previous rename detection so address these to improve the output and
handle migration correctly.
When reproducing issues with software that hasn’t been bottled yet on
your version of macOS it can sometimes be helpful to use `or_later`
bottle functionality i.e. just use the bottle for the latest version of
macOS available. This maps well to the existing `--force-bottle`
argument so it will now act as if the latest bottle has a `or_later`
ending.
Return `opt_prefix` if it exists and `prefix` is not called from within
the same formula's `install` or `post_install` methods. Otherwise, fall
back to the existing functionality.
This avoids the need to use `opt_prefix` etc. everywhere and generally
means we don't expose an implementation detail (i.e. the full Cellar
path) to dependents that have a habit of hard-coding it.
Previously, this only included a subset of all the kegs the user was
trying to uninstall. With this change, all named formulae/kegs will be
included in the example command.
Add new `brew update-reset` command to provide a helpful troubleshooting
fallback to fetch and reset all repositories. This could have lived in
`brew update` but it makes sense to avoid the complexity of sharing
logic between these scripts and keeping this one simpler.
Even if they're empty we want to keep these top-level directories around
as the installer has nicely created them with the correct permissions
and this avoids potentially having to use `sudo` to recreate them.
* installing HEAD keg_only should be possible only if:
1.
- Old version installed differs from new one and optlinked
- `--force` flag is passed
- HEAD is seriously outdated or outdated with `--fetch-HEAD`
or 2.
- Old version installed differs from new one and not optlinked
or 3.
- This formula is not installed
* installing keg_only should be possible only if:
1.
- Old version installed differs from new one and optlinked
- `--force` flag is passed
or 2.
- Old version installed differs from new one and not optlinked
or 3.
- This formula is not installed
* installing HEAD should be possible only if:
1.
- Old HEAD is seriously outdated or outdated with `--fetch-HEAD`
or 2.
- HEAD is not installed
* installing stable or devel should be possible only if:
- Old version installed differs from new one