Gentoo Archives: gentoo-dev

From: Simon Stelling <blubb@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Request for Comment
Date: Sat, 11 Feb 2006 10:14:53
Message-Id: 43EDB820.3090900@gentoo.org
In Reply to: [gentoo-dev] Request for Comment by "Klaus-J. Wolf"
1 (I think it would be better if you could post the text on the list, so people
2 can easier cite the paragraphs they are referring to.)
3
4 > I cite one situation which has actually led to system destruction:
5 >
6 > I was in need of a certain version of a library. A the moment I installed it
7 > initially, this version was keyword masked for my architecture, since it was
8 > not thoroughly tested. It worked perfectly anyway. Since it was without
9 > issues, it became officially unmasked some time later and another version was
10 > introduced, which was keyword masked because it didn't work at all on my
11 > architecture. This one could be compiled, but really didn't work at all. Since
12 > I didn't observe the new version introductions all the time, a slightly
13 > careless world update gave me that version and left all programs depending on
14 > the library in a non-working state.
15 >
16 > After all it was my fault, but on a resonably maintained system you will
17 > always have a number of manually unmasked ebuilds, and you can't monitor them
18 > all the time.
19
20 This is why you should use exact versions in p.mask and p.unmask. If you do that
21 you only get the minimum of masked packages, leading to minimal borkage.
22
23 Now, over to the GLEP draft..
24
25 You make some very dangerous (partly wrong) assumptions in your GLEP. First of
26 all, there's the assumption that we have the capacity to maintain such a fine
27 graded masking scheme. We are currently mainly distinguishing between testing
28 ~arch and stable arch. I can only speak for AMD64, but we have a currently ~100
29 packages that wait to go into the ~amd64 tree, 54 of them for longer than 30
30 days. Beside that, we have about 120 packages waiting to go into the stable
31 tree. Now, if you'd increase the number of masking "stages" from two to 10, I
32 can guarantee that this masking scheme would get completely useless.
33
34 But the far more critical assumption you make is this one:
35 You assume that once a package has been marked stable, it keeps beeing stable.
36 You simply can't treat every package individually. A package marked stable back
37 in 2004 with a status level -5 should be considered ultimatively stable if I
38 understand your proposal right. But then GCC 3.4 is marked stable too, and, oh,
39 look, it doesn't even compile!? Things depend on each other, in a very complex
40 fashion. Whenever some behaviour in one package is changed, it is likely to
41 break another one. Instead of giving us 10 different status levels, show us a
42 way to avoid such problems in general.
43
44 Part of the assumption above is also the fact that these keywords do not
45 consider the profile the user is using. A package might work great for one
46 profile but terribly break for another (deprecated) one.
47
48 You can apply the same idea to eclasses. Basically it all bails down to this:
49
50 Give me 10 environments and I give you 10 different ways to break the package.
51
52 Regards,
53
54 --
55 Simon Stelling
56 Gentoo/AMD64 Operational Co-Lead
57 blubb@g.o
58 --
59 gentoo-dev@g.o mailing list