Merge remote-tracking branch 'origin/github/pr/45'
[grml.org.git] / grml-live / design.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
2     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
4 <head>\r
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
6 <meta name="generator" content="AsciiDoc 8.2.7" />\r
7 <style type="text/css">\r
8 /* Debug borders */\r
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
10 /*\r
11   border: 1px solid red;\r
12 */\r
13 }\r
14 \r
15 body {\r
16   margin: 1em 5% 1em 5%;\r
17 }\r
18 \r
19 a {\r
20   color: blue;\r
21   text-decoration: underline;\r
22 }\r
23 a:visited {\r
24   color: fuchsia;\r
25 }\r
26 \r
27 em {\r
28   font-style: italic;\r
29   color: navy;\r
30 }\r
31 \r
32 strong {\r
33   font-weight: bold;\r
34   color: #083194;\r
35 }\r
36 \r
37 tt {\r
38   color: navy;\r
39 }\r
40 \r
41 h1, h2, h3, h4, h5, h6 {\r
42   color: #527bbd;\r
43   font-family: sans-serif;\r
44   margin-top: 1.2em;\r
45   margin-bottom: 0.5em;\r
46   line-height: 1.3;\r
47 }\r
48 \r
49 h1, h2, h3 {\r
50   border-bottom: 2px solid silver;\r
51 }\r
52 h2 {\r
53   padding-top: 0.5em;\r
54 }\r
55 h3 {\r
56   float: left;\r
57 }\r
58 h3 + * {\r
59   clear: left;\r
60 }\r
61 \r
62 div.sectionbody {\r
63   font-family: serif;\r
64   margin-left: 0;\r
65 }\r
66 \r
67 hr {\r
68   border: 1px solid silver;\r
69 }\r
70 \r
71 p {\r
72   margin-top: 0.5em;\r
73   margin-bottom: 0.5em;\r
74 }\r
75 \r
76 ul, ol, li > p {\r
77   margin-top: 0;\r
78 }\r
79 \r
80 pre {\r
81   padding: 0;\r
82   margin: 0;\r
83 }\r
84 \r
85 span#author {\r
86   color: #527bbd;\r
87   font-family: sans-serif;\r
88   font-weight: bold;\r
89   font-size: 1.1em;\r
90 }\r
91 span#email {\r
92 }\r
93 span#revision {\r
94   font-family: sans-serif;\r
95 }\r
96 \r
97 div#footer {\r
98   font-family: sans-serif;\r
99   font-size: small;\r
100   border-top: 2px solid silver;\r
101   padding-top: 0.5em;\r
102   margin-top: 4.0em;\r
103 }\r
104 div#footer-text {\r
105   float: left;\r
106   padding-bottom: 0.5em;\r
107 }\r
108 div#footer-badges {\r
109   float: right;\r
110   padding-bottom: 0.5em;\r
111 }\r
112 \r
113 div#preamble,\r
114 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
115 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
116 div.admonitionblock {\r
117   margin-right: 10%;\r
118   margin-top: 1.5em;\r
119   margin-bottom: 1.5em;\r
120 }\r
121 div.admonitionblock {\r
122   margin-top: 2.5em;\r
123   margin-bottom: 2.5em;\r
124 }\r
125 \r
126 div.content { /* Block element content. */\r
127   padding: 0;\r
128 }\r
129 \r
130 /* Block element titles. */\r
131 div.title, caption.title {\r
132   color: #527bbd;\r
133   font-family: sans-serif;\r
134   font-weight: bold;\r
135   text-align: left;\r
136   margin-top: 1.0em;\r
137   margin-bottom: 0.5em;\r
138 }\r
139 div.title + * {\r
140   margin-top: 0;\r
141 }\r
142 \r
143 td div.title:first-child {\r
144   margin-top: 0.0em;\r
145 }\r
146 div.content div.title:first-child {\r
147   margin-top: 0.0em;\r
148 }\r
149 div.content + div.title {\r
150   margin-top: 0.0em;\r
151 }\r
152 \r
153 div.sidebarblock > div.content {\r
154   background: #ffffee;\r
155   border: 1px solid silver;\r
156   padding: 0.5em;\r
157 }\r
158 \r
159 div.listingblock {\r
160   margin-right: 0%;\r
161 }\r
162 div.listingblock > div.content {\r
163   border: 1px solid silver;\r
164   background: #f4f4f4;\r
165   padding: 0.5em;\r
166 }\r
167 \r
168 div.quoteblock {\r
169   padding-left: 2.0em;\r
170 }\r
171 div.quoteblock > div.attribution {\r
172   padding-top: 0.5em;\r
173   text-align: right;\r
174 }\r
175 \r
176 div.verseblock {\r
177   padding-left: 2.0em;\r
178 }\r
179 div.verseblock > div.content {\r
180   white-space: pre;\r
181 }\r
182 div.verseblock > div.attribution {\r
183   padding-top: 0.75em;\r
184   text-align: left;\r
185 }\r
186 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */\r
187 div.verseblock + div.attribution {\r
188   text-align: left;\r
189 }\r
190 \r
191 div.admonitionblock .icon {\r
192   vertical-align: top;\r
193   font-size: 1.1em;\r
194   font-weight: bold;\r
195   text-decoration: underline;\r
196   color: #527bbd;\r
197   padding-right: 0.5em;\r
198 }\r
199 div.admonitionblock td.content {\r
200   padding-left: 0.5em;\r
201   border-left: 2px solid silver;\r
202 }\r
203 \r
204 div.exampleblock > div.content {\r
205   border-left: 2px solid silver;\r
206   padding: 0.5em;\r
207 }\r
208 \r
209 div.imageblock div.content { padding-left: 0; }\r
210 div.imageblock img { border: 1px solid silver; }\r
211 span.image img { border-style: none; }\r
212 \r
213 dl {\r
214   margin-top: 0.8em;\r
215   margin-bottom: 0.8em;\r
216 }\r
217 dt {\r
218   margin-top: 0.5em;\r
219   margin-bottom: 0;\r
220   font-style: normal;\r
221 }\r
222 dd > *:first-child {\r
223   margin-top: 0.1em;\r
224 }\r
225 \r
226 ul, ol {\r
227     list-style-position: outside;\r
228 }\r
229 div.olist > ol {\r
230   list-style-type: decimal;\r
231 }\r
232 div.olist2 > ol {\r
233   list-style-type: lower-alpha;\r
234 }\r
235 \r
236 div.tableblock > table {\r
237   border: 3px solid #527bbd;\r
238 }\r
239 thead {\r
240   font-family: sans-serif;\r
241   font-weight: bold;\r
242 }\r
243 tfoot {\r
244   font-weight: bold;\r
245 }\r
246 \r
247 div.hlist {\r
248   margin-top: 0.8em;\r
249   margin-bottom: 0.8em;\r
250 }\r
251 div.hlist td {\r
252   padding-bottom: 15px;\r
253 }\r
254 td.hlist1 {\r
255   vertical-align: top;\r
256   font-style: normal;\r
257   padding-right: 0.8em;\r
258 }\r
259 td.hlist2 {\r
260   vertical-align: top;\r
261 }\r
262 \r
263 @media print {\r
264   div#footer-badges { display: none; }\r
265 }\r
266 \r
267 div#toctitle {\r
268   color: #527bbd;\r
269   font-family: sans-serif;\r
270   font-size: 1.1em;\r
271   font-weight: bold;\r
272   margin-top: 1.0em;\r
273   margin-bottom: 0.1em;\r
274 }\r
275 \r
276 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
277   margin-top: 0;\r
278   margin-bottom: 0;\r
279 }\r
280 div.toclevel2 {\r
281   margin-left: 2em;\r
282   font-size: 0.9em;\r
283 }\r
284 div.toclevel3 {\r
285   margin-left: 4em;\r
286   font-size: 0.9em;\r
287 }\r
288 div.toclevel4 {\r
289   margin-left: 6em;\r
290   font-size: 0.9em;\r
291 }\r
292 /* Workarounds for IE6's broken and incomplete CSS2. */\r
293 \r
294 div.sidebar-content {\r
295   background: #ffffee;\r
296   border: 1px solid silver;\r
297   padding: 0.5em;\r
298 }\r
299 div.sidebar-title, div.image-title {\r
300   color: #527bbd;\r
301   font-family: sans-serif;\r
302   font-weight: bold;\r
303   margin-top: 0.0em;\r
304   margin-bottom: 0.5em;\r
305 }\r
306 \r
307 div.listingblock div.content {\r
308   border: 1px solid silver;\r
309   background: #f4f4f4;\r
310   padding: 0.5em;\r
311 }\r
312 \r
313 div.quoteblock-attribution {\r
314   padding-top: 0.5em;\r
315   text-align: right;\r
316 }\r
317 \r
318 div.verseblock-content {\r
319   white-space: pre;\r
320 }\r
321 div.verseblock-attribution {\r
322   padding-top: 0.75em;\r
323   text-align: left;\r
324 }\r
325 \r
326 div.exampleblock-content {\r
327   border-left: 2px solid silver;\r
328   padding-left: 0.5em;\r
329 }\r
330 \r
331 /* IE6 sets dynamically generated links as visited. */\r
332 div#toc a:visited { color: blue; }\r
333 \r
334 /* Because IE6 child selector is broken. */\r
335 div.olist2 ol {\r
336   list-style-type: lower-alpha;\r
337 }\r
338 div.olist2 div.olist ol {\r
339   list-style-type: decimal;\r
340 }\r
341 </style>\r
342 <title>Redesign of grml-live(8)</title>\r
343 </head>\r
344 <body>\r
345 <div id="header">\r
346 <h1>Redesign of grml-live(8)</h1>\r
347 </div>\r
348 <h2 id="_name">Name</h2>\r
349 <div class="sectionbody">\r
350 <div class="para"><p>(Re-)Design of grml-live</p></div>\r
351 </div>\r
352 <h2 id="_synopsis">Synopsis</h2>\r
353 <div class="sectionbody">\r
354 <div class="para"><p>None.</p></div>\r
355 </div>\r
356 <h2 id="_description">Description</h2>\r
357 <div class="sectionbody">\r
358 <div class="para"><p>grml-live mainly executes the following main stages:</p></div>\r
359 <div class="ilist"><ul>\r
360 <li>\r
361 <p>\r
362 fai dirinstall: <a href="http://fai-project.org/">FAI</a> (Fully\r
363 Automatic Installation) does the chroot related work\r
364 </p>\r
365 </li>\r
366 <li>\r
367 <p>\r
368 mksquashfs: generate the compressed squashfs file which provides the chroot in\r
369 compressed format\r
370 </p>\r
371 </li>\r
372 <li>\r
373 <p>\r
374 mkisofs: generates the ISO itself, based on the output by mksquashfs and some\r
375 further bootmanger related stuff\r
376 </p>\r
377 </li>\r
378 </ul></div>\r
379 <div class="para"><p>This document describes the planned design for a re-implementation of\r
380 grml-live in Python.</p></div>\r
381 <div class="admonitionblock">\r
382 <table><tr>\r
383 <td class="icon">\r
384 <img src="./images/icons/note.png" alt="Note" />\r
385 </td>\r
386 <td class="content">This document is work in progress. Seriously.</td>\r
387 </tr></table>\r
388 </div>\r
389 </div>\r
390 <h2 id="_grml_live_interface">grml-live interface</h2>\r
391 <div class="sectionbody">\r
392 <div class="para"><p>The grml-live interface itself (no matter whether text based or a graphical\r
393 interface) uses the provided mechanisms by lib-grml-live.</p></div>\r
394 </div>\r
395 <h2 id="_lib_grml_live">lib-grml-live</h2>\r
396 <div class="sectionbody">\r
397 <div class="para"><p>Helper Functions:</p></div>\r
398 <div class="ilist"><ul>\r
399 <li>\r
400 <p>\r
401 log(): log into syslog, /var/log/grml-live.log\r
402 </p>\r
403 </li>\r
404 <li>\r
405 <p>\r
406 console_info(): display information on plain console\r
407 </p>\r
408 </li>\r
409 <li>\r
410 <p>\r
411 usage(): display usage information\r
412 </p>\r
413 </li>\r
414 </ul></div>\r
415 <div class="para"><p>Validation:</p></div>\r
416 <div class="ilist"><ul>\r
417 <li>\r
418 <p>\r
419 check_permissions(): check for id == 0\r
420 </p>\r
421 </li>\r
422 <li>\r
423 <p>\r
424 check_diskspace(): check for enough free space(?)\r
425 </p>\r
426 </li>\r
427 <li>\r
428 <p>\r
429 check_programms(): check for all the necessary tools\r
430 </p>\r
431 </li>\r
432 </ul></div>\r
433 <div class="para"><p>Configuration handling:</p></div>\r
434 <div class="ilist"><ul>\r
435 <li>\r
436 <p>\r
437 parse_config_files(mainconfig=/etc/grml/grml-live.conf, localconfig=/etc/grml/grml-live.local): read /etc/grml/grml-live.local and /etc/grml/grml-live.conf\r
438 </p>\r
439 </li>\r
440 <li>\r
441 <p>\r
442 cmdline_opts(): parse commandline, overrides configuration from parse_config()\r
443 </p>\r
444 </li>\r
445 <li>\r
446 <p>\r
447 update_config_files(): write active configuration to configuration files (like /etc/grml/fai/apt/sources.list)\r
448 </p>\r
449 </li>\r
450 </ul></div>\r
451 <div class="para"><p>Installation of files:</p></div>\r
452 <div class="ilist"><ul>\r
453 <li>\r
454 <p>\r
455 install_chroot(): execute <em>fai dirinstall</em>\r
456 </p>\r
457 </li>\r
458 <li>\r
459 <p>\r
460 install_bootmanager(): install bootmanager (grub and/or isolinux)\r
461 </p>\r
462 </li>\r
463 <li>\r
464 <p>\r
465 install_initrd(): install initrd from chroot into booting area\r
466 </p>\r
467 </li>\r
468 <li>\r
469 <p>\r
470 install_kernel(): install kernel from chroot into booting area\r
471 </p>\r
472 </li>\r
473 <li>\r
474 <p>\r
475 install_addons(): install addons into booting area\r
476 </p>\r
477 </li>\r
478 <li>\r
479 <p>\r
480 install_bootsplash(): install bootsplash (image)\r
481 </p>\r
482 </li>\r
483 <li>\r
484 <p>\r
485 install_bootmessages(): install bootmessages\r
486 </p>\r
487 </li>\r
488 <li>\r
489 <p>\r
490 install_windows_binaries(): install windows (related) binaries\r
491 </p>\r
492 </li>\r
493 </ul></div>\r
494 <div class="para"><p>Create ISO:</p></div>\r
495 <div class="ilist"><ul>\r
496 <li>\r
497 <p>\r
498 create_squashfs(): execute mksquashfs\r
499 </p>\r
500 </li>\r
501 <li>\r
502 <p>\r
503 create_md5sums(): create md5sums\r
504 </p>\r
505 </li>\r
506 <li>\r
507 <p>\r
508 create_iso(): execute mkisofs\r
509 </p>\r
510 </li>\r
511 </ul></div>\r
512 </div>\r
513 <div id="footer">\r
514 <div id="footer-text">\r
515 Last updated 2008-11-19 23:24:01 CEST\r
516 </div>\r
517 </div>\r
518 </body>\r
519 </html>\r