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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.88 Revision 1.111
2<!DOCTYPE sections SYSTEM "/dtd/book.dtd"> 2<!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3 3
4<!-- The content of this document is licensed under the CC-BY-SA license --> 4<!-- The content of this document is licensed under the CC-BY-SA license -->
5<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> 5<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6 6
7<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-config.xml,v 1.88 2006/11/28 07:40:38 nightmorph Exp $ --> 7<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-config.xml,v 1.111 2012/04/06 12:09:19 swift Exp $ -->
8 8
9<sections> 9<sections>
10 10
11<abstract> 11<abstract>
12You need to edit some important configuration files. In this chapter 12You need to edit some important configuration files. In this chapter
13you receive an overview of these files and an explanation on how to 13you receive an overview of these files and an explanation on how to
14proceed. 14proceed.
15</abstract> 15</abstract>
16 16
17<version>7.6</version> 17<version>18</version>
18<date>2006-11-27</date> 18<date>2012-04-06</date>
19 19
20<section> 20<section>
21<title>Filesystem Information</title> 21<title>Filesystem Information</title>
22<subsection> 22<subsection>
23<title>What is fstab?</title> 23<title>What is fstab?</title>
73</li> 73</li>
74</ul> 74</ul>
75 75
76<impo> 76<impo>
77The default <path>/etc/fstab</path> file provided by Gentoo <e>is not a valid 77The default <path>/etc/fstab</path> file provided by Gentoo <e>is not a valid
78fstab file</e>, You <b>have to create</b> your own <path>/etc/fstab</path>. 78fstab file</e>. You <b>have to create</b> your own <path>/etc/fstab</path>.
79</impo> 79</impo>
80 80
81<pre caption="Opening /etc/fstab"> 81<pre caption="Opening /etc/fstab">
82# <i>nano -w /etc/fstab</i> 82# <i>nano -w /etc/fstab</i>
83</pre> 83</pre>
89Let us take a look at how we write down the options for the <path>/boot</path> 89Let us take a look at how we write down the options for the <path>/boot</path>
90partition. This is just an example, if you didn't or couldn't create a 90partition. This is just an example, if you didn't or couldn't create a
91<path>/boot</path>, don't copy it. 91<path>/boot</path>, don't copy it.
92</p> 92</p>
93 93
94<p test="contains(func:keyval('/boot'), '/dev/hd')">
95In our default <keyval id="arch"/> partitioning example, <path>/boot</path> is
96usually the <path><keyval id="/boot"/></path> partition (or
97<path>/dev/sda*</path> if you use SCSI or SATA drives), with <c>ext2</c> as
98filesystem. It needs to be checked during boot, so we would write down:
99</p> 94<p>
100
101<p test="contains(func:keyval('/boot'), '/dev/sd')">
102In our default <keyval id="arch"/> partitioning example, <path>/boot</path> is 95In our default <keyval id="arch"/> partitioning example, <path>/boot</path> is
103usually the <path><keyval id="/boot"/></path> partition, with <c>ext2</c> as 96usually the <path><keyval id="/boot"/></path> partition, with <c>ext2</c> as
104filesystem. It needs to be checked during boot, so we would write down: 97filesystem. It needs to be checked during boot, so we would write down:
105</p> 98</p>
106 99
116</p> 109</p>
117 110
118</body> 111</body>
119<body> 112<body>
120 113
121<p test="not(func:keyval('arch')='SPARC')"> 114<p>
122Add the rules that match your partitioning scheme and append rules for 115Add the rules that match your partitioning scheme and append rules for
123<path>/proc</path>, <c>tmpfs</c>, for your CD-ROM drive(s), and of course, if
124you have other partitions or drives, for those too.
125</p>
126
127<p test="func:keyval('arch')='SPARC'">
128Add the rules that match your partitioning schema and append rules for
129<path>/proc/openprom</path>, <path>/proc</path>, <c>tmpfs</c> , for your CD-ROM
130drive(s), and of course, if you have other partitions or drives, for those too. 116your CD-ROM drive(s), and of course, if you have other partitions or drives,
117for those too.
131</p> 118</p>
132 119
133<p> 120<p>
134Now use the <e>example</e> below to create your <path>/etc/fstab</path>: 121Now use the <e>example</e> below to create your <path>/etc/fstab</path>:
135</p> 122</p>
136
137<pre caption="A full /etc/fstab example" test="func:keyval('arch')='AMD64' or func:keyval('arch')='x86'">
138<keyval id="/boot"/> /boot ext2 defaults,noatime 1 2
139/dev/hda2 none swap sw 0 0
140/dev/hda3 / ext3 noatime 0 1
141
142proc /proc proc defaults 0 0
143shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
144
145/dev/cdrom /mnt/cdrom auto noauto,user 0 0
146</pre>
147 123
148<pre caption="A full /etc/fstab example" test="func:keyval('arch')='HPPA'"> 124<pre caption="A full /etc/fstab example" test="func:keyval('arch')='HPPA'">
149<keyval id="/boot"/> /boot ext2 defaults,noatime 1 2 125<keyval id="/boot"/> /boot ext2 defaults,noatime 1 2
150/dev/sda3 none swap sw 0 0 126/dev/sda3 none swap sw 0 0
151/dev/sda4 / ext3 noatime 0 1 127/dev/sda4 / ext3 noatime 0 1
152 128
129/dev/cdrom /mnt/cdrom auto noauto,user 0 0
130
153proc /proc proc defaults 0 0 131proc /proc proc defaults 0 0
154shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 132shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
155
156/dev/cdrom /mnt/cdrom auto noauto,user 0 0
157</pre> 133</pre>
158 134
159<pre caption="A full /etc/fstab example" test="func:keyval('arch')='Alpha' or func:keyval('arch')='MIPS'"> 135<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'">
160<keyval id="/boot"/> /boot ext2 defaults,noatime 1 2 136<keyval id="/boot"/> /boot ext2 defaults,noatime 1 2
161/dev/sda2 none swap sw 0 0 137/dev/sda2 none swap sw 0 0
162/dev/sda3 / ext3 noatime 0 1 138/dev/sda3 / ext3 noatime 0 1
163 139
140/dev/cdrom /mnt/cdrom auto noauto,user 0 0
141
164proc /proc proc defaults 0 0 142proc /proc proc defaults 0 0
165shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 143shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
166
167/dev/cdrom /mnt/cdrom auto noauto,user 0 0
168</pre> 144</pre>
169 145
170<pre caption="A full /etc/fstab example" test="func:keyval('arch')='SPARC'"> 146<pre caption="A full /etc/fstab example" test="func:keyval('arch')='SPARC'">
171/dev/sda1 / ext3 noatime 0 1 147/dev/sda1 / ext3 noatime 0 1
172/dev/sda2 none swap sw 0 0 148/dev/sda2 none swap sw 0 0
173/dev/sda4 /usr ext3 noatime 0 2 149/dev/sda4 /usr ext3 noatime 0 2
174/dev/sda5 /var ext3 noatime 0 2 150/dev/sda5 /var ext3 noatime 0 2
175/dev/sda6 /home ext3 noatime 0 2 151/dev/sda6 /home ext3 noatime 0 2
176 152
153<comment># You must add the rules for openprom</comment>
177openprom /proc/openprom openpromfs defaults 0 0 154openprom /proc/openprom openpromfs defaults 0 0
178proc /proc proc defaults 0 0
179shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
180 155
181/dev/cdrom /mnt/cdrom auto noauto,user 0 0 156/dev/cdrom /mnt/cdrom auto noauto,user 0 0
182</pre>
183
184<note test="func:keyval('arch')='PPC'">
185There are important variations between PPC machine types. Please make sure you
186adapt the following example to your system.
187</note>
188
189<pre caption="A full /etc/fstab example" test="func:keyval('arch')='PPC'">
190/dev/hda4 / ext3 noatime 0 1
191/dev/hda3 none swap sw 0 0
192 157
193proc /proc proc defaults 0 0 158proc /proc proc defaults 0 0
194shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 159shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
195
196/dev/cdrom /mnt/cdrom auto noauto,user 0 0
197</pre> 160</pre>
198 161
199<pre caption="A full /etc/fstab example" test="func:keyval('arch')='PPC64'"> 162<pre caption="A full /etc/fstab example" test="func:keyval('arch')='PPC' or
163func:keyval('arch')='PPC64'">
200/dev/sda4 / ext3 noatime 0 1 164/dev/sda4 / ext3 noatime 0 1
201/dev/sda3 none swap sw 0 0 165/dev/sda3 none swap sw 0 0
202 166
167/dev/cdrom /mnt/cdrom auto noauto,user 0 0
168
203proc /proc proc defaults 0 0 169proc /proc proc defaults 0 0
204shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 170shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
205
206/dev/cdrom /mnt/cdrom auto noauto,user 0 0
207</pre> 171</pre>
208 172
209<p> 173<p>
210<c>auto</c> makes <c>mount</c> guess for the filesystem (recommended for 174<c>auto</c> makes <c>mount</c> guess for the filesystem (recommended for
211removable media as they can be created with one of many filesystems) and 175removable media as they can be created with one of many filesystems) and
240</p> 204</p>
241 205
242<pre caption="Setting the host name"> 206<pre caption="Setting the host name">
243# <i>nano -w /etc/conf.d/hostname</i> 207# <i>nano -w /etc/conf.d/hostname</i>
244 208
245<comment>(Set the HOSTNAME variable to your host name)</comment> 209<comment>(Set the hostname variable to your host name)</comment>
246HOSTNAME="<i>tux</i>" 210hostname="<i>tux</i>"
247</pre> 211</pre>
248 212
249<p> 213<p>
250Second we set the domainname in <path>/etc/conf.d/net</path>: 214Second, <e>if</e> you need a domainname, set it in <path>/etc/conf.d/net</path>.
215You only need a domain if your ISP or network administrator says so, or if you
216have a DNS server but not a DHCP server. You don't need to worry about DNS or
217domainnames if your networking is setup for DHCP.
251</p> 218</p>
252 219
253<pre caption="Setting the domainname"> 220<pre caption="Setting the domainname">
254# <i>nano -w /etc/conf.d/net</i> 221# <i>nano -w /etc/conf.d/net</i>
255 222
256<comment>(Set the dns_domain variable to your domain name)</comment> 223<comment>(Set the dns_domain variable to your domain name)</comment>
257dns_domain_lo="<i>homenetwork</i>" 224dns_domain_lo="<i>homenetwork</i>"
258</pre> 225</pre>
259 226
227<note>
228If you choose not to set a domainname, you can get rid of the "This is
229hostname.(none)" messages at your login screen by editing
230<path>/etc/issue</path>. Just delete the string <c>.\O</c> from that file.
231</note>
232
260<p> 233<p>
261If you have a NIS domain (if you don't know what that is, then you don't have 234If you have a NIS domain (if you don't know what that is, then you don't have
262one), you need to define that one too: 235one), you need to define that one too:
263</p> 236</p>
264 237
269nis_domain_lo="<i>my-nisdomain</i>" 242nis_domain_lo="<i>my-nisdomain</i>"
270</pre> 243</pre>
271 244
272<note> 245<note>
273For more information on configuring DNS and NIS, please read the examples 246For more information on configuring DNS and NIS, please read the examples
274provided in <path>/etc/conf.d/net.example</path>. Also, you may want to emerge 247provided in <path>/usr/share/doc/openrc-*/net.example.bz2</path> which
275<c>resolvconf-gentoo</c> to help manage your DNS/NIS setup. 248can be read using <c>bzless</c>. Also, you may want to emerge <c>openresolv</c>
249to help manage your DNS/NIS setup.
276</note> 250</note>
277 251
278</body> 252</body>
279</subsection> 253</subsection>
280<subsection> 254<subsection>
297<p> 271<p>
298All networking information is gathered in <path>/etc/conf.d/net</path>. It uses 272All networking information is gathered in <path>/etc/conf.d/net</path>. It uses
299a straightforward yet not intuitive syntax if you don't know how to set up 273a straightforward yet not intuitive syntax if you don't know how to set up
300networking manually. But don't fear, we'll explain everything. A fully 274networking manually. But don't fear, we'll explain everything. A fully
301commented example that covers many different configurations is available in 275commented example that covers many different configurations is available in
302<path>/etc/conf.d/net.example</path>. 276<path>/usr/share/doc/openrc-*/net.example.bz2</path>.
303</p> 277</p>
304 278
305<p> 279<p>
306DHCP is used by default. For DHCP to work, you will need to install a DHCP 280DHCP is used by default. For DHCP to work, you will need to install a DHCP
307client. This is described later in <uri 281client. This is described later in <uri
325</p> 299</p>
326 300
327<pre caption="Default /etc/conf.d/net"> 301<pre caption="Default /etc/conf.d/net">
328# This blank configuration will automatically use DHCP for any net.* 302# This blank configuration will automatically use DHCP for any net.*
329# scripts in /etc/init.d. To create a more complete configuration, 303# scripts in /etc/init.d. To create a more complete configuration,
330# please review /etc/conf.d/net.example and save your configuration 304# please review /usr/share/doc/openrc-*/net.example.bz2 and save
331# in /etc/conf.d/net (this file :]!). 305# your configuration in /etc/conf.d/net (this file :]!).
332</pre> 306</pre>
333 307
334<p> 308<p>
335To enter your own IP address, netmask and gateway, you need 309To enter your own IP address, netmask and gateway, you need
336to set both <c>config_eth0</c> and <c>routes_eth0</c>: 310to set both <c>config_eth0</c> and <c>routes_eth0</c>:
337</p> 311</p>
338 312
339<pre caption="Manually setting IP information for eth0"> 313<pre caption="Manually setting IP information for eth0">
340config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" ) 314config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
341routes_eth0=( "default gw 192.168.0.1" ) 315routes_eth0="default via 192.168.0.1"
342</pre> 316</pre>
343 317
344<p> 318<p>
345To use DHCP and add specific DHCP options, define <c>config_eth0</c> and 319To use DHCP, define <c>config_eth0</c>:
346<c>dhcp_eth0</c>:
347</p> 320</p>
348 321
349<pre caption="Automatically obtaining an IP address for eth0"> 322<pre caption="Automatically obtaining an IP address for eth0">
350config_eth0=( "dhcp" ) 323config_eth0="dhcp"
351dhcp_eth0="nodns nontp nonis"
352</pre> 324</pre>
353 325
354<p> 326<p>
355Please read <path>/etc/conf.d/net.example</path> for a list of all available 327Please read <path>/usr/share/doc/openrc-*/net.example.bz2</path> for a
356options. 328list of all available options. Be sure to also read your DHCP client manpage if
329you need to set specific DHCP options.
357</p> 330</p>
358 331
359<p> 332<p>
360If you have several network interfaces repeat the above steps for 333If you have several network interfaces repeat the above steps for
361<c>config_eth1</c>, <c>config_eth2</c>, etc. 334<c>config_eth1</c>, <c>config_eth2</c>, etc.
371<title>Automatically Start Networking at Boot</title> 344<title>Automatically Start Networking at Boot</title>
372<body> 345<body>
373 346
374<p> 347<p>
375To have your network interfaces activated at boot, you need to add them to the 348To have your network interfaces activated at boot, you need to add them to the
376default runlevel. If you have PCMCIA interfaces you should skip this action as 349default runlevel.
377the PCMCIA interfaces are started by the PCMCIA init script.
378</p> 350</p>
379 351
380<pre caption="Adding net.eth0 to the default runlevel"> 352<pre caption="Adding net.eth0 to the default runlevel">
353# <i>cd /etc/init.d</i>
354# <i>ln -s net.lo net.eth0</i>
381# <i>rc-update add net.eth0 default</i> 355# <i>rc-update add net.eth0 default</i>
382</pre> 356</pre>
383 357
384<p> 358<p>
385If you have several network interfaces, you need to create the appropriate 359If you have several network interfaces, you need to create the appropriate
386<path>net.eth1</path>, <path>net.eth2</path> etc. initscripts for those. You can 360<path>net.eth1</path>, <path>net.eth2</path> etc. just like you did with
387use <c>ln</c> to do this: 361<path>net.eth0</path>.
388</p>
389
390<pre caption="Creating extra initscripts">
391# <i>cd /etc/init.d</i>
392# <i>ln -s net.lo net.eth1</i>
393# <i>rc-update add net.eth1 default</i>
394</pre> 362</p>
395 363
396</body> 364</body>
397</subsection> 365</subsection>
398<subsection> 366<subsection>
399<title>Writing Down Network Information</title> 367<title>Writing Down Network Information</title>
436<subsection test="func:keyval('arch')='AMD64' or func:keyval('arch')='x86' or substring(func:keyval('arch'),1,3)='PPC'"> 404<subsection test="func:keyval('arch')='AMD64' or func:keyval('arch')='x86' or substring(func:keyval('arch'),1,3)='PPC'">
437<title>Optional: Get PCMCIA Working</title> 405<title>Optional: Get PCMCIA Working</title>
438<body> 406<body>
439 407
440<p> 408<p>
441PCMCIA-users should first install the <c>pcmcia-cs</c> package. This also 409PCMCIA users should first install the <c>pcmciautils</c> package.
442includes users who will be working with a 2.6 kernel (even though they won't be
443using the PCMCIA drivers from this package). The <c>USE="-X"</c> is necessary
444to avoid installing xorg-x11 at this moment:
445</p> 410</p>
446 411
447<pre caption="Installing pcmcia-cs"> 412<pre caption="Installing pcmciautils">
448# <i>USE="-X" emerge pcmcia-cs</i> 413# <i>emerge pcmciautils</i>
449</pre>
450
451<p>
452When <c>pcmcia-cs</c> is installed, add <c>pcmcia</c> to the <e>default</e>
453runlevel:
454</p>
455
456<pre caption="Adding pcmcia to the default runlevel">
457# <i>rc-update add pcmcia default</i>
458</pre> 414</pre>
459 415
460</body> 416</body>
461</subsection> 417</subsection>
462</section> 418</section>
473 429
474<pre caption="Setting the root password"> 430<pre caption="Setting the root password">
475# <i>passwd</i> 431# <i>passwd</i>
476</pre> 432</pre>
477 433
478<p>
479If you want root to be able to log on through the serial console, add
480<c>tts/0</c> to <path>/etc/securetty</path>:
481</p>
482
483<pre caption="Adding tts/0 to /etc/securetty">
484# <i>echo "tts/0" &gt;&gt; /etc/securetty</i>
485</pre>
486
487</body> 434</body>
488</subsection> 435</subsection>
489<subsection> 436<subsection>
490<title>System Information</title> 437<title>System Information</title>
491<body> 438<body>
492 439
493<p> 440<p>
494Gentoo uses <path>/etc/rc.conf</path> for general, system-wide configuration. 441Gentoo uses <path>/etc/rc.conf</path> to configure the services, startup,
495Open up <path>/etc/rc.conf</path> and enjoy all the comments in that file :) 442and shutdown of your system. Open up <path>/etc/rc.conf</path> and enjoy all
443the comments in the file.
496</p> 444</p>
497 445
498<pre caption="Opening /etc/rc.conf"> 446<pre caption="Configuring services">
499# <i>nano -w /etc/rc.conf</i> 447# <i>nano -w /etc/rc.conf</i>
500</pre> 448</pre>
501 449
502<p> 450<p>
503When you're finished configuring <path>/etc/rc.conf</path>, save and exit. 451When you're finished configuring these two files, save them and exit.
504</p>
505
506<p>
507As you can see, this file is well commented to help you set up the necessary
508configuration variables. You can configure your system to use unicode and
509define your default editor and your display manager (like gdm or kdm).
510</p> 452</p>
511 453
512<p> 454<p>
513Gentoo uses <path>/etc/conf.d/keymaps</path> to handle keyboard configuration. 455Gentoo uses <path>/etc/conf.d/keymaps</path> to handle keyboard configuration.
514Edit it to configure your keyboard. 456Edit it to configure your keyboard.
517<pre caption="Opening /etc/conf.d/keymaps"> 459<pre caption="Opening /etc/conf.d/keymaps">
518# <i>nano -w /etc/conf.d/keymaps</i> 460# <i>nano -w /etc/conf.d/keymaps</i>
519</pre> 461</pre>
520 462
521<p> 463<p>
522Take special care with the <c>KEYMAP</c> variable. If you select the wrong 464Take special care with the <c>keymap</c> variable. If you select the wrong
523<c>KEYMAP</c>, you will get weird results when typing on your keyboard. 465<c>keymap</c>, you will get weird results when typing on your keyboard.
524</p> 466</p>
525
526<note test="func:keyval('arch')='SPARC'">
527Users of USB-based SPARC systems and SPARC clones might need to select an i386
528keymap (such as "us") instead of "sunkeymap".
529</note>
530 467
531<note test="substring(func:keyval('arch'),1,3)='PPC'"> 468<note test="substring(func:keyval('arch'),1,3)='PPC'">
532PPC uses x86 keymaps on most systems. Users who want to be able to use ADB 469PPC uses x86 keymaps on most systems.
533keymaps on boot have to enable ADB keycode sendings in their kernel and have to
534set a mac/ppc keymap in <path>/etc/conf.d/keymaps</path>.
535</note> 470</note>
536 471
537<p> 472<p>
538When you're finished configuring <path>/etc/conf.d/keymaps</path>, save and 473When you're finished configuring <path>/etc/conf.d/keymaps</path>, save and
539exit. 474exit.
540</p> 475</p>
541 476
542<p> 477<p>
543Gentoo uses <path>/etc/conf.d/clock</path> to set clock options. Edit it 478Gentoo uses <path>/etc/conf.d/hwclock</path> to set clock options. Edit it
544according to your needs. 479according to your needs.
545</p> 480</p>
546 481
547<pre caption="Opening /etc/conf.d/clock"> 482<pre caption="Opening /etc/conf.d/hwclock">
548# <i>nano -w /etc/conf.d/clock</i> 483# <i>nano -w /etc/conf.d/hwclock</i>
549</pre> 484</pre>
550 485
551<p> 486<p>
552If your hardware clock is not using UTC, you need to add <c>CLOCK="local"</c> 487If your hardware clock is not using UTC, you need to add <c>clock="local"</c>
553to the file. Otherwise you will notice some clock skew. 488to the file. Otherwise you will notice some clock skew.
554</p> 489</p>
555 490
556<p> 491<p>
557When you're finished configuring <path>/etc/conf.d/clock</path>, save and 492When you're finished configuring <path>/etc/conf.d/hwclock</path>, save and
558exit. 493exit.
494</p>
495
496<p>
497You should define the timezone that you previously copied to
498<path>/etc/localtime</path> in the <path>/etc/timezone</path> file so that
499further upgrades of the <c>sys-libs/timezone-data</c> package can update
500<path>/etc/localtime</path> automatically. For instance, if you used the
501Europe/Brussels timezone, you would write <c>Europe/Brussels</c> in the
502<path>/etc/timezone</path> file.
559</p> 503</p>
560 504
561<p test="not(func:keyval('arch')='PPC64')"> 505<p test="not(func:keyval('arch')='PPC64')">
562Please continue with <uri link="?part=1&amp;chap=9">Installing Necessary System 506Please continue with <uri link="?part=1&amp;chap=9">Installing Necessary System
563Tools</uri>. 507Tools</uri>.

Legend:
Removed from v.1.88  
changed lines
  Added in v.1.111

  ViewVC Help
Powered by ViewVC 1.1.20