Homebrew / brew

🍺 The missing package manager for macOS (or Linux)
https://brew.sh
BSD 2-Clause "Simplified" License
41.21k stars 9.69k forks source link

I can uninstall a formula which is a dependency for a cask, without errors #10570

Closed jlledo closed 3 years ago

jlledo commented 3 years ago

General troubleshooting steps

Description of issue

I can uninstall a formula which is a dependency for a cask. In my particular case, I can uninstall the mono formula, which is a dependency for the godot-mono cask.

I was told in Homebrew discussions that this is most likely a bug, so I am filing this issue.

For the sake of completeness, here is the output of the uses and deps commands:

❯ brew uses mono
cake                ckan                docfx               duplicati           godot-mono          naturaldocs         nuget               paket               scriptcs
❯ brew deps godot-mono
cmake
gdbm
mono
openssl@1.1
pkg-config
python@3.9
readline
sphinx-doc
sqlite
tcl-tk
xz

You can see that mono is a dependency of godot-mono.

Command that failed

brew uninstall mono

Output of command with --verbose --debug

❯ brew uninstall --verbose --debug mono
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/mono.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gdbm.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/starship.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/readline.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/sqlite.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/xz.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/tcl-tk.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/pcre2.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/openssl@1.1.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/fish.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::TapLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/python@3.9.rb
Uninstalling /usr/local/Cellar/mono/6.12.0.107... (4,094 files, 465.3MB)
rm /usr/local/bin/al
rm /usr/local/bin/al2
rm /usr/local/bin/aprofutil
rm /usr/local/bin/caspol
rm /usr/local/bin/cccheck
rm /usr/local/bin/ccrewrite
rm /usr/local/bin/cert-sync
rm /usr/local/bin/cert2spc
rm /usr/local/bin/certmgr
rm /usr/local/bin/chktrust
rm /usr/local/bin/crlupdate
rm /usr/local/bin/csc
rm /usr/local/bin/csharp
rm /usr/local/bin/csi
rm /usr/local/bin/disco
rm /usr/local/bin/dmcs
rm /usr/local/bin/dtd2rng
rm /usr/local/bin/dtd2xsd
rm /usr/local/bin/fsharpc
rm /usr/local/bin/fsharpi
rm /usr/local/bin/fsharpiAnyCpu
rm /usr/local/bin/gacutil
rm /usr/local/bin/gacutil2
rm /usr/local/bin/genxs
rm /usr/local/bin/httpcfg
rm /usr/local/bin/ikdasm
rm /usr/local/bin/ilasm
rm /usr/local/bin/illinkanalyzer
rm /usr/local/bin/installvst
rm /usr/local/bin/lc
rm /usr/local/bin/macpack
rm /usr/local/bin/makecert
rm /usr/local/bin/mconfig
rm /usr/local/bin/mcs
rm /usr/local/bin/mdassembler
rm /usr/local/bin/mdbrebase
rm /usr/local/bin/mdoc
rm /usr/local/bin/mdoc-assemble
rm /usr/local/bin/mdoc-export-html
rm /usr/local/bin/mdoc-export-msxdoc
rm /usr/local/bin/mdoc-update
rm /usr/local/bin/mdoc-validate
rm /usr/local/bin/mdvalidater
rm /usr/local/bin/mkbundle
rm /usr/local/bin/mod
rm /usr/local/bin/mono
rm /usr/local/bin/mono-api-html
rm /usr/local/bin/mono-api-info
rm /usr/local/bin/mono-boehm
rm /usr/local/bin/mono-cil-strip
rm /usr/local/bin/mono-configuration-crypto
rm /usr/local/bin/mono-find-provides
rm /usr/local/bin/mono-find-requires
rm /usr/local/bin/mono-hang-watchdog
rm /usr/local/bin/mono-heapviz
rm /usr/local/bin/mono-package-runtime
rm /usr/local/bin/mono-service
rm /usr/local/bin/mono-service2
rm /usr/local/bin/mono-sgen
rm /usr/local/bin/mono-shlib-cop
rm /usr/local/bin/mono-symbolicate
rm /usr/local/bin/mono-test-install
rm /usr/local/bin/mono-xmltool
rm /usr/local/bin/monodis
rm /usr/local/bin/monodocer
rm /usr/local/bin/monodocs2html
rm /usr/local/bin/monodocs2slashdoc
rm /usr/local/bin/monolinker
rm /usr/local/bin/monop
rm /usr/local/bin/monop2
rm /usr/local/bin/mozroots
rm /usr/local/bin/mprof-report
rm /usr/local/bin/msbuild
rm /usr/local/bin/pdb2mdb
rm /usr/local/bin/pedump
rm /usr/local/bin/permview
rm /usr/local/bin/peverify
rm /usr/local/bin/resgen
rm /usr/local/bin/resgen2
rm /usr/local/bin/secutil
rm /usr/local/bin/setreg
rm /usr/local/bin/sgen
rm /usr/local/bin/sgen-grep-binprot
rm /usr/local/bin/signcode
rm /usr/local/bin/sn
rm /usr/local/bin/soapsuds
rm /usr/local/bin/sqlmetal
rm /usr/local/bin/sqlsharp
rm /usr/local/bin/svcutil
rm /usr/local/bin/vbc
rm /usr/local/bin/wsdl
rm /usr/local/bin/wsdl2
rm /usr/local/bin/xbuild
rm /usr/local/bin/xsd
rm /usr/local/etc/mono/2.0/Browsers/Compat.browser
rm /usr/local/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx
rm /usr/local/etc/mono/2.0/machine.config
rm /usr/local/etc/mono/2.0/settings.map
rm /usr/local/etc/mono/2.0/web.config
rm /usr/local/etc/mono/4.0/Browsers/Compat.browser
rm /usr/local/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx
rm /usr/local/etc/mono/4.0/machine.config
rm /usr/local/etc/mono/4.0/settings.map
rm /usr/local/etc/mono/4.0/web.config
rm /usr/local/etc/mono/4.5/Browsers/Compat.browser
rm /usr/local/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx
rm /usr/local/etc/mono/4.5/machine.config
rm /usr/local/etc/mono/4.5/settings.map
rm /usr/local/etc/mono/4.5/web.config
rm /usr/local/etc/mono/browscap.ini
rm /usr/local/etc/mono/config
rm /usr/local/etc/mono/mconfig/config.xml
rm /usr/local/include/mono-2.0
rm /usr/local/lib/libMonoPosixHelper.a
rm /usr/local/lib/libMonoPosixHelper.dylib
rm /usr/local/lib/libMonoSupportW.a
rm /usr/local/lib/libMonoSupportW.dylib
rm /usr/local/lib/libikvm-native.a
rm /usr/local/lib/libikvm-native.dylib
rm /usr/local/lib/libmono-2.0.1.dylib
rm /usr/local/lib/libmono-2.0.a
rm /usr/local/lib/libmono-2.0.dylib
rm /usr/local/lib/libmono-btls-shared.dylib
rm /usr/local/lib/libmono-native.0.dylib
rm /usr/local/lib/libmono-native.a
rm /usr/local/lib/libmono-native.dylib
rm /usr/local/lib/libmono-profiler-aot-static.a
rm /usr/local/lib/libmono-profiler-aot.0.dylib
rm /usr/local/lib/libmono-profiler-aot.a
rm /usr/local/lib/libmono-profiler-aot.dylib
rm /usr/local/lib/libmono-profiler-coverage-static.a
rm /usr/local/lib/libmono-profiler-coverage.0.dylib
rm /usr/local/lib/libmono-profiler-coverage.a
rm /usr/local/lib/libmono-profiler-coverage.dylib
rm /usr/local/lib/libmono-profiler-log-static.a
rm /usr/local/lib/libmono-profiler-log.0.dylib
rm /usr/local/lib/libmono-profiler-log.a
rm /usr/local/lib/libmono-profiler-log.dylib
rm /usr/local/lib/libmonoboehm-2.0.1.dylib
rm /usr/local/lib/libmonoboehm-2.0.a
rm /usr/local/lib/libmonoboehm-2.0.dylib
rm /usr/local/lib/libmonosgen-2.0.1.dylib
rm /usr/local/lib/libmonosgen-2.0.a
rm /usr/local/lib/libmonosgen-2.0.dylib
rm /usr/local/lib/mono
rm /usr/local/lib/mono-source-libs
rm /usr/local/lib/monodoc
rm /usr/local/lib/pkgconfig/aspnetwebstack.pc
rm /usr/local/lib/pkgconfig/cecil.pc
rm /usr/local/lib/pkgconfig/dotnet.pc
rm /usr/local/lib/pkgconfig/dotnet35.pc
rm /usr/local/lib/pkgconfig/mono-2.pc
rm /usr/local/lib/pkgconfig/mono-cairo.pc
rm /usr/local/lib/pkgconfig/mono-lineeditor.pc
rm /usr/local/lib/pkgconfig/mono-options.pc
rm /usr/local/lib/pkgconfig/mono.pc
rm /usr/local/lib/pkgconfig/monodoc.pc
rm /usr/local/lib/pkgconfig/monosgen-2.pc
rm /usr/local/lib/pkgconfig/reactive.pc
rm /usr/local/lib/pkgconfig/system.web.extensions.design_1.0.pc
rm /usr/local/lib/pkgconfig/system.web.extensions_1.0.pc
rm /usr/local/lib/pkgconfig/system.web.mvc.pc
rm /usr/local/lib/pkgconfig/system.web.mvc2.pc
rm /usr/local/lib/pkgconfig/system.web.mvc3.pc
rm /usr/local/lib/pkgconfig/wcf.pc
rm /usr/local/lib/pkgconfig/xbuild12.pc
rm /usr/local/share/man/man1/al.1
rm /usr/local/share/man/man1/aprofutil.1
rm /usr/local/share/man/man1/cccheck.1
rm /usr/local/share/man/man1/ccrewrite.1
rm /usr/local/share/man/man1/cert-sync.1
rm /usr/local/share/man/man1/cert2spc.1
rm /usr/local/share/man/man1/certmgr.1
rm /usr/local/share/man/man1/chktrust.1
rm /usr/local/share/man/man1/cilc.1
rm /usr/local/share/man/man1/crlupdate.1
rm /usr/local/share/man/man1/csharp.1
rm /usr/local/share/man/man1/disco.1
rm /usr/local/share/man/man1/dtd2xsd.1
rm /usr/local/share/man/man1/gacutil.1
rm /usr/local/share/man/man1/genxs.1
rm /usr/local/share/man/man1/httpcfg.1
rm /usr/local/share/man/man1/ilasm.1
rm /usr/local/share/man/man1/illinkanalyzer.1
rm /usr/local/share/man/man1/lc.1
rm /usr/local/share/man/man1/macpack.1
rm /usr/local/share/man/man1/makecert.1
rm /usr/local/share/man/man1/mconfig.1
rm /usr/local/share/man/man1/mcs.1
rm /usr/local/share/man/man1/mdassembler.1
rm /usr/local/share/man/man1/mdb2ppdb.1
rm /usr/local/share/man/man1/mdoc-assemble.1
rm /usr/local/share/man/man1/mdoc-export-html.1
rm /usr/local/share/man/man1/mdoc-export-msxdoc.1
rm /usr/local/share/man/man1/mdoc-update.1
rm /usr/local/share/man/man1/mdoc-validate.1
rm /usr/local/share/man/man1/mdoc.1
rm /usr/local/share/man/man1/mdvalidater.1
rm /usr/local/share/man/man1/mkbundle.1
rm /usr/local/share/man/man1/mono-api-info.1
rm /usr/local/share/man/man1/mono-cil-strip.1
rm /usr/local/share/man/man1/mono-configuration-crypto.1
rm /usr/local/share/man/man1/mono-profilers.1
rm /usr/local/share/man/man1/mono-service.1
rm /usr/local/share/man/man1/mono-shlib-cop.1
rm /usr/local/share/man/man1/mono-symbolicate.1
rm /usr/local/share/man/man1/mono-xmltool.1
rm /usr/local/share/man/man1/mono.1
rm /usr/local/share/man/man1/monodis.1
rm /usr/local/share/man/man1/monodocer.1
rm /usr/local/share/man/man1/monodocs2html.1
rm /usr/local/share/man/man1/monolinker.1
rm /usr/local/share/man/man1/monop.1
rm /usr/local/share/man/man1/mozroots.1
rm /usr/local/share/man/man1/mprof-report.1
rm /usr/local/share/man/man1/msbuild.1
rm /usr/local/share/man/man1/pdb2mdb.1
rm /usr/local/share/man/man1/permview.1
rm /usr/local/share/man/man1/resgen.1
rm /usr/local/share/man/man1/secutil.1
rm /usr/local/share/man/man1/setreg.1
rm /usr/local/share/man/man1/sgen.1
rm /usr/local/share/man/man1/signcode.1
rm /usr/local/share/man/man1/sn.1
rm /usr/local/share/man/man1/soapsuds.1
rm /usr/local/share/man/man1/sqlsharp.1
rm /usr/local/share/man/man1/wsdl.1
rm /usr/local/share/man/man1/xbuild.1
rm /usr/local/share/man/man1/xsd.1
rm /usr/local/share/man/man5/mdoc.5
rm /usr/local/share/man/man5/mono-config.5
rm /usr/local/share/mono-2.0
rmdir /usr/local/share/man/man5
rmdir /usr/local/etc/mono/mconfig
rmdir /usr/local/etc/mono/4.5/Browsers
rmdir /usr/local/etc/mono/4.5
rmdir /usr/local/etc/mono/4.0/Browsers
rmdir /usr/local/etc/mono/4.0
rmdir /usr/local/etc/mono/2.0/Browsers
rmdir /usr/local/etc/mono/2.0
rmdir /usr/local/etc/mono

Output of brew doctor --verbose

❯ 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
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/sorbet-runtime-stub-0.2.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ruby-macho-2.5.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-sorbet-0.5.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-rspec-2.2.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-rails-2.9.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-performance-1.9.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ruby-progressbar-1.11.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rack-2.2.3/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/plist-3.6.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/patchelf-1.3.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mechanize-2.7.7/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/webrick-1.7.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/elftools-1.1.3/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/simplecov_json_formatter-0.1.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/bindata-2.4.8/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/activesupport-6.1.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/zeitwerk-2.4.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/tzinfo-2.0.4/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/i18n-1.8.7/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/lib/ruby/2.6.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/lib/ruby/2.6.0/x86_64-darwin14
/usr/local/Homebrew/Library/Homebrew
/usr/bin/xattr
/usr/bin/swift /usr/local/Homebrew/Library/Homebrew/cask/utils/quarantine.swift
==> Homebrew Version
3.0.0-19-g9e1f355
==> macOS
10.15.7
==> SIP
Enabled
java -version
==> Java
1.8.0_91
==> Homebrew Cask Staging Location
/usr/local/Caskroom
==> Homebrew Cask Taps:
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask (3808 casks)
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-fonts (1699 casks)
/usr/bin/xattr
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: Homebrew's "sbin" was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting your PATH for example like so:
  echo 'set -g fish_user_paths "/usr/local/sbin" $fish_user_paths' >> ~/.config/fish/config.fish

Output of brew tap

homebrew/bundle
homebrew/cask
homebrew/cask-fonts
homebrew/core
MikeMcQuaid commented 3 years ago

This is not a bug as this behaviour was never implemented for casks. If the Homebrew/cask folks think it's a good/valid feature request: we can leave this open with help wanted on whichever repository seems the best fit.

MikeMcQuaid commented 3 years ago

(sorry @vitorgalvao I only just noticed you had already moved this, feel free to move it back)

vitorgalvao commented 3 years ago

While we still get feature requests and bug reports for Cask features, I feel that in the homebrew/cask repository they may not be getting the attention of the right contributors who like to improve the core. So I’d like to try moving those to homebrew/brew and see if that helps to get them done.

If it doesn’t and these get closed by the bot, so be it, but it’s worth a try.