Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: Dynamic dependencies
Date: Fri, 18 Sep 2015 02:07:46
Message-Id: 55FB71E5.5060007@gentoo.org
In Reply to: [gentoo-dev] Re: Dynamic dependencies by Duncan <1i5t5.duncan@cox.net>
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