oracle_j2sdk_detect() {
j2se_release=0
+ # JDK 10 release candidate (jdk-10+46_linux-x64_bin.tar.gz)
+ if [[ $archive_name =~ jdk-10(\.([0-9]+)\.([0-9]+)|\+[0-9]+)?_linux-x64_bin\.tar\.gz ]]
+ then
+ j2se_release=10
+ j2se_update=${BASH_REMATCH[1]:-.0.0}
+ j2se_arch=x64
+ j2se_version_name="${j2se_release} version ${j2se_release}${j2se_update}"
+ j2se_version=${j2se_release}${j2se_update}${revision}
+ j2se_expected_min_size=340 #Mb
+ j2se_binary_subdir="/bin"
+ oracle_no_man_jre_bin_jre="appletviewer idlj jaotc jar jarsigner java javac javadoc javap javapackager javaws jcmd jconsole jcontrol jdb jdeprscan jdeps jhsdb jimage jinfo jjs jlink jmap jmod jps jrunscript jshell jstack jstat jstatd jweblauncher keytool orbd pack200 rmic rmid rmiregistry schemagen serialver servertool tnameserv unpack200 wsgen wsimport xjc"
+ oracle_bin_jdk=" "
+ oracle_jre_bin_hl=" "
+ oracle_jre_bin_jre=" "
+ fi
+
+ # JDK 9 GA release (jdk-9.0.1_linux-x64_bin.tar.gz)
+ if [[ $archive_name =~ jdk-9(\.([0-9]+)\.([0-9]+))?_linux-x64_bin\.tar\.gz ]]
+ then
+ j2se_release=9
+ j2se_update=${BASH_REMATCH[1]:-.0.0}
+ j2se_arch=x64
+ j2se_version_name="${j2se_release} version ${j2se_release}${j2se_update}"
+ j2se_version=${j2se_release}${j2se_update}${revision}
+ j2se_expected_min_size=340 #Mb
+ j2se_binary_subdir="/bin"
+ oracle_no_man_jre_bin_jre="appletviewer idlj jaotc jar jarsigner java javac javadoc javah javap javapackager javaws jcmd jconsole jcontrol jdb jdeprscan jdeps jhsdb jimage jinfo jjs jlink jmap jmc jmod jps jrunscript jshell jstack jstat jstatd jweblauncher keytool orbd pack200 policytool rmic rmid rmiregistry schemagen serialver servertool tnameserv unpack200 wsgen wsimport xjc"
+ oracle_bin_jdk=" "
+ oracle_jre_bin_hl=" "
+ oracle_jre_bin_jre=" "
+ fi
+
# Update or GA release (jdk-7u15-linux-i586.tar.gz)
- if [[ $archive_name =~ jdk-([0-9]+)(u([0-9]+))?-linux-(i586|x64|amd64|arm-vfp-hflt)\.(bin|tar\.gz) ]]
+ if [[ $archive_name =~ jdk-([0-8]+)(u([0-9]+))?-linux-(i586|x64|amd64|arm-vfp-hflt)\.(bin|tar\.gz) ]]
then
j2se_release=${BASH_REMATCH[1]}
j2se_update=${BASH_REMATCH[3]}
fi
# Early Access Release (jdk-8-ea-bin-b103-linux-i586-15_aug_2013.tar.gz)
- if [[ $archive_name =~ jdk-([0-9]+)(u([0-9]+))?-(ea|fcs)(-bin)?-(b[0-9]+)-linux-(i586|x64|amd64|arm-vfp-hflt).*\.(bin|tar\.gz) ]]
+ if [[ $archive_name =~ jdk-([0-8]+)(u([0-9]+))?-(ea|fcs)(-bin)?-(b[0-9]+)-linux-(i586|x64|amd64|arm-vfp-hflt).*\.(bin|tar\.gz) ]]
then
j2se_release=${BASH_REMATCH[1]}
j2se_update=${BASH_REMATCH[3]}
if [[ $j2se_release > 0 ]]
then
j2se_priority=$((310 + $j2se_release))
- j2se_expected_min_size=130 #Mb
+ j2se_expected_min_size=${j2se_expected_min_size:-180} #Mb
# check if the architecture matches
let compatible=1
j2se_found=true
j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
j2se_vendor="oracle"
- j2se_title="Java™ Platform, Standard Edition $j2se_release Development Kit"
+ j2se_title="Java Platform, Standard Edition $j2se_release Development Kit"
j2se_install=oracle_j2sdk_install
j2se_remove=oracle_j2sdk_remove
j2se_jinfo=oracle_j2sdk_jinfo
+ j2se_control=oracle_j2sdk_control
if [ "${DEB_BUILD_ARCH:0:3}" = "arm" ]; then
# javaws is not available for ARM
oracle_jre_bin_hl="java keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool"
oracle_jre_bin_jre="policytool"
else
- oracle_jre_bin_hl="java javaws keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool"
- oracle_jre_bin_jre="javaws policytool"
+ oracle_jre_bin_hl="${oracle_jre_bin_hl:-java javaws keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool}"
+ oracle_jre_bin_jre="${oracle_jre_bin_jre:-javaws policytool}"
fi
if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
- oracle_no_man_jre_bin_jre="ControlPanel jcontrol"
+ oracle_no_man_jre_bin_jre="${oracle_no_man_jre_bin_jre:-ControlPanel jcontrol}"
fi
oracle_jre_lib_hl="jexec"
- oracle_bin_jdk="appletviewer extcheck idlj jar jarsigner javac javadoc javah javap jcmd jconsole jdb jdeps jhat jinfo jmap jmc jps jrunscript jsadebugd jstack jstat jstatd jvisualvm native2ascii rmic schemagen serialver wsgen wsimport xjc"
- j2sdk_run
+ oracle_bin_jdk="${oracle_bin_jdk:-appletviewer extcheck idlj jar jarsigner javac javadoc javah javap jcmd jconsole jdb jdeps jhat jinfo jmap jmc jps jrunscript jsadebugd jstack jstat jstatd jvisualvm native2ascii rmic schemagen serialver wsgen wsimport xjc}"
+ j2se_package="$j2se_vendor-java$j2se_release-jdk"
+ j2se_binary_subdir="${j2se_binary_subdir:-/jre/bin}"
+ j2se_run
fi
fi
}
exit 0
fi
-install_alternatives $jvm_base$j2se_name/jre/bin $oracle_jre_bin_hl
-install_alternatives $jvm_base$j2se_name/jre/bin $oracle_jre_bin_jre
+install_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_hl
+install_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_jre
if [ -n "$oracle_no_man_jre_bin_jre" ]; then
- install_no_man_alternatives $jvm_base$j2se_name/jre/bin $oracle_no_man_jre_bin_jre
+ install_no_man_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_no_man_jre_bin_jre
fi
install_no_man_alternatives $jvm_base$j2se_name/jre/lib $oracle_jre_lib_hl
install_alternatives $jvm_base$j2se_name/bin $oracle_bin_jdk
-# No plugin for ARM architecture yet
-if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
+# No plugin for ARM architecture yet and no plugin in Java 10 later
+if [[ "${DEB_BUILD_ARCH:0:3}" != "arm" && "${j2se_release}" -lt "10" ]]; then
plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH"
for b in $browser_plugin_dirs;do
install_browser_plugin "/usr/lib/\$b/plugins" "libjavaplugin.so" "\$b-javaplugin.so" "\$plugin_dir/libnpjp2.so"
exit 0
fi
-remove_alternatives $jvm_base$j2se_name/jre/bin $oracle_jre_bin_hl
-remove_alternatives $jvm_base$j2se_name/jre/bin $oracle_jre_bin_jre
+remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_hl
+remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_jre
if [ -n "$oracle_no_man_jre_bin_jre" ]; then
- remove_alternatives $jvm_base$j2se_name/jre/bin $oracle_no_man_jre_bin_jre
+ remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_no_man_jre_bin_jre
fi
remove_alternatives $jvm_base$j2se_name/jre/lib $oracle_jre_lib_hl
remove_alternatives $jvm_base$j2se_name/bin $oracle_bin_jdk
-# No plugin for ARM architecture yet
-if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
+# No plugin for ARM architecture yet and no plugin in Java 10 and later
+if [[ "${DEB_BUILD_ARCH:0:3}" != "arm" && "${j2se_release}" -lt "10" ]]; then
plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH"
for b in $browser_plugin_dirs;do
remove_browser_plugin "\$b-javaplugin.so" "\$plugin_dir/libnpjp2.so"
oracle_j2sdk_jinfo() {
cat << EOF
name=$j2se_name
-priority=$j2se_priority
+priority=${priority_override:-$j2se_priority}
section=main
EOF
- jinfos "hl" $jvm_base$j2se_name/jre/bin/ $oracle_jre_bin_hl
- jinfos "jre" $jvm_base$j2se_name/jre/bin/ $oracle_jre_bin_jre
+ jinfos "hl" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_jre_bin_hl
+ jinfos "jre" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_jre_bin_jre
if [ -n "$oracle_no_man_jre_bin_jre" ]; then
- jinfos "jre" $jvm_base$j2se_name/jre/bin/ $oracle_no_man_jre_bin_jre
+ jinfos "jre" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_no_man_jre_bin_jre
fi
jinfos "hl" $jvm_base$j2se_name/jre/lib/ $oracle_jre_lib_hl
jinfos "jdk" $jvm_base$j2se_name/bin/ $oracle_bin_jdk
done
fi
}
+
+oracle_j2sdk_control() {
+ build_depends="libasound2, libgl1-mesa-glx, libgtk2.0-0, libxslt1.1, libxtst6, libxxf86vm1"
+ j2se_control
+ java_browser_plugin="java-browser-plugin, "
+ depends="\${shlibs:Depends}"
+ if [ "${DEB_BUILD_ARCH:0:3}" = "arm" -a "${j2se_arch}" != "arm-vfp-hflt" ]; then
+ # ARM is only softfloat ATM so if building on armhf
+ # force the dependencies to pickup cross platform fu
+ if [ "${DEB_BUILD_ARCH}" == "armhf" ]; then
+ depends="libc6-armel, libsfgcc1, libsfstdc++6"
+ fi
+ # No browser on ARM yet
+ java_browser_plugin=""
+ fi
+ if [ "$create_cert_softlinks" == "true" ]; then
+ depends="$depends, ca-certificates-java"
+ fi
+ for i in `seq 5 ${j2se_release}`;
+ do
+ provides_runtime="${provides_runtime} java${i}-runtime,"
+ provides_headless="${provides_headless} java${i}-runtime-headless,"
+ provides_sdk="${provides_sdk} java${i}-sdk,"
+ done
+ cat << EOF
+Package: $j2se_package
+Architecture: $j2se_debian_arch
+Depends: \${misc:Depends}, java-common, $depends
+Recommends: netbase
+Provides: java-virtual-machine, java-runtime, java2-runtime, $provides_runtime $java_browser_plugin java-compiler, java2-compiler, java-runtime-headless, java2-runtime-headless, $provides_headless java-sdk, java2-sdk, $provides_sdk
+Description: $j2se_title
+ The Java(TM) SE JDK is a development environment for building
+ applications, applets, and components that can be deployed on the
+ Java(TM) platform.
+ .
+ The Java(TM) SE JDK software includes tools useful for developing and
+ testing programs written in the Java programming language and running
+ on the Java platform. These tools are designed to be used from the
+ command line. Except for appletviewer, these tools do not provide a
+ graphical user interface.
+ .
+ This package has been automatically created with java-package ($version).
+EOF
+}