source: server/major/bind-systemd.xml@ e7323262

systemd-11177
Last change on this file since e7323262 was e7323262, checked in by Krejzi <krejzi@…>, 10 years ago

Remove references to libcap-pam from packages as nothing needs the pam module. libcap is in LFS.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/systemd@13896 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 22.7 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY bind-download-http " ">
8 <!ENTITY bind-download-ftp
9 "ftp://ftp.isc.org/isc/bind9/&bind-version;/bind-&bind-version;.tar.gz">
10 <!ENTITY bind-md5sum "85f5bbd655f7fbb946fe128c5adcc9ca">
11 <!ENTITY bind-size "8.0 MB">
12 <!ENTITY bind-buildsize "101 MB (additional 54 MB to run the test suite)">
13 <!ENTITY bind-time "1.6 SBU (additional 24 minutes, processor independent, to run the complete test suite)">
14]>
15
16<sect1 id="bind" xreflabel="BIND-&bind-version;">
17 <?dbhtml filename="bind.html"?>
18
19 <sect1info>
20 <othername>$LastChangedBy$</othername>
21 <date>$Date$</date>
22 </sect1info>
23
24 <title>BIND-&bind-version;</title>
25
26 <indexterm zone="bind">
27 <primary sortas="a-BIND">BIND</primary>
28 </indexterm>
29
30 <sect2 role="package">
31 <title>Introduction to BIND</title>
32
33 <para>The <application>BIND</application> package provides a DNS server
34 and client utilities. If you are only interested in the utilities, refer
35 to the <xref linkend="bind-utils"/>.</para>
36
37 &lfs75_checked;
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>Download (HTTP): <ulink url="&bind-download-http;"/></para>
43 </listitem>
44 <listitem>
45 <para>Download (FTP): <ulink url="&bind-download-ftp;"/></para>
46 </listitem>
47 <listitem>
48 <para>Download MD5 sum: &bind-md5sum;</para>
49 </listitem>
50 <listitem>
51 <para>Download size: &bind-size;</para>
52 </listitem>
53 <listitem>
54 <para>Estimated disk space required: &bind-buildsize;</para>
55 </listitem>
56 <listitem>
57 <para>Estimated build time: &bind-time;</para>
58 </listitem>
59 </itemizedlist>
60
61 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
62 <itemizedlist spacing='compact'>
63 <listitem>
64 <para>Optional patch (if net-tools is not installed):
65 <ulink
66 url="&patch-root;/bind-&bind-version;-use_iproute2-1.patch"/></para>
67 </listitem>
68 </itemizedlist>
69
70 <bridgehead renderas="sect3">BIND Dependencies</bridgehead>
71
72 <bridgehead renderas="sect4">Optional</bridgehead>
73 <para role="optional">
74 <xref linkend="libxml2"/>,
75 <xref linkend="mitkrb"/>, and
76 <xref linkend="openssl"/>
77 </para>
78
79 <bridgehead renderas="sect4">Optional database backends</bridgehead>
80 <para role="optional">
81 <xref linkend="postgresql"/>,
82 <xref linkend="mariadb"/> or <ulink url="http://www.mysql.com/">MySQL</ulink>,
83 <xref linkend="db"/>,
84 <xref linkend="openldap"/>, and
85 <xref linkend="unixodbc"/>
86 </para>
87
88 <bridgehead renderas="sect4">Optional (to run the test suite)</bridgehead>
89 <para role="optional">
90 <xref linkend="perl-net-dns"/> and
91 <xref linkend="net-tools"/> (you may omit net-tools by using the optional
92 patch to utilize iproute2, but the IPv6 tests will fail)
93 </para>
94
95 <bridgehead renderas="sect4">Optional (to rebuild the documentation)</bridgehead>
96 <para role="optional">
97 <xref linkend="doxygen"/>,
98 <xref linkend="texlive"/>, and
99 <xref linkend="libxslt"/>
100 </para>
101
102 <para condition="html" role="usernotes">User Notes:
103 <ulink url="&blfs-wiki;/bind"/></para>
104
105 </sect2>
106
107 <sect2 role="installation">
108 <title>Installation of BIND</title>
109
110 <para>If you have chosen not to install net-tools, apply the iproute2
111 patch with the following command:</para>
112
113<screen><userinput>patch -Np1 -i ../bind-&bind-version;-use_iproute2-1.patch</userinput></screen>
114
115 <para>Install <application>BIND</application> by running the
116 following commands:</para>
117
118<screen><userinput>sed -e 's/resolver //' \
119 -e 's/rpz //' \
120 -e 's/statistics //' \
121 -e 's/xfer //' \
122 -i bin/tests/system/conf.sh.in &amp;&amp;
123./configure --prefix=/usr \
124 --sysconfdir=/etc \
125 --localstatedir=/var \
126 --mandir=/usr/share/man \
127 --enable-threads \
128 --with-libtool \
129 --disable-static \
130 --with-randomdev=/dev/urandom &amp;&amp;
131make</userinput></screen>
132
133 <para>Issue the following commands to run the complete suite of tests.
134 First, as the <systemitem class="username">root</systemitem> user, set up
135 some test interfaces:</para>
136
137<screen role="root"><userinput>bin/tests/system/ifconfig.sh up</userinput></screen>
138
139 <para>Now run the test suite as an unprivileged user:</para>
140
141<screen><userinput>make check 2&gt;&amp;1 | tee check.log</userinput></screen>
142
143 <para>Again as <systemitem class="username">root</systemitem>, clean up the
144 test interfaces:</para>
145
146<screen role="root"><userinput>bin/tests/system/ifconfig.sh down</userinput></screen>
147
148 <para>Issue the following command to check tests that ran successfully:</para>
149
150<screen><userinput>grep "R:PASS" check.log | wc -l</userinput></screen>
151
152 <para>and the following command check tests that failed:</para>
153
154<screen><userinput>grep -A1 "R:FAIL" check.log</userinput></screen>
155
156 <para>Finally, install the package as the <systemitem
157 class="username">root</systemitem> user:</para>
158
159<screen role="root"><userinput>make install &amp;&amp;
160chmod -v 0755 /usr/lib/lib{bind9,dns,isc{,cc,cfg},lwres}.so &amp;&amp;
161
162install -v -m755 -d /usr/share/doc/bind-&bind-version;/{arm,misc} &amp;&amp;
163install -v -m644 doc/arm/*.html \
164 /usr/share/doc/bind-&bind-version;/arm &amp;&amp;
165install -v -m644 \
166 doc/misc/{dnssec,ipv6,migrat*,options,rfc-compliance,roadmap,sdb} \
167 /usr/share/doc/bind-&bind-version;/misc</userinput></screen>
168 </sect2>
169
170 <sect2 role="commands">
171 <title>Command Explanations</title>
172
173 <para><command>sed ... bin/tests/system/conf.sh.in</command>:
174 This command removes tests that fail (some for unknown reasons).</para>
175
176 <para><parameter>--sysconfdir=/etc</parameter>: This parameter forces
177 <application>BIND</application> to look for configuration
178 files in <filename class='directory'>/etc</filename> instead of
179 <filename class='directory'>/usr/etc</filename>.</para>
180
181 <para><parameter>--enable-threads</parameter>: This parameter enables
182 multi-threading capability.</para>
183
184 <para><parameter>--with-libtool</parameter>: This parameter forces the
185 building of dynamic libraries and links the installed binaries to these
186 libraries.</para>
187
188 <para><parameter>--with-randomdev=/dev/urandom</parameter>: This parameter
189 specifes a non-blocking random device for use with digital signatures.</para>
190
191 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
192 href="../../xincludes/static-libraries.xml"/>
193
194 <para><command>chmod 0755
195 /usr/lib/{lib{bind9,dns,isc{,cc,cfg},lwres}.so</command>:
196 Enable the execute bit to prevent a warning when using
197 <command>ldd</command> to check library dependencies.</para>
198
199 <para><command>cd doc; install ...</command>: These commands install
200 additional package documentation. Omit any or all of these commands if
201 desired.</para>
202 </sect2>
203
204 <sect2 role="configuration">
205 <title>Configuring BIND</title>
206
207 <sect3 id="bind-config">
208 <title>Config files</title>
209
210 <para><filename>named.conf</filename>,
211 <filename>root.hints</filename>,
212 <filename>127.0.0</filename>,
213 <filename>rndc.conf</filename> and
214 <filename>resolv.conf</filename></para>
215
216 <indexterm zone="bind bind-config">
217 <primary sortas="e-etc-named.conf">/etc/named.conf</primary>
218 </indexterm>
219
220 <indexterm zone="bind bind-config">
221 <primary sortas="e-etc-rndc.conf">/etc/rndc.conf</primary>
222 </indexterm>
223
224 <indexterm zone="bind bind-config">
225 <primary sortas="e-etc-resolv.conf">/etc/resolv.conf</primary>
226 </indexterm>
227
228 <indexterm zone="bind bind-config">
229 <primary
230 sortas="e-etc-namedb-root.hints">/etc/namedb/root.hints</primary>
231 </indexterm>
232
233 <indexterm zone="bind bind-config">
234 <primary
235 sortas="e-etc-namedb-pz-127.0.0.0">/etc/namedb/pz/127.0.0.0</primary>
236 </indexterm>
237 </sect3>
238
239 <sect3>
240 <title>Configuration Information</title>
241
242 <para><application>BIND</application> will be configured to run in a
243 <command>chroot</command> jail as an unprivileged user (<systemitem
244 class="username">named</systemitem>). This configuration is more secure
245 in that a DNS compromise can only affect a few files in the <systemitem
246 class="username">named</systemitem> user's <envar>HOME</envar>
247 directory.</para>
248
249 <para>Create the unprivileged user and group <systemitem
250 class="username">named</systemitem>:</para>
251
252<screen role="root"><userinput>groupadd -g 20 named &amp;&amp;
253useradd -c "BIND Owner" -g named -s /bin/false -u 20 named &amp;&amp;
254install -d -m770 -o named -g named /srv/named</userinput></screen>
255
256 <para>Set up some files, directories and devices needed by
257 <application>BIND</application>:</para>
258
259<screen role="root"><userinput>cd /srv/named &amp;&amp;
260mkdir -p dev etc/namedb/{slave,pz} usr/lib/engines var/run/named &amp;&amp;
261mknod /srv/named/dev/null c 1 3 &amp;&amp;
262mknod /srv/named/dev/random c 1 8 &amp;&amp;
263chmod 666 /srv/named/dev/{null,random} &amp;&amp;
264cp /etc/localtime etc &amp;&amp;
265touch /srv/named/managed-keys.bind &amp;&amp;
266cp /usr/lib/engines/libgost.so usr/lib/engines &amp;&amp;
267[ $(uname -m) = x86_64 ] &amp;&amp; ln -sv lib usr/lib64</userinput></screen>
268
269 <para>The <filename>rndc.conf</filename> file contains information for
270 controlling <command>named</command> operations with the
271 <command>rndc</command> utility. Generate a key for use in the <filename>named.conf</filename> and <filename>rdnc.conf</filename> with the
272 <command>rndc-confgen</command> command:</para>
273
274<screen role="root"><userinput>rndc-confgen -r /dev/urandom -b 512 > /etc/rndc.conf &amp;&amp;
275sed '/conf/d;/^#/!d;s:^# ::' /etc/rndc.conf > /srv/named/etc/named.conf</userinput></screen>
276
277 <para>Complete the <filename>named.conf</filename> file from which
278 <command>named</command> will read the location of zone files, root
279 name servers and secure DNS keys:</para>
280
281<screen role="root"><?dbfo keep-together="auto"?><userinput>cat &gt;&gt; /srv/named/etc/named.conf &lt;&lt; "EOF"
282<literal>options {
283 directory "/etc/namedb";
284 pid-file "/var/run/named.pid";
285 statistics-file "/var/run/named.stats";
286
287};
288zone "." {
289 type hint;
290 file "root.hints";
291};
292zone "0.0.127.in-addr.arpa" {
293 type master;
294 file "pz/127.0.0";
295};
296
297// Bind 9 now logs by default through syslog (except debug).
298// These are the default logging rules.
299
300logging {
301 category default { default_syslog; default_debug; };
302 category unmatched { null; };
303
304 channel default_syslog {
305 syslog daemon; // send to syslog's daemon
306 // facility
307 severity info; // only send priority info
308 // and higher
309 };
310
311 channel default_debug {
312 file "named.run"; // write to named.run in
313 // the working directory
314 // Note: stderr is used instead
315 // of "named.run"
316 // if the server is started
317 // with the '-f' option.
318 severity dynamic; // log at the server's
319 // current debug level
320 };
321
322 channel default_stderr {
323 stderr; // writes to stderr
324 severity info; // only send priority info
325 // and higher
326 };
327
328 channel null {
329 null; // toss anything sent to
330 // this channel
331 };
332};</literal>
333EOF</userinput></screen>
334
335 <para>Create a zone file with the following contents:</para>
336
337<screen role="root"><userinput>cat &gt; /srv/named/etc/namedb/pz/127.0.0 &lt;&lt; "EOF"
338<literal>$TTL 3D
339@ IN SOA ns.local.domain. hostmaster.local.domain. (
340 1 ; Serial
341 8H ; Refresh
342 2H ; Retry
343 4W ; Expire
344 1D) ; Minimum TTL
345 NS ns.local.domain.
3461 PTR localhost.</literal>
347EOF</userinput></screen>
348
349 <para>Create the <filename>root.hints</filename> file with the following
350 commands:</para>
351
352 <note>
353 <para>Caution must be used to ensure there are no leading spaces in
354 this file.</para>
355 </note>
356
357<screen role="root"><userinput>cat &gt; /srv/named/etc/namedb/root.hints &lt;&lt; "EOF"
358<literal>. 6D IN NS A.ROOT-SERVERS.NET.
359. 6D IN NS B.ROOT-SERVERS.NET.
360. 6D IN NS C.ROOT-SERVERS.NET.
361. 6D IN NS D.ROOT-SERVERS.NET.
362. 6D IN NS E.ROOT-SERVERS.NET.
363. 6D IN NS F.ROOT-SERVERS.NET.
364. 6D IN NS G.ROOT-SERVERS.NET.
365. 6D IN NS H.ROOT-SERVERS.NET.
366. 6D IN NS I.ROOT-SERVERS.NET.
367. 6D IN NS J.ROOT-SERVERS.NET.
368. 6D IN NS K.ROOT-SERVERS.NET.
369. 6D IN NS L.ROOT-SERVERS.NET.
370. 6D IN NS M.ROOT-SERVERS.NET.
371A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4
372B.ROOT-SERVERS.NET. 6D IN A 192.228.79.201
373C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12
374D.ROOT-SERVERS.NET. 6D IN A 199.7.91.13
375E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10
376F.ROOT-SERVERS.NET. 6D IN A 192.5.5.241
377G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4
378H.ROOT-SERVERS.NET. 6D IN A 128.63.2.53
379I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17
380J.ROOT-SERVERS.NET. 6D IN A 192.58.128.30
381K.ROOT-SERVERS.NET. 6D IN A 193.0.14.129
382L.ROOT-SERVERS.NET. 6D IN A 199.7.83.42
383M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33</literal>
384EOF</userinput></screen>
385
386 <para>The <filename>root.hints</filename> file is a list of root
387 name servers. This file must be updated periodically with the
388 <command>dig</command> utility. A current copy of root.hints can be
389 obtained from <ulink url="ftp://rs.internic.net/domain/named.root" />.
390 Consult the <ulink url="http://www.bind9.net/Bv9ARM.html">BIND 9
391 Administrator Reference Manual</ulink> for details.</para>
392
393 <para>Create or modify <filename>resolv.conf</filename> to use the new
394 name server with the following commands:</para>
395
396 <note>
397 <para>Replace <replaceable>&lt;yourdomain.com&gt;</replaceable> with
398 your own valid domain name.</para>
399 </note>
400
401<screen role="root"><userinput>cp /etc/resolv.conf /etc/resolv.conf.bak &amp;&amp;
402cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
403<literal>search <replaceable>&lt;yourdomain.com&gt;</replaceable>
404nameserver 127.0.0.1</literal>
405EOF</userinput></screen>
406
407 <para>Set permissions on the <command>chroot</command> jail with the
408 following command:</para>
409
410<screen role="root"><userinput>chown -R named:named /srv/named</userinput></screen>
411
412 </sect3>
413
414 <sect3 id="bind-init">
415 <title>Systemd Units</title>
416
417 <para>
418 To start the <command>named</command> daemon at boot,
419 install the systemd unit from the <xref linkend="bootscripts"/>
420 package by running the following command as the
421 <systemitem class="username">root</systemitem> user:
422 </para>
423
424 <indexterm zone="bind bind-init">
425 <primary sortas="f-bind">bind</primary>
426 </indexterm>
427
428<screen role="root"><userinput>make install-named</userinput></screen>
429
430 <para>Now start <application>BIND</application> using
431 the <command>systemctl</command> utility:</para>
432
433<screen role="root"><userinput>systemctl start named</userinput></screen>
434
435 </sect3>
436
437 <sect3>
438 <title>Testing BIND</title>
439
440 <para>Test out the new <application>BIND</application> 9 installation.
441 First query the local host address with <command>dig</command>:</para>
442
443<screen><userinput>dig -x 127.0.0.1</userinput></screen>
444
445 <para>Now try an external name lookup, taking note of the speed
446 difference in repeated lookups due to the caching. Run the
447 <command>dig</command> command twice on the same address:</para>
448
449<screen><userinput>dig www.&lfs-domainname; &amp;&amp;
450dig www.&lfs-domainname;</userinput></screen>
451
452 <para>You can see almost instantaneous results with the named caching
453 lookups. Consult the <application>BIND</application> Administrator
454 Reference Manual located at <filename>doc/arm/Bv9ARM.html</filename>
455 in the package source tree, for further configuration options.</para>
456
457 </sect3>
458
459 </sect2>
460
461 <sect2 role="content">
462 <title>Contents</title>
463
464 <segmentedlist>
465 <segtitle>Installed Programs</segtitle>
466 <segtitle>Installed Libraries</segtitle>
467 <segtitle>Installed Directories</segtitle>
468
469 <seglistitem>
470
471 <seg>arpaname, bind9-config hardlinked to isc-config.sh, ddns-confgen,
472 delv, dig, dnssec-checkds, dnssec-coverage, dnssec-dsfromkey,
473 dnssec-importkey, dnssec-keyfromlabel, dnssec-keygen, dnssec-revoke,
474 dnssec-settime, dnssec-signzone, dnssec-verify, genrandom, host,
475 isc-hmac-fixup, lwresd hardlinked to named, named-checkconf,
476 named-checkzone, named-compilezone (symlink), named-journalprint,
477 named-rrchecker, nsec3hash, nslookup, nsupdate, rndc, rndc-confgen,
478 and tsig-keygen (symlink)</seg>
479
480 <seg>libbind9.so, libdns.so, libirs.so, libisc.so, libisccc.so,
481 libisccfg.so, and liblwres.so</seg>
482
483 <seg>/srv/named, /usr/include/bind9, /usr/include/dns,
484 /usr/include/dst, /usr/include/irs, /usr/include/isc,
485 /usr/include/isccc, /usr/include/isccfg, /usr/include/lwres,
486 /usr/include/pk11, /usr/include/pkcs11, and
487 /usr/share/doc/bind-&bind-version;</seg>
488 </seglistitem>
489 </segmentedlist>
490
491 <variablelist>
492 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
493 <?dbfo list-presentation="list"?>
494 <?dbhtml list-presentation="table"?>
495
496 <varlistentry id="dig">
497 <term><command>dig</command></term>
498 <listitem>
499 <para>interrogates DNS servers.</para>
500 <indexterm zone="bind dig">
501 <primary sortas="b-dig">dig</primary>
502 </indexterm>
503 </listitem>
504 </varlistentry>
505
506 <varlistentry id="dnssec-keygen">
507 <term><command>dnssec-keygen</command></term>
508 <listitem>
509 <para>is a key generator for secure DNS.</para>
510 <indexterm zone="bind dnssec-keygen">
511 <primary sortas="b-dnssec-keygen">dnssec-keygen</primary>
512 </indexterm>
513 </listitem>
514 </varlistentry>
515
516 <varlistentry id="dnssec-signzone">
517 <term><command>dnssec-signzone</command></term>
518 <listitem>
519 <para>generates signed versions of zone files.</para>
520 <indexterm zone="bind dnssec-signzone">
521 <primary sortas="b-dnssec-signzone">dnssec-signzone</primary>
522 </indexterm>
523 </listitem>
524 </varlistentry>
525
526 <varlistentry id="host">
527 <term><command>host</command></term>
528 <listitem>
529 <para>is a utility for DNS lookups.</para>
530 <indexterm zone="bind host">
531 <primary sortas="b-host">host</primary>
532 </indexterm>
533 </listitem>
534 </varlistentry>
535
536 <varlistentry id="lwresd">
537 <term><command>lwresd</command></term>
538 <listitem>
539 <para>is a caching-only name server for local process use.</para>
540 <indexterm zone="bind lwresd">
541 <primary sortas="b-lwresd">lwresd</primary>
542 </indexterm>
543 </listitem>
544 </varlistentry>
545
546 <varlistentry id="named">
547 <term><command>named</command></term>
548 <listitem>
549 <para>is the name server daemon.</para>
550 <indexterm zone="bind named">
551 <primary sortas="b-named">named</primary>
552 </indexterm>
553 </listitem>
554 </varlistentry>
555
556 <varlistentry id="named-checkconf">
557 <term><command>named-checkconf</command></term>
558 <listitem>
559 <para>checks the syntax of <filename>named.conf</filename>
560 files.</para>
561 <indexterm zone="bind named-checkconf">
562 <primary sortas="b-named-checkconf">named-checkconf</primary>
563 </indexterm>
564 </listitem>
565 </varlistentry>
566
567 <varlistentry id="named-checkzone">
568 <term><command>named-checkzone</command></term>
569 <listitem>
570 <para>checks zone file validity.</para>
571 <indexterm zone="bind named-checkzone">
572 <primary sortas="b-named-checkzone">named-checkzone</primary>
573 </indexterm>
574 </listitem>
575 </varlistentry>
576
577 <varlistentry id="nslookup">
578 <term><command>nslookup</command></term>
579 <listitem>
580 <para>is a program used to query Internet domain nameservers.</para>
581 <indexterm zone="bind nslookup">
582 <primary sortas="b-nslookup">nslookup</primary>
583 </indexterm>
584 </listitem>
585 </varlistentry>
586
587 <varlistentry id="nsupdate">
588 <term><command>nsupdate</command></term>
589 <listitem>
590 <para>is used to submit DNS update requests.</para>
591 <indexterm zone="bind nsupdate">
592 <primary sortas="b-nsupdate">nsupdate</primary>
593 </indexterm>
594 </listitem>
595 </varlistentry>
596
597 <varlistentry id="rndc">
598 <term><command>rndc</command></term>
599 <listitem>
600 <para>controls the operation of <application>BIND</application>.</para>
601 <indexterm zone="bind rndc">
602 <primary sortas="b-rndc">rndc</primary>
603 </indexterm>
604 </listitem>
605 </varlistentry>
606
607 <varlistentry id="rndc-confgen">
608 <term><command>rndc-confgen</command></term>
609 <listitem>
610 <para>generates <filename>rndc.conf</filename> files.</para>
611 <indexterm zone="bind rndc-confgen">
612 <primary sortas="b-rndc-confgen">rndc-confgen</primary>
613 </indexterm>
614 </listitem>
615 </varlistentry>
616
617 </variablelist>
618
619 </sect2>
620
621</sect1>
Note: See TracBrowser for help on using the repository browser.