Fixes#10170 by preferring gcc@5 on linux
This makes sure ENV.cc and ENV.cxx is correctly set:
If a formula does not explicitely depend on a brewed gcc,
ENV.cc is set to gcc-5 (system gcc-5 or brewed gcc-5) with this change,
even if other gcc versions are installed on the system.
These are still used in Homebrew/homebrew-core. The others are either
- default (Os on macOS, O2 on Linux)
- less reliable than the default (O3)
While we're here, also remove an outdated `ncurses_define` comment.
Several calls to ohai and puts were directly changed into calls to
these new functions, but they don't share arity or an API.
The base functions allow arbitrary number of arguments, allowing for
multiline printing that covers both a title and a longer message.
- When running `brew request-bottle`, users who don't have credentials
in the macOS keychain (ie, Linux users) or `HOMEBREW_GITHUB_API_TOKEN`
receive "Error: Not Found" from the GitHub API returning a 404.
- This is cryptic and confusing for newcomers to Linux maintenance, and
potentially confusing to other folks using `open_api` where
credentials are expected yet unset.
- This adds a new `MissingAuthenticationError` to handle the case where
the GitHub API returns 404 and there are no creds yet API scopes are
required.
Before:
```
issyl0@sky:/home/linuxbrew/.linuxbrew/Homebrew$ brew request-bottle hello
==> Dispatching request to Homebrew/linuxbrew-core for hello
Error: Not Found
```
After:
```
issyl0@sky:/home/linuxbrew/.linuxbrew/Homebrew$ brew request-bottle hello
==> Dispatching request to Homebrew/linuxbrew-core for hello
Error: No GitHub credentials found in Keychain or environment.
Create a GitHub personal access token:
https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew
echo 'export HOMEBREW_GITHUB_API_TOKEN=your_token_here' >> ~/.profile
```
- Note that Homebrew/homebrew-core CI jobs should complete successfully
before creating a release
- No code changes only required for 4 hours, 24 hours is a bit
excessive/unrealistic
- Note that commented `odeprecated` code should be uncommented
- TinyLetter emails are no longer required (MailChimp does so
automatically from the RSS feed)
- Note that `brew release` will output the major/minor blog post content
(after #10499 is merged) instead of referencing the now-deprecated
`brew release-notes`
- Note why you should not create a release on older `master` commits and
provide an alternate process to handle this case
- Various style tweaks