Fixes
❯ HOMEBREW_BAT=1 brew cat xz
Error: uninitialized constant Kernel::Formula
Warning: Removed Sorbet lines from backtrace!
Rerun with `--verbose` to see the original backtrace
/opt/homebrew/Library/Homebrew/extend/kernel.rb:445:in 'block in <module:Kernel>'
/opt/homebrew/Library/Homebrew/dev-cmd/cat.rb:33:in 'block in Homebrew::DevCmd::Cat#run'
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.4.5/lib/ruby/3.4.0/fileutils.rb:241:in 'Dir.chdir'
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.4.5/lib/ruby/3.4.0/fileutils.rb:241:in 'FileUtils#cd'
/opt/homebrew/Library/Homebrew/dev-cmd/cat.rb:29:in 'Homebrew::DevCmd::Cat#run'
/opt/homebrew/Library/Homebrew/brew.rb:113:in '<main>'
Please report this issue:
https://docs.brew.sh/Troubleshooting
These were being downloaded twice simultaneously which causes a locking
race condition.
While we're here, also improve the output of bottle manifests and
patches in the download queue.
The error message to be fixed:
```console
% brew audit --strict --online xz
xz
* Stable: The source URL http://downloads.sourceforge.net/project/lzmautils/xz-5.8.1.tar.gz should use HTTPS rather than HTTP
Error: 1 problem in 1 formula detected.
% brew edit xz # change it to https
% brew audit --strict --online xz
xz
* Stable: should always include at least one HTTP mirror
Error: 1 problem in 1 formula detected.
```
- Fixes https://github.com/Homebrew/brew/issues/15728
This must set `disable` to `true` to have correct behaviour.
Also, don't allow setting it to `false` to avoid confusion as
that's what `odeprecated` is for.
`cmd` can be a `Pathname` (see the type signature), but `ohai` seems to
expect only `String`s now.
While we're here, let's assert that `cmd` exists whenever it is a
`Pathname`, to avoid passing arguments like `bin/"cmd --version"` (which
is not a valid `Pathname`).
See, for example, Homebrew/homebrew-core#231882.
The `Formulary` and `system_command` debug output is incredibly verbose
by default and this is pretty annoying when all you want is to get
better backtraces when there's an error.
Instead, let's require `--verbose` and `--debug` for the noisiest output
message types.
This makes it easier to test the automatic installation of the libc and
compiler formulae without having to change the code.
This is particularly useful now we don't have any official Docker images
for this.