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.