Homebrew / homebrew-cask

🍻 A CLI workflow for the administration of macOS applications distributed as binaries
https://brew.sh
BSD 2-Clause "Simplified" License
20.82k stars 10.65k forks source link

Unable to run brew search google-chrome due to issue with transmission-nightly cask #134356

Closed Moulick closed 1 year ago

Moulick commented 1 year ago

Verification

Description of issue

Running brew search google-chrome throws error

❯ brew search google-chrome
Error: Cask 'transmission-nightly' definition is invalid: invalid 'app' stanza: Failure while executing; `/opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/3.6.7-28-g560f571\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.0\)\ curl/7.84.0 --header Accept-Language:\ en --retry 3 --fail --silent --location https://build.transmissionbt.com/job/trunk-mac/lastSuccessfulBuild/artifact/release/` exited with 22. Here's the output:
curl: (22) The requested URL returned error: 503
curl: (22) The requested URL returned error: 503
curl: (22) The requested URL returned error: 503
curl: (22) The requested URL returned error: 503

It seems that the https://build.transmissionbt.com/job/trunk-mac/lastSuccessfulBuild/artifact/release/ is now protected by Cloudflare and prevents pulling via curl.

Command that failed

brew search google-chrome

Output of command with --verbose --debug

/opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/3.6.7-28-g560f571\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.0\)\ curl/7.84.0 --header Accept-Language:\ en --retry 3 --location https://api.github.com/search/code\?q=user\%3AHomebrew\+path\%3AFormula\+path\%3ACasks\+path\%3A.\+filename\%3Agoogle-chrome\+extension\%3Arb\&per_page=100 --header Accept:\ application/vnd.github\+json --write-out '
'\%\{http_code\} --header Authorization:\ token\ ****** --dump-header /private/tmp/github_api_headers20221026-29779-14qgyxh
/opt/homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/googler.rb
/opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/3.6.7-28-g560f571\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.0\)\ curl/7.84.0 --header Accept-Language:\ en --retry 3 --fail --silent --location https://snapshot.keepassxc.org/latest/
/opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/3.6.7-28-g560f571\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.0\)\ curl/7.84.0 --header Accept-Language:\ en --retry 3 --fail --silent --location https://build.transmissionbt.com/job/trunk-mac/lastSuccessfulBuild/artifact/release/
Error: Cask 'transmission-nightly' definition is invalid: invalid 'app' stanza: Failure while executing; `/opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/3.6.7-28-g560f571\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.0\)\ curl/7.84.0 --header Accept-Language:\ en --retry 3 --fail --silent --location https://build.transmissionbt.com/job/trunk-mac/lastSuccessfulBuild/artifact/release/` exited with 22. Here's the output:
curl: (22) The requested URL returned error: 503
curl: (22) The requested URL returned error: 503
curl: (22) The requested URL returned error: 503
curl: (22) The requested URL returned error: 503

/opt/homebrew/Library/Homebrew/cask/dsl.rb:352:in `rescue in block (2 levels) in <class:DSL>'
/opt/homebrew/Library/Homebrew/cask/dsl.rb:343:in `block (2 levels) in <class:DSL>'
/opt/homebrew/Library/Taps/homebrew/homebrew-cask-versions/Casks/transmission-nightly.rb:15:in `block in load'
/opt/homebrew/Library/Homebrew/cask/cask.rb:74:in `instance_eval'
/opt/homebrew/Library/Homebrew/cask/cask.rb:74:in `refresh'
/opt/homebrew/Library/Homebrew/cask/cask.rb:67:in `config='
/opt/homebrew/Library/Homebrew/cask/cask.rb:57:in `initialize'
/opt/homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `new'
/opt/homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `cask'
/opt/homebrew/Library/Homebrew/cask/cask_loader.rb:87:in `cask'
/opt/homebrew/Library/Homebrew/cask/cask_loader.rb:144:in `cask'
/opt/homebrew/Library/Taps/homebrew/homebrew-cask-versions/Casks/transmission-nightly.rb:1:in `load'
/opt/homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `instance_eval'
/opt/homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `load'
/opt/homebrew/Library/Homebrew/cask/cask.rb:33:in `block in all'
/opt/homebrew/Library/Homebrew/cask/cask.rb:32:in `map'
/opt/homebrew/Library/Homebrew/cask/cask.rb:32:in `all'
/opt/homebrew/Library/Homebrew/extend/os/mac/search.rb:39:in `search_casks'
/opt/homebrew/Library/Homebrew/cmd/search.rb:139:in `search_names'
/opt/homebrew/Library/Homebrew/cmd/search.rb:89:in `search'
/opt/homebrew/Library/Homebrew/brew.rb:95:in `<main>'

Output of brew doctor --verbose

==> Cask Environment Variables:
BUNDLE_PATH
CHRUBY_VERSION
GEM_HOME
GEM_PATH
HOMEBREW_CASK_OPTS
LC_ALL
PATH
RBENV_VERSION
RUBYLIB
RUBYOPT
RUBYPATH
SHELL
==> $LOAD_PATHS
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/warning-1.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/tapioca-0.7.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/yard-sorbet-0.6.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/yard-0.9.28/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/spoom-1.1.11/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/thor-1.2.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/sorbet-static-and-runtime-0.5.10461/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/sorbet-0.5.10461/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/sorbet-static-0.5.10461-universal-darwin-22/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/simplecov-cobertura-2.1.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/simplecov-0.21.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/simplecov_json_formatter-0.1.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/simplecov-html-0.12.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/ruby-macho-3.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rubocop-sorbet-0.6.11/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rubocop-rspec-2.13.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rubocop-rails-2.16.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rubocop-performance-1.15.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rubocop-1.35.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/unicode-display_width-2.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rubocop-ast-1.21.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec_junit_formatter-0.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-wait-0.0.9/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-sorbet-1.9.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-its-1.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-github-2.3.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-3.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/ronn-0.7.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rdiscount-2.2.0.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/rdiscount-2.2.0.2
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rbi-0.0.14/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/unparser-0.6.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rack-3.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/pry-0.14.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/plist-3.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/patchelf-1.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/parlour-8.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/sorbet-runtime-0.5.10461/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rainbow-3.1.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/parser-3.1.2.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/parallel_tests-3.13.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/parallel-1.22.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/mustache-1.1.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/method_source-1.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/mechanize-2.8.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/webrobots-0.1.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/webrick-1.7.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/rubyntlm-0.6.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/nokogiri-1.13.9-arm64-darwin/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/racc-1.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/racc-1.6.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/net-http-persistent-4.0.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/net-http-digest_auth-1.4.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/mime-types-3.4.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2022.0105/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/json_schemer-0.2.21/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/uri_template-0.7.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/json-2.6.2
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/http-cookie-1.0.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/hpricot-0.8.6/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/hpricot-0.8.6
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/hana-1.3.7/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/elftools-1.2.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/ecma-re-validator-0.4.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/regexp_parser-2.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/unf-0.1.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.8.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/unf_ext-0.0.8.2
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/docile-1.4.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.5.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/did_you_mean-1.6.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/connection_pool-2.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/commander-4.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/highline-2.0.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/coderay-1.1.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/byebug-11.1.3
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.13.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/bootsnap-1.13.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/msgpack-1.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/msgpack-1.6.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/bindata-2.4.12/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/ast-2.4.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.6.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/tzinfo-2.0.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/minitest-5.16.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/i18n-1.12.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0/arm64e-darwin22
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0/universal-darwin22
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/arm64e-darwin22
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin22
/opt/homebrew/Library/Homebrew
==> Homebrew Version
3.6.7-28-g560f571
==> macOS
13.0
==> SIP
Enabled
==> Homebrew Cask Staging Location
/opt/homebrew/Caskroom
==> Homebrew Cask Taps:
/opt/homebrew/Library/Taps/homebrew/homebrew-cask (4106 casks)
/opt/homebrew/Library/Taps/hashicorp/homebrew-tap (1 cask)
/opt/homebrew/Library/Taps/homebrew/homebrew-cask-versions (230 casks)
/opt/homebrew/Library/Taps/homebrew/homebrew-cask-fonts (1976 casks)
/opt/homebrew/Library/Taps/homebrew/homebrew-cask-drivers (216 casks)
/opt/homebrew/Library/Taps/playcover/homebrew-playcover (1 cask)
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Some installed formulae are deprecated or disabled.
You should find replacements for the following formulae:
  kubernetes-service-catalog-client

Output of brew tap

amiaopensource/amiaos
anchore/grype
anchore/syft
aquasecurity/trivy
argoproj/tap
beeftornado/rmtree
buo/cask-upgrade
codeclimate/formulae
copyq/kde
datawire/blackbird
derailed/k9s
derailed/popeye
gabrie30/utils
gdubw/gng
getsentry/tools
go-task/tap
golangci/tap
goreleaser/tap
gromgit/fuse
hashicorp/tap
homebrew/bundle
homebrew/cask
homebrew/cask-drivers
homebrew/cask-fonts
homebrew/cask-versions
homebrew/command-not-found
homebrew/core
homebrew/services
jakehilborn/jakehilborn
khanhas/tap
kontena/kontena
mike-engel/jwt-cli
minio/stable
mongodb/brew
playcover/playcover
redradrat/kable
solo-io/tap
systemcraftsman/strimzi-kafka-cli
teamookla/speedtest
tinygo-org/tools
wagoodman/dive
wata727/tflint
Moulick commented 1 year ago

I am curious why brew search actually makes a call to the URL in the app stanza of transmission-nightly?

SMillerDev commented 1 year ago

@Homebrew/brew is brew supposed to call all URLs that have a closure attached when you run brew search? That seems kinda weird.

Moulick commented 1 year ago

even running brew info transmission-nightly make the curl call to its release page. It looks like the structure of the transmission-nightly cask is inconsistent with other casks

Bo98 commented 1 year ago

even running brew info transmission-nightly make the curl call to its release page. It looks like the structure of the transmission-nightly cask is inconsistent with other casks

So unlike most casks, that particular cask determines its download URL dynamically. And it does so by issuing a network call to another URL. Ignoring whether it should or shouldn't continue doing that, it does make some sense why brew info would resolve that to find the full URL for display (though we could just display that it's dynamic instead). I see no reason why brew search should resolve the URL in any case however, so maybe we can fix that.

Moulick commented 1 year ago

Confirmed fix, brew search google-chrome works fine again.