1 |
On 09/17/2015 05:22 PM, Duncan wrote: |
2 |
> Ciaran McCreesh posted on Thu, 17 Sep 2015 20:31:36 +0100 as excerpted: |
3 |
> |
4 |
>> On Thu, 17 Sep 2015 20:14:59 +0100 Markos Chandras <hwoarang@g.o> |
5 |
>> wrote: |
6 |
>>> could someone explain what the dynamic dependencies are in the context |
7 |
>>> of portage and ebuilds? because that does seem to be something |
8 |
>>> portage-internal specific in the way it handles changes in {,R}DEPEND |
9 |
>>> without revbumps. Where is this thing documented in the first place? |
10 |
>> |
11 |
>> Sometimes, Portage will sort of use the dependencies specified in an |
12 |
>> ebuild rather than the dependencies specified in VDB for certain |
13 |
>> operations under certain conditions and certain phases of the moon, |
14 |
>> except when it doesn't. This is a quirk left over from the olden days, |
15 |
>> when Portage could only handle the existence of one version of any given |
16 |
>> package, and so couldn't cope with there being something called foo-1.2 |
17 |
>> in VDB and something else called foo-1.2 in the tree. This bug was |
18 |
>> largely fixed when env saving meant that eclasses no longer had to |
19 |
>> remain compatible with things in VDB, but traces of it still remain to |
20 |
>> cause confusion. |
21 |
> |
22 |
> [There's discussion of a potential news item below. People familiar with |
23 |
> the dynamic-deps discussion in general may wish to skip to it. See under |
24 |
> the "Possible News item?" heading.] |
25 |
> |
26 |
> Additionally, AFAIK, portage entirely disables dynamic-deps and uses |
27 |
> static deps any time subslots are used. |
28 |
|
29 |
Actually, in this case it uses a combination of static deps and dynamic |
30 |
deps. It takes the "static" slot operator deps and merges them with the |
31 |
dynamic deps. The relevant code is here: |
32 |
|
33 |
https://gitweb.gentoo.org/proj/portage.git/tree/pym/_emerge/FakeVartree.py?h=v2.2.20.1#n137 |
34 |
-- |
35 |
Thanks, |
36 |
Zac |