On Wed, Jan 19, 2011 at 13:07, Allan McRae <al...@archlinux.org> wrote: > On 19/01/11 22:49, Magnus Therning wrote: >> >> On Wed, Jan 19, 2011 at 12:50, Allan McRae<al...@archlinux.org> wrote: >>> >>> On 19/01/11 22:20, Thomas Bächler wrote: >>>> >>>> Am 19.01.2011 08:08, schrieb Allan McRae: >>>>> >>>>> If we want to be really pedantic about dependencies, we should list >>>>> _ALL_ dependencies and not remove the ones that are dependencies of >>>>> dependencies. >>>> >>>> Why don't we just do the correct thing: >>>> >>>> If package A depends on package B, and B depends on C, then A might >>>> depend on C explicitly because it accesses C directly. Or it might only >>>> depend on indirectly C because B accesses C. We should reflect that in >>>> dependencies (in the first case, A depends on C, in the second case it >>>> doesn't). >>>> >>>> The result is this: Whenever the dependencies of B change (e.g., C is >>>> removed), A will still work correctly. >>> >>> I agree that would be the correct thing to do. In fact, I looked at >>> doing >>> this to the extent of including ever package that a program linked to in >>> its >>> dependencies. This increases the number of dependencies needed for the >>> average package in the repos greatly (from memory it averaged a several >>> fold >>> increase). >> >> I don't quite understand what you mean, did you add the transitive >> closure of all dependencies to the package, or did you only add all >> direct dependencies? > > Essentially "readelf -d" on the files and add all needed packages to the > dependencies. I.e. list all packages that are directly linked. > > Its has been many years since I did graph theory... but isn't a "transitive > closure" essentially what we have been doing with only listing the top level > of dependencies and having them cover the rest?
Nope, it's the "opposite": • A depends on B • B depends on C If the PKGBUILD for A lists the transitive closure, then it would have depends=(B C) As we do now the transitive closure is calculated by pacman in order to make sure all dependencies are installed. /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: mag...@therning.org jabber: mag...@therning.org twitter: magthe http://therning.org/magnus