Homebrew-cask: Can't `brew cask list`

Created on 1 Aug 2017  路  14Comments  路  Source: Homebrew/homebrew-cask

General troubleshooting steps

Description of issue

Unable to brew cask list since Jul 30.

Output of your command with --verbose --debug

$ brew cask list --verbose --debug
Error: Calling Hbc::DSL#license is deprecated!
There is no replacement.
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:18:in `block in load'

Follow the instructions here:
  https://github.com/caskroom/homebrew-cask#reporting-bugs
/usr/local/Homebrew/Library/Homebrew/utils.rb:104:in `odeprecated'
/usr/local/Homebrew/Library/Homebrew/compat/hbc/dsl.rb:4:in `license'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:18:in `block in load'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask.rb:15:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask.rb:15:in `initialize'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:53:in `new'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:53:in `cask'
/usr/local/Homebrew/Library/Homebrew/compat/hbc/cask_loader.rb:10:in `cask'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:11:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:11:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:11:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:43:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cask_loader.rb:132:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/scopes.rb:41:in `block in installed'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/scopes.rb:31:in `map'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/scopes.rb:31:in `installed'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/list.rb:40:in `list_installed'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/list.rb:13:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:35:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:98:in `run_command'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:168:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:95:in `<main>'
Error: Kernel.exit
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:179:in `exit'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:179:in `rescue in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:156:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:95:in `<main>'

Output of brew cask doctor

$ brew cask doctor
==> Homebrew-Cask Version
Homebrew-Cask 1.3.0
caskroom/homebrew-cask (git revision 2b00a; last commit 2017-08-01)
==> Homebrew-Cask Install Location
<NONE>
==> Homebrew-Cask Staging Location
/usr/local/Caskroom
==> Homebrew-Cask Cached Downloads
~/Library/Caches/Homebrew/Cask
==> Homebrew-Cask Taps:
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask (3670 casks)
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-drivers (107 casks)
==> Contents of $LOAD_PATH
/usr/local/Homebrew/Library/Homebrew/cask/lib
/usr/local/Homebrew/Library/Homebrew
/Library/Ruby/Site/2.0.0
/Library/Ruby/Site/2.0.0/x86_64-darwin16
/Library/Ruby/Site/2.0.0/universal-darwin16
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/x86_64-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/universal-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/x86_64-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin16
==> Environment Variables
LANG="en_US.UTF-8"
PATH="~/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/Homebrew/Library/Homebrew/shims/scm"
SHELL="/bin/bash"

Most helpful comment

Yes, that should work, but I'd suggest looping through the Casks individually, because reinstall may fail if one of the Casks is not available anymore.

for cask in $(grep ...); do
  brew cask reinstall $cask
end

All 14 comments

Please post the output of grep -ilr --include \*.rb license $(brew --prefix)/Caskroom

/usr/local/Caskroom/ffmpegx/.metadata/latest/20160613173950.891/Casks/ffmpegx.rb /usr/local/Caskroom/java/.metadata/1.8.0_144-b01,090f390dda5b47b9b721c7dfaa008135/20170727163420.087/Casks/java.rb

ffmpegx has been removed from HBC.

Delete /usr/local/Caskroom/ffmpegx (this won't delete the app)

perfect. thank you.

I have the same issue, running grep -ilr --include \*.rb license $(brew --prefix)/Caskroom returns this list:

/usr/local/Caskroom/alfred/.metadata/3.1.1_737/20160924002947.093/Casks/alfred.rb
/usr/local/Caskroom/appcleaner/.metadata/3.4/20160924002950.134/Casks/appcleaner.rb
/usr/local/Caskroom/arq/.metadata/5.2.3/20160924002956.930/Casks/arq.rb
/usr/local/Caskroom/betterzipql/.metadata/latest/20160924003028.075/Casks/betterzipql.rb
/usr/local/Caskroom/box-sync/.metadata/latest/20160924003038.525/Casks/box-sync.rb
/usr/local/Caskroom/charles/.metadata/4.0.1/20160924003056.928/Casks/charles.rb
/usr/local/Caskroom/firefox/.metadata/49.0/20160924003128.174/Casks/firefox.rb
/usr/local/Caskroom/firefox-beta/.metadata/49.0b10/20160924010412.829/Casks/firefox-beta.rb
/usr/local/Caskroom/firefoxdeveloperedition/.metadata/latest/20160924010412.829/Casks/firefoxdeveloperedition.rb
/usr/local/Caskroom/firefoxnightly/.metadata/51.0a1/20160924010412.829/Casks/firefoxnightly.rb
/usr/local/Caskroom/flux/.metadata/37.7/20160924003133.093/Casks/flux.rb
/usr/local/Caskroom/font-cousine/.metadata/latest/20160925154624.100/Casks/font-cousine.rb
/usr/local/Caskroom/font-droid-sans-mono-for-powerline/.metadata/latest/20160924010412.829/Casks/font-droid-sans-mono-for-powerline.rb
/usr/local/Caskroom/font-fira-code/.metadata/1.203/20160924010412.829/Casks/font-fira-code.rb
/usr/local/Caskroom/font-fira-mono-for-powerline/.metadata/latest/20160924010412.829/Casks/font-fira-mono-for-powerline.rb
/usr/local/Caskroom/font-inconsolata-dz-for-powerline/.metadata/latest/20160924010412.829/Casks/font-inconsolata-dz-for-powerline.rb
/usr/local/Caskroom/font-meslo-lg-for-powerline/.metadata/latest/20160924010412.829/Casks/font-meslo-lg-for-powerline.rb
/usr/local/Caskroom/font-source-code-pro/.metadata/2.030R-ro-1.050R-it/20160924010412.829/Casks/font-source-code-pro.rb
/usr/local/Caskroom/google-chrome/.metadata/latest/20160924003152.591/Casks/google-chrome.rb
/usr/local/Caskroom/imagealpha/.metadata/1.5.0/20160924003205.557/Casks/imagealpha.rb
/usr/local/Caskroom/imageoptim/.metadata/1.6.1/20160924003207.087/Casks/imageoptim.rb
/usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170128153429.255/Casks/java.rb
/usr/local/Caskroom/jdownloader/.metadata/latest/20160924105152.725/Casks/jdownloader.rb
/usr/local/Caskroom/keepingyouawake/.metadata/1.4.0/20160924003211.800/Casks/keepingyouawake.rb
/usr/local/Caskroom/sequel-pro/.metadata/1.1.2/20160924003303.035/Casks/sequel-pro.rb
/usr/local/Caskroom/sketch/.metadata/39.1/20160924003306.500/Casks/sketch.rb
/usr/local/Caskroom/sketch-toolbox/.metadata/0.5.1/20160924003308.087/Casks/sketch-toolbox.rb
/usr/local/Caskroom/skype/.metadata/latest/20160924003314.586/Casks/skype.rb
/usr/local/Caskroom/teamviewer/.metadata/latest/20160924003325.153/Casks/teamviewer.rb
/usr/local/Caskroom/telegram/.metadata/2.22-50247/20160924003326.639/Casks/telegram.rb
/usr/local/Caskroom/transmission/.metadata/2.92/20160924003334.355/Casks/transmission.rb
/usr/local/Caskroom/transmit/.metadata/4.4.10/20160924003414.162/Casks/transmit.rb
/usr/local/Caskroom/virtualbox/.metadata/5.1.6-110634/20160924003441.030/Casks/virtualbox.rb
/usr/local/Caskroom/visual-studio-code/.metadata/1.5.2,66f37fd2a99eb9d628dd374d81d78835b410c39b/20160924003444.513/Casks/visual-studio-code.rb
/usr/local/Caskroom/vlc/.metadata/2.2.4/20160924003455.369/Casks/vlc.rb
/usr/local/Caskroom/webkit-nightly/.metadata/r206000/20160924010653.063/Casks/webkit-nightly.rb
/usr/local/Caskroom/whatsapp/.metadata/0.2.1455/20160924003510.225/Casks/whatsapp.rb
/usr/local/Caskroom/xquartz/.metadata/2.7.9/20161006131535.375/Casks/xquartz.rb
/usr/local/Caskroom/zoomus/.metadata/latest/20160926141229.197/Casks/zoomus.rb

@ahmedelgabri you will need to determine which of these Casks are no longer available, and remove /usr/local/Caskroom/#{Removed Cask}.

Running brew cask reinstall {cask} will also fix is for casks that are still in Caskroom.


I'm guessing we are going to see many more reports of this from users that don't update/reinstall their casks using Caskroom because of the license deprecation being uncommented in https://github.com/Homebrew/brew/pull/2899/files

@miccal the question is how I can determine this? Do I need to do this manually one by one or is there is any command or automated way to do this?

You could do this:

  • Mass-edit the files that contain license, i.e. sed -i 's/license/#license/'.
  • Run brew cask reinstall $(brew cask outdated).

Maybe?

brew cask reinstall $(grep -ilr --include \*.rb license $(brew --prefix)/Caskroom | awk -F '/' '{print $5}')

Yes, that should work, but I'd suggest looping through the Casks individually, because reinstall may fail if one of the Casks is not available anymore.

for cask in $(grep ...); do
  brew cask reinstall $cask
end

Some casks would still fail the reinstall, a combination of the suggestions here should do the trick though:

for cask in $(grep -ilr --include \*.rb license $(brew --prefix)/Caskroom/*/.metadata | awk -F '/' '{print $5}' | sort -u); do
    find $(brew --prefix)/Caskroom/$cask/.metadata -name "*.rb" -exec sed -i'' -e 's/license/#license/' {} \;
    brew cask reinstall $cask
done

Maybe unrelated, but also had to fix cases of MacOS.release:

for cask in $(grep -ilr --include \*.rb MacOS.release $(brew --prefix)/Caskroom/*/.metadata | awk -F '/' '{print $5}' | sort -u); do
    sed -i -e 's/MacOS.release/MacOS.version/' $(brew --prefix)/Caskroom/$cask/.metadata/**/*.rb
    brew cask reinstall $cask
done

there was a hardcoded "alfred" in the above for loop. it should be:

for cask in $(grep -ilr --include \*.rb license $(brew --prefix)/Caskroom/*/.metadata | awk -F '/' '{print $5}' | sort -u); do
    find $(brew --prefix)/Caskroom/${cask}/.metadata -name "*.rb" -exec sed -i'' -e 's/license/#license/' {} \;
    brew cask reinstall $cask
done

@cblecker good spot, thanks. Fixed now, originally I wrote it in zsh with double star glob, the find was for bash support 馃槃.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

orome picture orome  路  3Comments

mmoehring picture mmoehring  路  3Comments

akashlevy picture akashlevy  路  3Comments

gebing picture gebing  路  3Comments

RJHsiao picture RJHsiao  路  3Comments