Gentoo Archives: gentoo-dev

From: Ulrich Mueller <ulm@g.o>
To: "Michał Górny" <mgorny@g.o>
Cc: gentoo-dev@l.g.o, qa@g.o
Subject: [gentoo-dev] Re: RFC: making repoman complain about USE dependencies that lock packages at old version
Date: Sun, 05 Apr 2015 17:32:18
Message-Id: 21793.29073.388586.111640@a1i15.kph.uni-mainz.de
In Reply to: [gentoo-dev] RFC: making repoman complain about USE dependencies that lock packages at old version by "Michał Górny"
1 >>>>> On Sun, 5 Apr 2015, Michał Górny wrote:
2
3 > This is quite a Portage patch topic but since devs are known to be
4 > unhappy about any change, I would like to start a bikeshed first.
5
6 > The idea is to make repoman/pcheck complain if the newest ebuild
7 > matched by version+slot restriction of dependency atom can't satisfy
8 > the USE dependency, or in other words, whenever the USE restriction
9 > forces lower version of package being installed.
10
11 > For example, let's assume the following:
12
13 > a. foo-1 has USE=bar,
14
15 > b. bar-1 depends on foo[bar],
16
17 > c. foo-2 no longer has USE=bar.
18
19 > In the usual scenario this means that bar-1 will silently lock foo
20 > at version 1. Since this is quite implicit, users don't notice
21 > the problem and left unnoticed for a long time, it starts to hurt
22 > bad at some point.
23
24 Is "foo[bar]" even a legal dependency, if there are versions of foo
25 that don't have the bar flag in their IUSE? (PMS doesn't seem to be
26 entirely clear about this: "... it is an error for a use dependency to
27 be applied to an ebuild which does not have the flag in question in
28 IUSE_REFERENCEABLE.")
29
30 So yes, make repoman shout about it. Loudly. :)
31
32 > With the added check, after step (c) above repoman/pcheck would warn
33 > on bar-1 that 'foo[bar]' dependency forces lower version than plain
34 > 'foo'. Since version and slot restrictions will be taken into
35 > consideration, it will possible to silence the warning by using:
36
37 > <foo-2[bar]
38
39 > explicitly, if the dependency can't be fixed for foo-2 properly.
40 > While not improving the final result a lot, it will at least give an
41 > explicit '<' or '=' atom that can be easily found with grep when
42 > considering old version removal.
43
44 > What are your thoughts?
45
46 How are you going to treat "foo[bar(-)]" and "foo[bar(+)]"?
47
48 Ulrich

Replies