source: general/prog/jdk.xml@ 5f0bab7

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 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 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 5f0bab7 was 5f0bab7, checked in by DJ Lucas <dj@…>, 19 years ago

update to jdk-1.5 and related fixes

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

  • Property mode set to 100644
File size: 19.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY jdk-download-source "http://java.sun.com/j2se/jrl_download.html">
8 <!ENTITY jdk-download-binary "http://java.sun.com/j2se/1.5.0/download.jsp">
9 <!ENTITY jdk-source-md5sum "http://anduin.linuxfromscratch.org/sources/BLFS/SVN/I-K/jdk/jdk-&jdk-src-version;.md5sums">
10 <!ENTITY jdk-bin-md5sum "562d9797af801bfbe2b5e44417d8ccc4">
11 <!ENTITY jdk-bin-size "45 MB">
12 <!ENTITY jdk-src-size "65.7 MB (three .zip files)">
13 <!ENTITY jdk-src-buildsize "1444 MB">
14 <!ENTITY jdk-time "33.06 SBU">
15]>
16
17<sect1 id="jdk" xreflabel="JDK-&jdk-src-version;">
18<sect1info>
19<othername>$LastChangedBy$</othername>
20<date>$Date$</date>
21</sect1info>
22<?dbhtml filename="jdk.html" ?>
23<title><application>JDK</application>-&jdk-src-version;</title>
24<indexterm zone="jdk">
25<primary sortas="a-JDK">JDK</primary>
26</indexterm>
27
28<sect2>
29<title>Introduction to
30<application>JDK</application></title>
31
32<para>The <application>JDK</application> package contains
33Sun's <application>Java</application> development environment. This is useful
34for developing <application>Java</application> programs and provides the
35runtime environment necessary to run <application>Java</application> programs.
36It also includes a plug-in for browsers so that they can be
37<application>Java</application> aware.</para>
38
39<para>The <acronym>JDK</acronym> comes in two flavors, a precompiled binary
40and a source package. Previously, the plugin included in the
41<acronym>JDK</acronym> binary package was unusable on <acronym>LFS</acronym>
42owing to incompatibilities with <acronym>GCC</acronym>-3 compiled browsers.
43This is not the case anymore.</para>
44
45<para>In order to use the source code and patches, you must read and agree
46to the Sun <ulink url="http://java.sun.com/j2se/1.5.0/jrl_5.0-license.txt">
47Java Research License</ulink>. In addition, the source code cannot be
48downloaded from some countries, so for users from those countries, the binary
49is the only option.</para>
50
51<para>If you plan on compiling the <acronym>JDK</acronym> source, you
52will still need to download the binary version to bootstrap the
53<acronym>JDK</acronym> build. You will need to download a total of four
54files to complete the source build:
55<filename>jdk-1_5_0_02-linux-i586.bin</filename>;
56<filename>jdk-1_5_0-src-jrl.zip</filename>;
57<filename>jdk-1_5_0-bin-jrl.zip</filename>;
58and <filename>jdk-1_5_0-mozilla_headers-unix.zip</filename>.</para>
59
60<sect3><title>Package information</title>
61<itemizedlist spacing='compact'>
62<listitem><para>Binary download:
63<ulink url="&jdk-download-binary;"/></para></listitem>
64<listitem><para>Version used (binary):
65&jdk-bin-version;</para></listitem>
66<listitem><para>Download MD5 sum (binary):
67&jdk-bin-md5sum;</para></listitem>
68<listitem><para>Source download:
69<ulink url="&jdk-download-source;"/></para></listitem>
70<listitem><para>Download MD5 sum (source):
71<ulink url="&jdk-source-md5sum;"/></para></listitem>
72<listitem><para>Download size (binary):
73&jdk-bin-size;</para></listitem>
74<listitem><para>Download size (source):
75&jdk-src-size;</para></listitem>
76<listitem><para>Estimated disk space required:
77&jdk-src-buildsize;</para></listitem>
78<listitem><para>Estimated build time:
79&jdk-time;</para></listitem></itemizedlist>
80</sect3>
81
82<sect3><title>Needed Patches</title>
83<itemizedlist spacing='compact'>
84<listitem><para><ulink
85url="&patch-root;/jdk-&jdk-src-version;-gcc_3.4.2+-3.patch"/></para>
86</listitem>
87<listitem><para><ulink
88url="&patch-root;/jdk-&jdk-src-version;-motif_mkmsgcat-1.patch"/></para>
89</listitem>
90<listitem><para><ulink
91url="&patch-root;/jdk-&jdk-src-version;-nptl-1.patch"/></para></listitem>
92<listitem><para><ulink
93url="&patch-root;/jdk-&jdk-src-version;-remove_broken_demo-1.patch"/></para>
94</listitem>
95<listitem><para><ulink
96url="&patch-root;/jdk-&jdk-src-version;-remove_fixed_paths-1.patch"/></para>
97</listitem>
98</itemizedlist>
99</sect3>
100
101<sect3><title>Recommended Patches</title>
102<itemizedlist spacing='compact'>
103<listitem><para><ulink
104url="&patch-root;/jdk-&jdk-src-version;-remove_debug_image-1.patch"/>
105(Skips compiling of the <application>JDK</application> debug image)</para>
106</listitem>
107<listitem><para><ulink
108url="&patch-root;/jdk-&jdk-src-version;-static_cxx-1.patch"/>
109(Forces dynamic linking to gcc libs)</para></listitem>
110<listitem><para><ulink
111url="&patch-root;/jdk-&jdk-src-version;-xorg-6.8.1-1.patch"/>
112(Only required if building agianst <xref linkend="xorg"/>)</para></listitem>
113</itemizedlist>
114</sect3>
115
116
117<sect3><title><application>JDK</application> dependencies</title>
118<sect4><title>Required (to build <application>JDK</application> from
119source)</title>
120<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>),
121<xref linkend="zip"/>,
122<xref linkend="unzip"/>,
123<xref linkend="cpio"/>,
124<xref linkend="alsa"/>, and
125<xref linkend="tcsh"/></para>
126</sect4>
127</sect3>
128
129</sect2>
130
131<sect2>
132<title>Installation of <application>JDK</application></title>
133
134<para>Both versions will be installed in parallel. You may choose to keep
135either or both.</para>
136
137<para>Install the precompiled <acronym>JDK</acronym> with the
138following commands:</para>
139
140<screen><userinput><command>export VERSION=&jdk-bin-version; &amp;&amp;
141export MV=`echo $VERSION | cut -d "_" -f 1,1` &amp;&amp;
142export V=`echo ${VERSION} | sed -e "s/\./_/g"` &amp;&amp;
143sed -i "s:^PATH=.*::" jdk-${V}-linux-i?86.bin &amp;&amp;
144chmod +x jdk-${V}-linux-i?86.bin &amp;&amp;
145mkdir -p bin &amp;&amp;
146ln -sf /bin/true bin/more &amp;&amp;
147yes | PATH=$PWD/bin:$PATH ./jdk-${V}-linux-i?86.bin &amp;&amp;
148cd jdk${VERSION}</command></userinput></screen>
149
150<para>Now, as the root user:</para>
151
152<screen><userinput role='root'><command>install -d /opt/jdk/jdk-precompiled-${MV} &amp;&amp;
153mv * /opt/jdk/jdk-precompiled-${MV}
154chown -R root:root /opt/jdk/jdk-precompiled-${MV}</command></userinput></screen>
155
156<para>The binary version is now installed.</para>
157
158<para>If you don't want to compile the source or are not in a position to
159download the source owing to license restrictions, skip ahead to the
160configuration section.</para>
161
162<para>Add the recently installed <acronym>JDK</acronym> to the path.</para>
163
164<screen><userinput><command>export JAVA_HOME=/opt/jdk/jdk-precompiled-${MV} &amp;&amp;
165export PATH=$PATH:${JAVA_HOME}/bin</command></userinput></screen>
166
167<para>Unzip the sources:</para>
168
169<screen><userinput><command>mkdir jdk-build &amp;&amp;
170cd jdk-build &amp;&amp;
171VERSION=&jdk-src-version; &amp;&amp;
172V=`echo $VERSION | sed -e "s/\./_/g"` &amp;&amp;
173unzip ../jdk-${V}-src-jrl.zip &amp;&amp;
174unzip ../jdk-${V}-bin-jrl.zip &amp;&amp;
175unzip ../jdk-${V}-mozilla_headers-unix.zip</command></userinput></screen>
176
177<para>Apply all the patches downloaded above.</para>
178
179<screen><userinput><command>for PATCH in ../jdk-&jdk-src-version;*.patch
180 do patch -Np1 -i ${PATCH}
181done</command></userinput></screen>
182
183<para>Set/unset some variables which affect the build:</para>
184
185<screen><userinput><command>export ALT_BOOTDIR="$JAVA_HOME" &amp;&amp;
186unset JAVA_HOME &amp;&amp;
187unset CLASSPATH
188unset CFLAGS
189unset CXXFLAGS
190unset LDFLAGS
191export ALT_DEVTOOLS_PATH="/usr/bin" &amp;&amp;
192export BUILD_NUMBER="blfs-&blfs-version;" &amp;&amp;
193export DEV_ONLY=true &amp;&amp;
194export ALT_MOZILLA_PATH=$PWD &amp;&amp;
195export INSANE=true &amp;&amp;
196export MAKE_VERBOSE=true &amp;&amp;
197export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts</command></userinput></screen>
198
199<warning><para>Setting CFLAGS/CXXFLAGS/LDFLAGS is guaranteed to make the build
200fail. If you are interested in optimizing the build, set
201OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS instead.</para></warning>
202
203<para>Additionally, if you would like to make in parallel, add the
204following:</para>
205
206<screen><userinput><command>export HOTSPOT_BUILD_JOBS=<replaceable>[3]</replaceable></command></userinput></screen>
207
208<para>Build the <application>JDK</application> with the following
209commands. There will be a lot of messages about missing files that look like
210errors. These are caused by not meeting the expected build environemnt
211(Red Hat). As long as the build doesn't stop, the messages
212are harmless.</para>
213
214<screen><userinput><command>cd control/make &amp;&amp;
215make &amp;&amp;
216cd ../build/linux-i?86</command></userinput></screen>
217
218<para>Now, as the root user, install the <application>JDK</application>:</para>
219
220<screen><userinput role='root'><command>cp -a j2sdk-image /opt/jdk/jdk-&jdk-src-version; &amp;&amp;
221chown -R root:root /opt/jdk/jdk-&jdk-src-version;</command></userinput></screen>
222
223<para>Restore the environment using the following commands:</para>
224
225<screen><userinput><command>unset VERSION &amp;&amp;
226unset MV &amp;&amp;
227unset V &amp;&amp;
228unset ALT_BOOTDIR &amp;&amp;
229unset ALT_DEVTOOLS_PATH &amp;&amp;
230unset BUILD_NUMBER &amp;&amp;
231unset DEV_ONLY &amp;&amp;
232unset ALT_MOZILLA_PATH &amp;&amp;
233unset INSANE &amp;&amp;
234unset MAKE_VERBOSE &amp;&amp;
235unset ALT_CACERTS_FILE</command></userinput></screen>
236
237</sect2>
238
239<sect2>
240<title>Command explanations</title>
241
242<para><command>export ALT_BOOTDIR="$JAVA_HOME"</command>: This var sets
243the location of the bootstrap <acronym>JDK</acronym>.</para>
244
245<para><command>export ALT_MOZILLA_PATH=$PWD</command>: This tells the build
246where to find the base directory of the plugin path (which contains the
247<application>Mozilla</application> headers).</para>
248
249<para><command>export ALT_DEVTOOLS_PATH="/usr/bin"</command>: This
250changes the location where the build finds the needed executables.</para>
251
252<para><command>export BUILD_NUMBER="blfs-&blfs-version;"</command>:
253This will help you identify the compiled version of the runtime environment
254and virtual machine by appending this information to the version
255string.</para>
256
257<para><command>export DEV_ONLY=true</command>: This command
258skips compiling the documentation and eliminates a dependency on
259<application>rpm</application>.</para>
260
261<para><command>unset JAVA_HOME</command>: This clears the
262<envar>JAVA_HOME</envar> variable as recommended by the build
263instructions.</para>
264
265<para><command>unset CLASSPATH</command>: This clears the
266<envar>CLASSPATH</envar> variable as per the recommendations in the build
267instructions.</para>
268
269<para><command>unset CFLAGS/CXXFLAGS...</command>: These variables cause
270miscompilation of the build. Never set them.</para>
271
272<para><command>export INSANE=true</command>: The certified platform for the
273build is Redhat Enterprise Advanced Server 2.1. This variable ensures that
274all the errors related to compiling on a non-certified platform will be
275displayed as warnings instead of errors.</para>
276
277<para><command>export MAKE_VERBOSE=true</command>: Allows the compiler
278commands to be displayed on the console.</para>
279
280<para><command>export ALT_CACERTS_FILE...</command>: Specifies the
281certificate file to use (from the installed binary
282<application>JDK</application>).</para>
283
284</sect2>
285
286<sect2>
287<title>Configuring <application>JDK</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/jdk</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>JDK</application>, do the following:</para>
295
296<screen><userinput><command>ln -nsf jdk-&jdk-src-version; /opt/jdk/jdk</command></userinput></screen>
297
298<para>Add the following <filename>jdk.sh</filename> shell startup file to
299the <filename>/etc/profile.d</filename> directory with the following
300commands:</para>
301
302<screen><userinput><command>cat &gt; /etc/profile.d/jdk.sh &lt;&lt; "EOF"</command>
303# Begin /etc/profile.d/jdk.sh
304
305# Set JAVA_HOME directory
306JAVA_HOME=/opt/jdk/jdk
307export JAVA_HOME
308
309# Adjust PATH and MANPATH
310pathappend ${JAVA_HOME}/bin PATH
311pathappend ${JAVA_HOME}/man MANPATH
312
313# Auto Java Classpath Updating
314# Create symlinks to this directory for auto classpath setting
315AUTO_CLASSPATH_DIR=/usr/lib/classpath
316if [ -z ${CLASSPATH} ]; then
317 CLASSPATH=.:${AUTO_CLASSPATH_DIR}
318else
319 pathappend . CLASSPATH
320 pathappend ${AUTO_CLASSPATH_DIR} CLASSPATH
321fi
322
323for i in $(ls ${AUTO_CLASSPATH_DIR}/*.jar 2>/dev/null)
324 do pathappend ${i} CLASSPATH
325done
326
327# End /etc/profile.d/jdk.sh
328<command>EOF</command></userinput></screen>
329
330<para>The <application>Java</application> plugin is loacated in
331<filename class="directory">$JAVA_HOME/jre/plugin/i?86/ns7/</filename>.
332Make a symbolic link to the file in that directory from your browser
333plugins directory.</para>
334
335<note><para>The plugin must be a symlink for it to work. If not, the browsers
336just crash when you attempt to load a <application>Java</application>
337application.</para></note>
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/jdk</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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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="jdk 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.