# NOTE
-# - TODO: unpacked files
+# - jre-base should not pull X11 deps:
+# oracle-java8-jre-base-1.8.0.112-1.x86_64 marks gtk+2-2.24.31-1.x86_64 (cap libgdk-x11-2.0.so.0()(64bit))
# - early access packages downloadable: http://jdk6.java.net/download.html
# - sample/demo available as separate download, licensesd with Oracle BSD license
-#
# /usr/lib/jvm/java8-1.7.0.11/jre/lib/i386/libjavaplugin_jni.so
# /usr/lib/jvm/java8-1.7.0.11/jre/lib/i386/libjavaplugin_nscp.so
# /usr/lib/jvm/java8-1.7.0.11/jre/lib/i386/libjavaplugin_nscp_gcc29.so
# /usr/lib/jvm/java8-1.7.0.11/jre/lib/i386/libjavaplugin_oji.so
# /usr/lib/jvm/java8-1.7.0.11/jre/plugin/desktop/sun_java.desktop
# /usr/lib/jvm/java8-1.7.0.11/jre/plugin/desktop/sun_java.png
+# - fix files packaged to multiple packages:
+# warning: File(s) packaged into both browser-plugin-oracle-java8-1.8.0.45-1.i686 and browser-plugin-oracle-java8-ng-1.8.0.45-1.i686:
+# /usr/lib/jvm/java8-1.8.0.45/jre/plugin/desktop/sun_java.desktop
+# /usr/lib/jvm/java8-1.8.0.45/jre/plugin/desktop/sun_java.png
+# - subpackage or obsolete/provide?:
+# file /usr/bin/javaws from install of icedtea-web-1.6.1-1.x86_64 conflicts with file from package oracle-java8-jre-X11-1.8.0.66-1.x86_64
+# file /usr/share/man/man1/javaws.1.gz from install of icedtea-web-1.6.1-1.x86_64 conflicts with file from package oracle-java8-jre-X11-1.8.0.66-1.x86_64
#
# Conditional build:
%bcond_without tests # build without tests
# disable file duplicate packaging error
%define _duplicate_files_terminate_build 0
-%define src_ver 8u25
-%define dir_ver %(echo %{version} | sed 's/\\.\\(..\\)$/_\\1/')
+%define src_ver 8u112
+%define bld_ver b15
+%define dir_ver %(echo %{version} | sed 's/\\.\\([^.]\\+\\)$/_\\1/')
# class data version seen with file(1) that this jvm is able to load
%define _classdataversion 52.0
Summary: Oracle JDK (Java Development Kit) for Linux
Summary(pl.UTF-8): Oracle JDK - środowisko programistyczne Javy dla Linuksa
Name: oracle-java8
-Version: 1.8.0.25
-Release: 0.1
+Version: 1.8.0.112
+Release: 1
License: restricted, distributable
# http://www.oracle.com/technetwork/java/javase/terms/license/index.html
# See "LICENSE TO DISTRIBUTE SOFTWARE" section, which states you can
Group: Development/Languages/Java
# Download URL (requires JavaScript and interactive license agreement):
# http://www.oracle.com/technetwork/java/javase/downloads/index.html
-Source0: jdk-%{src_ver}-linux-i586.tar.gz
-# Source0-md5: b5b16247f66643727d9b6d4bc7c5efda
-Source1: jdk-%{src_ver}-linux-x64.tar.gz
-# Source1-md5: e145c03a7edc845215092786bcfba77e
+Source0: http://download.oracle.com/otn-pub/java/jdk/%{src_ver}-%{bld_ver}/jdk-%{src_ver}-linux-i586.tar.gz
+# NoSource0-md5: 66ccf8e7c28969d56863034d030134bf
+NoSource: 0
+Source1: http://download.oracle.com/otn-pub/java/jdk/%{src_ver}-%{bld_ver}/jdk-%{src_ver}-linux-x64.tar.gz
+# NoSource1-md5: de9b7a90f0f5a13cfcaa3b01451d0337
+NoSource: 1
Source2: Test.java
Source3: Test.class
# http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
-Source4: jce_policy-8.zip
-# Source4-md5: b3c7031bc65c28c2340302065e7d00d3
+Source4: http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
+# NoSource4-md5: b3c7031bc65c28c2340302065e7d00d3
+NoSource: 4
+Source5: jmc.desktop
Patch0: %{name}-desktop.patch
URL: http://www.oracle.com/technetwork/java/javase/overview/index.html
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpm-build >= 4.3-0.20040107.21
BuildRequires: rpmbuild(macros) >= 1.453
+BuildRequires: sed >= 4.0
BuildRequires: unzip
Requires: %{name}-jdk-base = %{version}-%{release}
Requires: %{name}-jre = %{version}-%{release}
Summary(pl.UTF-8): Oracle JDK - środowisko programistyczne Javy dla Linuksa
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-5
Provides: jdk(%{name})
%description jdk-base
%description jdk-base -l pl.UTF-8
Środowisko programistyczne Javy dla Linuksa.
-%package jre-jdbc
-Summary: JDBC files for Oracle Java
-Summary(pl.UTF-8): Pliki JDBC dla Javy Oracle
-Group: Development/Languages/Java
-Requires: %{name}-jre = %{version}-%{release}
-Requires: %{name}-jre-base = %{version}-%{release}
-Provides: %{name}-jdbc
-
-%description jre-jdbc
-This package contains JDBC files for Oracle Java.
-
-%description jre-jdbc -l pl.UTF-8
-Ten pakiet zawiera pliki JDBC dla Javy Oracle.
-
%package jre
Summary: Oracle JRE (Java Runtime Environment) for Linux
Summary(pl.UTF-8): Oracle JRE - środowisko uruchomieniowe Javy dla Linuksa
Group: Development/Languages/Java
Requires: %{name}-jre-base = %{version}-%{release}
Requires: %{name}-tools = %{version}-%{release}
-Requires: jpackage-utils >= 0:1.7.5-4
+Requires: jpackage-utils >= 0:1.7.5-5
Suggests: %{name}-jre-X11
Provides: java
-Provides: java(ClassDataVersion) = %{_classdataversion}
-Provides: java(jaas) = %{version}
-Provides: java(jaf) = 1.1.1
-Provides: java(jaxp) = 1.3
-Provides: java(jaxp_parser_impl)
-Provides: java(jce) = %{version}
-Provides: java(jdbc-stdext) = %{version}
-Provides: java(jdbc-stdext) = 3.0
-Provides: java(jmx) = 1.4
-Provides: java(jndi) = %{version}
-Provides: java(jsse) = %{version}
Provides: java1.4
Provides: jre = %{version}
-Obsoletes: java(jaas)
-Obsoletes: java(jaf)
-Obsoletes: java(jaxp)
-Obsoletes: java(jce)
-Obsoletes: java(jdbc-stdext)
-Obsoletes: java(jdbc-stdext)
-Obsoletes: java(jmx)
-Obsoletes: java(jndi)
-Obsoletes: java(jsse)
Obsoletes: java-blackdown-jre
Obsoletes: jre
Summary: Oracle JRE (Java Runtime Environment) for Linux
Summary(pl.UTF-8): Oracle JRE - środowisko uruchomieniowe Javy dla Linuksa
Group: Development/Languages/Java
-Requires: jpackage-utils >= 0:1.7.5-4
+Requires: jpackage-utils >= 0:1.7.5-5
+Provides: java(ClassDataVersion) = %{_classdataversion}
+Provides: java(jaas) = %{version}
+Provides: java(jaf) = 1.1.1
+Provides: java(jaxp) = 1.3
+Provides: java(jaxp_parser_impl)
+Provides: java(jce) = %{version}
+Provides: java(jdbc-stdext) = %{version}
+Provides: java(jdbc-stdext) = 3.0
+Provides: java(jmx) = 1.4
+Provides: java(jndi) = %{version}
+Provides: java(jsse) = %{version}
Provides: jre(%{name})
%description jre-base
Requires: %{name}-jre-base-X11 = %{version}-%{release}
Provides: javaws = %{version}
Provides: jre-X11 = %{version}
+Obsoletes: jre-X11
%description jre-X11
This package symlinks Oracle Java X11 libraries provided by
cp -af jre/{bin,lib} $RPM_BUILD_ROOT%{jredir}
-for i in java keytool orbd policytool javaws \
+for i in java jjs keytool orbd policytool javaws \
rmid rmiregistry servertool tnameserv pack200 unpack200; do
[ -f $RPM_BUILD_ROOT%{jredir}/bin/$i ] || exit 1
ln -sf %{jredir}/bin/$i $RPM_BUILD_ROOT%{_bindir}/$i
done
for i in appletviewer extcheck idlj jar jarsigner \
- javac javadoc javafxpackager javah javap jcmd jconsole jdb jhat jinfo jmap jmc jps \
+ javac javadoc javafxpackager javah javap javapackager jcmd jconsole jdb jdeps jhat jinfo jmap jmc jps \
jrunscript jsadebugd jstack jstat jstatd native2ascii rmic serialver \
jvisualvm schemagen wsgen wsimport xjc; do
[ -f $RPM_BUILD_ROOT%{javadir}/bin/$i ] || exit 1
# Install plugin for browsers
# Plugin in regular location simply does not work (is seen by browsers):
-%ifarch %{ix86}
+%ifarch 0
ln -sf %{jredir}/plugin/%{arch}/ns7/libjavaplugin_oji.so $RPM_BUILD_ROOT%{_browserpluginsdir}
%endif
ln -sf %{jredir}/lib/%{arch}/libnpjp2.so $RPM_BUILD_ROOT%{_browserpluginsdir}
cp -a *.desktop $RPM_BUILD_ROOT%{_desktopdir}
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
cp -a jre/plugin/desktop/*.png $RPM_BUILD_ROOT%{_pixmapsdir}
+cp -p lib/missioncontrol/icon.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/jmc.xpm
+ln -sf %{_pixmapsdir}/jmc.xpm $RPM_BUILD_ROOT%{javadir}/lib/missioncontrol/icon.xpm
ln -sf %{jredir}/lib/jsse.jar $RPM_BUILD_ROOT%{jvmjardir}/jsse.jar
ln -sf %{jredir}/lib/jsse.jar $RPM_BUILD_ROOT%{jvmjardir}/jcert.jar
ln -s java8-%{version} $RPM_BUILD_ROOT%{_jvmjardir}/jre
ln -s java8-%{version} $RPM_BUILD_ROOT%{_jvmjardir}/jsse
+# ugly hack for libavplugin.so
+cp -p $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-56.so \
+ $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-57.so
+%{__sed} -i -e '
+ s#\.so\.56#.so.57#g
+ s#LIBAVFORMAT_56#LIBAVFORMAT_57#g
+ s#LIBAVCODEC_56#LIBAVCODEC_57#g
+' $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-57.so
+rm $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-53.so
+rm $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-54.so
+rm $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-55.so
+rm $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-56.so
+rm $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin-ffmpeg-56.so
+
# modify RPATH so that javac and friends are able to work when /proc is not
# mounted and we can't append to RPATH (for example to keep previous lookup
# path) as RPATH can't be longer than original
chrpath -d $RPM_BUILD_ROOT%{jredir}/bin/unpack200
fixrpath() {
- execlist=$(find $RPM_BUILD_ROOT%{javadir} -type f -perm +1 | xargs file | awk -F: '/ELF.*executable/{print $1}')
+ execlist=$(find $RPM_BUILD_ROOT%{javadir} -type f -executable | xargs file | awk -F: '/ELF.*executable/{print $1}')
for f in $execlist; do
rpath=$(chrpath -l $f | awk '/(R|RUN)PATH=/ { gsub(/.*RPATH=/,""); gsub(/.*RUNPATH=/,""); gsub(/:/," "); print $0 }')
[ "$rpath" ] || continue
%attr(755,root,root) %{_bindir}/javafxpackager
%attr(755,root,root) %{_bindir}/javah
%attr(755,root,root) %{_bindir}/javap
+%attr(755,root,root) %{_bindir}/javapackager
%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
%{_mandir}/man1/javafxpackager.1*
%{_mandir}/man1/javah.1*
%{_mandir}/man1/javap.1*
+%{_mandir}/man1/javapackager.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*
%lang(ja) %{_mandir}/ja/man1/javafxpackager.1*
%lang(ja) %{_mandir}/ja/man1/javah.1*
%lang(ja) %{_mandir}/ja/man1/javap.1*
+%lang(ja) %{_mandir}/ja/man1/javapackager.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*
%attr(755,root,root) %{javadir}/bin/javafxpackager
%attr(755,root,root) %{javadir}/bin/javah
%attr(755,root,root) %{javadir}/bin/javap
+%attr(755,root,root) %{javadir}/bin/javapackager
%attr(755,root,root) %{javadir}/bin/jcmd
%attr(755,root,root) %{javadir}/bin/jconsole
%attr(755,root,root) %{javadir}/bin/jdb
+%attr(755,root,root) %{javadir}/bin/jdeps
%attr(755,root,root) %{javadir}/bin/jhat
%attr(755,root,root) %{javadir}/bin/jinfo
%attr(755,root,root) %{javadir}/bin/jmap
%attr(755,root,root) %{javadir}/bin/wsimport
%attr(755,root,root) %{javadir}/bin/xjc
%{javadir}/include
-%dir %{javadir}/lib
%attr(755,root,root) %{javadir}/lib/jexec
%{javadir}/lib/ct.sym
%{javadir}/lib/*.jar
%{_mandir}/man1/appletviewer.1*
%lang(ja) %{_mandir}/ja/man1/appletviewer.1*
-#%files jre-jdbc
-#%defattr(644,root,root,755)
-#%attr(755,root,root) %{jredir}/lib/%{arch}/libJdbcOdbc.so
-
%files jre
%defattr(644,root,root,755)
%doc jre/Xusage*
%{_jvmjardir}/jre
%{_jvmjardir}/jsse
%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}/rmid
%attr(755,root,root) %{_bindir}/pack200
%attr(755,root,root) %{_bindir}/unpack200
%{_mandir}/man1/java.1*
+%{_mandir}/man1/jjs.1*
%{_mandir}/man1/keytool.1*
%{_mandir}/man1/orbd.1*
%{_mandir}/man1/rmid.1*
%{_mandir}/man1/*pack200.1*
%lang(ja) %{_mandir}/ja/man1/*pack200.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/rmid.1*
%attr(755,root,root) %{javadir}/bin/unpack200
%attr(755,root,root) %{javadir}/bin/java
%attr(755,root,root) %{javadir}/bin/jar
+%attr(755,root,root) %{javadir}/bin/jjs
%attr(755,root,root) %{javadir}/bin/rmic
%dir %{jredir}
%dir %{jredir}/bin
%attr(755,root,root) %{jredir}/bin/pack200
%attr(755,root,root) %{jredir}/bin/unpack200
%attr(755,root,root) %{jredir}/bin/java
+%attr(755,root,root) %{jredir}/bin/jjs
%attr(755,root,root) %{jredir}/bin/keytool
%attr(755,root,root) %{jredir}/bin/orbd
%attr(755,root,root) %{jredir}/bin/rmid
%attr(755,root,root) %{jredir}/bin/rmiregistry
%attr(755,root,root) %{jredir}/bin/servertool
%attr(755,root,root) %{jredir}/bin/tnameserv
+%dir %{javadir}/lib
%dir %{jredir}/lib
%{jredir}/lib/applet
%{jredir}/lib/cmm
%attr(755,root,root) %{jredir}/lib/%{arch}/jli/libjli.so
%attr(755,root,root) %{jredir}/lib/%{arch}/lib*.so
-%exclude %{jredir}/lib/%{arch}/libjavaplugin*.so
-%exclude %{jredir}/lib/%{arch}/libJdbcOdbc.so
%exclude %{jredir}/lib/%{arch}/libjsoundalsa.so
%exclude %{jredir}/lib/%{arch}/libnpjp2.so
%exclude %{jredir}/lib/%{arch}/libsplashscreen.so
%exclude %{jredir}/lib/%{arch}/libglass.so
%exclude %{jredir}/lib/%{arch}/libgstreamer-lite.so
-%exclude %{jredir}/lib/%{arch}/libgstplugins-lite.so
-%exclude %{jredir}/lib/%{arch}/libjavafx-*.so
+%exclude %{jredir}/lib/%{arch}/libjavafx_*.so
%exclude %{jredir}/lib/%{arch}/libjfx*.so
-%exclude %{jredir}/lib/%{arch}/libprism-es2.so
+%exclude %{jredir}/lib/%{arch}/libprism_*.so
+%exclude %{jredir}/lib/%{arch}/libfxplugins.so
+%exclude %{jredir}/lib/%{arch}/libavplugin-57.so
%{jredir}/lib/deploy
%{jredir}/lib/desktop
%{jredir}/lib/security/*.*
%{jredir}/lib/security/blacklist
%verify(not md5 mtime size) %config(noreplace) %{jredir}/lib/security/cacerts
-%{jredir}/lib/zi
%{jredir}/lib/*.jar
-%exclude %{jredir}/lib/jfxrt.jar
+%exclude %{jredir}/lib/ext/jfxrt.jar
%{jredir}/lib/*.properties
+%{jredir}/lib/tzdb.dat
%exclude %{jredir}/lib/javafx.properties
%lang(ja) %{jredir}/lib/*.properties.ja
%dir %{jvmjardir}
%attr(755,root,root) %{javadir}/bin/javaws
%{jredir}/lib/fonts
%{jredir}/lib/oblique-fonts
-%dir %{jredir}/lib/%{arch}/xawt
%attr(755,root,root) %{jredir}/lib/%{arch}/libsplashscreen.so
%{jvmjardir}/javaws.jar
-%attr(755,root,root) %{jredir}/lib/%{arch}/xawt/libmawt.so
+%attr(755,root,root) %{javadir}/lib/%{arch}/libjawt.so
%dir %{jredir}/lib/locale
%lang(de) %{jredir}/lib/locale/de
%lang(es) %{jredir}/lib/locale/es
%files javafx
%defattr(644,root,root,755)
-%attr(755,root,root) %{jredir}/lib/%{arch}/fxavcodecplugin-55.so
-%attr(755,root,root) %{jredir}/lib/%{arch}/fxplugins.so
+%attr(755,root,root) %{jredir}/lib/%{arch}/libavplugin-57.so
+%attr(755,root,root) %{jredir}/lib/%{arch}/libfxplugins.so
%attr(755,root,root) %{jredir}/lib/%{arch}/libglass.so
-%attr(755,root,root) %{jredir}/lib/%{arch}/libgstplugins-lite.so
%attr(755,root,root) %{jredir}/lib/%{arch}/libgstreamer-lite.so
-%attr(755,root,root) %{jredir}/lib/%{arch}/libjavafx-*.so
+%attr(755,root,root) %{jredir}/lib/%{arch}/libjavafx_*.so
%attr(755,root,root) %{jredir}/lib/%{arch}/libjfx*.so
-%attr(755,root,root) %{jredir}/lib/%{arch}/libprism-es2.so
+%attr(755,root,root) %{jredir}/lib/%{arch}/libprism_*.so
%{jredir}/lib/javafx.properties
-%{jredir}/lib/jfxrt.jar
+%{jredir}/lib/ext/jfxrt.jar
%files visualvm
%defattr(644,root,root,755)
%lang(ja) %{_mandir}/ja/man1/rmic.1*
%lang(ja) %{_mandir}/ja/man1/rmiregistry.1*
-%ifarch %{ix86}
+%if 0
%files -n browser-plugin-%{name}
%defattr(644,root,root,755)
%dir %{jredir}/plugin
-%dir %{jredir}/plugin/%{arch}
-%dir %{jredir}/plugin/%{arch}/ns7
-%ifarch %{x8664}
-%dir %{jredir}/plugin/%{arch}/ns7-gcc29
-%endif
-# XXX: duplicate
-%attr(755,root,root) %{jredir}/lib/%{arch}/libjavaplugin*.so
-%attr(755,root,root) %{jredir}/plugin/%{arch}/*/libjavaplugin_oji.so
%attr(755,root,root) %{_browserpluginsdir}/libjavaplugin_oji.so
%{jredir}/plugin/desktop
%endif
%files -n browser-plugin-%{name}-ng
%defattr(644,root,root,755)
%dir %{jredir}/plugin
-# XXX: duplicate
-%attr(755,root,root) %{jredir}/lib/%{arch}/libjavaplugin*.so
%attr(755,root,root) %{jredir}/lib/%{arch}/libnpjp2.so
%attr(755,root,root) %{_browserpluginsdir}/libnpjp2.so
%{jredir}/plugin/desktop
%{jredir}/lib/jfr/default.jfc
%{jredir}/lib/jfr/profile.jfc
%{javadir}/lib/missioncontrol
+%{_desktopdir}/jmc.desktop
+%{_pixmapsdir}/jmc.xpm
%{_mandir}/man1/jmc.1*
%lang(ja) %{_mandir}/ja/man1/jmc.1*