Gentoo Archives: gentoo-dev

From: Kent Fredric <kentnl@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Revisiting version-related tree policies
Date: Sat, 05 Nov 2016 11:16:42
Message-Id: 20161106001603.0773113f@katipo2.lan
In Reply to: Re: [gentoo-dev] Revisiting version-related tree policies by Ulrich Mueller
1 On Sat, 5 Nov 2016 11:13:35 +0100
2 Ulrich Mueller <ulm@g.o> wrote:
3
4 > revision component must not be used for upstream versions:
5
6 The problem is we have *2* upstream versions.
7
8 virtual/perl-Foo-N
9
10 Maps to
11
12 perl-core/Foo-N
13
14 And
15
16 dev-lang/perl-Y ( for possibly more than one value of Y )
17
18 And Y does not equal N
19
20 Presently, this is "not a problem", because there is only 1 of each "N"
21 for virtual/perl-Foo-N
22
23 And it maps with this horrible magic of
24
25 || ( =dev-lang/perl-Y4* =dev-lang/perl-Y3* =dev-lang/perl-Y2* ~perl-core/Foo-N )
26 !<perl-core/Foo-N
27 !>perl-core/Foo-N-r999
28
29 Which is "logically correct", however, as seen in bug #584238[1],
30 portage does not always do the right thing, and it makes a real mess of
31 things having one package virtualising multiple different keywords. ( I
32 had to get into graphing tools to work out what the hell was actually
33 happening )
34
35 *especially* in cases where we need to indicate an "upstream merge in a virtual" as with 584238
36
37 So the strategy that I was considering was to "split" each logical upstream virtual into several pieces:
38
39 virtual/perl-Foo-N to virtual/perl-Foo-N-r99 : "Always pull perl core/*"
40
41 virtual/perl-Foo-N-r52200 to virtual/perl-Foo-N-r52299 : "Always pull perl 5.22 and remove perl-core/*"
42
43 virtual/perl-Foo-N-r52400 to virtual/perl-Foo-N-r52499 : "Always pull perl 5.24 and remove perl-core/*"
44
45
46 Which allows us to control which outcome a user gets by keeping keywords consistent across the board, as
47 we'd stabilize/keyword all '-r522**' with perl 5.22
48
49 virtual/perl-Foo-N to virtual/perl-Foo-N-r99
50
51 would thus be "Getting multiprovided things at newer versions than is available in your shipped perl", and that
52 -r range would only be stabilized to fast-track security issues or to provide those versions for dependents
53 before the respective perl is stabilized ( that is, the fallback to perl-core is done with maximum reluctance )
54
55 This idea was hoped to be more predictable than a monolithic virtual
56 that had all those outcomes as possibilities which then caused portage to be confused.
57
58 ( I hope this explanation is more clear than the last one, but its OK
59 if you're still confused, it took me a few weeks to get my head around
60 it the first time, but I implore you to read the related bug and pay
61 careful attention to its attached images )
62
63 1: https://bugs.gentoo.org/show_bug.cgi?id=584238

Replies

Subject Author
Re: [gentoo-dev] Revisiting version-related tree policies Ulrich Mueller <ulm@g.o>