I would want to get the list of installed packages that depend on gcc (installed with homebrew). When I try:
brew uses --installed gcc
it gives no result. And if I check e.g. r's dependencies with
brew deps r, it returns
gcc (among others). So I assume
brew uses should at least return the value
Did anyone encounter a similar problem and could shed some light on this?
This is not an authoritative answer, but it appears to me that this is because
r depends on
:fortran, which is some kind of virtual dependency that can be resolved in different ways.
brew deps answers the question, what would I need to install before installing this formula. And in your case it decides that installing
gcc is a way to satisfy the
:fortran requirement. But the reverse is apparently not supported: It doesn't know just from looking at
gcc that this can be used to resolve the virtual dependency
:fortran. This is somewhat plausible if one considers the way that virtual dependencies are implemented in Homebrew. Usually, it just looks around in the file system to see if a required binary is available (including ones supplied outside of Homebrew), but it doesn't establish a formula dependency link once it finds a candidate.
(In fact, this case might be even more complex. If you look at
brew deps r --tree, you will see that the dependency is actually on
:gcc, which is another level of virtual dependency.)
Although not directly related to your question, also note that
deps by default is recursive but
uses is not. So in order to get a symmetric picture, you'd need to use
deps -1 or