#
+# NOTE: versioning and release status might not be clear
+# http://openjdk.java.net/projects/jdk8u/ gives some information
+# about current status of the 'updates'
+#
# TODO:
-# - fix BuildRequires
-# - fix build with system giflib
# - use other system libs (libsctp?)
-# - build alternative VM for x32
# - include icedtea-sound?
-# - port PLD-specific changes from icedtea7?
-# - '*** WARNING: no sources found for ...'
+# - consider zeroshark (LLVM-based JIT) for x32
%bcond_with bootstrap # build a bootstrap version, using icedtea6
%bcond_without cacerts # don't include the default CA certificates
# JDK/JRE version, as returned with `java -version`, '_' replaced with '.'
%define _jdkversion 1.8.0.internal
+%define ver_u 66
+%define ver_b 02
Summary: Open-source implementation of the Java Platform, Standard Edition
Summary(pl.UTF-8): Wolnoźródłowa implementacja Java 8 SE
Name: openjdk8
-%define ver_u 66
-%define ver_b 02
Version: 8u%{ver_u}.b%{ver_b}
-Release: 0.1
+Release: 2
License: GPL v2
Group: Development/Languages/Java
-Source0: openjdk8-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source0: %{name}-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source0-md5: 1d115662e175470270e89a4da8e0fce2
-Source1: openjdk8-corba-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source1: %{name}-corba-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source1-md5: e14d8f51b9ca30d798094a2867f3f5d0
-Source2: openjdk8-hotspot-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source2: %{name}-hotspot-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source2-md5: b49a7b7f2db5b07306b7b5739e87ccc0
-Source3: openjdk8-jaxp-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source3: %{name}-jaxp-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source3-md5: 6bd5ae187272a209439d1a95ac6c9025
-Source4: openjdk8-jaxws-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source4: %{name}-jaxws-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source4-md5: 15e6a93009bdc73194e7118988d5ab8d
-Source5: openjdk8-jdk-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source5: %{name}-jdk-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source5-md5: 74f2cf3815659b83993c4187e7fc4f6b
-Source6: openjdk8-langtools-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source6: %{name}-langtools-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source6-md5: de5c9b5fdbcd75028b71ed667d4b99d2
-Source7: openjdk8-nashorn-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+Source7: %{name}-nashorn-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
# Source7-md5: 7da4e88349cfc45ee9726eaa4386be03
Source10: make-cacerts.sh
Patch0: adjust-mflags.patch
Patch5: system-libpng.patch
Patch6: system-lcms.patch
Patch7: system-pcsclite.patch
+Patch8: x32.patch
+Patch9: current_stack_pointer.patch
URL: http://openjdk.java.net/
+BuildRequires: /usr/bin/jar
BuildRequires: alsa-lib-devel
BuildRequires: ant
BuildRequires: autoconf
BuildRequires: bash
%{?with_cacerts:BuildRequires: ca-certificates-update}
BuildRequires: cups-devel
-BuildRequires: /usr/bin/jar
BuildRequires: freetype-devel >= 2.3
BuildRequires: gawk
-#BuildRequires: giflib-devel >= 5.1
+BuildRequires: giflib-devel >= 5.1
BuildRequires: glibc-misc
-%buildrequires_jdk
+%{?buildrequires_jdk}
BuildRequires: lcms2-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
Suggests: icedtea-web
Obsoletes: icedtea6
Obsoletes: icedtea7
-Obsoletes: java5-sun
-Obsoletes: java5-sun-jre
-Obsoletes: java5-sun-jre-jdbc
-Obsoletes: java5-sun-jre-X11
-Obsoletes: java5-sun-tools
Obsoletes: java-gcj-compat
Obsoletes: java-gcj-compat-devel
Obsoletes: java-sun
Obsoletes: java-sun-demos
Obsoletes: java-sun-jre
+Obsoletes: java-sun-jre-X11
Obsoletes: java-sun-jre-alsa
Obsoletes: java-sun-jre-jdbc
-Obsoletes: java-sun-jre-X11
Obsoletes: java-sun-tools
+Obsoletes: java5-sun
+Obsoletes: java5-sun-jre
+Obsoletes: java5-sun-jre-X11
+Obsoletes: java5-sun-jre-jdbc
+Obsoletes: java5-sun-tools
Obsoletes: oracle-java7
Obsoletes: oracle-java7-jre
+Obsoletes: oracle-java7-jre-X11
Obsoletes: oracle-java7-jre-alsa
Obsoletes: oracle-java7-jre-jdbc
-Obsoletes: oracle-java7-jre-X11
Obsoletes: oracle-java7-tools
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Obsoletes: java-gcj-compat-devel
Obsoletes: java-sun
Obsoletes: java5-sun
-Obsoletes: oracle-java7
Obsoletes: jdk
Obsoletes: kaffe
+Obsoletes: oracle-java7
%description jdk
This package symlinks OpenJDK development tools provided by
Obsoletes: java-gcj-compat
Obsoletes: java-sun-jre
Obsoletes: java5-sun-jre
-Obsoletes: oracle-java7-jre
Obsoletes: jre
+Obsoletes: oracle-java7-jre
%description jre
This package symlinks OpenJDK runtime environment tools provided by
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
+%patch9 -p1
%build
# Make sure we have /proc mounted - otherwise idlc will fail later.
fi
cd common/autoconf
+rm generated-configure.sh
%{__autoconf} -o generated-configure.sh
cd ../..
mkdir -p build-bin
+
+# use the specified %%use_jdk
export JAVA_HOME=%{java_home}
export PATH="$JAVA_HOME/bin:$PATH"
+
+# unset CLASSPATH to be safe, gnustep puts garbage there, which openjdk hates
+unset CLASSPATH
+
export SHELL=/bin/bash
chmod a+x configure
+# disable-debug-symbols so openjdk debuginfo handling won't conflict with ours
%configure \
+%ifarch x32
+ --with-jvm-variants=zero \
+%endif
--with-extra-cflags="%{rpmcflags}" \
--with-extra-cxxflags="%{rpmcxxflags}" \
--with-extra-ldflags="%{rpmldflags}" \
- --with-giflib=bundled \
+ --disable-debug-symbols \
+ --with-giflib=system \
--with-libjpeg=system \
--with-libpng=system \
--with-lcms=system \
specdir="$(dirname build/*-release/spec.gmk)"
cat > $specdir/custom-spec.gmk <<EOF
+# OpenJDK build system depends on bash
SHELL=/bin/bash
EOF
-[ -d tmp-bin ] || ln -s "$specdir/jdk/bin" tmp-bin
+[ -L tmp-bin ] || ln -s "$specdir/jdk/bin" tmp-bin
%{__make} all \
- LOG=debug
+ -j1 JOBS=%{__jobs} \
+ LOG=debug \
+ # these are normally set when --disable-debug-symbols is not used \
+ LIBMANAGEMENT_OPTIMIZATION=LOW \
+ LIBHPROF_OPTIMIZATION=LOW \
+ LIBVERIFY_OPTIMIZATION=LOW
export PATH="$(pwd)/build-bin:$PATH"
%{?with_cacerts:%{__sh} %{SOURCE10}}
ln -s %{dstreldir} $RPM_BUILD_ROOT%{_jvmdir}/java
-# move JDK sources and demo to /usr/src
+# move JDK sources and demo to %{_prefix}/src
mv $RPM_BUILD_ROOT%{dstdir}/demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
mv $RPM_BUILD_ROOT%{dstdir}/sample $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
mv $RPM_BUILD_ROOT%{dstdir}/src.zip $RPM_BUILD_ROOT%{_javasrcdir}/%{name}-jdk.zip
done
ln -sf ../jre/lib/jexec $RPM_BUILD_ROOT%{dstdir}/lib/jexec
-# keep configuration in /etc (not all *.properties go there)
+# keep configuration in %{_sysconfdir} (not all *.properties go there)
for config in management security content-types.properties \
logging.properties net.properties sound.properties; do
%files jre-base
%defattr(644,root,root,755)
-%doc openjdk.build/j2sdk-image/THIRD_PARTY_README
-%doc openjdk.build/j2sdk-image/ASSEMBLY_EXCEPTION
+%doc THIRD_PARTY_README
+%doc ASSEMBLY_EXCEPTION
%dir %{_sysconfdir}/%{name}
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*
%dir %{dstdir}
%{jredir}/lib/cmm
%{jredir}/lib/ext
%dir %{jredir}/lib/%{jre_arch}
-%ifnarch %{x8664} x32
-%dir %{jredir}/lib/%{jre_arch}/client
-%{jredir}/lib/%{jre_arch}/client/Xusage.txt
-%attr(755,root,root) %{jredir}/lib/%{jre_arch}/client/*.so
-%endif
%dir %{jredir}/lib/%{jre_arch}/jli
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/jli/*.so
-%{jredir}/lib/%{jre_arch}/jli/*.diz
%dir %{jredir}/lib/%{jre_arch}/server
%{jredir}/lib/%{jre_arch}/server/Xusage.txt
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/server/*.so
-%{jredir}/lib/%{jre_arch}/server/*.diz
%{jredir}/lib/%{jre_arch}/jvm.cfg
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libattach.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libawt.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjava_crw_demo.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjavajpeg.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjavalcms.so
-%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjawt.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjdwp.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjsdt.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjsig.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libunpack.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libverify.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libzip.so
-%{jredir}/lib/%{jre_arch}/*.diz
%{jredir}/lib/images
%{jredir}/lib/management
%{jredir}/lib/security
%{jredir}/lib/rt.jar
%{jredir}/lib/sound.properties
%{jredir}/lib/tzdb.dat
-%{jredir}/lib/*.diz
%{jvmjardir}
%files jre-X11
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libsplashscreen.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libawt_xawt.so
%attr(755,root,root) %{dstdir}/lib/%{jre_arch}/libjawt.so
+%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjawt.so
%files jre-base-alsa
%defattr(644,root,root,755)