[aur-general] [arch-general] Please settle 'base' in 'depends' for all

Allan McRae allan at archlinux.org
Wed Jan 19 08:21:17 EST 2011


On 19/01/11 23:09, Magnus Therning wrote:
> On Wed, Jan 19, 2011 at 13:07, Allan McRae<allan at archlinux.org>  wrote:
>> On 19/01/11 22:49, Magnus Therning wrote:
>>>
>>> On Wed, Jan 19, 2011 at 12:50, Allan McRae<allan at 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.
>

Nope.  We currently list depends=(B) and pacman just checks B is installed.

Allan


More information about the aur-general mailing list