1 |
Ick, please fix your email client to properly format your long lines |
2 |
(i.e. no line wrapping.) I've reformatted them below to be sane... |
3 |
|
4 |
You also took the thread off of gentoo-dev, that's not nice either... |
5 |
|
6 |
On Sun, May 02, 2004 at 10:20:39PM -0600, Joshua Campbell wrote: |
7 |
> On Sun, 2 May 2004 20:56:47 -0700 |
8 |
> Greg KH <gregkh@g.o> wrote: |
9 |
> |
10 |
> > On Sun, May 02, 2004 at 10:04:35PM -0400, Nathaniel McCallum wrote: |
11 |
> > > The new glep is here: http://www.gentoo.org/proj/en/glep/glep-0026.html |
12 |
> > |
13 |
> > My formal objections: |
14 |
> > |
15 |
> > Basically the idea is nice, but I think the proposed solution is not |
16 |
> > correct. Here is why I feel this way: |
17 |
> > |
18 |
> > > Stage 1 would be achieved through a seperate utility (perhaps like the |
19 |
> > > current genkernel). This utility would help the user configure the |
20 |
> > > kernel and any kernel/build related settings. This stage is optional |
21 |
> > > and would only be used if a person wanted a customized kernel |
22 |
> > > settings. One optional thought is to have this utility a part of the |
23 |
> > > base Gentoo system. That way there are less steps to make a custom |
24 |
> > > kernel. |
25 |
> > |
26 |
> > Why reinvent the wheel here? The kernel has a _wonderful_ configuration |
27 |
> > system already. It's provided in about 4 different interfaces at least |
28 |
> > (command line, ncurses, gtk, qt), and in library form. Are you |
29 |
> > proposing hooking into that library to do the configuration? If so, |
30 |
> > what is lacking in the current implementation that is needing another |
31 |
> > tool? |
32 |
> > |
33 |
> |
34 |
> Yes, we will probably hook into the alread existing configure system. |
35 |
|
36 |
That is not what you were stating. Please document this if it is going |
37 |
to be so. |
38 |
|
39 |
> The extra tool isn't much more than a wrapper for it, however it is |
40 |
> needed so that portage can manage the kernel configs [supply the |
41 |
> config when the kernel is built, when modules are built, when a newer |
42 |
> kernel is configured, when the kernel is rebuilt, when the initrd is |
43 |
> built]. |
44 |
|
45 |
initrd has nothing to do with the kernel config. Also see my previous |
46 |
comments about initrd going the way of the dinosaurs... |
47 |
|
48 |
> > > Stage 2 would be implimented through an eclass. This stage is not |
49 |
> > > optional. One would perform this step by typing "emerge kernel-name", |
50 |
> > > where "kernel-name" is the name of the kernel package you want to use |
51 |
> > > (ie. "gentoo-dev"). This package would have a "buildkernel" USE flag. |
52 |
> > > If the flag was not set, it would simply download and install sources |
53 |
> > > like we do currently. However, if the "buildkernel" flag is set, |
54 |
> > > portage will perform the following steps: |
55 |
> > > |
56 |
> > > 1. (as a dependency) download and install a tarball of "generic" |
57 |
> > > kernel config files. |
58 |
> > |
59 |
> > Is this really needed? Don't we already do this today? |
60 |
> |
61 |
> With genkernel, yes, we are just simply using this ability of |
62 |
> genkernel's in a more modular fasion. |
63 |
|
64 |
Again, your proposal never said anything about using the current |
65 |
genkernel functions or functionality. Again, please revise it if this |
66 |
is going to be so. |
67 |
|
68 |
> You do not need the whole tree around to build modules. For example, |
69 |
> an x86 system would never need the sparc-specific parts of the kernel |
70 |
> to build module. |
71 |
|
72 |
Down this path lies madness... Trust me, see the zillion different |
73 |
threads about this very topic on the linux-kernel mailing list. Also |
74 |
note that the majority of files in the kernel source tree are not in the |
75 |
arch specific portion, but rather in the drivers/ section. |
76 |
|
77 |
You need a good portion of the tree to build modules. This is easily |
78 |
proved with a simple test. Also see my previous comments about the |
79 |
infeasibility of handing this when trying to build other packages that |
80 |
want kernel source present somewhere... |
81 |
|
82 |
> Yet again, we aren't scrapping genkernel, we're enhancing it. |
83 |
|
84 |
Again, this is the first time this has been mentioned. |
85 |
|
86 |
In fact, to quote the GLEP: |
87 |
This GLEP hopes to overcome this by abstracting the various |
88 |
layers of genkernel and implementing the most common aspect (the |
89 |
build procedure) into a portage eclass. |
90 |
|
91 |
That sure doesn't sound like "enhancing" genkernel. Sounds more like |
92 |
grabbing the genkernel code and reforming it into something else at the |
93 |
very best reading. |
94 |
|
95 |
> > > Stage 3 would merely be an ebuild that constructs an initrd image for |
96 |
> > > either the running kernel or, lacking a running kernel, the newest |
97 |
> > > kernel installed (by version/date installed?). Initrd's can't be used |
98 |
> > > on all arches, so this ebuild can be keyword masked as appropriate. |
99 |
> > > The initrd package would also have a "bootsplash" USE flag (on x86, |
100 |
> > > maybe others) that would build in bootsplash support. Any non-default |
101 |
> > > actions desired by the user can be handled with the utility from Stage |
102 |
> > > 1. |
103 |
> > |
104 |
> > So "bootsplash" will be the only USE flag? Why stop there? |
105 |
> > |
106 |
> |
107 |
> This is an example. USE flags would not be used to configure the |
108 |
> kernel, but rather dependancies as shown above. |
109 |
|
110 |
So are you stating that "bootspash" and "initrd" are going to be the |
111 |
only dependencies? You do realize that the "bootsplash" option requires |
112 |
a kernel patch to be applied? If I don't specify the "bootsplash" |
113 |
option, I sure don't want that patch applied to my kernel (perhaps |
114 |
because I live in a place that decrees that this specific patch is |
115 |
illegal...) |
116 |
|
117 |
"bootsplash" also affects the kernel config options. As does "initrd", |
118 |
correct? So how can you state that these flags will not be used to |
119 |
configure the kernel when your example clearly shows them doing so? |
120 |
|
121 |
Also, what happens if a security fix is needed that is around the same |
122 |
portions of the kernel code that the bootsplash code is at? That would |
123 |
require 2 different security patches to be in the repository, and 2 |
124 |
different tests to determine if the patch works properly or not. |
125 |
|
126 |
Multiply this by a zillion different "requests" that I know we will get, |
127 |
and it will quickly get unwieldy. |
128 |
|
129 |
For example, we currently have a "usb" use flag. Should the kernel |
130 |
build process honor it? If so, does that mean we need to split the |
131 |
existing lirc patch up into 2 pieces (one for the usb driver, and one |
132 |
for the rest)? |
133 |
|
134 |
That's what I am talking about when I mention the total ickyness that |
135 |
will ensue if we try to use USE flags to modify the kernel build |
136 |
process. |
137 |
|
138 |
> > Oh, and initrd images are dead. I predict that by the end of this year |
139 |
> > we will not be using them at all, as there is no need to (other distros |
140 |
> > are already proving this is possible.) We also get a much more |
141 |
> > flexible, portable (works on all platforms) and cleaner implementation |
142 |
> > with initramfs, so that is what we will be moving to soon. So your |
143 |
> > "initrd" options are pretty moot. |
144 |
> |
145 |
> Modularing the initrd system will only help us prepare for this eventuality. |
146 |
|
147 |
Huh? It isn't already in the genkernel tool? What is the function |
148 |
"create_initrd" used for? :) |
149 |
|
150 |
> > > There are many advantages gained by this method: |
151 |
> > > |
152 |
> > > 1. Full arch support (GentooInstaller really could use this) |
153 |
> > |
154 |
> > We should fix genkernel to do this, if it doesn't already today. There |
155 |
> > is no reason this should not be possible today without a total rework. |
156 |
> |
157 |
> It is easier to port things in parts ["configs" and initrd] than it is |
158 |
> as a whole. |
159 |
|
160 |
But this proposal says nothing about porting "things in parts". It |
161 |
talks about a replacement for our current kernel build system. |
162 |
|
163 |
> > > 4. More flexability (genkernel forces building of initrd on x86) |
164 |
> > |
165 |
> > I've already outlined the issues of initrd going away, so this isn't an |
166 |
> > issue. |
167 |
> |
168 |
> If initrd goes away we will NEED that flexibility. |
169 |
|
170 |
What flexibility? initramfs works on every platform and provides _more_ |
171 |
flexibility. I don't understand your objection here. |
172 |
|
173 |
> It will be easier to create a reference implementation if developers |
174 |
> such as yourself will have open mind. |
175 |
|
176 |
I have a very open mind. I'm trying to show the problems I see in this |
177 |
proposal (which is why you all posted it, correct?) That's part of the |
178 |
review process. Hopefully in the end something better than a person |
179 |
working by themselves will be created. That's the main strength of open |
180 |
source development. |
181 |
|
182 |
So that's about it for my objections. I eagerly await your reference |
183 |
implementation, and your revised GLEP proposal based on this |
184 |
implementation. As the GLEP process states: |
185 |
|
186 |
The GLEP should be reviewed and accepted before a reference |
187 |
implementation is begun, unless a reference implementation will |
188 |
aid people in studying the GLEP. Standards Track GLEPs must |
189 |
include an implementation -- in the form of code, patch, or URL |
190 |
to same -- before it can be considered Final. |
191 |
|
192 |
For this GLEP, I propose that a reference implementation is necessary |
193 |
before we can properly study this GLEP and see if it is acceptable or |
194 |
not. |
195 |
|
196 |
Any objections? |
197 |
|
198 |
thanks, |
199 |
|
200 |
greg k-h |
201 |
|
202 |
-- |
203 |
gentoo-dev@g.o mailing list |