Dnia 2014-07-22, o godz. 09:25:45
""Paweł Hajdan, Jr."" <phajdan...@gentoo.org> napisał(a):

> On 7/21/14, 11:52 PM, Alexander Berntsen wrote:
> > Michał has documented the shortcomings of dynamic deps in our wiki[0].
> > (Thank you!) This documentation also includes two of our possible
> > solutions.
> >
> > [0]  <https://wiki.gentoo.org/wiki/Project:Portage/Dynamic_dependencies>  
> 
> Thank you, this is very useful. I didn't understand the issue much
> before reading that page.
> 
> One question: why for "Removal of a USE flag along with the relevant
> dependencies" dynamic deps say "revbump + unnecessary rebuild"? What
> would happen without the revbump?

Well, for completeness I'll start by listing what would happen with
static deps. Though nothing will actually happen. Already-built
packages may have the flag enabled along with deps. When people rebuild
-- through --newuse, --changed-use or otherwise -- they will get
the functionality and dependencies removed along with the flag.

How dynamic-deps would handle that are pretty much a matter of
implementation choice. I can think of two major possibilities:

1. dynamic-deps are applied nevertheless. Since the relevant
dependencies are removed along with the flag, dynamic-deps causes
portage to no longer pull in needed libraries even though package was
built with the flag enabled and still links to them. Long story short,
linkage is broken.

2. PM notices IUSE no longer matches and doesn't apply dynamic-deps.
While this prevents the breakage from happening, it's one additional
point to the list of cases when dynamic-deps are disabled. Which means
that no further dependency changes to the ebuild have dynamic effect
and -- with current portage implementation -- the dependencies are
'reverted' to the state when the package was installed, even though
just before the change portage used ebuild dependencies.

Of course, you could try to invent some smart logic that would handle
this specific case better. But it makes the dependency resolution even
more complex and hard to understand, plus someone needs to actually do
it. And then, you're going to hit even more corner cases and implement
additional workarounds for each one. And then each of those workarounds
will create new corner cases...

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: PGP signature

Reply via email to