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$ --> <!-- $LastChangedBy$ $Date$ -->
<!ENTITY day "18"> <!-- Always 2 digits --> <!ENTITY day "19"> <!-- Always 2 digits -->
<!ENTITY month "02"> <!-- Always 2 digits --> <!ENTITY month "02"> <!-- Always 2 digits -->
<!ENTITY year "2018"> <!ENTITY year "2018">
<!ENTITY copyrightdate "2001-&year;"> <!ENTITY copyrightdate "2001-&year;">
<!ENTITY copyholder "The BLFS Development Team"> <!ENTITY copyholder "The BLFS Development Team">
<!ENTITY version "&year;-&month;-&day;"> <!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 pubdate "&year;-&month;-&day;"> <!-- metadata req. by TLDP -->
<!ENTITY blfs-version "svn"> <!-- svn|[release #] --> <!ENTITY blfs-version "svn"> <!-- svn|[release #] -->
<!ENTITY lfs-version "development"> <!-- x.y|development --> <!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-http "https://archive.apache.org/dist/ant/source/apache-ant-&apache-ant-version;-src.tar.xz">
<!ENTITY apache-ant-download-ftp " "> <!ENTITY apache-ant-download-ftp " ">
<!ENTITY apache-ant-md5sum "ebecbe7488c624b06bc6a264a3a7c4ec"> <!ENTITY apache-ant-md5sum "57235f3dccfc4b18a260862905ce6c04">
<!ENTITY apache-ant-size "3.4 MB"> <!ENTITY apache-ant-size "3.6 MB">
<!ENTITY apache-ant-buildsize "121 MB"> <!ENTITY apache-ant-buildsize "262 MB">
<!ENTITY apache-ant-time "0.3 SBU (with a JVM using 4 cores)"> <!ENTITY apache-ant-time "0.3 SBU (with a JVM using 4 cores)">
]> ]>
@ -68,13 +68,25 @@
<listitem> <listitem>
<para> <para>
Required file: <ulink 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> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Required file: <ulink 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> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -100,58 +112,55 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Apache Ant</title> <title>Installation of Apache Ant</title>
<note> <note><para>Several dependent packages have moved since the packaging of
<para>You may need additional libraries to satisfy the build <application>Ant</application> requiring download of the above extra files.
requirements of various packages installed using Copy those files into the source tree with the following
<application>Apache Ant</application>. Review the table at commands:</para></note>
<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>
<!-- <para>If it is not possible to install the recommended <screen><userinput>cp -v ../jai-core-1.1.3.jar \
<application>JUnit</application> package, install ../jai-codec-1.1.3.jar \
<application>Apache Ant</application> by removing the reference to the test ../xz-1.0.jar lib &amp;&amp;
instructions (note that the tests will not be performed):</para> 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>Build a limited bootstrap version of <application>Apache
--> Ant</application> using the following command:</para>
<para>Unpack and copy the <application>junit</application> and
<application>hamcrest</application> jar files to the
local directory tree.</para>
<screen><userinput>cp -v ../junit-&junit-version;.jar \ <screen><userinput>./bootstrap.sh</userinput></screen>
../hamcrest-core-&hamcrest-version;.jar lib/optional</userinput></screen>
<para>Install <application>Apache Ant</application> by running the following <para>Download the rest of the runtime dependencies using the
commands:</para> <filename>fetch.xml</filename> ant build script:</para>
<para>The unit regression tests are performed during the build step below <screen><userinput>bootstrap/bin/ant -f fetch.xml -Ddest=system || true &amp;&amp;
unless <application>JUnit</application> is not installed. Now, as the cp -v lib/*.jar lib/optional/</userinput></screen>
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>./build.sh -Ddist.dir=/opt/ant-&apache-ant-version; dist &amp;&amp; <para>Build <application>Apache Ant</application> by running the following
ln -v -sfn ant-&apache-ant-version; /opt/ant</userinput></screen> command:</para>
<note><para>Make sure the JAVA_HOME environment variable is set for the <screen><userinput>./build.sh -Ddist.dir=$PWD/ant-&apache-ant-version; dist</userinput></screen>
<systemitem class="username">root</systemitem> user.</para></note>
<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>
<sect2 role="commands"> <sect2 role="commands">
<title>Command Explanations</title> <title>Command Explanations</title>
<para><command>cp -v ... lib/optional</command>: <para><command>bootstrap/bin/ant -f fetch.xml -Ddest=system ||
This command copies the JUnit and hamcrest jar files into the directory true</command>: These commands download the rest of the missing dependencies
where Apache Ant will look for them.</para> into the source tree (in the <filename>lib/</filename> directory).</para>
<para><command>./build.sh -Ddist.dir=/opt/ant-&apache-ant-version; <para><command>cp -v ... lib/optional</command>: This command copies the
dist</command>: This command does everything. It builds, tests, then 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 installs the package into
<filename class='directory'>/opt/ant-&apache-ant-version;</filename>.</para> <filename class='directory'>a temporary directory.</filename>.</para>
<para><command>ln -v -sfn ant-&apache-ant-version; /opt/ant</command>: This
command is optional, and creates a convenience symlink.</para>
</sect2> </sect2>

View File

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

View File

@ -4,35 +4,31 @@
<!ENTITY % general-entities SYSTEM "../../general.ent"> <!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities; %general-entities;
<!ENTITY ojdk-upd "141"> <!ENTITY ojdk-tarball "jdk-&openjdk-version;+&openjdk-build;.tar.bz2">
<!ENTITY ojdk-bd "b15"> <!ENTITY ojdk-repo "http://hg.openjdk.java.net/jdk-updates/jdk9u">
<!ENTITY ojdk-tarball "jdk8u&ojdk-upd;-&ojdk-bd;.tar.bz2">
<!ENTITY ojdk-repo "http://hg.openjdk.java.net/jdk8u/jdk8u">
<!ENTITY ojdk-download "&ojdk-repo;/archive/&ojdk-tarball;"> <!ENTITY ojdk-download "&ojdk-repo;/archive/&ojdk-tarball;">
<!ENTITY anduin-download "&sources-anduin-http;/OpenJDK/OpenJDK-&openjdk-version;"> <!ENTITY anduin-download "&sources-anduin-http;/OpenJDK/OpenJDK-&openjdk-version;">
<!ENTITY ojdk-md5sum "df3504e95d6e88924babb3821d4210a6"> <!ENTITY ojdk-md5sum "174205155c001cf0cc5d3250d86cfb69">
<!ENTITY ojdk-size "498 KB"> <!ENTITY ojdk-size "812 KB">
<!ENTITY corba-md5sum "4061c0f2dc553cf92847e4a39a03ea4e"> <!ENTITY corba-md5sum "dbc62e27a93686a9aea12e9c97c2f765">
<!ENTITY hotspot-md5sum "269a0fde90b9ab5ca19fa82bdb3d6485"> <!ENTITY hotspot-md5sum "25853ba33123397b2e755249f102ae73">
<!ENTITY jaxp-md5sum "a1dfcd15119dd10db6e91dc2019f14e7"> <!ENTITY jaxp-md5sum "f5ab5e468565e1ab3a181d2efb45b51f">
<!ENTITY jaxws-md5sum "16f904d990cb6a3c84ebb81bd6bea1e7"> <!ENTITY jaxws-md5sum "520ff49cb470fbcec2f46cbb3fdb377d">
<!ENTITY jdk-md5sum "c4a99c9c5293bb5c174366664843c8ce"> <!ENTITY jdk-md5sum "be9f261b19451ab1300c5842188e3fe2">
<!ENTITY langtools-md5sum "4fb652cdd6fee5f2873b00404e9a01f3"> <!ENTITY langtools-md5sum "22b65322d04c8ffafd77230dbe5f178f">
<!ENTITY nashorn-md5sum "c2f06cd8d6e90f3dcc57bec53f419afe"> <!ENTITY nashorn-md5sum "729d03b0cede2f697ad77170a9d89095">
<!ENTITY total-download-size "63 MB"> <!ENTITY total-download-size "83 MB">
<!ENTITY jtreg-version "4.2-b08-891"> <!ENTITY jtreg-version "4.2-b12">
<!ENTITY jtreg-download "&anduin-download;/jtreg-&jtreg-version;.tar.gz"> <!ENTITY jtreg-download "https://ci.adoptopenjdk.net/view/all/job/jtreg/lastSuccessfulBuild/artifact/jtreg-&jtreg-version;.tar.gz">
<!ENTITY jtreg-md5sum "f409d5313b5d9aa81bb6868082fda161"> <!ENTITY jtreg-md5sum "630ac0b2108a48a85d71dc1fba856fda">
<!ENTITY jtreg-size "6.8 MB"> <!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-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)">
<!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)">
]> ]>
<sect1 id="openjdk" xreflabel="OpenJDK-&openjdk-version;"> <sect1 id="openjdk" xreflabel="OpenJDK-&openjdk-version;">
@ -60,7 +56,7 @@
runtime environment to run <application>Java</application> programs. runtime environment to run <application>Java</application> programs.
</para> </para>
&lfs81_checked; &lfs82_checked;
<note> <note>
<para> <para>
@ -121,12 +117,23 @@
<bridgehead renderas="sect3">Source Package Information</bridgehead> <bridgehead renderas="sect3">Source Package Information</bridgehead>
<itemizedlist spacing="compact"> <itemizedlist spacing="compact">
<listitem> <listitem>
<para>OpenJDK Root Package <para>
<simplelist> Download (HTTP): <ulink url="&ojdk-download;"/>
<member>Download: <ulink url="&ojdk-download;"/></member> </para>
<member>Download MD5 sum: &ojdk-md5sum;</member> </listitem>
<member>Download Size: &ojdk-size;</member> <listitem>
</simplelist> <para>
Download (FTP): <ulink url=" "/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &ojdk-md5sum;
</para>
</listitem>
<listitem>
<para>
Download Size: &ojdk-size;
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
@ -137,7 +144,7 @@
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>Estimated disk space required: &ojdk-buildsize;</para> <para>Estimated disk space required: &ojdk-bdsize;</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Estimated build time: &ojdk-time;</para> <para>Estimated build time: &ojdk-time;</para>
@ -146,21 +153,22 @@
<bridgehead renderas="sect3">Additional Downloads</bridgehead> <bridgehead renderas="sect3">Additional Downloads</bridgehead>
<bridgehead renderas="sect4">Optional test harness</bridgehead>
<itemizedlist spacing='compact'> <itemizedlist spacing='compact'>
<listitem> <listitem>
<para>Optional test harness <para>
<simplelist> <ulink url="&jtreg-download;"/>
<member>Download: <ulink url="&jtreg-download;"/></member>
<member>Download MD5 sum: &jtreg-md5sum;</member>
<member>Download Size: &jtreg-size;</member>
</simplelist>
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Optional package (to get an icon for the Download MD5 sum: &jtreg-md5sum;
<filename>openjdk-8-policytool.desktop</filename> file): </para>
<ulink url="&icedtea-web-download;"/> </listitem>
<listitem>
<para>
Download Size: &jtreg-size;
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -184,7 +192,10 @@
<bridgehead renderas="sect4">Recommended</bridgehead> <bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended"> <para role="recommended">
<xref linkend="cacerts"/>, <xref linkend="cacerts"/>,
<xref linkend="giflib"/>, and <xref linkend="giflib"/>,
<xref linkend="lcms2"/>,
<xref linkend="libjpeg"/>,
<xref linkend="libpng"/>, and
<xref linkend="wget"/> <xref linkend="wget"/>
</para> </para>
@ -215,19 +226,20 @@
&hotspot-md5sum; hotspot.tar.bz2 &hotspot-md5sum; hotspot.tar.bz2
&jaxp-md5sum; jaxp.tar.bz2 &jaxp-md5sum; jaxp.tar.bz2
&jaxws-md5sum; jaxws.tar.bz2 &jaxws-md5sum; jaxws.tar.bz2
&langtools-md5sum; langtools.tar.bz2
&jdk-md5sum; jdk.tar.bz2 &jdk-md5sum; jdk.tar.bz2
&langtools-md5sum; langtools.tar.bz2
&nashorn-md5sum; nashorn.tar.bz2 &nashorn-md5sum; nashorn.tar.bz2
EOF 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; \ wget -c &ojdk-repo;/${subproject}/archive/&ojdk-tarball; \
-O ${subproject}.tar.bz2 -O ${subproject}.tar.bz2
done &amp;&amp; done &amp;&amp;
md5sum -c subprojects.md5 &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; mkdir -pv ${subproject} &amp;&amp;
tar -xf ${subproject}.tar.bz2 --strip-components=1 -C ${subproject} tar -xf ${subproject}.tar.bz2 --strip-components=1 -C ${subproject}
done</userinput></screen> done</userinput></screen>
@ -238,9 +250,6 @@ done</userinput></screen>
<screen><userinput>tar -xf ../jtreg-&jtreg-version;.tar.gz</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> <note>
<para> <para>
Before proceeding, you should ensure that your environment 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): (--with-milestone value can be modified to fit user preferences):
</para> </para>
<screen><userinput>unset JAVA_HOME &amp;&amp; <screen><userinput>unset JAVA_HOME &amp;&amp;
sh ./configure \ bash configure --enable-unlimited-crypto \
--with-update-version=&ojdk-upd; \ --disable-warnings-as-errors \
--with-build-number=&ojdk-bd; \ --with-stdc++lib=dynamic \
--with-milestone=BLFS \ --with-giflib=system \
--enable-unlimited-crypto \ --with-jtreg=$PWD/jtreg \
--with-zlib=system \ --with-lcms=system \
--with-giflib=system \ --with-libjpeg=system \
--with-extra-cflags="-std=c++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse" \ --with-libpng=system \
--with-extra-cxxflags="-std=c++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" &amp;&amp; --with-zlib=system \
make DEBUG_BINARIES=true SCTP_WERROR= all &amp;&amp; --with-version-build="11" \
find build/*/images/j2sdk-image -iname \*.diz -delete --with-version-pre="" \
</userinput></screen> --with-version-opt="" \
--with-cacerts-file=/etc/ssl/java/cacerts.jks &amp;&amp;
make images</userinput></screen>
<note> <note>
<para> <para>
Testing will involve the interplay of pairs of JVMs using the By default, the build system will use (NUMCPU - 1) jobs. To
networking interface, so networking must be started. If it override, set <envar>JOBS=&lt;X&gt;</envar> on make invocation.
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.
</para> </para>
</note> </note>
<para> <para>
Testing the newly built JVM involves several steps. To test the results, issue: <command>make run-test-tier1</command>. Seven
First, it is better to run the test suite in a frame buffer on a tests are expected to fail, and 11 to error when building only the server
different display, using Xvfb: 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> </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 <para>Install the package with the following commands as the
<systemitem class="username">root</systemitem> user:</para> <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>cp -RT build/*/images/j2sdk-image /opt/OpenJDK-&openjdk-version; &amp;&amp; <screen role="root"><userinput>install -vdm755 /opt/jdk-&openjdk-version;+&openjdk-build; &amp;&amp;
chown -R root:root /opt/OpenJDK-&openjdk-version;</userinput></screen> 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> <para>
There are now two <application>OpenJDK</application> SDKs installed There are now two <application>OpenJDK</application> SDKs installed
in <filename class="directory">/opt</filename>. You should decide on 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: user:
</para> </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> <para>
If desired, you may install a .desktop file corresponding to an entry If desired, you may create .desktop files to add entries
in a desktop menu for <command>policytool</command>. First, you need to in the menu for <command>java</command>, <command>policytool</command>,
obtain an icon from <xref linkend="icedtea-web"/>: and <command>jconsole</command>. The needed icons have already been
</para> installed. As the <systemitem class="username">root</systemitem> user:
<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:
</para> </para>
<screen role="root"><userinput>mkdir -pv /usr/share/applications &amp;&amp; <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] <literal>[Desktop Entry]
Name=OpenJDK Java Policy Tool Name=OpenJDK Java 9 Runtime
Name[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica Comment=OpenJDK Java 9 Runtime
Comment=OpenJDK Java Policy Tool Exec=/opt/jdk/bin/java -jar
Comment[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica 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 Exec=/opt/jdk/bin/policytool
Terminal=false Terminal=false
Type=Application Type=Application
Icon=javaws Icon=java9
Categories=Settings;</literal> Categories=Settings;</literal>
EOF 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> <para>
The choice of pt_BR is just an example. You can add any translation 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> <title>Command Explanations</title>
<para> <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. <filename>configure</filename> is a wrapper around the autotools one.
It is not executable and must be run through <command>sh</command>. It is not executable and must be run through <command>bash</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.
</para> </para>
<para> <para>
@ -486,40 +409,57 @@ install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
</para> </para>
<para> <para>
<parameter>--with-zlib=system, --with-giflib=system</parameter>: Allows <parameter>--disable-warnings-as-errors</parameter>: This switch disables
to use the system libraries instead of the bundled ones. use of <envar>-Werror</envar> in the build.
</para> </para>
<para> <para>
<parameter>--with-extra-cflags=... --with-extra-cxxflags=...</parameter>: <parameter>--with-stdc++lib=dynamic</parameter>: This switch forces the
Works around some defects in the code brought to light by the GCC 6 build system to link to <filename>libstdc++.so</filename> (dynamic)
more rigorous checking of the C/C++ constructs. Remove those switches instead of <filename>libstdc++.a</filename> (static).
if compiling with GCC 5.
</para> </para>
<para> <para>
<option>--with-jobs=N</option>: Allows setting the number <parameter>--with-jtreg=$PWD/jtreg</parameter>: This switch tells
of jobs for <command>make</command> equal to N. The default is the configure where to find jtreg. Omit if you have not downloaded the
result of a calculation involving the available memory and the number optional test suite.
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.
</para> </para>
<para> <para>
<option>--with-cacerts-file=...</option>: Specifies where to find a <parameter>--with-{giflib,lcms,libjpeg,libpng,zlib}=system</parameter>:
<filename>cacerts</filename> file, <filename class="directory"> These switches force the build system to use the system libraries instead
/etc/ssl/java/cacerts</filename> on a BLFS system. Otherwise, an empty of the bundled versions.
one is created. You can use the </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 <command>/usr/sbin/make-ca --force</command> command to generate it, once
you have installed the Java binaries. you have installed the Java binaries.
</para> </para>
<para> <para>
<command>make DEBUG_BINARIES=true SCTP_WERROR= all</command>: The build <option>--with-boot-jdk</option>: This switch provides the
fails on 32 bit machines if DEBUG_BINARIES is not set to true. Unsetting location of the temporary <application>JDK</application>. It is normally
SCTP_WERROR is part of the workarounds needed to use GCC 6. You may omit not needed if <command>java</command> is found in the <envar>PATH</envar>.
that part of the command if using GCC 5.
</para> </para>
<para> <para>
@ -559,7 +499,7 @@ install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
<para> <para>
<application>OpenJDK</application> uses its own format for the <application>OpenJDK</application> uses its own format for the
CA certificates. Those certificates are located in a file named 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 generated using the system PKI trust store. The instructions
on the <xref linkend="cacerts"/> page should be used to update the file 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 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: user:
</para> </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> <para>
Use the following commands to check if the <filename>cacerts</filename> Use the following commands to check if the <filename>cacerts</filename>

View File

@ -41,6 +41,23 @@
</itemizedlist> </itemizedlist>
</listitem> </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> <listitem>
<para>February 18th, 2018</para> <para>February 18th, 2018</para>
<itemizedlist> <itemizedlist>

View File

@ -24,7 +24,7 @@
<!ENTITY linux-pam-version "1.3.0"> <!ENTITY linux-pam-version "1.3.0">
<!ENTITY linux-pam-docs-version "1.2.0"> <!ENTITY linux-pam-docs-version "1.2.0">
<!ENTITY libpwquality-version "1.4.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-major-version "1.16">
<!ENTITY mitkrb-version "1.16"> <!ENTITY mitkrb-version "1.16">
<!ENTITY nettle-version "3.4"> <!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 valgrind-version "3.13.0">
<!ENTITY yasm-version "1.3.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 junit-version "4.11">
<!ENTITY hamcrest-version "1.3"> <!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 python2-majorver "2.7">
<!ENTITY python3-majorver "3.6"> <!ENTITY python3-majorver "3.6">

View File

@ -6,12 +6,12 @@
<!ENTITY certhost "https://hg.mozilla.org/"> <!ENTITY certhost "https://hg.mozilla.org/">
<!ENTITY certpath "/lib/ckfw/builtins/certdata.txt"> <!ENTITY certpath "/lib/ckfw/builtins/certdata.txt">
<!ENTITY cacerts-buildsize "6.5 MB (with all runtime deps)"> <!ENTITY cacerts-buildsize "6.6 MB (with all runtime deps)">
<!ENTITY cacerts-time "0.2 SBU (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-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-size "36 KB">
<!ENTITY make-ca-md5sum "851f9e267f343c54db8caa87ec5b3d75"> <!ENTITY make-ca-md5sum "4f180b9bf3b11f29d6a79e6022aeae23">
]> ]>
<sect1 id="cacerts" xreflabel="Certificate Authority Certificates"> <sect1 id="cacerts" xreflabel="Certificate Authority Certificates">

View File

@ -89,31 +89,7 @@
</simplelist> </simplelist>
</para> </para>
</listitem> </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>
<!-- <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> <bridgehead renderas="sect3">fop Dependencies</bridgehead>
@ -165,34 +141,11 @@ rm -rf offo-hyphenation</userinput></screen>
</sect3> </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> <sect3>
<title>Installing fop Components</title> <title>Installing fop Components</title>
<para> <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 become much stricter than before regarding the conformance of the
Javadoc comments in source code to HTML. The FOP documentation does Javadoc comments in source code to HTML. The FOP documentation does
not meet those standard, so the conformance checks have to be 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\ <screen><userinput>sed -i '\@&lt;/javad@i\
&lt;arg value="-Xdoclint:none"/&gt;\ &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> <para>
The stack size set in <filename>build.xml</filename> for building the 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; <screen><userinput>cd fop &amp;&amp;
export LC_ALL=en_US.UTF-8 &amp;&amp; export LC_ALL=en_US.UTF-8 &amp;&amp;
ant all javadocs &amp;&amp;
ant compile &amp;&amp;
ant jar-main &amp;&amp;
ant jar-hyphenation &amp;&amp;
ant javadocs &amp;&amp;
mv build/javadocs .</userinput></screen> mv build/javadocs .</userinput></screen>
<para> <para>
@ -356,10 +307,17 @@ EOF</userinput></screen>
<para> <para>
To include the <command>fop</command> script in your path, 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> </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> <note>
<para> <para>