brew cask Update or uninstall error: definition is invalid: invalid 'depends_on macos' value: ":lion"

14,251

Homebrew cask developers deleted pre-maverics dependencies support due to the high maintenance overhead and it looks like they introduced a bug.

The way to fix it is to run:

/usr/bin/find "$(brew --prefix)/Caskroom/"*'/.metadata' -type f -name '*.rb' -print0 | /usr/bin/xargs -0 /usr/bin/perl -i -0pe 's/depends_on macos: \[.*?\]//gsm;s/depends_on macos: .*//g'

You can find this solution, the reason for this error and more info in:

https://github.com/Homebrew/homebrew-cask/issues/58046

Share:
14,251

Related videos on Youtube

Pau
Author by

Pau

BY DAY: Developer BY NIGHT: Developer asleep

Updated on June 12, 2022

Comments

  • Pau
    Pau about 2 years

    I can't uninstall or upgrade some casks due to a definition error.

    F.e. if I run update or upgrade:

    brew cask upgrade the-unarchiver  
    Error: Cask 'the-unarchiver' definition is invalid: invalid 'depends_on macos' value: ":lion"
    
    brew cask uninstall the-unarchiver 
    Error: Cask 'the-unarchiver' definition is invalid: invalid 'depends_on macos' value: ":lion"
    

    I've tried to see if there's something I can edit in the formula but I didn't find anything related to this error.

    cask 'the-unarchiver' do
      version '4.1.0,121:1549634528'
      sha256 'ff97b168f07d084e88f48e5d1e5202445596acd6eec39685d28910ee71d3a74b'
    
      # devmate.com/com.macpaw.site.theunarchiver was verified as official when first introduced to the cask
      url "https://dl.devmate.com/com.macpaw.site.theunarchiver/#{version.after_comma.before_colon}/#{version.after_colon}/TheUnarchiver-#{version.after_comma.before_colon}.zip"
      appcast 'https://updates.devmate.com/com.macpaw.site.theunarchiver.xml'
      name 'The Unarchiver'
      homepage 'https://theunarchiver.com/'
    
      auto_updates true
    
      app 'The Unarchiver.app'
    
      zap trash: [
                   '~/Library/Caches/cx.c3.theunarchiver',
                   '~/Library/Cookies/cx.c3.theunarchiver.binarycookies',
                   '~/Library/Preferences/cx.c3.theunarchiver.plist',
                   '~/Library/Saved Application State/cx.c3.theunarchiver.savedState',
                 ]
    end
    
  • nmr
    nmr about 3 years
    FWIW this also seems to work for other broken dependencies, e.g. brew uninstall wine-stable Error: Cask 'wine-stable' definition is invalid: invalid depends_on key: ':x11' -> /usr/bin/find "$(brew --prefix)/Caskroom/"*'/.metadata' -type f -name '*.rb' -print0 | /usr/bin/xargs -0 /usr/bin/perl -i -0pe 's/depends_on x11: \[.*?\]//gsm;s/depends_on x11: .*//g' -> uninstall succeeds now
  • pratt
    pratt almost 3 years
    @nmr Thank you! This is what I was looking for. Also was unable to uninstall Wine.
  • davidawad
    davidawad over 2 years
    this seems to have also worked for me, thanks!
  • Steve Benner
    Steve Benner about 2 years
    Did NOT work on my macOS 10.14 system.