1 |
Hello, and my apologies for missing your message. |
2 |
|
3 |
On Fri, Jan 12, 2018 at 1:59 AM, Benda Xu <heroxbd@g.o> wrote: |
4 |
> Hi R0b0t1, |
5 |
> |
6 |
> R0b0t1 <r030t1@×××××.com> writes: |
7 |
> |
8 |
>> I don't want to just comment on naming, but: |
9 |
>> |
10 |
>> It might be more natural to go the other way. Split profiles off based |
11 |
>> on version when breakage occurs, and otherwise do not reference a |
12 |
>> specific version. |
13 |
>> |
14 |
>> Then, the name indicates the most recent kernel supported by the |
15 |
>> profile. So remove the plus and (I think) shift all of the names |
16 |
>> "forward." |
17 |
> |
18 |
>> So 2.6.16 becomes 2.6.32, and 2.6.32 becomes the next profile's name. |
19 |
>> |
20 |
>> This seems more natural but does change the semantics of the |
21 |
>> name. Would that be a problem? |
22 |
> |
23 |
> Let's call this 'breakage-indicating scheme'. I have considered it, but |
24 |
> finally I chose the original proposal: |
25 |
> |
26 |
> Consider one running kernel 3.8 with the newest profile, called |
27 |
> 'prefix/kernel-3.2+' in the original proposal and 'prefix' in the |
28 |
> breakage-indicating scheme. When glibc decides to break <kernel-3.10, |
29 |
> in the breakage-indicating scheme, you will have to change the profile |
30 |
> to 'prefix/kernel-3.10-older'. |
31 |
> |
32 |
> Consider otherwise one running kernel 4.9, you will not not need to |
33 |
> switch profile 'prefix/kernel-3.2+' in the original proposal, although |
34 |
> 'prefix/kernel-3.10+' will be a better profile. |
35 |
> |
36 |
> In either case, the original proposal does not force a profile switch |
37 |
> when glibc breaks old kernel. Therefore I prefer it. |
38 |
> |
39 |
|
40 |
This makes sense. While I agree that minimizing breakage is a good |
41 |
idea, I am not sure it should be favored over all alternatives. |
42 |
|
43 |
>> Is it expected people would want to use the profiles with |
44 |
>> compatibility features on newer kernels? |
45 |
> |
46 |
> One use case is that: I want to bootstrap on my new and powerful server |
47 |
> a 'prefix/kernel-2.6.16+' on kernel 4.9, and then transfer the resulting |
48 |
> Prefix to an aging RHEL 5. Bootstrapping a 'prefix/kernel-2.6.32-older' |
49 |
> on kernel 4.9 feels awkward. |
50 |
> |
51 |
> But it is not about use cases, it is about logical consistancy: if we |
52 |
> are not forbidden to run an old glibc on a new kernel, we should not |
53 |
> indicate so in profile names. |
54 |
> |
55 |
|
56 |
I have seen similar choices made before, but this is the first time I |
57 |
have seen a good case for the choice you selected. E.g.: |
58 |
|
59 |
(Current.) |
60 |
*============================> |
61 |
*=====================> |
62 |
*==============> |
63 |
*=======> |
64 |
|
65 |
vs. |
66 |
|
67 |
(Usually seen.) |
68 |
*======* |
69 |
*======* |
70 |
*======* |
71 |
*=======> |
72 |
|
73 |
vs. |
74 |
|
75 |
(What it would actually mean for prefix.) |
76 |
*======*---------------------> |
77 |
*======*--------------> |
78 |
*======*-------> |
79 |
*=======> |
80 |
|
81 |
>> This setup would prevent having to verify that old code works on new |
82 |
>> systems, which is implied to be supported.by the + naming (again, not |
83 |
>> sure if it matters). |
84 |
> |
85 |
> It is always supported to run an old glibc version on a new kernel, the |
86 |
> linux kernel is ABI-backwords compatible. There is no need to verify |
87 |
> that. Besides, by always using the most recent |
88 |
> sys-kernel/linux-headers, we are guaranteed with the newest kernel API. |
89 |
> |
90 |
|
91 |
It might be for the foreseeable future, but that might change. The |
92 |
comment was more about the features exposed to glibc and the programs |
93 |
installed via portage. It seems to me as the kernel and userland |
94 |
progress, the older profile. Perhaps I am not explaining it well, my |
95 |
apologies. |
96 |
|
97 |
Cheers, |
98 |
R0b0t1 |