# 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}
Requires: %{name}-jre-base = %{version}-%{release}
Requires: jpackage-utils >= 0:1.7.5-5
Provides: jdk(%{name})
-Obsoletes: jdk
%description jdk-base
Java Development Kit for Linux.
# 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}/jsse
# ugly hack for libavplugin.so
-perl -pi -e 's#.so.53#.so.56#g' \
- $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin.so
-perl -pi -e 's#LIBAVFORMAT_53#LIBAVFORMAT_56#g' \
- $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/libavplugin.so
-perl -pi -e 's#LIBAVCODEC_53#LIBAVCODEC_56#g' \
- $RPM_BUILD_ROOT%{jredir}/lib/%{arch}/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
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) %{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
%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
%exclude %{jredir}/lib/%{arch}/libjfx*.so
%exclude %{jredir}/lib/%{arch}/libprism_*.so
%exclude %{jredir}/lib/%{arch}/libfxplugins.so
-%exclude %{jredir}/lib/%{arch}/libavplugin.so
+%exclude %{jredir}/lib/%{arch}/libavplugin-57.so
%{jredir}/lib/deploy
%{jredir}/lib/desktop
%files javafx
%defattr(644,root,root,755)
-%attr(755,root,root) %{jredir}/lib/%{arch}/libavplugin.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}/libgstreamer-lite.so
%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}/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}/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*