This introduces the HOMEBREW_CURL_PATH and HOMEBREW_GIT_PATH
variables, which are used to populate HOMEBREW_CURL and HOMEBREW_GIT,
respectively, when in developer mode (HOMEBREW_DEVELOPER).
Both paths are expected to be valid executables and must
have the executable bit set.
Rather than relying on a `HOMEBREW_FORCE_BOTTLE` variable (which ends
up doing silly things like forcing bottle usage even when options are
provided) instead handle this at the `or_later` bottle detection
level so on prerelease versions of macOS any bottle looks like an
`or_later` bottle (unless various environment variables are set).
Fixes issues noted in:
https://github.com/Homebrew/brew/pull/4520#issuecomment-407229605
This does the equivalent of always passing `--force-bottle`. This will
be enabled by default on Mojave to allow people to avoid building
everything from source until our porting and bottling is a bit further
along.
- Ensure that `HOMEBREW_TEMP` is only displayed in `brew config` when
it's non-default.
- Attempt to create a missing `HOMEBREW_TEMP` directory rather than
failing to `realpath`. Note this will still fail on permissions errors
which is to be expected.
Because of this messing with the user's path:
https://github.com/Homebrew/brew/blob/
efc02899c851c62c9ce0d15dea9a231575d7d774/bin/brew#L68
brew uses /usr/bin/git over brewed git, even when the former is
problematically old.
There may also be other reasons a user prefers to use brewed git.
There was already a HOMEBREW_FORCE_BREWED_CURL option and a
HOMEBREW_SYSTEM_CURL_TOO_OLD check to set it. This mostly copies those
to implement HOMEBREW_FORCE_BREWED_GIT & HOMEBREW_SYSTEM_GIT_TOO_OLD.
See also: https://github.com/Linuxbrew/brew/issues/736
Rather than reusing `HOMEBREW_NO_AUTO_UPDATE` to indicate that we've
already made a check. This allows `HOMEBREW_NO_AUTO_UPDATE` to be
displayed properly by `brew config`.
- `brew update` should try to install `curl` before `git` on older
versions of Mac OS X where it is needed for accessing modern SSL
certificates.
- We don't need an HTTP mirror for `git` because `curl` will already be
installed before it is downloaded.
- Don't recommend GCC on Mac OS X versions where it can't be built with
the default system compiler.
- Start using the Homebrew `curl` on Mac OS X versions where it is
needed as soon as it is installed.