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