X-Git-Url: http://git.sven.stormbind.net/?p=sven%2Fjava-package.git;a=blobdiff_plain;f=lib%2Foracle-jdk.sh;h=54f38298c2895fc493bd41700ac270017523d309;hp=ee635d07fc4d691b1595a080f550f436d4c3e1f4;hb=13cbb1260288871a5cbbf3b98815252f3e9b5aa3;hpb=180e0729ecd87f3e76c66ce3a7bae594ee19729d diff --git a/lib/oracle-jdk.sh b/lib/oracle-jdk.sh index ee635d0..54f3829 100644 --- a/lib/oracle-jdk.sh +++ b/lib/oracle-jdk.sh @@ -3,8 +3,40 @@ j2se_detect_oracle_j2sdk=oracle_j2sdk_detect 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]} @@ -12,15 +44,15 @@ oracle_j2sdk_detect() { if [[ $j2se_update != "" ]] then j2se_version_name="$j2se_release Update $j2se_update" - j2se_version=${j2se_release}u${j2se_update} + j2se_version=${j2se_release}u${j2se_update}${revision} else j2se_version_name="$j2se_release GA" - j2se_version=${j2se_release} + j2se_version=${j2se_release}${revision} fi 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]} @@ -29,17 +61,17 @@ oracle_j2sdk_detect() { if [[ $j2se_update != "" ]] then j2se_version_name="$j2se_release Update $j2se_update Early Access Release Build $j2se_build" - j2se_version=${j2se_release}u${j2se_update}~ea-build-${j2se_build} + j2se_version=${j2se_release}u${j2se_update}~ea-build-${j2se_build}${revision} else j2se_version_name="$j2se_release Early Access Release Build $j2se_build" - j2se_version=${j2se_release}~ea-build-${j2se_build} + j2se_version=${j2se_release}~ea-build-${j2se_build}${revision} fi fi 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 @@ -74,8 +106,8 @@ oracle_j2sdk_detect() { echo "The archive $archive_name is not supported on the ${DEB_BUILD_ARCH} architecture" return fi - - + + cat << EOF Detected product: @@ -87,25 +119,28 @@ EOF 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" + 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 jps jrunscript jsadebugd jstack jstat jstatd 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 } @@ -116,16 +151,16 @@ if [ ! -e "$jvm_base$j2se_name/debian/info" ]; then 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" @@ -140,16 +175,16 @@ if [ ! -e "$jvm_base$j2se_name/debian/info" ]; then 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" @@ -161,13 +196,13 @@ EOF 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 @@ -177,3 +212,47 @@ EOF 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 +}