source: general/prog/j2sdk.xml@ 2a7340c2

10.0 10.1 11.0 6.0 6.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 ken/refactor-virt krejzi/svn lazarus nosym perl-modules qt5new systemd-11177 systemd-13485 trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 2a7340c2 was 2a7340c2, checked in by Randy McMurchy <randy@…>, 17 years ago

Updated J2SDK binary version and build entities

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@3341 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 20.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY j2sdk-download-http "http://freshmeat.net/projects/sunjdk">
8 <!ENTITY j2sdk-download-ftp " ">
9 <!ENTITY j2sdk-bin-size "36.4 MB">
10 <!ENTITY j2sdk-src-size "55.1 MB (three .zip files)">
11 <!ENTITY j2sdk-src-buildsize "1285 MB">
12 <!ENTITY j2sdk-time "29.57 SBU">
13]>
14
15<sect1 id="j2sdk" xreflabel="J2SDK-&j2sdk-src-version;">
16<sect1info>
17<othername>$LastChangedBy$</othername>
18<date>$Date$</date>
19</sect1info>
20<?dbhtml filename="j2sdk.html" ?>
21<title><application>J2<acronym>SDK</acronym></application>-&j2sdk-src-version;</title>
22<indexterm zone="j2sdk">
23<primary sortas="a-J2SDK">J2SDK</primary>
24</indexterm>
25
26<sect2>
27<title>Introduction to
28<application>J2<acronym>SDK</acronym></application></title>
29
30<para>The <application>J2<acronym>SDK</acronym></application> package contains
31Sun's <application>Java</application> development environment. This is useful
32for developing <application>Java</application> programs and provides the
33runtime environment necessary to run <application>Java</application> programs.
34It also includes a plug-in for browsers so that they can be
35<application>Java</application> aware.</para>
36
37<para>The <acronym>JDK</acronym> comes in two flavors, a precompiled binary
38and a source package. Previously, the plugin included in the
39<acronym>JDK</acronym> binary package was unusable on <acronym>LFS</acronym>
40owing to incompatibilities with <acronym>GCC</acronym>-3 compiled browsers.
41This is not the case anymore.</para>
42
43<para>The source package requires registration at the Sun developer site and
44accepting the Sun Community Source License. The source code cannot be
45downloaded from some countries, so for users from those countries, the binary
46may be the only option.</para>
47
48<para>Even if you plan on compiling the <acronym>JDK</acronym> source, you will
49need to download the binary version to bootstrap the <acronym>JDK</acronym>
50build. Follow the link below to download both source and binary packages. When
51downloading the source (two files required), also download the
52<application>Mozilla</application> headers package available at the same
53location. To build from source, you'll end up downloading a total of four
54files.</para>
55
56<sect3><title>Package information</title>
57<itemizedlist spacing='compact'>
58<listitem><para>Download (HTTP): <ulink
59url="&j2sdk-download-http;"/></para></listitem>
60<!--
61<listitem><para>Download (FTP): <ulink
62url="&j2sdk-download-ftp;"/></para></listitem>
63-->
64<listitem><para>Version used (binary):
65&j2sdk-bin-version;</para></listitem>
66<listitem><para>Download size (binary): &j2sdk-bin-size;</para></listitem>
67<listitem><para>Download size (source): &j2sdk-src-size;</para></listitem>
68<listitem><para>Estimated disk space required:
69&j2sdk-src-buildsize;</para></listitem>
70<listitem><para>Estimated build time:
71&j2sdk-time;</para></listitem></itemizedlist>
72</sect3>
73
74<sect3><title>Additional downloads</title>
75<itemizedlist spacing='compact'>
76<listitem><para><ulink
77url="&patch-root;/j2sdk-&j2sdk-src-version;-fix_inline_asm-1.patch"/></para>
78</listitem>
79<listitem><para><ulink
80url="&patch-root;/j2sdk-&j2sdk-src-version;-gcc33-1.patch"/></para>
81</listitem>
82<listitem><para><ulink
83url="&patch-root;/j2sdk-&j2sdk-src-version;-motif_mkmsgcat-1.patch"/></para>
84</listitem>
85<listitem><para><ulink
86url="&patch-root;/j2sdk-&j2sdk-src-version;-nptl-1.patch"/></para>
87</listitem>
88<listitem><para><ulink
89url="&patch-root;/j2sdk-&j2sdk-src-version;-remove_debug_image-1.patch"/></para>
90</listitem>
91<listitem><para><ulink
92url="&patch-root;/j2sdk-&j2sdk-src-version;-remove_fixed_paths-1.patch"/></para>
93</listitem>
94<listitem><para><ulink
95url="&patch-root;/j2sdk-&j2sdk-src-version;-static_cxx-1.patch"/></para>
96</listitem>
97<listitem><para><ulink
98url="&patch-root;/j2sdk-&j2sdk-src-version;-ash-1.patch"/>
99(Only required if /bin/sh is symlinked to <xref linkend="ash"/>)</para>
100</listitem>
101</itemizedlist>
102</sect3>
103
104<sect3><title><application>J2SDK</application> dependencies</title>
105<sect4><title>Required</title>
106<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>),
107<xref linkend="zip"/>,
108<xref linkend="unzip"/>,
109<xref linkend="cpio"/>,
110<xref linkend="alsa"/>,
111<xref linkend="tcsh"/> and
112<xref linkend="gcc3"/></para>
113</sect4>
114</sect3>
115
116</sect2>
117
118<sect2>
119<title>Installation of <application>J2SDK</application></title>
120
121<para>Both versions will be installed in parallel. You may choose to keep
122either or both.</para>
123
124<para>Installation of the precompiled <acronym>JDK</acronym> is easy:
125create a directory to install from, copy the .bin there, and run the
126following commands:</para>
127
128<screen><userinput><command>export VERSION=&j2sdk-bin-version; &amp;&amp;
129export MV=`echo $VERSION | cut -d "_" -f 1,1` &amp;&amp;
130export V=`echo ${VERSION} | sed -e "s/\./_/g"` &amp;&amp;
131sed -i "s:^PATH=.*::" j2sdk-${V}-linux-i?86.bin &amp;&amp;
132chmod +x j2sdk-${V}-linux-i?86.bin &amp;&amp;
133mkdir -p bin &amp;&amp;
134ln -sf /bin/true bin/more &amp;&amp;
135yes | PATH=$PWD/bin:$PATH ./j2sdk-${V}-linux-i?86.bin &amp;&amp;
136cd j2sdk${VERSION}</command></userinput></screen>
137
138<para>Now, as the root user:</para>
139
140<screen><userinput role='root'><command>install -d /opt/j2sdk/j2sdk-precompiled-${MV} &amp;&amp;
141mv * /opt/j2sdk/j2sdk-precompiled-${MV}
142chown -R root:root /opt/j2sdk/j2sdk-precompiled-${MV}</command></userinput></screen>
143
144<para>The binary version is now installed.</para>
145
146<para>If you don't want to compile the source or are not in a position to
147download the source owing to license restrictions, skip ahead to the
148configuration section.</para>
149
150<para>Add the recently installed <acronym>JDK</acronym> to the path.</para>
151
152<screen><userinput><command>export JAVA_HOME=/opt/j2sdk/j2sdk-precompiled-${MV} &amp;&amp;
153export PATH=$PATH:${JAVA_HOME}/bin</command></userinput></screen>
154
155<para>Unzip the sources:</para>
156
157<screen><userinput><command>mkdir j2sdk-build &amp;&amp;
158cd j2sdk-build &amp;&amp;
159VERSION=&j2sdk-src-version; &amp;&amp;
160V=`echo $VERSION | sed -e "s/\./_/g"` &amp;&amp;
161unzip ../j2sdk-${V}-src-scsl.zip &amp;&amp;
162unzip ../j2sdk-${V}-mozilla_headers-unix.zip &amp;&amp;
163unzip ../j2sdk-${V}-bin-scsl.zip</command></userinput></screen>
164
165<para>Apply all the patches downloaded above.</para>
166
167<screen><userinput><command>for PATCH in ../j2sdk-&j2sdk-src-version;*.patch
168do
169 patch -Np1 -i $PATCH
170done</command></userinput></screen>
171
172<para>Set/unset some variables which affect the build:</para>
173
174<screen><userinput><command>export ALT_BOOTDIR="$JAVA_HOME" &amp;&amp;
175unset JAVA_HOME &amp;&amp;
176unset CLASSPATH
177unset CFLAGS
178unset CXXFLAGS
179unset LDFLAGS
180export ALT_DEVTOOLS_PATH="/usr/bin" &amp;&amp;
181export BUILD_NUMBER="blfs-`date +%s`" &amp;&amp;
182export DEV_ONLY=true &amp;&amp;
183export ALT_MOZILLA_PATH=$PWD &amp;&amp;
184export INSANE=true &amp;&amp;
185export MAKE_VERBOSE=true &amp;&amp;
186export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts
187export PATH_HOLD=$PATH
188export PATH=/opt/gcc-&gcc3-version;/bin:$PATH</command></userinput></screen>
189
190<warning><para>Setting CFLAGS/CXXFLAGS/LDFLAGS is guaranteed to make the build
191fail. If you are interested in optimizing the build, set
192OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS instead.</para></warning>
193
194<para>Additionally, if you would like to make in parallel, add the following
195(adjust <envar>MAKE_PARALLEL</envar> to your liking):</para>
196
197<screen><userinput><command>export HOTSPOT_BUILD_JOBS=$MAKE_PARALLEL</command></userinput></screen>
198
199<para>If the included <application>Motif</application> doesn't build properly,
200the error is noticed much later in the build. A solution is to build the
201<application>Motif</application> library before compiling the
202<application>J2<acronym>SDK</acronym></application>.</para>
203
204<screen><userinput><command>cd motif/lib/Xm &amp;&amp;
205make &amp;&amp;
206cd ../../..</command></userinput></screen>
207
208<para>Build <application>J2SDK</application> with the following
209commands. There will be a lot of messages about missing files that look like
210errors. As long as the build doesn't stop, the messages are harmless, so
211ignore them.</para>
212
213<screen><userinput><command>cd control/make &amp;&amp;
214make &amp;&amp;
215cd ../build/linux-i?86</command></userinput></screen>
216
217<para>Now, as the root user, install <application>J2SDK</application>:</para>
218
219<screen><userinput role='root'><command>cp -a j2sdk-image /opt/j2sdk/j2sdk-&j2sdk-src-version; &amp;&amp;
220chown -R root:root /opt/j2sdk/j2sdk-&j2sdk-src-version;</command></userinput></screen>
221
222<para>Restore the environment using the following commands:</para>
223
224<screen><userinput><command>unset VERSION &amp;&amp;
225unset MV &amp;&amp;
226unset V &amp;&amp;
227unset ALT_BOOTDIR &amp;&amp;
228unset ALT_DEVTOOLS_PATH &amp;&amp;
229unset BUILD_NUMBER &amp;&amp;
230unset DEV_ONLY &amp;&amp;
231unset ALT_MOZILLA_PATH &amp;&amp;
232unset INSANE &amp;&amp;
233unset MAKE_VERBOSE &amp;&amp;
234unset ALT_CACERTS_FILE &amp;&amp;
235export PATH=$PATH_HOLD &amp;&amp;
236unset PATH_HOLD</command></userinput></screen>
237
238</sect2>
239
240<sect2>
241<title>Command explanations</title>
242
243<para><command>export ALT_BOOTDIR="$JAVA_HOME"</command>: This var sets
244the location of the bootstrap <acronym>JDK</acronym>.</para>
245
246<para><command>export ALT_MOZILLA_PATH=$PWD</command>: This sets the
247variable that points to where you unzipped the
248<application>Mozilla</application> headers.</para>
249
250<para><command>export ALT_DEVTOOLS_PATH="/usr/bin"</command>: This
251changes the location where the build finds the needed executables.</para>
252
253<para><command>export BUILD_NUMBER="blfs-`date +%s`"</command>: This will
254help you identify this compiled version of the runtime environment and
255virtual machine by appending this information to the version in the
256output to <command>java -version</command>.</para>
257
258<para><command>export DEV_ONLY=true</command>: This command
259eliminates compiling the documentation and a dependency for
260<application>rpm</application>.</para>
261
262<para><command>unset JAVA_HOME</command>: This clears the
263<envar>JAVA_HOME</envar> variable as recommended by the build
264instructions.</para>
265
266<para><command>unset CLASSPATH</command>: This clears the
267<envar>CLASSPATH</envar> variable as per the recommendations in the build
268instructions.</para>
269
270<para><command>unset CFLAGS...</command>: These flags cause miscompilation
271of the build. Never set these.</para>
272
273<para><command>export INSANE=true</command>: Unless you specify that you
274are insane the build will not proceed. The certified platform for the build is
275Redhat 6.1. The above variable ensures that all the errors related to
276compiling on a non-certified platform will be converted to warnings.</para>
277
278<para><command>export MAKE_VERBOSE=true</command>: Allows the current
279compilation command to be displayed on the console.</para>
280
281<para><command>export ALT_CACERTS_FILE...</command>: Specifies the
282certificate file to use.</para>
283
284</sect2>
285
286<sect2>
287<title>Configuring <application>J2SDK</application></title>
288
289<sect3><title>Configuration Information</title>
290
291<para>There are now two Java 2 <acronym>SDK</acronym>'s installed in
292<filename>/opt/j2sdk</filename>. You should decide on which one you
293would like to use as the default. For example if you decide to use the source
294compiled <application>J2SDK</application>, do the following:</para>
295
296<screen><userinput><command>ln -nsf j2sdk-&j2sdk-src-version; /opt/j2sdk/j2sdk</command></userinput></screen>
297
298<para>Add the following lines to your shell startup file (e.g.,
299<filename>/etc/profile</filename>).</para>
300
301<screen><userinput>export JAVA_HOME=/opt/j2sdk/j2sdk
302export PATH=$PATH:$JAVA_HOME/bin</userinput></screen>
303
304<para>Add <filename>$JAVA_HOME/man</filename> to your
305<envar>MANPATH</envar> variable or to
306<filename>/etc/man.conf</filename></para>
307
308<para>The <application>Java</application> plugin is in the directory
309<filename class="directory">$JAVA_HOME/jre/plugin/i?86/ns610/</filename>.
310Make a symbolic link to the file in that directory from your plugins directory.
311Note that the plugin must be a symlink for it to work. If not, the browsers
312just crash when you attempt to load a <application>Java</application>
313plugin.</para>
314
315</sect3>
316
317<sect3><title>Handling CLASSPATH</title>
318
319<para>When compiling packages, the <envar>CLASSPATH</envar> environment
320variable is used by the <acronym>JDK</acronym> to locate classes at
321compile-time and run-time. It is tedious to add all the classes used to the
322<envar>CLASSPATH</envar> manually. You may add the following lines to your
323shell startup file to set <envar>CLASSPATH</envar> automatically to include
324all JAR files in a specified directory, which in the example below is
325<filename>/usr/lib/auto-java-classpath</filename>.</para>
326
327<screen><userinput>AUTO_CLASSPATH_DIR=/usr/lib/auto-java-classpath
328if [ -z $CLASSPATH ]
329then
330 CLASSPATH=.:$AUTO_CLASSPATH_DIR
331else
332 CLASSPATH=$CLASSPATH:.:$AUTO_CLASSPATH_DIR
333fi
334for i in $(ls $AUTO_CLASSPATH_DIR/*.jar 2>/dev/null)
335do
336 CLASSPATH=$CLASSPATH:$i
337done</userinput></screen>
338
339</sect3>
340
341</sect2>
342
343<sect2>
344<title>Contents</title>
345
346<segmentedlist>
347<segtitle>Installed Programs</segtitle>
348<segtitle>Installed Libraries</segtitle>
349<segtitle>Installed Directory</segtitle>
350
351<seglistitem>
352<seg>appletviewer, extcheck, idlj, jar, jarsigner, java, javac, javadoc,
353javah, javap, jdb, keytool, native2ascii, orbd, policytool, rmic, rmid,
354rmiregistry, serialver, servertool and tnameserv</seg>
355<seg><envar>$JAVA_HOME</envar>/lib/*, <envar>$JAVA_HOME</envar>/jre/lib/*
356and libjavaplugin_oji.so</seg>
357<seg>/opt/j2sdk</seg>
358</seglistitem>
359</segmentedlist>
360
361<variablelist>
362<bridgehead renderas="sect3">Short Descriptions</bridgehead>
363<?dbfo list-presentation="list"?>
364
365<varlistentry id="appletviewer">
366<term><command>appletviewer</command></term>
367<listitem><para>runs <application>Java</application> applets outside of the
368context of a browser.</para>
369<indexterm zone="j2sdk appletviewer">
370<primary sortas="b-appletviewer">appletviewer</primary>
371</indexterm></listitem>
372</varlistentry>
373
374<varlistentry id="extcheck">
375<term><command>extcheck</command></term>
376<listitem><para>checks a specified <filename>JAR</filename> file for title
377and version conflicts with any extensions installed in the
378<acronym>JDK</acronym> software.</para>
379<indexterm zone="j2sdk extcheck">
380<primary sortas="b-extcheck">extcheck</primary>
381</indexterm></listitem>
382</varlistentry>
383
384<varlistentry id="idlj">
385<term><command>idlj</command></term>
386<listitem><para>generates <application>Java</application> bindings from a
387given <acronym>IDL</acronym> file.</para>
388<indexterm zone="j2sdk idlj">
389<primary sortas="b-idlj">idlj</primary>
390</indexterm></listitem>
391</varlistentry>
392
393<varlistentry id="jar">
394<term><command>jar</command></term>
395<listitem><para>combines multiple files into a single <acronym>JAR</acronym>
396archive file.</para>
397<indexterm zone="j2sdk jar">
398<primary sortas="b-jar">jar</primary>
399</indexterm></listitem>
400</varlistentry>
401
402<varlistentry id="jarsigner">
403<term><command>jarsigner</command></term>
404<listitem><para>signs <filename>JAR</filename> (Java ARchive) files and
405verifies the signatures and integrity of a signed
406<filename>JAR</filename>.</para>
407<indexterm zone="j2sdk jarsigner">
408<primary sortas="b-jarsigner">jarsigner</primary>
409</indexterm></listitem>
410</varlistentry>
411
412<varlistentry id="java">
413<term><command>java</command></term>
414<listitem><para>launches a <application>Java</application> application by
415starting a <application>Java</application> runtime environment, loading a
416specified class and invoking its main method.</para>
417<indexterm zone="j2sdk java">
418<primary sortas="b-java">java</primary>
419</indexterm></listitem>
420</varlistentry>
421
422<varlistentry id="javac">
423<term><command>javac</command></term>
424<listitem><para>reads class and interface definitions, written in the
425<application>Java</application> programming language, and compiles them into
426bytecode class files.</para>
427<indexterm zone="j2sdk javac">
428<primary sortas="b-javac">javac</primary>
429</indexterm></listitem>
430</varlistentry>
431
432<varlistentry id="javadoc">
433<term><command>javadoc</command></term>
434<listitem><para>parses the declarations and documentation comments in a set of
435<application>Java</application> source files and produces a corresponding set
436of <acronym>HTML</acronym> pages describing the classes, interfaces,
437constructors, methods, and fields.</para>
438<indexterm zone="j2sdk javadoc">
439<primary sortas="b-javadoc">javadoc</primary>
440</indexterm></listitem>
441</varlistentry>
442
443<varlistentry id="javah">
444<term><command>javah</command></term>
445<listitem><para>generates <application>C</application> header and source files
446that are needed to implement native methods.</para>
447<indexterm zone="j2sdk javah">
448<primary sortas="b-javah">javah</primary>
449</indexterm></listitem>
450</varlistentry>
451
452<varlistentry id="javap">
453<term><command>javap</command></term>
454<listitem><para>disassembles a <application>Java</application> class
455file.</para>
456<indexterm zone="j2sdk javap">
457<primary sortas="b-javap">javap</primary>
458</indexterm></listitem>
459</varlistentry>
460
461<varlistentry id="jdb">
462<term><command>jdb</command></term>
463<listitem><para>is a simple command-line debugger for
464<application>Java</application> classes.</para>
465<indexterm zone="j2sdk jdb">
466<primary sortas="b-jdb">jdb</primary>
467</indexterm></listitem>
468</varlistentry>
469
470<varlistentry id="keytool">
471<term><command>keytool</command></term>
472<listitem><para>is a key and certificate management utility.</para>
473<indexterm zone="j2sdk keytool">
474<primary sortas="b-keytool">keytool</primary>
475</indexterm></listitem>
476</varlistentry>
477
478<varlistentry id="native2ascii">
479<term><command>native2ascii</command></term>
480<listitem><para> converts files that contain non-supported character encoding
481into files containing Latin-1 or Unicode-encoded characters.</para>
482<indexterm zone="j2sdk native2ascii">
483<primary sortas="b-native2ascii">native2ascii</primary>
484</indexterm></listitem>
485</varlistentry>
486
487<varlistentry id="orbd">
488<term><command>orbd</command></term>
489<listitem><para>is used to enable clients to transparently locate and invoke
490persistent objects on servers in the <acronym>CORBA</acronym>
491environment.</para>
492<indexterm zone="j2sdk orbd">
493<primary sortas="b-orbd">orbd</primary>
494</indexterm></listitem>
495</varlistentry>
496
497<varlistentry id="policytool">
498<term><command>policytool</command></term>
499<listitem><para>creates and manages a policy file graphically.</para>
500<indexterm zone="j2sdk policytool">
501<primary sortas="b-policytool">policytool</primary>
502</indexterm></listitem>
503</varlistentry>
504
505<varlistentry id="rmic">
506<term><command>rmic</command></term>
507<listitem><para>generates stub and skeleton class files for remote objects
508from the names of compiled <application>Java</application> classes that
509contain remote object implementations.</para>
510<indexterm zone="j2sdk rmic">
511<primary sortas="b-rmic">rmic</primary>
512</indexterm></listitem>
513</varlistentry>
514
515<varlistentry id="rmid">
516<term><command>rmid</command></term>
517<listitem><para>starts the activation system daemon.</para>
518<indexterm zone="j2sdk rmid">
519<primary sortas="b-rmid">rmid</primary>
520</indexterm></listitem>
521</varlistentry>
522
523<varlistentry id="rmiregistry">
524<term><command>rmiregistry</command></term>
525<listitem><para>creates and starts a remote object registry on the specified
526port on the current host.</para>
527<indexterm zone="j2sdk rmiregistry">
528<primary sortas="b-rmiregistry">rmiregistry</primary>
529</indexterm></listitem>
530</varlistentry>
531
532<varlistentry id="serialver">
533<term><command>serialver</command></term>
534<listitem><para>returns the serialVersionUID for one or more classes in a
535form suitable for copying into an evolving class.</para>
536<indexterm zone="j2sdk serialver">
537<primary sortas="b-serialver">serialver</primary>
538</indexterm></listitem>
539</varlistentry>
540
541<varlistentry id="servertool">
542<term><command>servertool</command></term>
543<listitem><para>provides an ease-of-use interface for application programmers
544to register, unregister, startup and shutdown a server.</para>
545<indexterm zone="j2sdk servertool">
546<primary sortas="b-servertool">servertool</primary>
547</indexterm></listitem>
548</varlistentry>
549
550<varlistentry id="tnameserv">
551<term><command>tnameserv</command></term>
552<listitem><para>starts the <application>Java</application>
553<acronym>IDL</acronym> name server.</para>
554<indexterm zone="j2sdk tnameserv">
555<primary sortas="b-tnameserv">tnameserv</primary>
556</indexterm></listitem>
557</varlistentry>
558</variablelist>
559
560</sect2>
561
562</sect1>
563
Note: See TracBrowser for help on using the repository browser.