- For a formula with an architecture requirement and a user requesting
`--only-dependencices` to be installed, this now proceeds to install the
formula dependencies regardless of the requested formula architecture because
the formula itself will never be installed.
- The way dependencies and requirements are computed, the `depends_on :arch` is
still a dependency, so it's in the list of formula dependencies to check and
potentially install. Hence, we have to remove from the list the dependent
from `recursive_requirements` with the same name as the formula so that there
are no confusing unsatisfied requirements for the named formula when we don't
need it to be installed.
- I thought about why this might be, maybe it's because we can't guarantee that
formula dependencies work on different architectures. But in that case they'd
have their own architecture requirements, so we'd see the failure for them.
So I don't know of any more reasons.
Before:
```shell
$ brew install --only-dependencies julia
julia: The x86_64 architecture is required for this software.
Error: julia: An unsatisfied requirement failed this build.
```
After:
```shell
❯ brew install --only-dependencies julia
==> Downloading [...]
==> Installing dependencies for julia: libnghttp2, mpfr and suite-sparse
```
ruby-macho chokes on changing duplicate RPATHs, so we need to strip the
duplicates before trying to relocate them.
This continues #11405. We need this to unblock
Homebrew/homebrew-core#91224.
While we're here, let's get rid of `HOMEBREW_RELOCATE_RPATHS`. We've
been using it for nearly a year with essentially no problems (barring
`pdnsrec`), so I think it is safe to do unconditionally.
Allows you to avoid the `Keg::ConflictError` recommending that you invoke `brew link --overwrite` in scenarios when you know that that's how you'd proceed anyway.
There's a few bits of functionality that Homebrew has changed over the
years, makes sense as a sensible default but some people find really
annoying:
- automatically running `brew update`
- automatically running `brew cleanup`
- automatically upgrading outdated dependents
- automatically reinstalling broken dependents
For each of these: let's improve the documentation of the commands
whose behaviour is changed and the environment variables themselves.
- Add the same macOS `--build-from-source` default prefix behaviour
now we have ~4000 linuxbrew-core bottles.
- Merge remaining useful linuxbrew-core-Maintainer-Guide into
Homebrew-homebrew-core-Maintainer-Guide
- Don't special-case linuxbrew-core any more in docs
`FormulaInstaller` calls `audit_installed` at install time, which
invokes methods in `FormulaCellarChecks`. One of these methods makes a
call to `tap_audit_exception` (cf. #11750), but this method isn't
visible in `FormulaInstaller`.
Instead of trying to replicate the logic of `tap_audit_exception` in
`FormulaAuditor` (or trying to initialise an instance of one to make the
call to `FormulaAuditor`'s implementation of it), let's just implement a
stub that assumes an exception always exists.
I'll need to think a bit about whether this is the right fix for this,
but currently the missing method error is blocking PRs in Homebrew/core,
so let's go with this for now. [1]
[1] e.g. Homebrew/homebrew-core#81388, Homebrew/homebrew-core#81582