Jun 14, 2026 06:07:18 Mark Millard <[email protected]>: > On 6/13/26 20:21, Bugs Beastie wrote: >> Hi ports@! >> >> Most probably the question was discussed a lot of times, but I have not >> found a definitive answer. >> >> If an app depends on libfoo that depends on libbar: >> app -> libfoo -> libbar >> Should the port of app add LIB_DEPENDS only on libfoo or on both libfoo and >> libbar? >> >> Simple example (outdated, but the first thing you see in Porter's Handbook): >> games/oneko is linked with the command >> >> cc -o oneko -L/usr/local/lib oneko.o -lXext -lX11 -lm >> -Wl,-rpath,/usr/local/lib >> >> suggesting direct dependencies libXext and libX11. However, ldd oneko gives >> >> libXext.so.6 >> libX11.so.6 >> libm.so.5 >> libc.so.7 >> libxcb.so.1 >> libthr.so.3 >> libsys.so.7 >> libXau.so.6 >> libXdmcp.so.6 >> >> Of course, libXau, libXdmcp, and libxcb are coming from libX11. The port >> >> USES= imake xorg >> >> Additionally, should it just depend on direct dependencies >> >> USE_XORG= x11 xext >> >> or the full dependency list? >> >> USE_XORG= x11 xau xcb xdmcp xext >> >> More complicated example: cad/freecad depends on cad/opencascade that >> depends on multimedia/ffmpeg4 with default options (can be switched off). >> >> Should freecad port LIB_DEPENDS on ffmpeg4, as it is now, or should it track >> opencascade options, or should it not depend on ffmpeg4 at all? >> >> Thank you in advance, >> Alexey >> >> > > In other words(?): Where does the responsibility for handling the > transitive closure of the dependencies reside? > Yes! More in the sense what is the current policy for the newly created ports?
I have a feeling that the answer changes over the time as the available infrastructure changes. I also think that both the current ports framework and pkg(-ng) can handle this transitive closure without manually unfolding the dependency tree in each port. But let's wait for the answer of ports gurus!
