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.66k forks source link

brew doctor errors out #100931

Closed ejheil closed 3 years ago

ejheil commented 3 years ago

Description of issue

Brew doctor errors out with errors about dockertoolbox and java

Command that failed

brew doctor

Output of command with --verbose --debug

~ ❯❯❯ brew doctor --verbose --debug                                        ✘ 1 
Warning: Unexpected method 'license' called on Cask dockertoolbox.
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007ff1f5b13f48>
/usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170320132734.731/Casks/java.rb:82:in `block in load'
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:61:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:61:in `config='
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:48:in `initialize'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `new'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `cask'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:87:in `cask'
/usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170320132734.731/Casks/java.rb:1:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:45:in `block in casks'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:39:in `map'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:39:in `casks'
/usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:51:in `doctor'
/usr/local/Homebrew/Library/Homebrew/brew.rb:122:in `<main>'

Output of brew doctor --verbose

~ ❯❯❯ brew doctor --verbose --debug                                        ✘ 1 
Warning: Unexpected method 'license' called on Cask dockertoolbox.
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007ff1f5b13f48>
/usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170320132734.731/Casks/java.rb:82:in `block in load'
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:61:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:61:in `config='
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:48:in `initialize'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `new'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `cask'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:87:in `cask'
/usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170320132734.731/Casks/java.rb:1:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:45:in `block in casks'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:39:in `map'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:39:in `casks'
/usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:51:in `doctor'
/usr/local/Homebrew/Library/Homebrew/brew.rb:122:in `<main>' 

Output of brew tap


~ ❯❯❯ brew tap                                                             ✘ 1 
d12frosted/emacs-plus
heroku/brew
homebrew/cask
homebrew/core
homebrew/services
jbarlow83/ocrmypdf
josegonzalez/php
mpv-player/mpv
railwaycat/emacsmacport
tldr-pages/tldr
~ ❯❯❯ 

Note that attempts to untap are thwarted by similar errors.


~ ❯❯❯ brew untap josegonzalez/php
Warning: Unexpected method 'license' called on Cask dockertoolbox.
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fe7c47a10d0>
~ ❯❯❯ brew untap jbarlow83/ocrmypdf                                        ✘ 1 
Warning: Unexpected method 'license' called on Cask dockertoolbox.
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007faf5d4dbb10>
miccal commented 3 years ago

You currently installed version of java is from an old version of the Cask file -- please run

brew uninstall --force java

then

rm -r "$(brew --prefix)/Caskroom/java"

then

brew install java

and this may fix your issue.

ejheil commented 3 years ago

Thank you for the response. This did not fix my issue.

I could not force uninstall java:

~ ❯❯❯ brew uninstall --force java
Error: Failed to load cask: java
Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fc2a4c97048>
Warning: Treating java as a formula.
Warning: Unexpected method 'license' called on Cask dockertoolbox.
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fc2ac2d6a88>

I deleted the cask dir anyway:

~ ❯❯❯ rm -r "$(brew --prefix)/Caskroom/java"

examine files in directory /usr/local/Caskroom/java? n

I was unable to reinstall java:

~ ❯❯❯ brew install java
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 4 taps (heroku/brew, homebrew/core, homebrew/cask and d12frosted/emacs-plus).
==> New Formulae
as-tree                    lttng-ust                  qt-percona-server
enzyme                     numactl                    qt-postgresql
glibc                      pyqt-3d                    qt-unixodbc
gopass-jsonapi             pyqt-builder               threemux
haskell-language-server    pyqt-networkauth           virtualenv
iconsur                    python-tabulate            wllvm
kertish-dfs                qt-libiodbc                xray
klee                       qt-mariadb                 zlib-ng
libunwind                  qt-mysql
==> Updated Formulae
Updated 546 formulae.
==> Renamed Formulae
kde-extra-cmake-modules -> extra-cmake-modules
kde-karchive -> karchive
kde-kdoctools -> kdoctools
kde-ki18n -> ki18n
kde-threadweaver -> threadweaver
libsasl2 -> cyrus-sasl
minizip2 -> minizip-ng
pyqt5 -> pyqt@5
==> New Casks
airbuddy                   finisher-fluxx             simplelink-msp432e4-sdk
around                     foobar2000                 swiftbar
celestia                   internxt-drive             uniflash
cinderella                 plasticscm-cloud-edition   veepn
code-composer-studio       remnote                    volanta
dnagedcom                  simplelink-msp432-sdk
==> Updated Casks
Updated 309 casks.
==> Deleted Casks
mist

Error: Failed to load cask: java
Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fe650b97088>
Warning: Treating java as a formula.
Error: openjdk 13.0.2+8_2 is already installed.
To upgrade to 15.0.2, run:
  brew upgrade openjdk
~ ❯❯❯                                       

Brew doctor still fails, complaining about java:

~ ❯❯❯ brew doctor
Warning: Unexpected method 'license' called on Cask dockertoolbox.
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fa2b8383508>
~ ❯❯❯ brew doctor --verbose --debug                                        ✘ 1 
Warning: Unexpected method 'license' called on Cask dockertoolbox.
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fbe67a192f8>
/usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170320132734.731/Casks/java.rb:82:in `block in load'
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:61:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:61:in `config='
/usr/local/Homebrew/Library/Homebrew/cask/cask.rb:48:in `initialize'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `new'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:43:in `cask'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:87:in `cask'
/usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170320132734.731/Casks/java.rb:1:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:72:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:45:in `block in casks'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:39:in `map'
/usr/local/Homebrew/Library/Homebrew/cask/caskroom.rb:39:in `casks'
/usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:51:in `doctor'
/usr/local/Homebrew/Library/Homebrew/brew.rb:122:in `<main>'
~ ❯❯❯                                                                      
ejheil commented 3 years ago

Should I open a new issue about the continued problem, or stay with it here?

I would be willing to do any manual work to get brew to get rid of java. Or heck, I would cheerfully completely uninstall homebrew and reinstall it if there were an easy way to get all my existing installed formulas back?

ejheil commented 3 years ago

I was able to fix this by manually removing ".undent" from the cask metadata file.

I ran into another issue with a different package (kindlegen) which had a different problem with a cask metadata file needing updating. I fixed that one by editing the metadata file.

This all seems to be the same bug as this: https://github.com/Homebrew/homebrew-cask/issues/49716

I then had a bunch of similar errors with an unexpected method "license" being called on different casks, e.g.

Warning: Unexpected method 'license' called on Cask dockertoolbox.

But those I was able to brew uninstall.

I think I'm set now.