I notice Homebrew does a poor job of listing the actual list of dependencies of a package:
$ brew info ffmpeg
ffmpeg: stable 5.0.1 (bottled), HEAD
Play, record, convert, and stream audio and video
https://ffmpeg.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/ffmpeg.rb
License: GPL-2.0-or-later
==> Dependencies
Build: nasm ✘, pkg-config ✘
Required: aom ✘, dav1d ✘, fontconfig ✘, freetype ✘, frei0r ✘, gnutls ✘, lame ✘, libass ✘, libbluray ✘, librist ✘, libsoxr ✘, libvidstab ✘, libvmaf ✘, libvorbis ✘, libvpx ✘, opencore-amr ✘, openjpeg ✘, opus ✘, rav1e ✘, rubberband ✘, sdl2 ✘, snappy ✘, speex ✘, srt ✘, tesseract ✘, theora ✘, webp ✘, x264 ✘, x265 ✘, xvid ✘, xz ✔, zeromq ✘, zimg ✘
One would be excused if the expectation were that these are all the needed dependencies, but each dependency has dependecies that are not listed. One example:
$ brew info rav1e
rav1e: stable 0.5.1 (bottled), HEAD
Fastest and safest AV1 video encoder
https://github.com/xiph/rav1e
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/rav1e.rb
License: BSD-2-Clause
==> Dependencies
Build: cargo-c ✘, nasm ✘, rust ✘
Some of said sub dependencies can come as a nasty shock, either because they need compilation, because they take up a lot of disk space, or both (say, Rust).
Is there a way of having Homebrew list:
- The actual full list of dependencies and sub-dependencies
- How many of said packages will need compilation
- the disk space required
?
I believe these informations would be pretty useful, especially for people with older and slower (and hotter) CPUs, and less disk space. I vaguely remember one could force somehow just the installation of binaries, to avoid the compilation step (if at all possible), but knowing how much disk space one will actually need is also useful.