alex wrote:
As I understand it, if library X depends on library Y and Y depends on Z, then X is said to depend on Z. I can understand as packages are created based on the library dependency graph:
[ To package X we must package all libraries on which X depends.]
However, the reality is that the file-dependencies of X do not necessarily include Z. Why would you not package only the files upon which the desired library depends?
Because the package for X only contains X's files, not its dependencies. If X depends on a file from Y, then Y's package must be installed to get Y's file. And since Y is now installed, if it requires building, Z needs to be installed as well; but even if it doesn't require building, having Y installed but unusable is not good from usability point of view.