Dnia 2015-04-05, o godz. 19:32:01
Ulrich Mueller <u...@gentoo.org> napisał(a):

> >>>>> On Sun, 5 Apr 2015, Michał Górny wrote:
> 
> > This is quite a Portage patch topic but since devs are known to be
> > unhappy about any change, I would like to start a bikeshed first.
> 
> > The idea is to make repoman/pcheck complain if the newest ebuild
> > matched by version+slot restriction of dependency atom can't satisfy
> > the USE dependency, or in other words, whenever the USE restriction
> > forces lower version of package being installed.
> 
> > For example, let's assume the following:
> 
> > a. foo-1 has USE=bar,
> 
> > b. bar-1 depends on foo[bar],
> 
> > c. foo-2 no longer has USE=bar.
> 
> > In the usual scenario this means that bar-1 will silently lock foo
> > at version 1. Since this is quite implicit, users don't notice
> > the problem and left unnoticed for a long time, it starts to hurt
> > bad at some point.
> 
> Is "foo[bar]" even a legal dependency, if there are versions of foo
> that don't have the bar flag in their IUSE? (PMS doesn't seem to be
> entirely clear about this: "... it is an error for a use dependency to
> be applied to an ebuild which does not have the flag in question in
> IUSE_REFERENCEABLE.")
> 
> So yes, make repoman shout about it. Loudly. :)

Well, I would interpret the PMS here as: '[foo?]' restricts to foo-1
even with USE=-foo. Though Portage disagrees here, I guess :).

> 
> > With the added check, after step (c) above repoman/pcheck would warn
> > on bar-1 that 'foo[bar]' dependency forces lower version than plain
> > 'foo'. Since version and slot restrictions will be taken into
> > consideration, it will possible to silence the warning by using:
> 
> >   <foo-2[bar]
> 
> > explicitly, if the dependency can't be fixed for foo-2 properly.
> > While not improving the final result a lot, it will at least give an
> > explicit '<' or '=' atom that can be easily found with grep when
> > considering old version removal.
> 
> > What are your thoughts?
> 
> How are you going to treat "foo[bar(-)]" and "foo[bar(+)]"?

Well, bar(-) restricts the possible version as well, so it desires
a warning. As for bar(+), it's often the actual solution so no warning
for that.

-- 
Best regards,
Michał Górny

Attachment: pgpxpg_buF2T3.pgp
Description: OpenPGP digital signature

Reply via email to