1
0

Accepting request 391903 from Java:Factory:Sandbox

I want this one

OBS-URL: https://build.opensuse.org/request/show/391903
OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=142
This commit is contained in:
2016-04-28 08:08:13 +00:00
committed by Git OBS Bridge
parent 18de956ab4
commit fdd0c4a797
49 changed files with 211 additions and 5000 deletions

View File

@@ -18,9 +18,9 @@
%{!?aarch64:%global aarch64 aarch64 arm64 armv8}
%global jit_arches %ix86 x86_64 ppc64 ppc64le %aarch64
%global debug 0
%global bootcycle 1
%global buildoutputdir build
%global icedtea_version 3.0.1
%global icedtea_sound_version 1.0.1
%global buildoutputdir openjdk.build/
# Convert an absolute path to a relative path. Each symbolic link is
# specified relative to the directory in which it is installed so that
# it will resolve properly within chrooted installations.
@@ -29,25 +29,10 @@
%global syslibdir %{_libdir}
%global archname %{name}
# Standard JPackage naming and versioning defines.
%global updatever 91
%global buildver b14
%global root_project jdk8u
%global root_repository jdk8u
%global root_revision 574417338118
%global corba_revision f8d0cfaa9900
%global hotspot_revision fa8991ccf6e5
%global jaxp_revision f6bda5729ff8
%global jaxws_revision e71f424e2c96
%global jdk_revision f8725698a870
%global langtools_revision 8921667c26ba
%global nashorn_revision 6296644a2c9c
%global aarch64_project aarch64-port
%global aarch64_repository jdk8u
%global aarch64_hotspot_revision 8e05c47f805f
%global icedtea_sound_version 1.0.1
# priority must be 6 digits in total
%global priority 1805
%global javaver 1.8.0
%global updatever 91
# Standard JPackage directories and symbolic links.
%global sdklnk java-%{javaver}-openjdk
%global archname %{sdklnk}
@@ -73,6 +58,11 @@
%else
%global with_pulseaudio 0
%endif
%if 0%{?suse_version} >= 1220
%global with_system_lcms 1
%else
%global with_system_lcms 0
%endif
%ifarch x86_64
%global archinstall amd64
%endif
@@ -114,18 +104,6 @@
%ifnarch %{jit_arches}
%global archinstall %{_arch}
%endif
%if %{debug}
%global debugbuild slowdebug
%else
%global debugbuild release
%endif
%if %{bootcycle}
%global imagesdir bootcycle-build/images
%global imagestarget bootcycle-images
%else
%global imagesdir images
%global imagestarget images
%endif
%ifnarch %{jit_arches}
%global _with_zero 1
%endif
@@ -140,6 +118,11 @@
%if 0%{?__isa_bits}
%global bits %{__isa_bits}
%endif
%if 0%{?suse_version} >= 1330
%global with_sunec 1
%else
%global with_sunec 0
%endif
%bcond_with zero
# Turn on/off some features depending on openSUSE version
%if 0%{?suse_version} >= 1130
@@ -152,10 +135,6 @@
%global with_systemtap 0
%endif
%if %{with_systemtap}
%global tapsetroot %{_datadir}/systemtap
%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
%endif
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific subdir,
# but currently systemtap doesn't support that, so we have to
@@ -174,72 +153,36 @@ Summary: OpenJDK 8 Runtime Environment
License: Apache-1.1 and Apache-2.0 and GPL-1.0+ and GPL-2.0 and GPL-2.0-with-classpath-exception and LGPL-2.0 and MPL-1.0 and MPL-1.1 and SUSE-Public-Domain and W3C
Group: Development/Languages/Java
Url: http://openjdk.java.net/
# Sources from upstream OpenJDK8 project.
Source0: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/archive/%{root_revision}.tar.bz2
Source1: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/corba/archive/%{corba_revision}.tar.bz2
Source2: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/hotspot/archive/%{hotspot_revision}.tar.bz2
Source3: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/jaxp/archive/%{jaxp_revision}.tar.bz2
Source4: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/jaxws/archive/%{jaxws_revision}.tar.bz2
Source5: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/jdk/archive/%{jdk_revision}.tar.bz2
Source6: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/langtools/archive/%{langtools_revision}.tar.bz2
Source7: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/nashorn/archive/%{nashorn_revision}.tar.bz2
# Hotspot version from aarch64-port repository (using the _tip_ of the http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot)
Source8: http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot/archive/%{aarch64_hotspot_revision}.tar.bz2
# Pulseaudio plugin
Source9: http://icedtea.classpath.org/download/source/icedtea-sound-%{icedtea_sound_version}.tar.xz
# Systemtap tapsets. Zipped up to keep it small.
Source10: systemtap-tapset.tar.gz
# Desktop files. Adapated from IcedTea.
Source11: jconsole.desktop.in
Source12: policytool.desktop.in
# nss configuration file
Source13: nss.cfg
# Ensure we aren't using the limited crypto policy
Source14: TestCryptoLevel.java
# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
Source101: config.sub
Source0: http://icedtea.classpath.org/download/source/icedtea-%{icedtea_version}.tar.xz
Source1: http://icedtea.classpath.org/download/source/icedtea-sound-%{icedtea_sound_version}.tar.xz
Source2: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/openjdk.tar.xz
Source3: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/corba.tar.xz
Source4: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/jaxp.tar.xz
Source5: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/jaxws.tar.xz
Source6: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/jdk.tar.xz
Source7: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/langtools.tar.xz
Source8: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/hotspot.tar.xz
Source9: http://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/nashorn.tar.xz
# RPM/distribution specific patches
# RHBZ 1015432
Patch2: 1015432.patch
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
# RHBZ 808293
Patch4: PStack-808293.patch
# Allow multiple initialization of PKCS11 libraries
Patch5: multiple-pkcs11-library-init.patch
# Disable doclint for compatibility
Patch6: disable-doclint-by-default.patch
# Include all sources in src.zip
Patch7: include-all-srcs.patch
# Fix expression compares a char* pointer with a string literal
Patch8: compare-pointer-with-literal.patch
# Backport stuff from aarch64-port
Patch9: aarch64-misc.patch
# From icedtea: Increase default memory limits
Patch10: memory-limits.patch
# Fix use of unintialized memory in adlc parser
Patch12: adlc-parser.patch
# Fix: implicit-pointer-decl
Patch13: implicit-pointer-decl.patch
# Avoid triggering inactivity timeout while generating javadoc in zero VM
Patch14: zero-javadoc-verbose.patch
# Fix crash on zero virtual machine built with gcc5
Patch16: zero-dummy.patch
#
# OpenJDK specific patches
#
# JVM heap size changes for s390 (thanks to aph)
Patch100: s390-java-opts.patch
Patch101: s390-size_t.patch
# Patch for PPC/PPC64
# Patch for PPC
Patch103: ppc-zero-hotspot.patch
Patch104: ppc64le-8036767.patch
# Patches for system libraries
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch205: link-with-as-needed.patch
Patch1000: icedtea-3.0.1-sunec.patch
Patch1001: java-1_8_0-openjdk-suse-desktop-files.patch
BuildRequires: alsa-lib-devel
BuildRequires: autoconf
BuildRequires: automake
@@ -252,13 +195,17 @@ BuildRequires: freetype2-devel
BuildRequires: gcc-c++
BuildRequires: giflib-devel
BuildRequires: gtk2-devel
BuildRequires: java-bootstrap-devel >= 1.6.0
BuildRequires: libXcomposite-devel
BuildRequires: libjpeg-devel
BuildRequires: liblcms2-devel
BuildRequires: libpng-devel
BuildRequires: libxslt
BuildRequires: mozilla-nss-devel
BuildRequires: pkgconfig
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: wget
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
# Requires rest of java
@@ -308,11 +255,6 @@ BuildRequires: libXinerama-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
%endif
%if %{bootcycle}
BuildRequires: java-bootstrap-devel >= 1.6.0
%else
BuildRequires: java-devel >= %{javaver}
%endif
# runtime certificates generation available in 11.3+ - bnc#596177
%if 0%{?suse_version} >= 1130
BuildRequires: java-ca-certificates
@@ -444,96 +386,16 @@ There are known issues with accessibility on, so please do not install
this package unless you really need to.
%prep
%setup -q -n %{root_repository}-%{root_revision}
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 1
%ifarch %aarch64
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 8
%else
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 2
%endif
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 3
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 4
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 5
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 6
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 7
%setup -q -n icedtea-%{icedtea_version}
%setup -q -D -n icedtea-%{icedtea_version} -T -a 1
%if %{with_pulseaudio}
%setup -q -D -n %{root_repository}-%{root_revision} -T -a 9
%endif
# Set up the build tree using the subrepository tarballs
pwd
mv corba-%{corba_revision} corba
%ifarch %aarch64
mv hotspot-%{aarch64_hotspot_revision} hotspot
%else
mv hotspot-%{hotspot_revision} hotspot
%endif
mv jaxp-%{jaxp_revision} jaxp
mv jaxws-%{jaxws_revision} jaxws
mv jdk-%{jdk_revision} jdk
mv langtools-%{langtools_revision} langtools
mv nashorn-%{nashorn_revision} nashorn
%if %{with_pulseaudio}
mv icedtea-sound-%{icedtea_sound_version} icedtea-sound
%endif
# replace outdated configure guess script
#
# the configure macro will do this too, but it also passes a few flags not
# supported by openjdk configure script
cp %{SOURCE100} common/autoconf/build-aux/
cp %{SOURCE101} common/autoconf/build-aux/
# Remove libraries that are linked
rm -rvf jdk/src/share/native/java/util/zip/zlib-*
find jdk/src/share/native/sun/awt/image/jpeg ! -name imageioJPEG.c ! -name jpegdecoder.c -type f -delete
rm -rvf jdk/src/share/native/sun/awt/libpng
rm -rvf jdk/src/share/native/sun/awt/giflib
rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/cms*
rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch205 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch12 -p1
%patch13 -p1
%if %{with zero}
%patch14 -p1
%patch16 -p1
%endif
%ifarch s390
%patch100 -p1
%patch101 -p1
%endif
%ifarch ppc ppc64 ppc64le
# PPC fixes
%patch103 -p1
%patch104 -p1
%endif
%patch1000 -p1
%patch1001 -p1
# Extract systemtap tapsets
%if %{with_systemtap}
tar xzf %{SOURCE10}
for file in tapset/*.in; do
OUTPUT_FILE=`echo $file | sed -e s:\.in$::g`
@@ -552,14 +414,10 @@ done
%endif
# Prepare desktop files
for file in %{SOURCE11} %{SOURCE12} ; do
OUTPUT_FILE=`basename $file | sed -e s:\.in$::g`
sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE
sed -i -e s:@VERSION@:%{javaver}.%{_arch}:g $OUTPUT_FILE
done
%build
export LANG=C
unset JAVA_HOME
# How many cpu's do we have?
export NUM_PROC=`%{_bindir}/getconf _NPROCESSORS_ONLN 2> /dev/null || :`
export NUM_PROC=${NUM_PROC:-1}
@@ -570,75 +428,86 @@ export ZLIB_CFLAGS=" "
export ZLIB_LIBS="-L/%{_lib} -lz"
%endif
# Build IcedTea and OpenJDK.
export CFLAGS=$(rpm -E '%{optflags}' | sed 's/-Wall\>//')
export CXXFLAGS=${CFLAGS}
%ifarch s390x sparc64 alpha ppc64 ppc64le %aarch64
export ARCH_DATA_MODEL=64
%if %{with_sunec}
export NSS_SOFTOKN_CFLAGS="`pkg-config --cflags nss` -I`pwd`"
export NSS_SOFTOKN_LIBS="-L%{_libdir} -lnssdbm3 -lsoftokn3 -lssl3 -lsmime3 -lnss3 -lnssutil3 -lfreebl -L%{_libdir}/nspr -lplds4 -lplc4 -lnspr4"
export NSS_CFLAGS="$NSS_SOFTOKN_CFLAGS"
export NSS_LIBS="$NSS_SOFTOKN_LIBS"
%endif
%ifarch alpha
export CFLAGS="$CFLAGS -mieee"
sh autogen.sh
%configure \
%if %{with_sunec}
--enable-sunec \
%endif
%ifarch s390
--disable-bootstrap \
%else
--enable-bootstrap \
%endif
--disable-infinality \
--disable-downloading \
--with-abs-install-dir=%{_jvmdir}/%{sdkdir} \
%ifnarch %arm %aarch64
--with-parallel-jobs="${NUM_PROC}" \
%endif
--with-pkgversion="suse-%{release}-%{_arch}" \
--with-jdk-home="%{_sysconfdir}/alternatives/java_sdk" \
%if %{with_systemtap}
--enable-systemtap \
%endif
%if %{with zero}
--enable-zero \
%endif
%if 0%{?suse_version} <= 1110
--disable-system-gio \
--disable-system-gconf \
%endif
%if %{with_system_lcms}
--enable-system-lcms \
%else
--disable-system-lcms \
%endif
--with-openjdk-src-zip=%{SOURCE2} \
--with-corba-src-zip=%{SOURCE3} \
--with-jaxp-src-zip=%{SOURCE4} \
--with-jaxws-src-zip=%{SOURCE5} \
--with-jdk-src-zip=%{SOURCE6} \
--with-langtools-src-zip=%{SOURCE7} \
--with-hotspot-src-zip=%{SOURCE8} \
--with-nashorn-src-zip=%{SOURCE9}
make patch %{?_smp_mflags}
patch -p0 -i %{PATCH2}
patch -p0 -i %{PATCH3}
patch -p0 -i %{PATCH8}
patch -p0 -i %{PATCH12}
patch -p0 -i %{PATCH13}
%if %{with zero}
patch -p0 -i %{PATCH14}
%endif
(cd common/autoconf
%ifarch ppc ppc64 ppc64le
# PPC fixes
patch -p0 -i %{PATCH103}
%endif
(cd openjdk/common/autoconf
bash ./autogen.sh
)
mkdir -p %{buildoutputdir}
make %{?_smp_mflags}
pushd %{buildoutputdir}
bash ../configure \
%if %{with zero}
--with-jvm-variants=zero \
%endif
--disable-zip-debug-info \
--with-milestone="fcs" \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
--with-debug-level=%{debugbuild} \
--enable-unlimited-crypto \
--with-zlib=system \
--with-libjpeg=system \
--with-giflib=system \
--with-libpng=system \
--with-lcms=system \
--with-stdc++lib=dynamic \
%ifnarch %arm
--with-num-cores="$NUM_PROC" \
%endif
%if 0%{?suse_version} >= 1120
--with-extra-cflags="-fno-devirtualize" \
--with-extra-cxxflags="-fno-devirtualize" \
%endif
--with-boot-jdk=%{_sysconfdir}/alternatives/java_sdk
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
# disables FDS for all build configs and reverts to pre-FDS make logic.
# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says
# ignore all the other logic about which debug options and just do '-g'.
make \
DEBUG_BINARIES=true \
FULL_DEBUG_SYMBOLS=0 \
ZIP_DEBUGINFO_FILES=0 \
STRIP_POLICY=none \
POST_STRIP_CMD=true \
ALT_OBJCOPY=/does_not_exist \
LOG=debug \
%{imagestarget} docs
# remove redundant *diz and *debuginfo files
find %{imagesdir}/j2sdk-image -iname '*.diz' -exec rm {} \;
find %{imagesdir}/j2sdk-image -iname '*.debuginfo' -exec rm {} \;
popd >& /dev/null
export JAVA_HOME=$(pwd)/%{buildoutputdir}/%{imagesdir}/j2sdk-image
export JAVA_HOME=$(pwd)/%{buildoutputdir}images/j2sdk-image
# cacerts are generated in runtime in openSUSE
if [ -f %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts ]; then
rm %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts
if [ -f %{buildoutputdir}images/j2sdk-image/jre/lib/security/cacerts ]; then
rm %{buildoutputdir}images/j2sdk-image/jre/lib/security/cacerts
fi
%if 0%{?suse_version} < 1130
@@ -648,14 +517,14 @@ for PEM in %{_sysconfdir}/ssl/certs/*.pem; do
ALIAS=$(basename ${PEM} .pem)
awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/{ print $0; }' ${PEM} > ${ALIAS}.pem
yes | $JAVA_HOME/jre/bin/keytool -import -alias ${ALIAS} -keystore %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts -storepass 'changeit' -file ${ALIAS}.pem || :
yes | $JAVA_HOME/jre/bin/keytool -import -alias ${ALIAS} -keystore %{buildoutputdir}images/j2sdk-image/jre/lib/security/cacerts -storepass 'changeit' -file ${ALIAS}.pem || :
rm ${ALIAS}.pem
done
%endif
%if %{with_pulseaudio}
# Build the pulseaudio plugin
pushd icedtea-sound
pushd icedtea-sound-%{icedtea_sound_version}
%configure \
--with-jdk-home=$JAVA_HOME \
--disable-docs
@@ -672,10 +541,6 @@ echo "" >> $JAVA_HOME/jre/lib/pulseaudio.properties
popd
%endif
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE14}
$JAVA_HOME/bin/java TestCryptoLevel
# Check debug symbols are present and can identify code
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
if [ -f "$SERVER_JVM" ] ; then
@@ -700,7 +565,9 @@ export NO_BRP_CHECK_BYTECODE_VERSION=true
%if %{with_systemtap}
# Install systemtap support files.
install -dm 755 %{buildroot}%{_jvmdir}/%{sdkdir}/tapset
cp -a tapset/*.stp %{buildroot}%{_jvmdir}/%{sdkdir}/tapset/
for i in tapset/*.stp; do
cp -a $i %{buildroot}%{_jvmdir}/%{sdkdir}/tapset/$(basename $i .stp)-1.8.0.stp
done
install -d -m 755 %{buildroot}%{tapsetdir}
pushd %{buildroot}%{tapsetdir}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
@@ -708,7 +575,7 @@ export NO_BRP_CHECK_BYTECODE_VERSION=true
popd
%endif
pushd %{buildoutputdir}/%{imagesdir}/j2sdk-image
pushd %{buildoutputdir}images/j2sdk-image
# Install main files.
install -d -m 755 %{buildroot}%{_jvmdir}/%{sdkdir}
@@ -777,9 +644,6 @@ pushd %{buildoutputdir}/%{imagesdir}/j2sdk-image
popd
# Install nss.cfg
install -m 644 %{SOURCE13} %{buildroot}%{_jvmdir}/%{jredir}/lib/security/
# Install Javadoc documentation.
install -d -m 755 %{buildroot}%{_javadocdir}
cp -a %{buildoutputdir}/docs %{buildroot}%{_javadocdir}/%{sdklnk}
@@ -787,7 +651,7 @@ cp -a %{buildoutputdir}/docs %{buildroot}%{_javadocdir}/%{sdklnk}
# Install icons and menu entries.
for s in 16 24 32 48 ; do
install -D -p -m 644 \
jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
%{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}.png
done
@@ -1137,9 +1001,9 @@ fi
%dir %{_libdir}/jvm-exports
%dir %{_libdir}/jvm-private
%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/LICENSE
%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/THIRD_PARTY_README
%doc %{buildoutputdir}images/j2sdk-image/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}images/j2sdk-image/jre/LICENSE
%doc %{buildoutputdir}images/j2sdk-image/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}