[solved] What's the difference between "Dependencies" and "Requirements"?


(Franklin Yu) #1

In brew info I frequently see these two sections. What is the difference? I didn’t find any documentation explaining this. Example for brew info octave from science tap:

==> Dependencies
Build: lzip ✘, gnu-sed ✘, pkg-config ✔, bison ✘, gawk ✘, texinfo ✘
Required: fontconfig ✘, freetype ✘, pcre ✔, veclibfort ✘, pstoedit ✘, qscintilla2 ✘
Recommended: arpack ✘, curl ✘, epstool ✘, fftw ✘, fltk ✘, gl2ps ✘, glpk ✘, graphicsmagick ✘, hdf5 ✘, qhull ✘, qrupdate ✘, readline ✔, suite-sparse ✘, transfig ✘, ghostscript ✘, qt5 ✘, gnuplot --with-qt5 ✘
Optional: openblas ✘, libsndfile ✘, llvm ✔, portaudio ✘
==> Requirements
Required: fortran ✘, x11 ✔
Optional: java >= 1.6 ✔

(Mike McQuaid) #2

Dependencies are a single Homebrew formula whereas Requirements are any arbitrary code that indicates something that’s needed for a formulae. That’s kinda hard to explain but an easier way of thinking about it is a Requirement could be fulfilled by multiple formulae, a cask or something manually installed outside of Homebrew. Does that make sense?


(Franklin Yu) #3

Yes, thank you. Just to make sure, so dependencies (unlike requirements) can never be fulfilled by manually installed software, right? Because they corresponds to a formula one-to-one?


(Mike McQuaid) #4

Yep, exactly correct.