import java-1.8.0-openjdk-1.8.0.372.b07-4.el8
This commit is contained in:
parent
977f521080
commit
d151d9fc33
2404
SOURCES/NEWS
2404
SOURCES/NEWS
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,34 @@
|
||||
Package of LTS OpenJDK 8
|
||||
OpenJDK have release cadence of 6 months. but 3/4 of them are Short Term Supported for 6 months only. This package is designed to harbore them. Currently it is build on openJDK 10. LTSs (next is 11) will go as separate packages.
|
||||
OpenJDK 8 is a Long-Term Support (LTS) release of the Java platform.
|
||||
|
||||
JDK8 is last LTS release of Java platform. It is bringing many cool improvements - http://openjdk.java.net/projects/jdk/8/ and is landing to your RHEL. Where it will be maintained for several years. You will always be allowed to install Used LTSs in build root, and alongside via alternatives.
|
||||
For a list of major changes in OpenJDK 8 (java-1.8.0-openjdk), see the
|
||||
upstream release page: https://openjdk.org/projects/jdk8/features
|
||||
|
||||
See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
|
||||
See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf
|
||||
# Rebuilding the OpenJDK package
|
||||
|
||||
The OpenJDK packages are now created from a single build which is then
|
||||
packaged for different major versions of Red Hat Enterprise Linux
|
||||
(RHEL). This allows the OpenJDK team to focus their efforts on the
|
||||
development and testing of this single build, rather than having
|
||||
multiple builds which only differ by the platform they were built on.
|
||||
|
||||
This does make rebuilding the package slightly more complicated than a
|
||||
normal package. Modifications should be made to the
|
||||
`java-1.8.0-openjdk-portable.specfile` file, which can be found with
|
||||
this README file in the source RPM or installed in the documentation
|
||||
tree by the `java-1.8.0-openjdk-headless` RPM.
|
||||
|
||||
Once the modified `java-1.8.0-openjdk-portable` RPMs are built, they
|
||||
should be installed and will produce a number of tarballs in the
|
||||
`/usr/lib/jvm` directory. The `java-1.8.0-openjdk` RPMs can then be
|
||||
built, which will use these tarballs to create the usual RPMs found in
|
||||
RHEL. The `java-1.8.0-openjdk-portable` RPMs can be uninstalled once
|
||||
the desired final RPMs are produced.
|
||||
|
||||
Note that the `java-1.8.0-openjdk.spec` file has a hard requirement on
|
||||
the exact version of java-1.8.0-openjdk-portable to use, so this will
|
||||
need to be modified if the version or rpmrelease values are changed in
|
||||
`java-1.8.0-openjdk-portable.specfile`.
|
||||
|
||||
To reduce the number of RPMs involved, the `fastdebug` and `slowdebug`
|
||||
builds may be disabled using `--without fastdebug` and `--without
|
||||
slowdebug`.
|
||||
|
2388
SOURCES/java-1.8.0-openjdk-portable.specfile
Normal file
2388
SOURCES/java-1.8.0-openjdk-portable.specfile
Normal file
File diff suppressed because it is too large
Load Diff
@ -17,7 +17,7 @@ fi
|
||||
d=`mktemp -d`
|
||||
NW=$d/$f
|
||||
pushd $d
|
||||
jar xf $ORIG
|
||||
unzip $ORIG
|
||||
cat $M
|
||||
# sed -i "s/Created-By.*/Created-By: 1.7.0/g" $M
|
||||
sed -i "s/Created-By.*/Created-By: $2/g" $M
|
||||
|
@ -123,6 +123,8 @@
|
||||
%global ssbd_arches x86_64
|
||||
# Set of architectures where we verify backtraces with gdb
|
||||
%global gdb_arches %{jit_arches} %{zero_arches}
|
||||
# Set of architectures for which we have a portable build
|
||||
%global portable_build_arches %{aarch64} %{ix86} %{power64} s390x x86_64
|
||||
|
||||
# By default, we build a debug build during main build on JIT architectures
|
||||
%if %{with slowdebug}
|
||||
@ -189,6 +191,9 @@
|
||||
%endif
|
||||
%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
|
||||
|
||||
# debugedit tool for rewriting ELF file paths
|
||||
%global debugedit %{_rpmconfigdir}/debugedit
|
||||
|
||||
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
|
||||
# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2
|
||||
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs)
|
||||
@ -334,7 +339,12 @@
|
||||
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
|
||||
# eg jdk8u60-b27 -> b27
|
||||
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
|
||||
%global rpmrelease 1
|
||||
%global rpmrelease 4
|
||||
# Settings used by the portable build
|
||||
%global portablerelease 2
|
||||
%global portablesuffix el8
|
||||
%global portablebuilddir /builddir/build/BUILD
|
||||
|
||||
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
|
||||
# Release will be (where N is usually a number starting at 1):
|
||||
# - 0.N%%{?extraver}%%{?dist} for EA releases,
|
||||
@ -359,10 +369,7 @@
|
||||
# parametrized macros are order-sensitive
|
||||
%global compatiblename %{name}
|
||||
%global fullversion %{compatiblename}-%{version}-%{release}
|
||||
# images stub
|
||||
%global jdkimage j2sdk-image
|
||||
# output dir stub
|
||||
%define buildoutputdir() %{expand:build/jdk8.build%{?1}}
|
||||
%define installoutputdir() %{expand:install/jdk8.install%{?1}}
|
||||
# we can copy the javadoc to not arched dir, or make it not noarch
|
||||
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
|
||||
@ -794,6 +801,8 @@ exit 0
|
||||
%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
|
||||
%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
|
||||
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
|
||||
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/README.md
|
||||
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/java-1.%{majorver}.0-openjdk-portable.specfile
|
||||
%dir %{_jvmdir}/%{sdkdir -- %{?1}}
|
||||
%{_jvmdir}/%{jrelnk -- %{?1}}
|
||||
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
|
||||
@ -1068,25 +1077,24 @@ exit 0
|
||||
|
||||
%define files_demo() %{expand:
|
||||
%defattr(-,root,root,-)
|
||||
%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
|
||||
%license %{installoutputdir -- %{?1}}/jre/LICENSE
|
||||
}
|
||||
|
||||
%define files_src() %{expand:
|
||||
%defattr(-,root,root,-)
|
||||
%doc README.md
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
|
||||
}
|
||||
|
||||
%define files_javadoc() %{expand:
|
||||
%defattr(-,root,root,-)
|
||||
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
|
||||
%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
|
||||
%license %{installoutputdir -- %{?1}}/jre/LICENSE
|
||||
}
|
||||
|
||||
%define files_javadoc_zip() %{expand:
|
||||
%defattr(-,root,root,-)
|
||||
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
|
||||
%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
|
||||
%license %{installoutputdir -- %{?1}}/jre/LICENSE
|
||||
}
|
||||
|
||||
%define files_accessibility() %{expand:
|
||||
@ -1289,12 +1297,6 @@ URL: http://openjdk.java.net/
|
||||
# where the source is obtained from http://hg.openjdk.java.net/%%{project}/%%{repo}
|
||||
Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
|
||||
|
||||
# Custom README for -src subpackage
|
||||
Source2: README.md
|
||||
|
||||
# Release notes
|
||||
Source7: NEWS
|
||||
|
||||
# Use 'icedtea_sync.sh' to update the following
|
||||
# They are based on code contained in the IcedTea project (3.x).
|
||||
# Systemtap tapsets. Zipped up to keep it small.
|
||||
@ -1328,12 +1330,23 @@ Source17: nss.fips.cfg.in
|
||||
# Ensure translations are available for new timezones
|
||||
Source18: TestTranslations.java
|
||||
|
||||
Source20: repackReproduciblePolycies.sh
|
||||
Source21: repackReproduciblePolycies.sh
|
||||
|
||||
# New versions of config files with aarch64 support. This is not upstream yet.
|
||||
Source100: config.guess
|
||||
Source101: config.sub
|
||||
|
||||
# Include portable spec and instructions on how to rebuild
|
||||
Source19: README.md
|
||||
Source20: java-1.%{majorver}.0-openjdk-portable.specfile
|
||||
|
||||
# Setup variables to reference correct sources
|
||||
%global releasezip %{_jvmdir}/%{name}-portable-%{version}-%{portablerelease}.portable.unstripped.jdk.%{_arch}.tar.xz
|
||||
%global docszip %{_jvmdir}/%{name}-portable-%{version}-%{portablerelease}.portable.docs.%{_arch}.tar.xz
|
||||
%global misczip %{_jvmdir}/%{name}-portable-%{version}-%{portablerelease}.portable.misc.%{_arch}.tar.xz
|
||||
%global slowdebugzip %{_jvmdir}/%{name}-portable-%{version}-%{portablerelease}.portable.slowdebug.jdk.%{_arch}.tar.xz
|
||||
%global fastdebugzip %{_jvmdir}/%{name}-portable-%{version}-%{portablerelease}.portable.fastdebug.jdk.%{_arch}.tar.xz
|
||||
|
||||
############################################
|
||||
#
|
||||
# RPM/distribution specific patches
|
||||
@ -1344,7 +1357,7 @@ Source101: config.sub
|
||||
############################################
|
||||
|
||||
# Accessibility patches
|
||||
# Ignore AWTError when assistive technologies are loaded
|
||||
# Ignore AWTError when assistive technologies are loaded
|
||||
Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
|
||||
# Restrict access to java-atk-wrapper classes
|
||||
Patch3: rh1648644-java_access_bridge_privileged_security.patch
|
||||
@ -1521,8 +1534,19 @@ BuildRequires: pkgconfig
|
||||
BuildRequires: xorg-x11-proto-devel
|
||||
BuildRequires: zip
|
||||
BuildRequires: unzip
|
||||
# Require a boot JDK which doesn't fail due to RH1482244
|
||||
BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
|
||||
# For definitions and macros like jvmdir
|
||||
BuildRequires: javapackages-filesystem
|
||||
%if %{include_normal_build}
|
||||
BuildRequires: java-1.%{majorver}.0-openjdk-portable-unstripped = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
%endif
|
||||
%if %{include_fastdebug_build}
|
||||
BuildRequires: java-1.%{majorver}.0-openjdk-portable-devel-fastdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
%endif
|
||||
%if %{include_debug_build}
|
||||
BuildRequires: java-1.%{majorver}.0-openjdk-portable-devel-slowdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
%endif
|
||||
BuildRequires: java-1.%{majorver}.0-openjdk-portable-docs = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-1.%{majorver}.0-openjdk-portable-misc = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
# Zero-assembler build requirement
|
||||
%ifarch %{zero_arches}
|
||||
BuildRequires: libffi-devel
|
||||
@ -1550,8 +1574,6 @@ Provides: bundled(lcms2) = 2.10.0
|
||||
Provides: bundled(libjpeg) = 6b
|
||||
# Version in jdk/src/share/native/sun/awt/libpng/png.h
|
||||
Provides: bundled(libpng) = 1.6.37
|
||||
# We link statically against libstdc++ to increase portability
|
||||
BuildRequires: libstdc++-static
|
||||
%endif
|
||||
|
||||
# this is always built, also during debug-only build
|
||||
@ -1831,8 +1853,6 @@ fi
|
||||
# For old patches
|
||||
ln -s %{top_level_dir_name} jdk8
|
||||
|
||||
cp %{SOURCE2} .
|
||||
|
||||
# replace outdated configure guess script
|
||||
#
|
||||
# the configure macro will do this too, but it also passes a few flags not
|
||||
@ -1959,237 +1979,73 @@ sed -i -e "s:^security.systemCACerts=.*:security.systemCACerts=%{cacerts_file}:"
|
||||
|
||||
%build
|
||||
|
||||
# How many CPU's do we have?
|
||||
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
|
||||
export NUM_PROC=${NUM_PROC:-1}
|
||||
%if 0%{?_smp_ncpus_max}
|
||||
# Honor %%_smp_ncpus_max
|
||||
[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
|
||||
%endif
|
||||
function customisejdk() {
|
||||
local imagepath=${1}
|
||||
|
||||
%ifarch s390x sparc64 alpha %{power64} %{aarch64}
|
||||
export ARCH_DATA_MODEL=64
|
||||
%endif
|
||||
%ifarch alpha
|
||||
export CFLAGS="$CFLAGS -mieee"
|
||||
%endif
|
||||
if [ -d ${imagepath} ] ; then
|
||||
# Turn on system security properties
|
||||
sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \
|
||||
${imagepath}/jre/lib/security/java.security
|
||||
|
||||
# We use ourcppflags because the OpenJDK build seems to
|
||||
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
|
||||
EXTRA_CFLAGS="%ourcppflags -Wno-error"
|
||||
EXTRA_CPP_FLAGS="%ourcppflags"
|
||||
|
||||
%ifarch %{power64} ppc
|
||||
# fix rpmlint warnings
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
|
||||
%endif
|
||||
EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes"
|
||||
export EXTRA_CFLAGS EXTRA_ASFLAGS
|
||||
|
||||
(cd %{top_level_dir_name}/common/autoconf
|
||||
bash ./autogen.sh
|
||||
)
|
||||
|
||||
function buildjdk() {
|
||||
local outputdir=${1}
|
||||
local buildjdk=${2}
|
||||
local maketargets="${3}"
|
||||
local debuglevel=${4}
|
||||
local link_opt=${5}
|
||||
|
||||
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
|
||||
# Variable used in hs_err hook on build failures
|
||||
local top_builddir_abs_path=$(pwd)/${outputdir}
|
||||
|
||||
echo "Using output directory: ${outputdir}";
|
||||
|
||||
if [ "x${link_opt}" = "xbundled" ] ; then
|
||||
libc_link_opt="static";
|
||||
else
|
||||
libc_link_opt="dynamic";
|
||||
fi
|
||||
|
||||
echo "Checking build JDK ${buildjdk} is operational..."
|
||||
${buildjdk}/bin/java -version
|
||||
echo "Using make targets: ${maketargets}"
|
||||
echo "Using debuglevel: ${debuglevel}"
|
||||
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
|
||||
|
||||
mkdir -p ${outputdir}
|
||||
pushd ${outputdir}
|
||||
|
||||
bash ${top_srcdir_abs_path}/configure \
|
||||
%ifarch %{jfr_arches}
|
||||
--enable-jfr \
|
||||
%else
|
||||
--disable-jfr \
|
||||
%endif
|
||||
%ifarch %{zero_arches}
|
||||
--with-jvm-variants=zero \
|
||||
%endif
|
||||
--with-native-debug-symbols=internal \
|
||||
--with-milestone=%{milestone} \
|
||||
--with-update-version=%{updatever} \
|
||||
--with-build-number=%{buildver} \
|
||||
--with-vendor-name="%{oj_vendor}" \
|
||||
--with-vendor-url="%{oj_vendor_url}" \
|
||||
--with-vendor-bug-url="%{oj_vendor_bug_url}" \
|
||||
--with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
|
||||
--with-boot-jdk=${buildjdk} \
|
||||
--with-debug-level=${debuglevel} \
|
||||
--disable-sysconf-nss \
|
||||
--enable-unlimited-crypto \
|
||||
--with-zlib=${link_opt} \
|
||||
--with-giflib=${link_opt} \
|
||||
%if %{with system_libs}
|
||||
--with-libjpeg=${link_opt} \
|
||||
--with-libpng=${link_opt} \
|
||||
--with-lcms=${link_opt} \
|
||||
%endif
|
||||
--with-stdc++lib=${libc_link_opt} \
|
||||
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
|
||||
--with-extra-cflags="$EXTRA_CFLAGS" \
|
||||
--with-extra-asflags="$EXTRA_ASFLAGS" \
|
||||
--with-extra-ldflags="%{ourldflags}" \
|
||||
--with-num-cores="$NUM_PROC"
|
||||
|
||||
cat spec.gmk
|
||||
cat hotspot-spec.gmk
|
||||
|
||||
make \
|
||||
JAVAC_FLAGS=-g \
|
||||
LOG=trace \
|
||||
SCTP_WERROR= \
|
||||
${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name "hs_err_pid*.log" | xargs cat && false )
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
function installjdk() {
|
||||
local outputdir=${1}
|
||||
local installdir=${2}
|
||||
local imagepath=${installdir}/images/%{jdkimage}
|
||||
|
||||
echo "Installing build from ${outputdir} to ${installdir}..."
|
||||
mkdir -p ${installdir}
|
||||
echo "Installing images..."
|
||||
mv ${outputdir}/images ${installdir}
|
||||
if [ -d ${outputdir}/bundles ] ; then
|
||||
echo "Installing bundles...";
|
||||
mv ${outputdir}/bundles ${installdir} ;
|
||||
fi
|
||||
if [ -d ${outputdir}/docs ] ; then
|
||||
echo "Installing docs...";
|
||||
mv ${outputdir}/docs ${installdir} ;
|
||||
fi
|
||||
|
||||
%if !%{with artifacts}
|
||||
echo "Removing output directory...";
|
||||
rm -rf ${outputdir}
|
||||
%endif
|
||||
|
||||
if [ -d ${imagepath} ] ; then
|
||||
# the build (erroneously) removes read permissions from some jars
|
||||
# this is a regression in OpenJDK 7 (our compiler):
|
||||
# http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
|
||||
find ${imagepath} -iname '*.jar' -exec chmod ugo+r {} \;
|
||||
chmod ugo+r ${imagepath}/lib/ct.sym
|
||||
|
||||
# remove redundant *diz and *debuginfo files
|
||||
find ${imagepath} -iname '*.diz' -exec rm -v {} \;
|
||||
find ${imagepath} -iname '*.debuginfo' -exec rm -v {} \;
|
||||
|
||||
# Build screws up permissions on binaries
|
||||
# https://bugs.openjdk.java.net/browse/JDK-8173610
|
||||
find ${imagepath} -iname '*.so' -exec chmod +x {} \;
|
||||
find ${imagepath}/bin/ -exec chmod +x {} \;
|
||||
|
||||
# Install nss.cfg right away as we will be using the JRE above
|
||||
install -m 644 nss.cfg ${imagepath}/jre/lib/security/
|
||||
|
||||
# Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies)
|
||||
install -m 644 nss.fips.cfg ${imagepath}/jre/lib/security/
|
||||
|
||||
# Turn on system security properties
|
||||
sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \
|
||||
${imagepath}/jre/lib/security/java.security
|
||||
|
||||
# Use system-wide tzdata
|
||||
mv ${imagepath}/jre/lib/tzdb.dat{,.upstream}
|
||||
ln -sv %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/jre/lib/tzdb.dat
|
||||
|
||||
# Rename OpenJDK cacerts database
|
||||
mv ${imagepath}/jre/lib/security/cacerts{,.upstream}
|
||||
# Install cacerts symlink needed by some apps which hard-code the path
|
||||
ln -sv %{cacerts_file} ${imagepath}/jre/lib/security
|
||||
|
||||
# add alt-java man page
|
||||
pushd ${imagepath}
|
||||
echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1
|
||||
cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
|
||||
popd
|
||||
|
||||
# Print release information
|
||||
cat ${imagepath}/release
|
||||
# Use system-wide tzdata
|
||||
mv ${imagepath}/jre/lib/tzdb.dat{,.upstream}
|
||||
ln -sv %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/jre/lib/tzdb.dat
|
||||
|
||||
# Rename OpenJDK cacerts database
|
||||
mv ${imagepath}/jre/lib/security/cacerts{,.upstream}
|
||||
# Install cacerts symlink needed by some apps which hard-code the path
|
||||
ln -sv %{cacerts_file} ${imagepath}/jre/lib/security
|
||||
fi
|
||||
}
|
||||
|
||||
%if %{build_hotspot_first}
|
||||
# Build a fresh libjvm.so first and use it to bootstrap
|
||||
cp -LR --preserve=mode,timestamps %{bootjdk} newboot
|
||||
systemjdk=$(pwd)/newboot
|
||||
buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled"
|
||||
mv build/newboot/hotspot/dist/jre/lib/%{archinstall}/server/libjvm.so newboot/jre/lib/%{archinstall}/server
|
||||
%else
|
||||
systemjdk=%{bootjdk}
|
||||
%endif
|
||||
|
||||
for suffix in %{build_loop} ; do
|
||||
if [ "x$suffix" = "x" ] ; then
|
||||
debugbuild=release
|
||||
else
|
||||
# change --something to something
|
||||
debugbuild=`echo $suffix | sed "s/-//g"`
|
||||
fi
|
||||
|
||||
builddir=%{buildoutputdir -- $suffix}
|
||||
bootbuilddir=boot${builddir}
|
||||
installdir=%{installoutputdir -- $suffix}
|
||||
bootinstalldir=boot${installdir}
|
||||
link_opt="%{link_type}"
|
||||
if [ "x$suffix" = "x" ] ; then
|
||||
jdkzip=%{releasezip}
|
||||
elif [ "x$suffix" = "x%{fastdebug_suffix_unquoted}" ] ; then
|
||||
jdkzip=%{fastdebugzip}
|
||||
else # slowdebug
|
||||
jdkzip=%{slowdebugzip}
|
||||
debugbuild=release
|
||||
fi
|
||||
|
||||
# Debug builds don't need same targets as release for
|
||||
# build speed-up. We also avoid bootstrapping these
|
||||
# slower builds.
|
||||
if echo $debugbuild | grep -q "debug" ; then
|
||||
maketargets="%{debug_targets}"
|
||||
run_bootstrap=false
|
||||
else
|
||||
maketargets="%{release_targets}"
|
||||
run_bootstrap=%{bootstrap_build}
|
||||
fi
|
||||
installdir=%{installoutputdir -- ${suffix}}
|
||||
|
||||
if ${run_bootstrap} ; then
|
||||
buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt}
|
||||
installjdk ${bootbuilddir} ${bootinstalldir}
|
||||
buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild} ${link_opt}
|
||||
installjdk ${builddir} ${installdir}
|
||||
%{!?with_artifacts:rm -rf ${bootinstalldir}}
|
||||
else
|
||||
buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt}
|
||||
installjdk ${builddir} ${installdir}
|
||||
fi
|
||||
# TODO: should verify checksums when using packages from buildroot
|
||||
tar -xJf ${jdkzip}
|
||||
mkdir -p $(dirname ${installdir})
|
||||
mv %{name}* ${installdir}
|
||||
# Fix build paths in ELF files so it looks like we built them
|
||||
portablenvr="%{name}-portable-%{version}-%{portablerelease}.%{portablesuffix}.%{_arch}"
|
||||
for file in $(find ${installdir} -type f) ; do
|
||||
if file ${file} | grep -q 'ELF'; then
|
||||
%{debugedit} -b %{portablebuilddir}/${portablenvr} -d $(pwd) -n ${file}
|
||||
fi
|
||||
done
|
||||
|
||||
# Final setup on the main image
|
||||
customisejdk ${installdir}
|
||||
|
||||
# Print release information
|
||||
cat ${installdir}/release
|
||||
|
||||
# build cycles
|
||||
done
|
||||
|
||||
docdir=%{installoutputdir -- "-docs"}
|
||||
tar -xJf %{docszip}
|
||||
mv %{name}*.docs.* ${docdir}
|
||||
|
||||
miscdir=%{installoutputdir -- "-misc"}
|
||||
tar -xJf %{misczip}
|
||||
mv %{name}*.misc.* ${miscdir}
|
||||
|
||||
%check
|
||||
|
||||
# We test debug first as it will give better diagnostics on a crash
|
||||
for suffix in %{build_loop} ; do
|
||||
|
||||
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
|
||||
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}
|
||||
|
||||
# Check unlimited policy has been used
|
||||
$JAVA_HOME/bin/javac -d . %{SOURCE13}
|
||||
@ -2208,10 +2064,6 @@ export SEC_DEBUG="-Djava.security.debug=properties"
|
||||
$JAVA_HOME/bin/java ${SEC_DEBUG} ${PROG} true
|
||||
$JAVA_HOME/bin/java ${SEC_DEBUG} -Djava.security.disableSystemPropertiesFile=true ${PROG} false
|
||||
|
||||
# Check correct vendor values have been set
|
||||
$JAVA_HOME/bin/javac -d . %{SOURCE16}
|
||||
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url}
|
||||
|
||||
# Check java launcher has no SSB mitigation
|
||||
if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi
|
||||
|
||||
@ -2222,6 +2074,10 @@ nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation
|
||||
if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false; fi
|
||||
%endif
|
||||
|
||||
# Check correct vendor values have been set
|
||||
$JAVA_HOME/bin/javac -d . %{SOURCE16}
|
||||
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url}
|
||||
|
||||
# Check translations are available for new timezones
|
||||
$JAVA_HOME/bin/javac -d . %{SOURCE18}
|
||||
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE18})|sed "s|\.java||") JRE
|
||||
@ -2272,7 +2128,7 @@ done
|
||||
|
||||
# Make sure gdb can do a backtrace based on line numbers on libjvm.so
|
||||
# javaCalls.cpp:58 should map to:
|
||||
# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58
|
||||
# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58
|
||||
# Using line number 1 might cause build problems. See:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1539664
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1538767
|
||||
@ -2293,7 +2149,7 @@ grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
|
||||
%endif
|
||||
|
||||
# Check src.zip has all sources. See RHBZ#1130490
|
||||
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
|
||||
unzip -l $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
|
||||
|
||||
# Check class files include useful debugging information
|
||||
$JAVA_HOME/bin/javap -l java.lang.Object | grep "Compiled from"
|
||||
@ -2313,12 +2169,23 @@ STRIP_KEEP_SYMTAB=libjvm*
|
||||
|
||||
for suffix in %{build_loop} ; do
|
||||
|
||||
# Install the jdk
|
||||
pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
|
||||
# Should match same definitions in build section
|
||||
jdk_image=%{installoutputdir -- $suffix}
|
||||
docdir=$(pwd)/%{installoutputdir -- "-docs"}
|
||||
miscdir=%{installoutputdir -- "-misc"}
|
||||
|
||||
# Install jsa directories so we can owe them
|
||||
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
|
||||
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
|
||||
# Install release notes and rebuild instructions
|
||||
commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix}
|
||||
install -d -m 755 ${commondocdir}
|
||||
mv ${jdk_image}/NEWS ${commondocdir}
|
||||
cp -a %{SOURCE19} %{SOURCE20} ${commondocdir}
|
||||
|
||||
# Install the jdk
|
||||
pushd ${jdk_image}
|
||||
|
||||
# Install jsa directories so we can owe them
|
||||
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
|
||||
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
|
||||
|
||||
# Install main files.
|
||||
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
|
||||
@ -2363,7 +2230,7 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/clien
|
||||
# Install demos and samples.
|
||||
cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
|
||||
mkdir -p sample/rmi
|
||||
if [ ! -e sample/rmi/java-rmi.cgi ] ; then
|
||||
if [ ! -e sample/rmi/java-rmi.cgi ] ; then
|
||||
# hack to allow --short-circuit on install
|
||||
mv bin/java-rmi.cgi sample/rmi
|
||||
fi
|
||||
@ -2374,20 +2241,15 @@ popd
|
||||
if ! echo $suffix | grep -q "debug" ; then
|
||||
# Install Javadoc documentation
|
||||
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
|
||||
cp -a %{installoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
|
||||
cp -a ${docdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
|
||||
built_doc_archive=jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip
|
||||
cp -a %{installoutputdir -- $suffix}/bundles/$built_doc_archive $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
|
||||
cp -a ${docdir}/$built_doc_archive $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
|
||||
fi
|
||||
|
||||
# Install release notes
|
||||
commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix}
|
||||
install -d -m 755 ${commondocdir}
|
||||
cp -a %{SOURCE7} ${commondocdir}
|
||||
|
||||
# Install icons and menu entries
|
||||
for s in 16 24 32 48 ; do
|
||||
install -D -p -m 644 \
|
||||
%{top_level_dir_name}/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
|
||||
${miscdir}/java-icon${s}.png \
|
||||
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
|
||||
done
|
||||
|
||||
@ -2444,7 +2306,7 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
|
||||
popd
|
||||
|
||||
|
||||
bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver}
|
||||
bash %{SOURCE21} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver}
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1183793
|
||||
touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/security/java.security
|
||||
|
||||
@ -2457,11 +2319,11 @@ for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.
|
||||
done
|
||||
|
||||
# stabilize permissions
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 755 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec chmod 644 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "THIRD_PARTY_README" -exec chmod 644 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 755 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec chmod 644 {} \; ;
|
||||
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "THIRD_PARTY_README" -exec chmod 644 {} \; ;
|
||||
|
||||
# end, dual install
|
||||
done
|
||||
@ -2481,7 +2343,7 @@ local posix = require "posix"
|
||||
if (os.getenv("debug") == "true") then
|
||||
debug = true;
|
||||
print("cjc: in spec debug is on")
|
||||
else
|
||||
else
|
||||
debug = false;
|
||||
end
|
||||
|
||||
@ -2695,7 +2557,18 @@ cjc.mainProgram(args)
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Apr 18 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.372.b07-1
|
||||
* Thu Apr 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.372.b07-4
|
||||
- Include the java-1.8.0-openjdk-portable.spec file with instructions on how to rebuild.
|
||||
- Remove duplicate use of README.md inside the *-src package (it is no longer about sources)
|
||||
- Related: rhbz#2189328
|
||||
|
||||
* Thu Apr 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.372.b07-3
|
||||
- Revert "Restore native build for x86 as there is no portable build"
|
||||
- Retain portable_build-arches with x86-32 added for reference
|
||||
- Remove NEWS.
|
||||
- Related: rhbz#2189328
|
||||
|
||||
* Tue Apr 18 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.372.b07-2
|
||||
- Update to shenandoah-jdk8u372-b07 (GA)
|
||||
- Update release notes for shenandoah-8u372-b07.
|
||||
- Require tzdata 2023c due to inclusion of JDK-8305113 in 8u372-b07
|
||||
@ -2704,16 +2577,24 @@ cjc.mainProgram(args)
|
||||
- Remove .jcheck and GitHub support when generating tarballs, as done in upstream release tarballs
|
||||
- Drop JDK-8275535/RH2053256 patch which is now upstream
|
||||
- Include JDK-8271199 backport early ahead of 8u382 (RH2175317)
|
||||
- Drop hack for difference in local and portable build version
|
||||
- Replace local copies of JDK portable binaries with build dependencies
|
||||
- ** This tarball is embargoed until 2023-04-18 @ 1pm PT. **
|
||||
- Resolves: rhbz#2185182
|
||||
- Resolves: rhbz#2189328
|
||||
|
||||
* Tue Jan 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b09-2
|
||||
* Tue Feb 28 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b09-4
|
||||
- On portable architectures, replace build section with extraction of existing builds from portables
|
||||
- Rewrite ELF files so the source file path is correct and debugsources can be assembled
|
||||
- Resolves: rhbz#2150203
|
||||
|
||||
* Tue Jan 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b09-3
|
||||
- Update cacerts patch to fix OPENJDK-1433 SecurityManager issue
|
||||
- Update to shenandoah-jdk8u352-b09 (GA)
|
||||
- Update release notes for shenandoah-8u352-b09.
|
||||
- Resolves: rhbz#2163595
|
||||
- Resolves: rhbz#2162715
|
||||
|
||||
* Fri Jan 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b08-2
|
||||
* Fri Jan 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b08-3
|
||||
- Update to shenandoah-jdk8u352-b08 (GA)
|
||||
- Update release notes for shenandoah-8u352-b08.
|
||||
- Fix broken links and missing release notes in older releases.
|
||||
@ -2723,30 +2604,41 @@ cjc.mainProgram(args)
|
||||
- Fedora now appears to be using RSA and the JDK now supports ECC in preference to large DH keys
|
||||
- Resolves: rhbz#2160111
|
||||
|
||||
* Wed Jan 11 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b07-0.2.ea
|
||||
* Wed Jan 11 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b07-0.3.ea
|
||||
- Update to shenandoah-jdk8u362-b07 (EA)
|
||||
- Update release notes for shenandoah-8u362-b07.
|
||||
- Switch to EA mode for 8u362 pre-release builds.
|
||||
- Drop JDK-8195607/PR3776/RH1760437 now this is upstream
|
||||
- Require tzdata 2022g due to inclusion of JDK-8296108, JDK-8296715 & JDK-8297804
|
||||
- Drop tzdata patches for 2022d & 2022e (JDK-8294357 & JDK-8295173) which are now upstream
|
||||
- Update TestTranslations.java to test the new America/Ciudad_Juarez zone
|
||||
- Drop JDK-8255559/RH2124390 patch which is now upstream
|
||||
- Resolves: rhbz#2159910
|
||||
- Resolves: rhbz#2150193
|
||||
|
||||
* Tue Jan 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.362.b01-0.3.ea
|
||||
- Update to shenandoah-jdk8u362-b01 (EA)
|
||||
- Update release notes for shenandoah-8u362-b01.
|
||||
- Switch to EA mode for 8u362 pre-release builds.
|
||||
- Drop JDK-8195607/PR3776/RH1760437 now this is upstream
|
||||
- Related: rhbz#2150193
|
||||
|
||||
* Thu Nov 10 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.352.b08-3
|
||||
- Add backport of JDK-8255559 to fix file descriptor leak in XML code
|
||||
- Resolves: rhbz#2139705
|
||||
- Resolves: rhbz#2124390
|
||||
|
||||
* Sun Oct 16 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.352.b08-2
|
||||
* Wed Oct 19 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.352.b08-2
|
||||
- Update to shenandoah-jdk8u352-b08 (GA)
|
||||
- Update release notes for shenandoah-8u352-b08.
|
||||
- Rebase FIPS patch against 8u352-b07
|
||||
- Switch to GA mode for final release.
|
||||
- Update in-tree tzdata to 2022e with JDK-8294357 & JDK-8295173
|
||||
- Add test to ensure timezones can be translated
|
||||
- * This tarball is embargoed until 2022-10-18 @ 1pm PT. *
|
||||
- Resolves: rhbz#2133695
|
||||
|
||||
* Wed Oct 12 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.352.b07-0.2.ea
|
||||
- Update to shenandoah-jdk8u352-b07 (EA)
|
||||
- Update release notes for shenandoah-8u352-b07.
|
||||
- Switch to EA mode for 8u352 pre-release builds.
|
||||
- Rebase FIPS patch against 8u352-b07
|
||||
- Resolves: rhbz#2130612
|
||||
|
||||
* Tue Aug 30 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.345.b01-5
|
||||
- Switch to static builds, reducing system dependencies and making build more portable
|
||||
- Resolves: rhbz#2048542
|
||||
@ -3219,7 +3111,7 @@ cjc.mainProgram(args)
|
||||
- Resolves: rhbz#1903904
|
||||
|
||||
* Fri Nov 27 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.275.b01-3
|
||||
- added patch600, rh1750419-redhat_alt_java.patch
|
||||
- added patch600, rh1750419-redhat_alt_java.patch
|
||||
- Replaced alt-java palceholder by real pathced alt-java
|
||||
- remove patch529 rh1566890-CVE_2018_3639-speculative_store_bypass.patch
|
||||
- remove patch531 rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
|
||||
@ -4461,7 +4353,7 @@ cjc.mainProgram(args)
|
||||
|
||||
* Thu Nov 03 2016 jvanek <jvanek@redhat.com - 1:1.8.0.111-3.b16
|
||||
- added patch207 - PR3183.patch
|
||||
- java SSL/TLS implementation: should follow the policies of system-wide crypto policy
|
||||
- java SSL/TLS implementation: should follow the policies of system-wide crypto policy
|
||||
|
||||
* Fri Oct 21 2016 Omair Majid <omajid@redhat.com> - 1:1.8.0.111-2.b16
|
||||
- added dont-add-unnecessary-debug-links.patch
|
||||
@ -4532,7 +4424,7 @@ renamed: jdk8-archivedJavadoc.patch -> jdk8154313-generated_javadoc_scattered_al
|
||||
- added patch519, jdwpCrash.abrt.patch to fix trasnportation error
|
||||
|
||||
* Fri May 13 2016 jvanek <jvanek@redhat.com> - 1:1.8.0.91-6.b14
|
||||
- Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any weak references in full-gc.
|
||||
- Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any weak references in full-gc.
|
||||
|
||||
* Tue May 03 2016 jvanek <jvanek@redhat.com> - 1:1.8.0.91-5.b14
|
||||
- Restricted to depend on exactly same version of nss as used for build
|
||||
|
Loading…
Reference in New Issue
Block a user