/[gentoo]/xml/htdocs/doc/en/handbook/hb-install-config.xml
Gentoo

Contents of /xml/htdocs/doc/en/handbook/hb-install-config.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.115 - (hide annotations) (download) (as text)
Sun Apr 29 16:52:20 2012 UTC (2 years, 5 months ago) by swift
Branch: MAIN
Changes since 1.114: +3 -15 lines
File MIME type: application/xml
Fix bug #406263 - Removing fstab references to /proc and /dev/shm, these are handled by openrc automatically

1 swift 1.18 <?xml version='1.0' encoding='UTF-8'?>
2     <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3    
4 swift 1.4 <!-- The content of this document is licensed under the CC-BY-SA license -->
5 fox2mike 1.68 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6 swift 1.4
7 swift 1.115 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-config.xml,v 1.114 2012/04/09 10:03:26 nightmorph Exp $ -->
8 swift 1.8
9 swift 1.2 <sections>
10 swift 1.50
11 neysx 1.86 <abstract>
12     You need to edit some important configuration files. In this chapter
13     you receive an overview of these files and an explanation on how to
14     proceed.
15     </abstract>
16    
17 swift 1.115 <version>21</version>
18     <date>2012-04-29</date>
19 swift 1.50
20 swift 1.1 <section>
21     <title>Filesystem Information</title>
22 swift 1.3 <subsection>
23     <title>What is fstab?</title>
24 swift 1.1 <body>
25    
26     <p>
27 swift 1.3 Under Linux, all partitions used by the system must be listed in
28 neysx 1.79 <path>/etc/fstab</path>. This file contains the mount points of those partitions
29 swift 1.3 (where they are seen in the file system structure), how they should be mounted
30 neysx 1.45 and with what special options (automatically or not, whether users can mount
31     them or not, etc.)
32 swift 1.1 </p>
33    
34     </body>
35 swift 1.3 </subsection>
36     <subsection>
37     <title>Creating /etc/fstab</title>
38     <body>
39    
40     <p>
41 swift 1.17 <path>/etc/fstab</path> uses a special syntax. Every line consists of six
42 swift 1.9 fields, separated by whitespace (space(s), tabs or a mixture). Each field has
43 swift 1.3 its own meaning:
44     </p>
45    
46     <ul>
47     <li>
48     The first field shows the <b>partition</b> described (the path to the device
49     file)
50     </li>
51     <li>
52 neysx 1.79 The second field shows the <b>mount point</b> at which the partition should be
53 swift 1.3 mounted
54     </li>
55     <li>
56     The third field shows the <b>filesystem</b> used by the partition
57     </li>
58     <li>
59 neysx 1.79 The fourth field shows the <b>mount options</b> used by <c>mount</c> when it
60     wants to mount the partition. As every filesystem has its own mount options,
61 swift 1.49 you are encouraged to read the mount man page (<c>man mount</c>) for a full
62 neysx 1.79 listing. Multiple mount options are comma-separated.
63 swift 1.3 </li>
64     <li>
65     The fifth field is used by <c>dump</c> to determine if the partition needs to
66     be <b>dump</b>ed or not. You can generally leave this as <c>0</c> (zero).
67     </li>
68     <li>
69 swift 1.17 The sixth field is used by <c>fsck</c> to determine the order in which
70     filesystems should be <b>check</b>ed if the system wasn't shut down properly.
71     The root filesystem should have <c>1</c> while the rest should have <c>2</c>
72 neysx 1.45 (or <c>0</c> if a filesystem check isn't necessary).
73 swift 1.3 </li>
74     </ul>
75    
76 neysx 1.79 <impo>
77 nightmorph 1.77 The default <path>/etc/fstab</path> file provided by Gentoo <e>is not a valid
78 nightmorph 1.90 fstab file</e>. You <b>have to create</b> your own <path>/etc/fstab</path>.
79 neysx 1.79 </impo>
80 swift 1.3
81     <pre caption="Opening /etc/fstab">
82     # <i>nano -w /etc/fstab</i>
83     </pre>
84    
85 neysx 1.79 </body>
86     <body test="func:keyval('/boot')">
87    
88 swift 1.3 <p>
89 swift 1.17 Let us take a look at how we write down the options for the <path>/boot</path>
90 neysx 1.79 partition. This is just an example, if you didn't or couldn't create a
91     <path>/boot</path>, don't copy it.
92 swift 1.3 </p>
93    
94 nightmorph 1.99 <p>
95 neysx 1.79 In our default <keyval id="arch"/> partitioning example, <path>/boot</path> is
96     usually the <path><keyval id="/boot"/></path> partition, with <c>ext2</c> as
97     filesystem. It needs to be checked during boot, so we would write down:
98 swift 1.3 </p>
99    
100     <pre caption="An example /boot line for /etc/fstab">
101 neysx 1.79 <keyval id="/boot"/> /boot ext2 defaults 1 2
102 swift 1.3 </pre>
103    
104     <p>
105 swift 1.35 Some users don't want their <path>/boot</path> partition to be mounted
106 swift 1.43 automatically to improve their system's security. Those people should
107     substitute <c>defaults</c> with <c>noauto</c>. This does mean that you need to
108     manually mount this partition every time you want to use it.
109 swift 1.35 </p>
110    
111 neysx 1.79 </body>
112     <body>
113    
114 nightmorph 1.99 <p>
115 neysx 1.79 Add the rules that match your partitioning scheme and append rules for
116 swift 1.95 your CD-ROM drive(s), and of course, if you have other partitions or drives,
117     for those too.
118 neysx 1.79 </p>
119    
120 swift 1.35 <p>
121 neysx 1.79 Now use the <e>example</e> below to create your <path>/etc/fstab</path>:
122 swift 1.3 </p>
123    
124 neysx 1.79 <pre caption="A full /etc/fstab example" test="func:keyval('arch')='HPPA'">
125     <keyval id="/boot"/> /boot ext2 defaults,noatime 1 2
126     /dev/sda3 none swap sw 0 0
127     /dev/sda4 / ext3 noatime 0 1
128    
129     /dev/cdrom /mnt/cdrom auto noauto,user 0 0
130     </pre>
131    
132 nightmorph 1.99 <pre caption="A full /etc/fstab example" test="func:keyval('arch')='Alpha' or func:keyval('arch')='MIPS' or func:keyval('arch')='x86' or func:keyval('arch')='AMD64'">
133 neysx 1.79 <keyval id="/boot"/> /boot ext2 defaults,noatime 1 2
134     /dev/sda2 none swap sw 0 0
135     /dev/sda3 / ext3 noatime 0 1
136    
137     /dev/cdrom /mnt/cdrom auto noauto,user 0 0
138     </pre>
139    
140     <pre caption="A full /etc/fstab example" test="func:keyval('arch')='SPARC'">
141     /dev/sda1 / ext3 noatime 0 1
142     /dev/sda2 none swap sw 0 0
143     /dev/sda4 /usr ext3 noatime 0 2
144     /dev/sda5 /var ext3 noatime 0 2
145     /dev/sda6 /home ext3 noatime 0 2
146    
147 nightmorph 1.99 <comment># You must add the rules for openprom</comment>
148 neysx 1.87 openprom /proc/openprom openpromfs defaults 0 0
149 swift 1.3
150 neysx 1.79 /dev/cdrom /mnt/cdrom auto noauto,user 0 0
151 swift 1.3 </pre>
152    
153 nightmorph 1.99 <pre caption="A full /etc/fstab example" test="func:keyval('arch')='PPC' or
154     func:keyval('arch')='PPC64'">
155 neysx 1.79 /dev/sda4 / ext3 noatime 0 1
156     /dev/sda3 none swap sw 0 0
157 swift 1.3
158 neysx 1.79 /dev/cdrom /mnt/cdrom auto noauto,user 0 0
159 swift 1.3 </pre>
160    
161     <p>
162     <c>auto</c> makes <c>mount</c> guess for the filesystem (recommended for
163     removable media as they can be created with one of many filesystems) and
164     <c>user</c> makes it possible for non-root users to mount the CD.
165     </p>
166    
167     <p>
168 neysx 1.79 To improve performance, most users would want to add the <c>noatime</c>
169     mount option, which results in a faster system since access times
170     aren't registered (you don't need those generally anyway).
171 swift 1.3 </p>
172    
173 swift 1.5 <p>
174 neysx 1.34 Double-check your <path>/etc/fstab</path>, save and quit to continue.
175 swift 1.3 </p>
176    
177     </body>
178     </subsection>
179 swift 1.2 </section>
180     <section>
181 swift 1.1 <title>Networking Information</title>
182 swift 1.3 <subsection>
183 nightmorph 1.84 <title>Host name, Domainname, etc</title>
184 swift 1.3 <body>
185    
186     <p>
187 swift 1.33 One of the choices the user has to make is name his/her PC. This seems to be
188     quite easy, but <e>lots</e> of users are having difficulties finding the
189     appropriate name for their Linux-pc. To speed things up, know that any name you
190     choose can be changed afterwards. For all we care, you can just call your system
191 swift 1.3 <c>tux</c> and domain <c>homenetwork</c>.
192     </p>
193    
194 neysx 1.79 <pre caption="Setting the host name">
195 swift 1.66 # <i>nano -w /etc/conf.d/hostname</i>
196    
197 jkt 1.104 <comment>(Set the hostname variable to your host name)</comment>
198     hostname="<i>tux</i>"
199 swift 1.3 </pre>
200    
201 nightmorph 1.84 <p>
202 nightmorph 1.89 Second, <e>if</e> you need a domainname, set it in <path>/etc/conf.d/net</path>.
203     You only need a domain if your ISP or network administrator says so, or if you
204     have a DNS server but not a DHCP server. You don't need to worry about DNS or
205     domainnames if your networking is setup for DHCP.
206 nightmorph 1.84 </p>
207    
208     <pre caption="Setting the domainname">
209     # <i>nano -w /etc/conf.d/net</i>
210    
211     <comment>(Set the dns_domain variable to your domain name)</comment>
212     dns_domain_lo="<i>homenetwork</i>"
213     </pre>
214    
215 nightmorph 1.89 <note>
216     If you choose not to set a domainname, you can get rid of the "This is
217     hostname.(none)" messages at your login screen by editing
218     <path>/etc/issue</path>. Just delete the string <c>.\O</c> from that file.
219     </note>
220    
221 nightmorph 1.84 <p>
222     If you have a NIS domain (if you don't know what that is, then you don't have
223     one), you need to define that one too:
224     </p>
225    
226     <pre caption="Setting the NIS domainname">
227     # <i>nano -w /etc/conf.d/net</i>
228    
229     <comment>(Set the nis_domain variable to your NIS domain name)</comment>
230     nis_domain_lo="<i>my-nisdomain</i>"
231     </pre>
232    
233 nightmorph 1.85 <note>
234     For more information on configuring DNS and NIS, please read the examples
235 swift 1.108 provided in <path>/usr/share/doc/openrc-*/net.example.bz2</path> which
236     can be read using <c>bzless</c>. Also, you may want to emerge <c>openresolv</c>
237     to help manage your DNS/NIS setup.
238 nightmorph 1.85 </note>
239    
240 swift 1.3 </body>
241     </subsection>
242     <subsection>
243     <title>Configuring your Network</title>
244     <body>
245    
246     <p>
247     Before you get that "Hey, we've had that already"-feeling, you should remember
248 fox2mike 1.67 that the networking you set up in the beginning of the Gentoo installation was
249 swift 1.3 just for the installation. Right now you are going to configure networking for
250     your Gentoo system permanently.
251     </p>
252    
253 fox2mike 1.65 <note>
254     More detailed information about networking, including advanced topics like
255 swift 1.72 bonding, bridging, 802.1Q VLANs or wireless networking is covered in the <uri
256 fox2mike 1.65 link="?part=4">Gentoo Network Configuration</uri> section.
257     </note>
258    
259 swift 1.3 <p>
260     All networking information is gathered in <path>/etc/conf.d/net</path>. It uses
261 swift 1.48 a straightforward yet not intuitive syntax if you don't know how to set up
262 neysx 1.69 networking manually. But don't fear, we'll explain everything. A fully
263     commented example that covers many different configurations is available in
264 swift 1.108 <path>/usr/share/doc/openrc-*/net.example.bz2</path>.
265 swift 1.3 </p>
266    
267     <p>
268 neysx 1.83 DHCP is used by default. For DHCP to work, you will need to install a DHCP
269     client. This is described later in <uri
270     link="?part=1&amp;chap=9#networking-tools">Installing Necessary System
271     Tools</uri>. Do not forget to install a DHCP client.
272 neysx 1.69 </p>
273    
274     <p>
275     If you need to configure your network connection either because you need
276     specific DHCP options or because you do not use DHCP at all, open
277     <path>/etc/conf.d/net</path> with your favorite editor (<c>nano</c> is used in
278     this example):
279 swift 1.3 </p>
280    
281     <pre caption="Opening /etc/conf.d/net for editing">
282     # <i>nano -w /etc/conf.d/net</i>
283     </pre>
284    
285 swift 1.58 <p>
286 neysx 1.69 You will see the following file:
287 swift 1.58 </p>
288    
289 neysx 1.69 <pre caption="Default /etc/conf.d/net">
290     # This blank configuration will automatically use DHCP for any net.*
291     # scripts in /etc/init.d. To create a more complete configuration,
292 swift 1.108 # please review /usr/share/doc/openrc-*/net.example.bz2 and save
293     # your configuration in /etc/conf.d/net (this file :]!).
294 swift 1.58 </pre>
295    
296     <p>
297 neysx 1.69 To enter your own IP address, netmask and gateway, you need
298 swift 1.58 to set both <c>config_eth0</c> and <c>routes_eth0</c>:
299     </p>
300    
301     <pre caption="Manually setting IP information for eth0">
302 jkt 1.104 config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
303     routes_eth0="default via 192.168.0.1"
304 swift 1.58 </pre>
305    
306     <p>
307 nightmorph 1.100 To use DHCP, define <c>config_eth0</c>:
308 neysx 1.69 </p>
309    
310     <pre caption="Automatically obtaining an IP address for eth0">
311 jkt 1.104 config_eth0="dhcp"
312 neysx 1.69 </pre>
313    
314     <p>
315 swift 1.108 Please read <path>/usr/share/doc/openrc-*/net.example.bz2</path> for a
316     list of all available options. Be sure to also read your DHCP client manpage if
317     you need to set specific DHCP options.
318 neysx 1.69 </p>
319    
320     <p>
321 swift 1.58 If you have several network interfaces repeat the above steps for
322     <c>config_eth1</c>, <c>config_eth2</c>, etc.
323     </p>
324    
325 swift 1.3 <p>
326     Now save the configuration and exit to continue.
327     </p>
328    
329     </body>
330     </subsection>
331     <subsection>
332     <title>Automatically Start Networking at Boot</title>
333 swift 1.1 <body>
334    
335     <p>
336 neysx 1.45 To have your network interfaces activated at boot, you need to add them to the
337 nightmorph 1.90 default runlevel.
338 swift 1.3 </p>
339    
340     <pre caption="Adding net.eth0 to the default runlevel">
341 jkt 1.103 # <i>cd /etc/init.d</i>
342     # <i>ln -s net.lo net.eth0</i>
343 swift 1.3 # <i>rc-update add net.eth0 default</i>
344     </pre>
345    
346     <p>
347     If you have several network interfaces, you need to create the appropriate
348 jkt 1.103 <path>net.eth1</path>, <path>net.eth2</path> etc. just like you did with
349     <path>net.eth0</path>.
350 swift 1.1 </p>
351    
352     </body>
353 swift 1.3 </subsection>
354     <subsection>
355     <title>Writing Down Network Information</title>
356     <body>
357    
358     <p>
359     You now need to inform Linux about your network. This is defined in
360 neysx 1.79 <path>/etc/hosts</path> and helps in resolving host names to IP addresses for
361 neysx 1.78 hosts that aren't resolved by your nameserver. You need to define your system.
362     You may also want to define other systems on your network if you don't want to
363     set up your own internal DNS system.
364 swift 1.3 </p>
365    
366     <pre caption="Opening /etc/hosts">
367     # <i>nano -w /etc/hosts</i>
368     </pre>
369    
370     <pre caption="Filling in the networking information">
371 neysx 1.78 <comment>(This defines the current system)</comment>
372     127.0.0.1 tux.homenetwork tux localhost
373    
374     <comment>(Define extra systems on your network,
375     they need to have a static IP to be defined this way.)</comment>
376 swift 1.22 192.168.0.5 jenny.homenetwork jenny
377     192.168.0.6 benny.homenetwork benny
378 swift 1.3 </pre>
379    
380     <p>
381     Save and exit the editor to continue.
382     </p>
383    
384 neysx 1.79 <p test="func:keyval('arch')='AMD64' or func:keyval('arch')='x86' or substring(func:keyval('arch'),1,3)='PPC'">
385 swift 1.3 If you don't have PCMCIA, you can now continue with <uri
386 neysx 1.79 link="#sysinfo">System Information</uri>. PCMCIA-users should read the
387 swift 1.3 following topic on PCMCIA.
388     </p>
389    
390     </body>
391     </subsection>
392 neysx 1.79 <subsection test="func:keyval('arch')='AMD64' or func:keyval('arch')='x86' or substring(func:keyval('arch'),1,3)='PPC'">
393 swift 1.3 <title>Optional: Get PCMCIA Working</title>
394     <body>
395    
396     <p>
397 nightmorph 1.90 PCMCIA users should first install the <c>pcmciautils</c> package.
398 swift 1.3 </p>
399    
400 nightmorph 1.90 <pre caption="Installing pcmciautils">
401     # <i>emerge pcmciautils</i>
402 swift 1.3 </pre>
403    
404     </body>
405     </subsection>
406 swift 1.2 </section>
407 neysx 1.79
408     <section id="sysinfo">
409 swift 1.1 <title>System Information</title>
410 swift 1.41 <subsection>
411     <title>Root Password</title>
412     <body>
413    
414     <p>
415     First we set the root password by typing:
416     </p>
417    
418     <pre caption="Setting the root password">
419     # <i>passwd</i>
420     </pre>
421    
422     </body>
423     </subsection>
424     <subsection>
425     <title>System Information</title>
426 swift 1.1 <body>
427    
428     <p>
429 swift 1.111 Gentoo uses <path>/etc/rc.conf</path> to configure the services, startup,
430     and shutdown of your system. Open up <path>/etc/rc.conf</path> and enjoy all
431     the comments in the file.
432 swift 1.3 </p>
433    
434 nightmorph 1.110 <pre caption="Configuring services">
435 swift 1.3 # <i>nano -w /etc/rc.conf</i>
436     </pre>
437    
438     <p>
439 nightmorph 1.110 When you're finished configuring these two files, save them and exit.
440 fox2mike 1.67 </p>
441    
442     <p>
443     Gentoo uses <path>/etc/conf.d/keymaps</path> to handle keyboard configuration.
444     Edit it to configure your keyboard.
445     </p>
446    
447     <pre caption="Opening /etc/conf.d/keymaps">
448     # <i>nano -w /etc/conf.d/keymaps</i>
449     </pre>
450    
451     <p>
452 swift 1.105 Take special care with the <c>keymap</c> variable. If you select the wrong
453     <c>keymap</c>, you will get weird results when typing on your keyboard.
454 swift 1.16 </p>
455    
456 neysx 1.79 <note test="substring(func:keyval('arch'),1,3)='PPC'">
457 nightmorph 1.101 PPC uses x86 keymaps on most systems.
458 swift 1.16 </note>
459    
460     <p>
461 fox2mike 1.67 When you're finished configuring <path>/etc/conf.d/keymaps</path>, save and
462     exit.
463     </p>
464    
465     <p>
466 swift 1.105 Gentoo uses <path>/etc/conf.d/hwclock</path> to set clock options. Edit it
467 fox2mike 1.67 according to your needs.
468 swift 1.29 </p>
469    
470 swift 1.105 <pre caption="Opening /etc/conf.d/hwclock">
471     # <i>nano -w /etc/conf.d/hwclock</i>
472 fox2mike 1.67 </pre>
473    
474 swift 1.29 <p>
475 swift 1.107 If your hardware clock is not using UTC, you need to add <c>clock="local"</c>
476 nightmorph 1.82 to the file. Otherwise you will notice some clock skew.
477 swift 1.61 </p>
478    
479     <p>
480 swift 1.107 When you're finished configuring <path>/etc/conf.d/hwclock</path>, save and
481     exit.
482 nightmorph 1.93 </p>
483    
484     <p>
485 swift 1.107 You should define the timezone that you previously copied to
486     <path>/etc/localtime</path> in the <path>/etc/timezone</path> file so that
487     further upgrades of the <c>sys-libs/timezone-data</c> package can update
488 swift 1.109 <path>/etc/localtime</path> automatically. For instance, if you used the
489     Europe/Brussels timezone, you would write <c>Europe/Brussels</c> in the
490     <path>/etc/timezone</path> file.
491 swift 1.59 </p>
492    
493 cam 1.112 </body>
494     </subsection>
495    
496     <subsection>
497     <title>Configure locales</title>
498     <body>
499    
500     <p>
501     You will probably only use one or maybe two locales on your system. You have to
502     specify locales you will need in <path>/etc/locale.gen</path>.
503     </p>
504    
505     <pre caption="Opening /etc/locale.gen">
506     # <i>nano -w /etc/locale.gen</i>
507     </pre>
508    
509     <p>
510     The following locales are an example to get both English (United States) and
511     German (Germany) with the accompanying character formats (like UTF-8).
512     </p>
513    
514     <pre caption="Specify your locales">
515     en_US ISO-8859-1
516     en_US.UTF-8 UTF-8
517     de_DE ISO-8859-1
518     de_DE@euro ISO-8859-15
519     </pre>
520    
521     <note>
522     You can select your desired locales in the list given by running <c>locale -a</c>.
523     </note>
524    
525 cam 1.113 <warn>
526     We strongly suggest that you should use at least one UTF-8 locale because some
527 nightmorph 1.114 applications may require it.
528 cam 1.113 </warn>
529    
530 cam 1.112 <p>
531     The next step is to run <c>locale-gen</c>. It will generates all the locales you
532     have specified in the <path>/etc/locale.gen</path> file.
533     </p>
534    
535     <pre caption="Running locale-gen">
536     # <i>locale-gen</i>
537     </pre>
538    
539     <p>
540     Once done, you now have the possibility to set the system-wide locale settings
541     in the <path>/etc/env.d/02locale</path> file:
542     </p>
543    
544     <pre caption="Setting the default system locale in /etc/env.d/02locale">
545     LANG="de_DE.UTF-8"
546     LC_COLLATE="C"
547     </pre>
548    
549     <p>
550     And reload your environment:
551     </p>
552    
553     <pre caption="Reload shell environment">
554     # env-update &amp;&amp; source /etc/profile
555     </pre>
556    
557     <p>
558     We made a full <uri link="../guide-localization.xml#doc_chap3">Localization
559     Guide</uri> to help you through this process. You can also read our detailed
560     <uri link="../utf-8.xml#doc_chap2">UTF-8 Guide</uri> for very specific
561     informations to enable UTF-8 on your system.
562     </p>
563    
564 neysx 1.79 <p test="not(func:keyval('arch')='PPC64')">
565     Please continue with <uri link="?part=1&amp;chap=9">Installing Necessary System
566     Tools</uri>.
567 swift 1.59 </p>
568    
569     </body>
570     </subsection>
571 neysx 1.79 <subsection test="func:keyval('arch')='PPC64'">
572 swift 1.59 <title>Configuring the Console</title>
573     <body>
574    
575     <p>
576 neysx 1.79 If you are using a virtual console, you must uncomment the appropriate line in
577     <path>/etc/inittab</path> for the virtual console to spawn a login prompt.
578 swift 1.59 </p>
579    
580 swift 1.70 <pre caption="Enabling hvc or hvsi support in /etc/inittab">
581     hvc0:12345:respawn:/sbin/agetty -L 9600 hvc0
582     hvsi:12345:respawn:/sbin/agetty -L 19200 hvsi0
583 swift 1.59 </pre>
584    
585     <p>
586 swift 1.70 You should also take this time to verify that the appropriate console is
587 jkt 1.71 listed in <path>/etc/securetty</path>.
588 swift 1.70 </p>
589    
590     <p>
591 swift 1.59 You may now continue with <uri link="?part=1&amp;chap=9">Installing Necessary
592     System Tools</uri>.
593 swift 1.1 </p>
594    
595     </body>
596 swift 1.41 </subsection>
597 swift 1.1 </section>
598 swift 1.2 </sections>

  ViewVC Help
Powered by ViewVC 1.1.20