Pinned formulae which were pinned at a previous version but then upgraded
would not be listed by `brew list --pinned`. This is due to the good old
"File.exist? thinks broken symlinks don't exist" gotcha, so the test in
the select block in list_pinned has been changed to check if the pin file
exists _or_ is a symlink.
ClosesHomebrew/homebrew#20423.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Dependency names retain the "tap prefix", e.g. the "homebrew/dupes"
part of "homebrew/dupes/zlib". However formula objects do not, and this
is desired because we do not record the tap name as part of the
installation prefix.
So we need to ensure the correct dep names are passed to superenv,
otherwise it will not add the correct directories to various environment
variables.
Changed 'graph' command to show only installed by default. Prettified
resulting graph.
By default, the `brew graph` command would output a dependency graph for every
formula it knew about. Now it only outputs a dependency graph the for formulas
installed. If you want to see the graph for all formulas, use `brew graph
--all`.
Additionally, the old version of the graph command would filter out any
formulas without depdency connections. The updated version now only does this
if calculating dependencies for all formulas via the `--all` flag.
Finally, the resulting graph has been redesigned to be simpler to read. All
formulas which have no other formulas depending on them (i.e., root nodes) are
aligned to the left. They are also outlined in a light grey box, which is
labelled "Safe to Remove". As implied, all of the formulas in this box can be
safely removed without breaking other installed formulas; all formulas outside
this box have at least one installed formula depending on them. This new graph
style is surpressed if the `--all` flag is used.
ClosesHomebrew/homebrew#18282.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
This allows formulae which won't build with Tiger's ld to conditionally
request a dependency on the ld64 formula. This modifies the build
environment appropriately, and will only be active on Tiger.
When expanding dependencies, repeated deps are treated as equal and all
but the first are discarded when #uniq is called on the resulting array.
However, they may have different sets of options attached, so we cannot
assume they are the same.
After the initial expansion, we group them by name and then create a new
Dependency object for each name, merging the options from each group.
FixesHomebrew/homebrew#20335.