1 |
On Sat, 23 Jul 2016 15:38:26 +0100 Ciaran McCreesh wrote: |
2 |
> On Sat, 23 Jul 2016 17:23:48 +0300 |
3 |
> Andrew Savchenko <bircoph@g.o> wrote: |
4 |
> > On Fri, 22 Jul 2016 14:57:36 +0100 Ciaran McCreesh wrote: |
5 |
> > > On Fri, 22 Jul 2016 16:41:56 +0300 |
6 |
> > > Andrew Savchenko <bircoph@g.o> wrote: |
7 |
> > [...] |
8 |
> > > > I see no point in trashing ebuilds with dead code that will never |
9 |
> > > > be used. Though if there will be a PMS or eclass function with |
10 |
> > > > "proper" implementation, I don't mind, since extra code will be |
11 |
> > > > moved from ebuild elsewhere. |
12 |
> > > |
13 |
> > > Slots are not the only way in which you can end up with multiple |
14 |
> > > installed versions of the same package. Another way is if there's a |
15 |
> > > fatal error during certain parts of the upgrade process. |
16 |
> > |
17 |
> > If setup is broken to the point when several version within single |
18 |
> > slot are installed (or are reported to be installed), then: |
19 |
> > |
20 |
> > 1) There is no way to tell which version is valid and all of them |
21 |
> > may be invalid. That's why REPLACING_VERSIONS is of no use at all |
22 |
> > in such situation. |
23 |
> > |
24 |
> > 2) System is severely broken and mistakenly shown (or not shown) |
25 |
> > ewarn message will be the least problem for a user of such system. |
26 |
> |
27 |
> Uh, nope. The PM can recover from that situation, so long as people |
28 |
> don't go around writing broken ebuilds that make unwarranted |
29 |
> assumptions that the spec specifically tells them not to make. Don't |
30 |
> get into the habit of writing broken code. |
31 |
|
32 |
Oh, nice: strictly follow PMS no matter what, right? Then let me |
33 |
remind you that not so long time ago I advocated for strictly |
34 |
following PMS [1,2], which _allows_ || ( A:= B:= ) construct [3]. |
35 |
|
36 |
But I was _enforced_ by QA to _violate_ PMS and remove the valid |
37 |
syntax blocks [4]. This decision was made because of $reasons: |
38 |
- we lack ||= operator; |
39 |
- || ( := ) behaviour is not implemented properly in existing PM; |
40 |
- "it doesn't make *any* sense"; |
41 |
- other valid and unquestionable $reasons ... |
42 |
|
43 |
So the result is that common sense and practical considerations |
44 |
take over PMS. And what we have in the REPLACING_VERSIONS case? |
45 |
It doesn't matter that such situation never happened and will |
46 |
likely never happen, but one must follow PMS strictly no matter |
47 |
what. Such attitude is not fair at least. |
48 |
|
49 |
> Or to put it another way: you are wrong, and you don't know enough |
50 |
> about the situation to understand why you're wrong, and you clearly |
51 |
> have no interest in learning, so just do as you're told. |
52 |
|
53 |
I don't deny that I may be wrong on this matter, but I demand a |
54 |
proof, an experimental one. And I see no such proof, only |
55 |
theoretical considerations without any practical confirmation. |
56 |
|
57 |
Do we ever had such case like multiple versions of the same |
58 |
single-slotted package installed or recorded as installed in the |
59 |
real world? I'm not sure even in this, but I may assume that it may |
60 |
happen one day. |
61 |
|
62 |
Do we have any proof that PM can recover from such situation, |
63 |
where VDB is a mess and installed files can also be a mess? I'm not |
64 |
sure in this at all. |
65 |
|
66 |
Do we have any test suits for portage (as the most popular PM |
67 |
implementation) for such cases? I doubt this, I can find none. I'm |
68 |
not sure if such tests are implemented in other PM test suits too. |
69 |
|
70 |
[1] https://archives.gentoo.org/gentoo-dev/message/abd0c82b058aa0109c12050ae837fba0 |
71 |
[2] https://bugs.gentoo.org/show_bug.cgi?id=586238#c1 |
72 |
[3] https://dev.gentoo.org/~ulm/pms/head/pms.html#x1-780008.2 |
73 |
[4] https://bugs.gentoo.org/show_bug.cgi?id=586326 |
74 |
|
75 |
Best regards, |
76 |
Andrew Savchenko |