Update to OpenJDK-9.0.4.

Update to make-ca-0.7.
Update to Apache-Ant-1.10.2.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@19800 af4574ff-66df-0310-9fd7-8a98e5e911e0
This commit is contained in:
DJ Lucas 2018-02-19 05:46:45 +00:00
parent eab496c53d
commit d61ead0a10
8 changed files with 273 additions and 348 deletions

View File

@ -1,12 +1,12 @@
<!-- $LastChangedBy$ $Date$ -->
<!ENTITY day "18"> <!-- Always 2 digits -->
<!ENTITY day "19"> <!-- Always 2 digits -->
<!ENTITY month "02"> <!-- Always 2 digits -->
<!ENTITY year "2018">
<!ENTITY copyrightdate "2001-&year;">
<!ENTITY copyholder "The BLFS Development Team">
<!ENTITY version "&year;-&month;-&day;">
<!ENTITY releasedate "February 18th, &year;">
<!ENTITY releasedate "February 19th, &year;">
<!ENTITY pubdate "&year;-&month;-&day;"> <!-- metadata req. by TLDP -->
<!ENTITY blfs-version "svn"> <!-- svn|[release #] -->
<!ENTITY lfs-version "development"> <!-- x.y|development -->

View File

@ -6,9 +6,9 @@
<!ENTITY apache-ant-download-http "https://archive.apache.org/dist/ant/source/apache-ant-&apache-ant-version;-src.tar.xz">
<!ENTITY apache-ant-download-ftp " ">
<!ENTITY apache-ant-md5sum "ebecbe7488c624b06bc6a264a3a7c4ec">
<!ENTITY apache-ant-size "3.4 MB">
<!ENTITY apache-ant-buildsize "121 MB">
<!ENTITY apache-ant-md5sum "57235f3dccfc4b18a260862905ce6c04">
<!ENTITY apache-ant-size "3.6 MB">
<!ENTITY apache-ant-buildsize "262 MB">
<!ENTITY apache-ant-time "0.3 SBU (with a JVM using 4 cores)">
]>
@ -68,13 +68,25 @@
<listitem>
<para>
Required file: <ulink
url="http://repo1.maven.org/maven2/junit/junit/&junit-version;/junit-&junit-version;.jar"/>
url="https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/javax/media/jai-core/1.1.3/jai-core-1.1.3.jar"/>
</para>
</listitem>
<listitem>
<para>
Required file: <ulink
url="http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/&hamcrest-version;/hamcrest-core-&hamcrest-version;.jar"/>
url="https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/com/sun/media/jai-codec/1.1.3/jai-codec-1.1.3.jar"/>
</para>
</listitem>
<listitem>
<para>
Required file: <ulink
url="http://central.maven.org/maven2/org/tukaani/xz/1.0/xz-1.0.jar"/>
</para>
</listitem>
<listitem>
<para>
Required file: <ulink
url="http://www.netrexx.org/files/NetRexx-3.06-GA.zip"/>
</para>
</listitem>
</itemizedlist>
@ -100,58 +112,55 @@
<sect2 role="installation">
<title>Installation of Apache Ant</title>
<note>
<para>You may need additional libraries to satisfy the build
requirements of various packages installed using
<application>Apache Ant</application>. Review the table at
<ulink url="http://ant.apache.org/manual/install.html#librarydependencies"/>
for any prerequisite libraries you may need. Place any needed libraries
in <filename>lib/optional</filename>.</para>
</note>
<note><para>Several dependent packages have moved since the packaging of
<application>Ant</application> requiring download of the above extra files.
Copy those files into the source tree with the following
commands:</para></note>
<!-- <para>If it is not possible to install the recommended
<application>JUnit</application> package, install
<application>Apache Ant</application> by removing the reference to the test
instructions (note that the tests will not be performed):</para>
<screen><userinput>cp -v ../jai-core-1.1.3.jar \
../jai-codec-1.1.3.jar \
../xz-1.0.jar lib &amp;&amp;
unzip -p ../NetRexx-3.06-GA.zip lib/NetRexxC.jar > lib/NetRexxC.jar</userinput></screen>
<screen><userinput>sed -i 's/jars,test-jar/jars/' build.xml</userinput></screen>
-->
<para>Unpack and copy the <application>junit</application> and
<application>hamcrest</application> jar files to the
local directory tree.</para>
<para>Build a limited bootstrap version of <application>Apache
Ant</application> using the following command:</para>
<screen><userinput>cp -v ../junit-&junit-version;.jar \
../hamcrest-core-&hamcrest-version;.jar lib/optional</userinput></screen>
<screen><userinput>./bootstrap.sh</userinput></screen>
<para>Install <application>Apache Ant</application> by running the following
commands:</para>
<para>Download the rest of the runtime dependencies using the
<filename>fetch.xml</filename> ant build script:</para>
<para>The unit regression tests are performed during the build step below
unless <application>JUnit</application> is not installed. Now, as the
<systemitem class="username">root</systemitem> user:</para>
<screen><userinput>bootstrap/bin/ant -f fetch.xml -Ddest=system || true &amp;&amp;
cp -v lib/*.jar lib/optional/</userinput></screen>
<screen role="root"><userinput>./build.sh -Ddist.dir=/opt/ant-&apache-ant-version; dist &amp;&amp;
ln -v -sfn ant-&apache-ant-version; /opt/ant</userinput></screen>
<para>Build <application>Apache Ant</application> by running the following
command:</para>
<note><para>Make sure the JAVA_HOME environment variable is set for the
<systemitem class="username">root</systemitem> user.</para></note>
<screen><userinput>./build.sh -Ddist.dir=$PWD/ant-&apache-ant-version; dist</userinput></screen>
<para>Install, as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>cp -rv ant-&apache-ant-version; /opt/ &amp;&amp;
chown -R root:root /opt/ant-&apache-ant-version; &amp;&amp;
ln -sfv ant-&apache-ant-version; /opt/ant</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><command>cp -v ... lib/optional</command>:
This command copies the JUnit and hamcrest jar files into the directory
where Apache Ant will look for them.</para>
<para><command>bootstrap/bin/ant -f fetch.xml -Ddest=system ||
true</command>: These commands download the rest of the missing dependencies
into the source tree (in the <filename>lib/</filename> directory).</para>
<para><command>./build.sh -Ddist.dir=/opt/ant-&apache-ant-version;
dist</command>: This command does everything. It builds, tests, then
<para><command>cp -v ... lib/optional</command>: This command copies the
previously downloaded jar files to the expected place in the source
tree so that <command>ant</command> picks them up at buld time.</para>
<para><command>./build.sh -Ddist.dir=$PWD/ant-&apache-ant-version;
dist</command>: This command builds, tests, then
installs the package into
<filename class='directory'>/opt/ant-&apache-ant-version;</filename>.</para>
<para><command>ln -v -sfn ant-&apache-ant-version; /opt/ant</command>: This
command is optional, and creates a convenience symlink.</para>
<filename class='directory'>a temporary directory.</filename>.</para>
</sect2>

View File

@ -5,16 +5,16 @@
%general-entities;
<!ENTITY anduin-download "&sources-anduin-http;/OpenJDK/OpenJDK-&openjdk-version;">
<!ENTITY openjdk-download-binary-x86 "&anduin-download;/OpenJDK-&openjdk-version;-i686-bin.tar.xz">
<!ENTITY openjdk-bin-md5sum-x86 "08ea7bd6d308382d9fb605ffe1599d15">
<!ENTITY openjdk-bin-size-x86 "57 MB">
<!ENTITY openjdk-bin-buildsize-x86 "167 MB">
<!ENTITY openjdk-download-binary-x86 "&anduin-download;/OpenJDK-&openjdk-version;+&openjdk-build;-i686-bin.tar.xz">
<!ENTITY openjdk-bin-md5sum-x86 "1d7b1412aec6931a4b267e6b04d4103e">
<!ENTITY openjdk-bin-size-x86 "157 MB">
<!ENTITY openjdk-bin-buildsize-x86 "303 MB">
<!ENTITY openjdk-download-binary-x64 "&anduin-download;/OpenJDK-&openjdk-version;-x86_64-bin.tar.xz">
<!ENTITY openjdk-bin-md5sum-x64 "e924a6923dc156e9f65ca53fffcdcf30">
<!ENTITY openjdk-bin-size-x64 "58 MB">
<!ENTITY openjdk-bin-buildsize-x64 "170 MB">
<!ENTITY openjdk-download-binary-x64 "&anduin-download;/OpenJDK-&openjdk-version;+&openjdk-build;-x86_64-bin.tar.xz">
<!ENTITY openjdk-bin-md5sum-x64 "ef09e8b2990341587fae2a5d51d5bdea">
<!ENTITY openjdk-bin-size-x64 "169 MB">
<!ENTITY openjdk-bin-buildsize-x64 "331 MB">
]>
<sect1 id="java" xreflabel="Java-&openjdk-version;">
@ -82,7 +82,7 @@
directory to allow for multiple installations, including a source based
version.</para>
&lfs81_checked;
&lfs82_checked;
<bridgehead renderas="sect3">Binary Package Information</bridgehead>
<itemizedlist spacing="compact">
@ -133,9 +133,9 @@
<application>OpenJDK</application> with the following commands as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>install -vdm755 /opt/OpenJDK-&openjdk-version;-bin &amp;&amp;
mv -v * /opt/OpenJDK-&openjdk-version;-bin &amp;&amp;
chown -R root:root /opt/OpenJDK-&openjdk-version;-bin</userinput></screen>
<screen role="root"><userinput>install -vdm755 /opt/OpenJDK-&openjdk-version;+&openjdk-build;-bin &amp;&amp;
mv -v * /opt/OpenJDK-&openjdk-version;+&openjdk-build;-bin &amp;&amp;
chown -R root:root /opt/OpenJDK-&openjdk-version;+&openjdk-build;-bin</userinput></screen>
<para>
The binary version is now installed. You may create a symlink to that
@ -143,7 +143,7 @@ chown -R root:root /opt/OpenJDK-&openjdk-version;-bin</userinput></screen>
user:
</para>
<screen role="root"><userinput>ln -sfn OpenJDK-&openjdk-version;-bin /opt/jdk</userinput></screen>
<screen role="root"><userinput>ln -sfn OpenJDK-&openjdk-version;+&openjdk-build;-bin /opt/jdk</userinput></screen>
<para>
You may now proceed to <xref linkend="ojdk-conf"/>, where the

View File

@ -4,35 +4,31 @@
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY ojdk-upd "141">
<!ENTITY ojdk-bd "b15">
<!ENTITY ojdk-tarball "jdk8u&ojdk-upd;-&ojdk-bd;.tar.bz2">
<!ENTITY ojdk-repo "http://hg.openjdk.java.net/jdk8u/jdk8u">
<!ENTITY ojdk-tarball "jdk-&openjdk-version;+&openjdk-build;.tar.bz2">
<!ENTITY ojdk-repo "http://hg.openjdk.java.net/jdk-updates/jdk9u">
<!ENTITY ojdk-download "&ojdk-repo;/archive/&ojdk-tarball;">
<!ENTITY anduin-download "&sources-anduin-http;/OpenJDK/OpenJDK-&openjdk-version;">
<!ENTITY ojdk-md5sum "df3504e95d6e88924babb3821d4210a6">
<!ENTITY ojdk-size "498 KB">
<!ENTITY ojdk-md5sum "174205155c001cf0cc5d3250d86cfb69">
<!ENTITY ojdk-size "812 KB">
<!ENTITY corba-md5sum "4061c0f2dc553cf92847e4a39a03ea4e">
<!ENTITY hotspot-md5sum "269a0fde90b9ab5ca19fa82bdb3d6485">
<!ENTITY jaxp-md5sum "a1dfcd15119dd10db6e91dc2019f14e7">
<!ENTITY jaxws-md5sum "16f904d990cb6a3c84ebb81bd6bea1e7">
<!ENTITY jdk-md5sum "c4a99c9c5293bb5c174366664843c8ce">
<!ENTITY langtools-md5sum "4fb652cdd6fee5f2873b00404e9a01f3">
<!ENTITY nashorn-md5sum "c2f06cd8d6e90f3dcc57bec53f419afe">
<!ENTITY total-download-size "63 MB">
<!ENTITY corba-md5sum "dbc62e27a93686a9aea12e9c97c2f765">
<!ENTITY hotspot-md5sum "25853ba33123397b2e755249f102ae73">
<!ENTITY jaxp-md5sum "f5ab5e468565e1ab3a181d2efb45b51f">
<!ENTITY jaxws-md5sum "520ff49cb470fbcec2f46cbb3fdb377d">
<!ENTITY jdk-md5sum "be9f261b19451ab1300c5842188e3fe2">
<!ENTITY langtools-md5sum "22b65322d04c8ffafd77230dbe5f178f">
<!ENTITY nashorn-md5sum "729d03b0cede2f697ad77170a9d89095">
<!ENTITY total-download-size "83 MB">
<!ENTITY jtreg-version "4.2-b08-891">
<!ENTITY jtreg-download "&anduin-download;/jtreg-&jtreg-version;.tar.gz">
<!ENTITY jtreg-md5sum "f409d5313b5d9aa81bb6868082fda161">
<!ENTITY jtreg-size "6.8 MB">
<!ENTITY jtreg-version "4.2-b12">
<!ENTITY jtreg-download "https://ci.adoptopenjdk.net/view/all/job/jtreg/lastSuccessfulBuild/artifact/jtreg-&jtreg-version;.tar.gz">
<!ENTITY jtreg-md5sum "630ac0b2108a48a85d71dc1fba856fda">
<!ENTITY jtreg-size "7.3 MB">
<!ENTITY icedtea-web-download "http://icedtea.classpath.org/download/source/icedtea-web-&icedtea-web-version;.tar.gz">
<!ENTITY ojdk-buildsize "3.5 GB (additional 529 MB for tests)">
<!ENTITY ojdk-time "4.3 SBU with 8 jobs in parallel (up to 120 SBU for tests, see below)">
<!ENTITY ojdk-bdsize "4.6 GB (additional 676 MB for tests)">
<!ENTITY ojdk-time "3.8 SBU with 4 jobs (additonal 12.1 SBU for tests with 4 jobs)">
]>
<sect1 id="openjdk" xreflabel="OpenJDK-&openjdk-version;">
@ -60,7 +56,7 @@
runtime environment to run <application>Java</application> programs.
</para>
&lfs81_checked;
&lfs82_checked;
<note>
<para>
@ -121,12 +117,23 @@
<bridgehead renderas="sect3">Source Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>OpenJDK Root Package
<simplelist>
<member>Download: <ulink url="&ojdk-download;"/></member>
<member>Download MD5 sum: &ojdk-md5sum;</member>
<member>Download Size: &ojdk-size;</member>
</simplelist>
<para>
Download (HTTP): <ulink url="&ojdk-download;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url=" "/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &ojdk-md5sum;
</para>
</listitem>
<listitem>
<para>
Download Size: &ojdk-size;
</para>
</listitem>
<listitem>
@ -137,7 +144,7 @@
</para>
</listitem>
<listitem>
<para>Estimated disk space required: &ojdk-buildsize;</para>
<para>Estimated disk space required: &ojdk-bdsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &ojdk-time;</para>
@ -146,21 +153,22 @@
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<bridgehead renderas="sect4">Optional test harness</bridgehead>
<itemizedlist spacing='compact'>
<listitem>
<para>Optional test harness
<simplelist>
<member>Download: <ulink url="&jtreg-download;"/></member>
<member>Download MD5 sum: &jtreg-md5sum;</member>
<member>Download Size: &jtreg-size;</member>
</simplelist>
<para>
<ulink url="&jtreg-download;"/>
</para>
</listitem>
<listitem>
<para>
Optional package (to get an icon for the
<filename>openjdk-8-policytool.desktop</filename> file):
<ulink url="&icedtea-web-download;"/>
Download MD5 sum: &jtreg-md5sum;
</para>
</listitem>
<listitem>
<para>
Download Size: &jtreg-size;
</para>
</listitem>
</itemizedlist>
@ -184,7 +192,10 @@
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="cacerts"/>,
<xref linkend="giflib"/>, and
<xref linkend="giflib"/>,
<xref linkend="lcms2"/>,
<xref linkend="libjpeg"/>,
<xref linkend="libpng"/>, and
<xref linkend="wget"/>
</para>
@ -215,19 +226,20 @@
&hotspot-md5sum; hotspot.tar.bz2
&jaxp-md5sum; jaxp.tar.bz2
&jaxws-md5sum; jaxws.tar.bz2
&langtools-md5sum; langtools.tar.bz2
&jdk-md5sum; jdk.tar.bz2
&langtools-md5sum; langtools.tar.bz2
&nashorn-md5sum; nashorn.tar.bz2
EOF
for subproject in corba hotspot jaxp jaxws langtools jdk nashorn; do
for subproject in corba hotspot jaxp jaxws jdk langtools nashorn; do
wget -c &ojdk-repo;/${subproject}/archive/&ojdk-tarball; \
-O ${subproject}.tar.bz2
done &amp;&amp;
md5sum -c subprojects.md5 &amp;&amp;
for subproject in corba hotspot jaxp jaxws langtools jdk nashorn; do
for subproject in corba hotspot jaxp jaxws jdk langtools nashorn; do
mkdir -pv ${subproject} &amp;&amp;
tar -xf ${subproject}.tar.bz2 --strip-components=1 -C ${subproject}
done</userinput></screen>
@ -238,9 +250,6 @@ done</userinput></screen>
<screen><userinput>tar -xf ../jtreg-&jtreg-version;.tar.gz</userinput></screen>
<!--TODO: it might be better to add instructions for the cacerts file at
this place and to use the switch "with-cacerts-file" -->
<note>
<para>
Before proceeding, you should ensure that your environment
@ -263,136 +272,58 @@ this place and to use the switch "with-cacerts-file" -->
(--with-milestone value can be modified to fit user preferences):
</para>
<screen><userinput>unset JAVA_HOME &amp;&amp;
sh ./configure \
--with-update-version=&ojdk-upd; \
--with-build-number=&ojdk-bd; \
--with-milestone=BLFS \
--enable-unlimited-crypto \
--with-zlib=system \
--with-giflib=system \
--with-extra-cflags="-std=c++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse" \
--with-extra-cxxflags="-std=c++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" &amp;&amp;
make DEBUG_BINARIES=true SCTP_WERROR= all &amp;&amp;
find build/*/images/j2sdk-image -iname \*.diz -delete
</userinput></screen>
<screen><userinput>unset JAVA_HOME &amp;&amp;
bash configure --enable-unlimited-crypto \
--disable-warnings-as-errors \
--with-stdc++lib=dynamic \
--with-giflib=system \
--with-jtreg=$PWD/jtreg \
--with-lcms=system \
--with-libjpeg=system \
--with-libpng=system \
--with-zlib=system \
--with-version-build="11" \
--with-version-pre="" \
--with-version-opt="" \
--with-cacerts-file=/etc/ssl/java/cacerts.jks &amp;&amp;
make images</userinput></screen>
<note>
<para>
Testing will involve the interplay of pairs of JVMs using the
networking interface, so networking must be started. If it
isn't, not only will these tests fail, but the test cleanup
will leave orphaned JVMs running. There will be many of
them. Rebooting may be the easiest recovery.
By default, the build system will use (NUMCPU - 1) jobs. To
override, set <envar>JOBS=&lt;X&gt;</envar> on make invocation.
</para>
</note>
<para>
Testing the newly built JVM involves several steps.
First, it is better to run the test suite in a frame buffer on a
different display, using Xvfb:
To test the results, issue: <command>make run-test-tier1</command>. Seven
tests are expected to fail, and 11 to error when building only the server
target. You can limit the number of concurrent tests by setting
<envar>JTREG="JOBS=&lt;X&gt;"</envar> where &lt;X&gt; is the number of
jobs.
</para>
<!-- Careful with the && below:
"export DISPLAY=... && somecommand &" exports only DISPLAY to "somecommand"
but not to the current environment, and
"echo $! .... &&" does not echo the right PID. So all && suppressed.-->
<screen role='nodump'><userinput>if [ -n "$DISPLAY" ]; then
OLD_DISP=$DISPLAY
fi
export DISPLAY=:20
nohup Xvfb $DISPLAY \
-fbdir $(pwd) \
-pixdepths 8 16 24 32 > Xvfb.out 2>&amp;1 &amp;
echo $! > Xvfb.pid
echo Waiting for Xvfb to initialize; sleep 1
nohup twm -display $DISPLAY \
-f /dev/null > twm.out 2>&amp;1 &amp;
echo $! > twm.pid
echo Waiting for twm to initialize; sleep 1
xhost +</userinput></screen>
<para>
Then, it is necessary to modify some files:
</para>
<screen role='nodump'><userinput>echo -e "
jdk_all = :jdk_core \\
:jdk_svc \\
:jdk_beans \\
:jdk_imageio \\
:jdk_sound \\
:jdk_sctp \\
com/sun/awt \\
javax/accessibility \\
javax/print \\
sun/pisces \\
com/sun/java/swing" >> jdk/test/TEST.groups &amp;&amp;
sed -e 's/all:.*jck.*/all: jtreg/' \
-e '/^JTREG /s@\$(JT_PLATFORM)/@@' \
-i langtools/test/Makefile</userinput></screen>
<para>
Some variables have to be set:
</para>
<screen role='nodump'><userinput>JT_JAVA=$(type -p javac | sed 's@/bin.*@@') &amp;&amp;
JT_HOME=$(pwd)/jtreg &amp;&amp;
PRODUCT_HOME=$(echo $(pwd)/build/*/images/j2sdk-image)</userinput></screen>
<para>
The tests are run as follows:
</para>
<screen role='nodump'><userinput>LANG=C make -k -C test \
JT_HOME=${JT_HOME} \
JT_JAVA=${JT_JAVA} \
PRODUCT_HOME=${PRODUCT_HOME} all || true
LANG=C ${JT_HOME}/bin/jtreg -a -v:fail,error \
-dir:$(pwd)/hotspot/test \
-k:\!ignore \
-jdk:${PRODUCT_HOME} \
:jdk || true</userinput></screen>
<para>
Tests duration depends on various factors such as the network speed
and the number of concurrent VM, which is computed from the number
of cores and threads, and the amount of RAM installed. A maximum of
120 SBU has been observed, but it may be as <quote>low</quote> as 80 SBU.
</para>
<para>
The test results can be compared to <ulink
url="http://download.java.net/openjdk/testresults/8/">these
results</ulink>, although they usually are run on a newer version. About
30 tests are known to fail, but the exact number depends on various
conditions, like whether the computer is connected to network, or to a
printer, and on the options given to configure
(<parameter>--enable-unlimited-crypto</parameter> is known to trigger
failures, but those come from the code in the tests, not from the
installation). Also, some tests may timeout if the machine is under load.
</para>
<para>
Next some cleanup has to be done. The instructions below only stop the
frame buffer, but it has been reported that some java VM may be left
running after the tests, so it is necessary to check orphaned processes:
</para>
<screen role='nodump'><userinput>kill -9 `cat twm.pid` &amp;&amp;
kill -9 `cat Xvfb.pid` &amp;&amp;
rm -f Xvfb.out twm.out &amp;&amp;
rm -f Xvfb.pid twm.pid &amp;&amp;
if [ -n "$OLD_DISP" ]; then
DISPLAY=$OLD_DISP
fi</userinput></screen>
<para>Install the package with the following commands as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>cp -RT build/*/images/j2sdk-image /opt/OpenJDK-&openjdk-version; &amp;&amp;
chown -R root:root /opt/OpenJDK-&openjdk-version;</userinput></screen>
<screen role="root"><userinput>install -vdm755 /opt/jdk-&openjdk-version;+&openjdk-build; &amp;&amp;
cp -Rv build/*/images/jdk/* /opt/jdk-&openjdk-version;+&openjdk-build; &amp;&amp;
chown -R root:root /opt/jdk-&openjdk-version;+&openjdk-build; &amp;&amp;
find /opt/jdk-&openjdk-version;+&openjdk-build; -name \*.diz -delete &amp;&amp;
for s in 16 24 32 48; do
install -Dm 644 jdk/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png \
/usr/share/icons/hicolor/${s}x${s}/apps/java9.png
done
</userinput></screen>
<note>
<para>
If you only wish to install the Java Runtime Environment, you can
substitue <filename>build/*/images/jre</filename> in the above
<command>cp</command> command.
</para>
</note>
<para>
There are now two <application>OpenJDK</application> SDKs installed
in <filename class="directory">/opt</filename>. You should decide on
@ -402,38 +333,53 @@ chown -R root:root /opt/OpenJDK-&openjdk-version;</userinput></screen>
user:
</para>
<screen role="root"><userinput>ln -v -nsf OpenJDK-&openjdk-version; /opt/jdk</userinput></screen>
<screen role="root"><userinput>ln -v -nsf jdk-&openjdk-version;+&openjdk-build; /opt/jdk</userinput></screen>
<para>
If desired, you may install a .desktop file corresponding to an entry
in a desktop menu for <command>policytool</command>. First, you need to
obtain an icon from <xref linkend="icedtea-web"/>:
</para>
<screen><userinput>tar -xf ../icedtea-web-&icedtea-web-version;.tar.gz \
icedtea-web-&icedtea-web-version;/javaws.png \
--strip-components=1</userinput></screen>
<para>
Now, as <systemitem class="username">root</systemitem> user:
If desired, you may create .desktop files to add entries
in the menu for <command>java</command>, <command>policytool</command>,
and <command>jconsole</command>. The needed icons have already been
installed. As the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>mkdir -pv /usr/share/applications &amp;&amp;
cat &gt; /usr/share/applications/openjdk-8-policytool.desktop &lt;&lt; "EOF" &amp;&amp;
cat &gt; /usr/share/applications/openjdk-9-java.desktop &lt;&lt; "EOF" &amp;&amp;
<literal>[Desktop Entry]
Name=OpenJDK Java Policy Tool
Name[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica
Comment=OpenJDK Java Policy Tool
Comment[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica
Name=OpenJDK Java 9 Runtime
Comment=OpenJDK Java 9 Runtime
Exec=/opt/jdk/bin/java -jar
Terminal=false
Type=Application
Icon=java9
MimeType=application/x-java-archive;application/java-archive;application/x-jar;
NoDisplay=true</literal>
EOF
cat &gt; /usr/share/applications/openjdk-9-policytool.desktop &lt;&lt; "EOF" &amp;&amp;
<literal>[Desktop Entry]
Name=OpenJDK Java 9 Policy Tool
Name[pt_BR]=OpenJDK Java 9 - Ferramenta de Pol&#237;tica
Comment=OpenJDK Java 9 Policy Tool
Comment[pt_BR]=OpenJDK Java 9 - Ferramenta de Pol&#237;tica
Exec=/opt/jdk/bin/policytool
Terminal=false
Type=Application
Icon=javaws
Icon=java9
Categories=Settings;</literal>
EOF
install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
cat &gt; /usr/share/applications/openjdk-9-jconsole.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=OpenJDK Java 9 Console
Comment=OpenJDK Java 9 Console
Keywords=java;console;monotoring
Exec=/opt/jdk/bin/jconsole
Terminal=false
Type=Application
Icon=java9
Categories=Application;System;</literal>
EOF</userinput></screen>
<para>
The choice of pt_BR is just an example. You can add any translation
@ -448,32 +394,9 @@ install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
<title>Command Explanations</title>
<para>
<command>sh configure...</command>: the top level
<command>bash configure...</command>: the top level
<filename>configure</filename> is a wrapper around the autotools one.
It is not executable and must be run through <command>sh</command>.
</para>
<para>
<option>--with-boot-jdk</option>: This switch provides the
location of the temporary <application>JDK</application>. It is normally
not needed if <command>java</command> is found in the <envar>PATH</envar>.
</para>
<para>
<parameter>--with-update-version</parameter>: Currently, the build
system does not include the update number in the version string. It has
to be specified here.
</para>
<para>
<parameter>--with-build-number</parameter>: Again, the build
system does not include the build number in the version string. It has
to be specified here too.
</para>
<para>
<parameter>--with-milestone</parameter>: Used to customize the
version string.
It is not executable and must be run through <command>bash</command>.
</para>
<para>
@ -486,40 +409,57 @@ install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
</para>
<para>
<parameter>--with-zlib=system, --with-giflib=system</parameter>: Allows
to use the system libraries instead of the bundled ones.
<parameter>--disable-warnings-as-errors</parameter>: This switch disables
use of <envar>-Werror</envar> in the build.
</para>
<para>
<parameter>--with-extra-cflags=... --with-extra-cxxflags=...</parameter>:
Works around some defects in the code brought to light by the GCC 6
more rigorous checking of the C/C++ constructs. Remove those switches
if compiling with GCC 5.
<parameter>--with-stdc++lib=dynamic</parameter>: This switch forces the
build system to link to <filename>libstdc++.so</filename> (dynamic)
instead of <filename>libstdc++.a</filename> (static).
</para>
<para>
<option>--with-jobs=N</option>: Allows setting the number
of jobs for <command>make</command> equal to N. The default is the
result of a calculation involving the available memory and the number
of processors. Note that even if you specify N=1, some parallelization
may be used during the build. The SBU given above are with N=4, on
a single processor, 4-core, virtual machine, with 4 GB of memory.
<parameter>--with-jtreg=$PWD/jtreg</parameter>: This switch tells
configure where to find jtreg. Omit if you have not downloaded the
optional test suite.
</para>
<para>
<option>--with-cacerts-file=...</option>: Specifies where to find a
<filename>cacerts</filename> file, <filename class="directory">
/etc/ssl/java/cacerts</filename> on a BLFS system. Otherwise, an empty
one is created. You can use the
<parameter>--with-{giflib,lcms,libjpeg,libpng,zlib}=system</parameter>:
These switches force the build system to use the system libraries instead
of the bundled versions.
</para>
<para>
<parameter>--with-version-build</parameter>: Currently, the build
system does not include the build number in the version string. It has
to be specified here.
</para>
<para>
<parameter>--with-version-pre</parameter>: This switch allows you to
prefix the version string with a custom string.
</para>
<para>
<parameter>--with-version-opt</parameter>: This switch allows you to add
an optional build description to the version string.
</para>
<para>
<parameter>--with-cacerts-file=/etc/ssl/java/cacerts.jks</parameter>:
Specifies where to find a <filename>cacerts</filename> file,
<filename class="directory">/etc/ssl/java/cacerts</filename> on a BLFS
system. Otherwise, an empty one is created. You can use the
<command>/usr/sbin/make-ca --force</command> command to generate it, once
you have installed the Java binaries.
</para>
<para>
<command>make DEBUG_BINARIES=true SCTP_WERROR= all</command>: The build
fails on 32 bit machines if DEBUG_BINARIES is not set to true. Unsetting
SCTP_WERROR is part of the workarounds needed to use GCC 6. You may omit
that part of the command if using GCC 5.
<option>--with-boot-jdk</option>: This switch provides the
location of the temporary <application>JDK</application>. It is normally
not needed if <command>java</command> is found in the <envar>PATH</envar>.
</para>
<para>
@ -559,7 +499,7 @@ install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
<para>
<application>OpenJDK</application> uses its own format for the
CA certificates. Those certificates are located in a file named
<filename>/etc/ssl/java/cacerts</filename>. That file should be
<filename>/etc/ssl/java/cacerts.jks</filename>. That file should be
generated using the system PKI trust store. The instructions
on the <xref linkend="cacerts"/> page should be used to update the file
located in <filename>/etc/ssl/java</filename>. Setup a symlink in the
@ -567,7 +507,7 @@ install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
user:
</para>
<screen role="root"><userinput>ln -sfv /etc/ssl/java/cacerts /opt/jdk/jre/lib/security/cacerts</userinput></screen>
<screen role="root"><userinput>ln -sfv /etc/ssl/java/cacerts.jks /opt/jdk/lib/security/cacerts</userinput></screen>
<para>
Use the following commands to check if the <filename>cacerts</filename>

View File

@ -41,6 +41,23 @@
</itemizedlist>
</listitem>
-->
<listitem>
<para>February 19th, 2018</para>
<itemizedlist>
<listitem>
<para>[dj] - Update to OpenJDK-9.0.4. Fixes
<ulink url="&blfs-ticket-root;9929">#9929</ulink>.</para>
</listitem>
<listitem>
<para>[dj] - Update to make-ca-0.7.</para>
</listitem>
<listitem>
<para>[dj] - Update to Apache-Ant-1.10.2. Fixes
<ulink url="&blfs-ticket-root;10377">#10377</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>February 18th, 2018</para>
<itemizedlist>

View File

@ -24,7 +24,7 @@
<!ENTITY linux-pam-version "1.3.0">
<!ENTITY linux-pam-docs-version "1.2.0">
<!ENTITY libpwquality-version "1.4.0">
<!ENTITY make-ca-version "0.6">
<!ENTITY make-ca-version "0.7">
<!ENTITY mitkrb-major-version "1.16">
<!ENTITY mitkrb-version "1.16">
<!ENTITY nettle-version "3.4">
@ -344,10 +344,11 @@ to avoid building libxml2 twice, which is slow with all deps -->
<!ENTITY valgrind-version "3.13.0">
<!ENTITY yasm-version "1.3.0">
<!ENTITY apache-ant-version "1.10.1">
<!ENTITY apache-ant-version "1.10.2">
<!ENTITY junit-version "4.11">
<!ENTITY hamcrest-version "1.3">
<!ENTITY openjdk-version "1.8.0.141">
<!ENTITY openjdk-version "9.0.4">
<!ENTITY openjdk-build "11">
<!ENTITY python2-majorver "2.7">
<!ENTITY python3-majorver "3.6">

View File

@ -6,12 +6,12 @@
<!ENTITY certhost "https://hg.mozilla.org/">
<!ENTITY certpath "/lib/ckfw/builtins/certdata.txt">
<!ENTITY cacerts-buildsize "6.5 MB (with all runtime deps)">
<!ENTITY cacerts-time "0.2 SBU (with all runtime deps)">
<!ENTITY cacerts-buildsize "6.6 MB (with all runtime deps)">
<!ENTITY cacerts-time "0.3 SBU (with all runtime deps)">
<!ENTITY make-ca-download "https://github.com/djlucas/make-ca/archive/v&make-ca-version;/make-ca-&make-ca-version;.tar.gz">
<!ENTITY make-ca-size "36 KB">
<!ENTITY make-ca-md5sum "851f9e267f343c54db8caa87ec5b3d75">
<!ENTITY make-ca-md5sum "4f180b9bf3b11f29d6a79e6022aeae23">
]>
<sect1 id="cacerts" xreflabel="Certificate Authority Certificates">

View File

@ -89,31 +89,7 @@
</simplelist>
</para>
</listitem>
<listitem>
<para>Java Advanced Imaging (JAI) API components (architecture dependent):
<simplelist>
<member><ulink url="&jai-download;"/></member>
<member>&jai-md5sum;</member>
<member>&jai-size;</member>
</simplelist>
<literallayout>or</literallayout> <!-- Force some space -->
<simplelist>
<member><ulink url="&jai64-download;"/></member>
<member>&jai64-md5sum;</member>
<member>&jai64-size;</member>
</simplelist>
</para>
</listitem>
</itemizedlist>
<!-- <itemizedlist spacing="compact">
<title>Required patch</title>
<listitem>
<para>
<ulink url="&patch-root;/fop-&fop-version;-listNPE-1.patch"/>
</para>
</listitem>
</itemizedlist>-->
<bridgehead renderas="sect3">fop Dependencies</bridgehead>
@ -165,34 +141,11 @@ rm -rf offo-hyphenation</userinput></screen>
</sect3>
<sect3>
<title>Installing Java Advanced Imaging (JAI) API components</title>
<para>
Install the JAI API components. As the <systemitem
class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>case `uname -m` in
i?86)
tar -xf ../jai-&jai-version;-lib-linux-i586.tar.gz
cp -v jai-&jai-version;/lib/{jai*,mlibwrapper_jai.jar} $JAVA_HOME/jre/lib/ext/
cp -v jai-&jai-version;/lib/libmlib_jai.so $JAVA_HOME/jre/lib/i386/
;;
x86_64)
tar -xf ../jai-&jai-version;-lib-linux-amd64.tar.gz
cp -v jai-&jai-version;/lib/{jai*,mlibwrapper_jai.jar} $JAVA_HOME/jre/lib/ext/
cp -v jai-&jai-version;/lib/libmlib_jai.so $JAVA_HOME/jre/lib/amd64/
;;
esac</userinput></screen>
</sect3>
<sect3>
<title>Installing fop Components</title>
<para>
The <command>javadoc</command> command coming with OpenJDK 8 has
The <command>javadoc</command> command coming with OpenJDK 9 has
become much stricter than before regarding the conformance of the
Javadoc comments in source code to HTML. The FOP documentation does
not meet those standard, so the conformance checks have to be
@ -201,7 +154,9 @@ esac</userinput></screen>
<screen><userinput>sed -i '\@&lt;/javad@i\
&lt;arg value="-Xdoclint:none"/&gt;\
&lt;arg value="--allow-script-in-comments"/&gt;' fop/build.xml</userinput></screen>
&lt;arg value="--allow-script-in-comments"/&gt;\
&lt;arg value="--ignore-source-errors"/&gt;' \
fop/build.xml</userinput></screen>
<para>
The stack size set in <filename>build.xml</filename> for building the
@ -217,11 +172,7 @@ esac</userinput></screen>
<screen><userinput>cd fop &amp;&amp;
export LC_ALL=en_US.UTF-8 &amp;&amp;
ant compile &amp;&amp;
ant jar-main &amp;&amp;
ant jar-hyphenation &amp;&amp;
ant javadocs &amp;&amp;
ant all javadocs &amp;&amp;
mv build/javadocs .</userinput></screen>
<para>
@ -356,10 +307,17 @@ EOF</userinput></screen>
<para>
To include the <command>fop</command> script in your path,
update your personal or system-wide profile with the following:
update the system-wide profile with the following command as the
<systemitem class="username">root</systemitem> user:
</para>
<screen><literal>PATH=$PATH:/opt/fop</literal></screen>
<screen><literal>cat &gt; /etc/profile.d/fop.sh &lt;&lt; "EOF"
# Begin /etc/profile.d/fop.sh
pathappend /opt/fop
# End /etc/profile.d/fop.sh
EOF</literal></screen>
<note>
<para>