[aur-general] [arch-general] Please settle 'base' in 'depends' for all
Magnus Therning
magnus at therning.org
Wed Jan 19 09:39:16 EST 2011
On Wed, Jan 19, 2011 at 13:21, Allan McRae <allan at archlinux.org> wrote:
> 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.
All right, I need to clarify. If B *isn't* installed, then pacman
will install both B *and* C; and there's the transitive closure.
/M
--
Magnus Therning OpenPGP: 0xAB4DFBA4
email: magnus at therning.org jabber: magnus at therning.org
twitter: magthe http://therning.org/magnus
More information about the aur-general
mailing list