#
+# 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:
-# - make it build
-# - make it install
-# - fix BuildRequires
-# - fix build with system giflib
-#
+# - use other system libs (libsctp?)
+# - include icedtea-sound?
+# - 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
%endif
# class data version seen with file(1) that this jvm is able to load
-%define _classdataversion 51.0
+%define _classdataversion 52.0
# JDK/JRE version, as returned with `java -version`, '_' replaced with '.'
-%define _jdkversion 1.7.0.85
+%define _jdkversion 1.8.0.internal
+%define ver_u 92
+%define ver_b 31
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: 1
License: GPL v2
Group: Development/Languages/Java
-Source0: openjdk8-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source0-md5: 7ae143bc2b840f1bfbfa15a1dcbcc371
-Source1: openjdk8-corba-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source1-md5: a54c4b046d4f9b7dc0e64b79b734d2f3
-Source2: openjdk8-hotspot-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source2-md5: 1368abb3e02079bb7cd802d2bef136b4
-Source3: openjdk8-jaxp-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source3-md5: dccca275bad921fc036221ba36f9596e
-Source4: openjdk8-jaxws-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source5-md5: faf2d077d9c41a8c11a2b038fb5d2e50
-Source5: openjdk8-jdk-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source5-md5: a14e4f9a26a229fdc59dc77cf9754fee
-Source6: openjdk8-langtools-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source6-md5: 6f6dd27e4ca48a49c0c2ec16310c44f3
-Source7: openjdk8-nashorn-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
-# Source7-md5: 19581a68b0ffa30d8a23f384fcb8c91d
+Source0: %{name}-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source0-md5: 12c37c3002601a22d3738fbfc7ce7fc4
+Source1: %{name}-corba-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source1-md5: 04527579bbf4d1d62174e580c73b37f4
+Source2: %{name}-hotspot-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source2-md5: 9af1f1d01de54a7f1ee775747e97f603
+Source3: %{name}-jaxp-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source3-md5: 462b944cbf7f082ded61dc4e4437a23c
+Source4: %{name}-jaxws-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source4-md5: 8e387a76f8d7c13cc3cb28efa400a134
+Source5: %{name}-jdk-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source5-md5: 4a9c93dfef91c94779dd7606df04116e
+Source6: %{name}-langtools-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source6-md5: 5f6e4140c3ac0b76f1841a8adcaf416a
+Source7: %{name}-nashorn-jdk8u%{ver_u}-b%{ver_b}.tar.bz2
+# Source7-md5: dca7539d79ca8ff2695fab7dcd260971
Source10: make-cacerts.sh
Patch0: adjust-mflags.patch
Patch1: format_strings.patch
+Patch2: CompileDemos.patch
+Patch3: libpath.patch
+Patch4: system-libjpeg.patch
+Patch5: system-libpng.patch
+Patch6: system-lcms.patch
+Patch7: system-pcsclite.patch
URL: http://openjdk.java.net/
+BuildRequires: /usr/bin/jar
BuildRequires: alsa-lib-devel
BuildRequires: ant
BuildRequires: autoconf
-BuildRequires: automake
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
BuildRequires: lsb-release
+BuildRequires: pcsc-lite-devel
BuildRequires: pkgconfig
BuildRequires: rpmbuild(macros) >= 1.557
BuildRequires: unzip
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
Summary(pl.UTF-8): Kod OpenJDK - środowisko programistyczne
Group: Development/Languages/Java
Requires: %{name}-jre-base = %{version}-%{release}
-Requires: jpackage-utils >= 0:1.7.5-4
+Requires: jpackage-utils >= 0:1.7.5-7
Provides: jdk(%{name})
%description jdk-base
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
Summary: OpenJDK - runtime environment
Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe
Group: Development/Languages/Java
-Requires: jpackage-utils >= 0:1.7.5-4
+Requires: jpackage-utils >= 0:1.7.5-7
Provides: jre(%{name})
%description jre-base
%setup -qn jdk8u-jdk8u%{ver_u}-b%{ver_b} -a1 -a2 -a3 -a4 -a5 -a6 -a7
for d in *-jdk8u*-b* ; do
- ln -s "$d" "${d%%-jdk8u*-b*}"
+ mv "$d" "${d%%-jdk8u*-b*}"
done
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
%build
# Make sure we have /proc mounted - otherwise idlc will fail later.
exit 1
fi
-unset JAVA_HOME
-export SHELL=/bin/bash
+cd common/autoconf
+rm generated-configure.sh
+%{__autoconf} -o generated-configure.sh
+cd ../..
mkdir -p build-bin
-export PATH="$(pwd)/build-bin:$PATH"
+
+# 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 \
+ --with-libpcsclite=system \
--with-zlib=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} \
- LOG=debug
+%{__make} all \
+ -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}}
%install
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}
# install the 'JDK image', it contains the JRE too
-cp -a openjdk.build/j2sdk-image/* $RPM_BUILD_ROOT%{dstdir}
+cp -a build/*-release/images/j2sdk-image/* $RPM_BUILD_ROOT%{dstdir}
# convenience symlinks without version number
ln -s %{dstreldir} $RPM_BUILD_ROOT%{_jvmdir}/%{name}
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
# some apps (like opera) looks for it in different place
ln -s server/libjvm.so $RPM_BUILD_ROOT%{jredir}/lib/%{jre_arch}/libjvm.so
-# uses /usr/share/javazi if present and we require that package
-%{__rm} -r $RPM_BUILD_ROOT%{jredir}/lib/zi
-
%{__rm} $RPM_BUILD_ROOT%{dstdir}/{,jre/}{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
%{?with_cacerts:install cacerts $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/security}
%files jdk
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/apt
%attr(755,root,root) %{_bindir}/extcheck
%attr(755,root,root) %{_bindir}/idlj
%attr(755,root,root) %{_bindir}/jarsigner
%attr(755,root,root) %{_bindir}/jcmd
%attr(755,root,root) %{_bindir}/jconsole
%attr(755,root,root) %{_bindir}/jdb
+%attr(755,root,root) %{_bindir}/jdeps
%attr(755,root,root) %{_bindir}/jhat
%attr(755,root,root) %{_bindir}/jinfo
%attr(755,root,root) %{_bindir}/jmap
%attr(755,root,root) %{_bindir}/wsimport
%attr(755,root,root) %{_bindir}/xjc
%{_jvmdir}/java
-%{_mandir}/man1/apt.1*
%{_mandir}/man1/extcheck.1*
%{_mandir}/man1/idlj.1*
%{_mandir}/man1/jarsigner.1*
%{_mandir}/man1/jcmd.1*
%{_mandir}/man1/jconsole.1*
%{_mandir}/man1/jdb.1*
+%{_mandir}/man1/jdeps.1*
%{_mandir}/man1/jhat.1*
%{_mandir}/man1/jinfo.1*
%{_mandir}/man1/jmap.1*
%{_mandir}/man1/wsgen.1*
%{_mandir}/man1/wsimport.1*
%{_mandir}/man1/xjc.1*
-%lang(ja) %{_mandir}/ja/man1/apt.1*
%lang(ja) %{_mandir}/ja/man1/extcheck.1*
%lang(ja) %{_mandir}/ja/man1/idlj.1*
%lang(ja) %{_mandir}/ja/man1/jarsigner.1*
%lang(ja) %{_mandir}/ja/man1/jcmd.1*
%lang(ja) %{_mandir}/ja/man1/jconsole.1*
%lang(ja) %{_mandir}/ja/man1/jdb.1*
+%lang(ja) %{_mandir}/ja/man1/jdeps.1*
%lang(ja) %{_mandir}/ja/man1/jhat.1*
%lang(ja) %{_mandir}/ja/man1/jinfo.1*
%lang(ja) %{_mandir}/ja/man1/jmap.1*
%files jdk-base
%defattr(644,root,root,755)
-%doc openjdk.build/j2sdk-image/THIRD_PARTY_README
-%doc openjdk.build/j2sdk-image/ASSEMBLY_EXCEPTION
+%doc build/*-release/images/j2sdk-image/THIRD_PARTY_README
+%doc build/*-release/images/j2sdk-image/ASSEMBLY_EXCEPTION
%dir %{dstdir}
%{_jvmdir}/%{name}
%attr(755,root,root) %{dstdir}/bin/appletviewer
-%attr(755,root,root) %{dstdir}/bin/apt
%attr(755,root,root) %{dstdir}/bin/extcheck
%attr(755,root,root) %{dstdir}/bin/idlj
%attr(755,root,root) %{dstdir}/bin/jar
%attr(755,root,root) %{dstdir}/bin/jconsole
%attr(755,root,root) %{dstdir}/bin/jcmd
%attr(755,root,root) %{dstdir}/bin/jdb
+%attr(755,root,root) %{dstdir}/bin/jdeps
%attr(755,root,root) %{dstdir}/bin/jhat
%attr(755,root,root) %{dstdir}/bin/jinfo
%attr(755,root,root) %{dstdir}/bin/jmap
%dir %{dstdir}/lib/%{jre_arch}
%dir %{dstdir}/lib/%{jre_arch}/jli
%attr(755,root,root) %{dstdir}/lib/%{jre_arch}/jli/*.so
-%{dstdir}/tapset
%files jre
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/java
+%attr(755,root,root) %{_bindir}/jjs
%attr(755,root,root) %{_bindir}/keytool
%attr(755,root,root) %{_bindir}/orbd
%attr(755,root,root) %{_bindir}/pack200
%attr(755,root,root) %{_bindir}/tnameserv
%attr(755,root,root) %{_bindir}/unpack200
%{_mandir}/man1/java.1*
+%{_mandir}/man1/jjs.1*
%{_mandir}/man1/keytool.1*
%{_mandir}/man1/orbd.1*
%{_mandir}/man1/pack200.1*
%{_mandir}/man1/tnameserv.1*
%{_mandir}/man1/unpack200.1*
%lang(ja) %{_mandir}/ja/man1/java.1*
+%lang(ja) %{_mandir}/ja/man1/jjs.1*
%lang(ja) %{_mandir}/ja/man1/keytool.1*
%lang(ja) %{_mandir}/ja/man1/orbd.1*
%lang(ja) %{_mandir}/ja/man1/pack200.1*
%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}
%dir %{dstdir}/bin
%attr(755,root,root) %{jredir}/bin/java
%attr(755,root,root) %{dstdir}/bin/java
+%attr(755,root,root) %{jredir}/bin/jjs
+%attr(755,root,root) %{dstdir}/bin/jjs
%attr(755,root,root) %{jredir}/bin/keytool
%attr(755,root,root) %{dstdir}/bin/keytool
%attr(755,root,root) %{jredir}/bin/orbd
%{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}/headless
-%attr(755,root,root) %{jredir}/lib/%{jre_arch}/headless/*.so
%dir %{jredir}/lib/%{jre_arch}/jli
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/jli/*.so
%dir %{jredir}/lib/%{jre_arch}/server
%{jredir}/lib/%{jre_arch}/server/Xusage.txt
-%ifnarch x32
-%{jredir}/lib/%{jre_arch}/server/classes.jsa
-%endif
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/server/*.so
%{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}/libawt_headless.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libdt_socket.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libhprof.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libinstrument.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libj2gss.so
-%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libj2krb5.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libj2pcsc.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libj2pkcs11.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjaas_unix.so
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjava.so
+%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libsctp.so
+%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libsunec.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}/libjavasctp.so
-%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjava_crw_demo.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
%{jredir}/lib/images
%{jredir}/lib/management
%{jredir}/lib/security
-
%if %{with webstart}
%{jredir}/lib/about.jar
%{jredir}/lib/about.jnlp
%{jredir}/lib/content-types.properties
%{jredir}/lib/currency.data
%{jredir}/lib/flavormap.properties
-%{jredir}/lib/fontconfig.*
+%{jredir}/lib/hijrah-config-umalqura.properties
%{jredir}/lib/jce.jar
%attr(755, root, root) %{jredir}/lib/jexec
%{jredir}/lib/jsse.jar
%{jredir}/lib/psfont.properties.ja
%{jredir}/lib/psfontj2d.properties
%{jredir}/lib/resources.jar
-%{jredir}/lib/rhino.jar
%{jredir}/lib/rt.jar
%{jredir}/lib/sound.properties
-%{jredir}/lib/tz.properties
+%{jredir}/lib/tzdb.dat
%{jvmjardir}
%files jre-X11
%defattr(644,root,root,755)
%attr(755,root,root) %{jredir}/bin/policytool
%attr(755,root,root) %{dstdir}/bin/policytool
-%dir %{jredir}/lib/%{jre_arch}/xawt
-%attr(755,root,root) %{jredir}/lib/%{jre_arch}/xawt/*.so
%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)
%defattr(644,root,root,755)
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libfontmanager.so
+%if 0
%files jre-base-gtk
%defattr(644,root,root,755)
%attr(755,root,root) %{jredir}/lib/%{jre_arch}/libjavagtk.so
+%endif
%files jar
%defattr(644,root,root,755)