2 j2se_detect_oracle_j2sdk=oracle_j2sdk_detect
3 oracle_j2sdk_detect() {
6 # JDK 10 release candidate (jdk-10+46_linux-x64_bin.tar.gz)
7 if [[ $archive_name =~ jdk-10(\.([0-9]+)\.([0-9]+)|\+[0-9]+)?_linux-x64_bin\.tar\.gz ]]
10 j2se_update=${BASH_REMATCH[1]:-.0.0}
12 j2se_version_name="${j2se_release} version ${j2se_release}${j2se_update}"
13 j2se_version=${j2se_release}${j2se_update}${revision}
14 j2se_expected_min_size=340 #Mb
15 j2se_binary_subdir="/bin"
16 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"
19 oracle_jre_bin_jre=" "
22 # JDK 9 GA release (jdk-9.0.1_linux-x64_bin.tar.gz)
23 if [[ $archive_name =~ jdk-9(\.([0-9]+)\.([0-9]+))?_linux-x64_bin\.tar\.gz ]]
26 j2se_update=${BASH_REMATCH[1]:-.0.0}
28 j2se_version_name="${j2se_release} version ${j2se_release}${j2se_update}"
29 j2se_version=${j2se_release}${j2se_update}${revision}
30 j2se_expected_min_size=340 #Mb
31 j2se_binary_subdir="/bin"
32 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"
35 oracle_jre_bin_jre=" "
38 # Update or GA release (jdk-7u15-linux-i586.tar.gz)
39 if [[ $archive_name =~ jdk-([0-8]+)(u([0-9]+))?-linux-(i586|x64|amd64|arm-vfp-hflt)\.(bin|tar\.gz) ]]
41 j2se_release=${BASH_REMATCH[1]}
42 j2se_update=${BASH_REMATCH[3]}
43 j2se_arch=${BASH_REMATCH[4]}
44 if [[ $j2se_update != "" ]]
46 j2se_version_name="$j2se_release Update $j2se_update"
47 j2se_version=${j2se_release}u${j2se_update}${revision}
49 j2se_version_name="$j2se_release GA"
50 j2se_version=${j2se_release}${revision}
54 # Early Access Release (jdk-8-ea-bin-b103-linux-i586-15_aug_2013.tar.gz)
55 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) ]]
57 j2se_release=${BASH_REMATCH[1]}
58 j2se_update=${BASH_REMATCH[3]}
59 j2se_build=${BASH_REMATCH[6]}
60 j2se_arch=${BASH_REMATCH[7]}
61 if [[ $j2se_update != "" ]]
63 j2se_version_name="$j2se_release Update $j2se_update Early Access Release Build $j2se_build"
64 j2se_version=${j2se_release}u${j2se_update}~ea-build-${j2se_build}${revision}
66 j2se_version_name="$j2se_release Early Access Release Build $j2se_build"
67 j2se_version=${j2se_release}~ea-build-${j2se_build}${revision}
71 if [[ $j2se_release > 0 ]]
73 j2se_priority=$((310 + $j2se_release))
74 j2se_expected_min_size=${j2se_expected_min_size:-180} #Mb
76 # check if the architecture matches
79 case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
81 if [[ "$j2se_arch" != "i586" ]]; then compatible=0; fi
83 amd64|x86_64-linux-gnu)
84 if [[ "$j2se_arch" != "x64" && "$j2se_arch" != "amd64" ]]; then compatible=0; fi
86 armhf|armel|arm-linux-gnueabihf|arm-linux-gnueabi)
87 case "$archive_name" in
88 "jdk-7u"[0-9]"-linux-arm-sfp.tar.gz") # SUPPORTED
89 j2se_version=1.7.0+update${archive_name:6:1}${revision}
90 j2se_expected_min_size=100 #Mb
94 "jdk-7u"[0-9][0-9]"-linux-arm-sfp.tar.gz") # SUPPORTED
95 j2se_version=1.7.0+update${archive_name:6:2}${revision}
96 j2se_expected_min_size=60 #Mb
104 if [[ $compatible == 0 ]]
106 echo "The archive $archive_name is not supported on the ${DEB_BUILD_ARCH} architecture"
114 Java(TM) Development Kit (JDK)
115 Standard Edition, Version $j2se_version_name
118 if read_yn "Is this correct [Y/n]: "; then
120 j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
122 j2se_title="Java Platform, Standard Edition $j2se_release Development Kit"
124 j2se_install=oracle_j2sdk_install
125 j2se_remove=oracle_j2sdk_remove
126 j2se_jinfo=oracle_j2sdk_jinfo
127 j2se_control=oracle_j2sdk_control
128 if [ "${DEB_BUILD_ARCH:0:3}" = "arm" ]; then
129 # javaws is not available for ARM
130 oracle_jre_bin_hl="java keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool"
131 oracle_jre_bin_jre="policytool"
133 oracle_jre_bin_hl="${oracle_jre_bin_hl:-java javaws keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool}"
134 oracle_jre_bin_jre="${oracle_jre_bin_jre:-javaws policytool}"
136 if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
137 oracle_no_man_jre_bin_jre="${oracle_no_man_jre_bin_jre:-ControlPanel jcontrol}"
139 oracle_jre_lib_hl="jexec"
140 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}"
141 j2se_package="$j2se_vendor-java$j2se_release-jdk"
142 j2se_binary_subdir="${j2se_binary_subdir:-/jre/bin}"
148 oracle_j2sdk_install() {
150 if [ ! -e "$jvm_base$j2se_name/debian/info" ]; then
154 install_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_hl
155 install_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_jre
156 if [ -n "$oracle_no_man_jre_bin_jre" ]; then
157 install_no_man_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_no_man_jre_bin_jre
159 install_no_man_alternatives $jvm_base$j2se_name/jre/lib $oracle_jre_lib_hl
160 install_alternatives $jvm_base$j2se_name/bin $oracle_bin_jdk
162 # No plugin for ARM architecture yet and no plugin in Java 10 later
163 if [[ "${DEB_BUILD_ARCH:0:3}" != "arm" && "${j2se_release}" -lt "10" ]]; then
164 plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH"
165 for b in $browser_plugin_dirs;do
166 install_browser_plugin "/usr/lib/\$b/plugins" "libjavaplugin.so" "\$b-javaplugin.so" "\$plugin_dir/libnpjp2.so"
172 oracle_j2sdk_remove() {
174 if [ ! -e "$jvm_base$j2se_name/debian/info" ]; then
178 remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_hl
179 remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_jre
180 if [ -n "$oracle_no_man_jre_bin_jre" ]; then
181 remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_no_man_jre_bin_jre
183 remove_alternatives $jvm_base$j2se_name/jre/lib $oracle_jre_lib_hl
184 remove_alternatives $jvm_base$j2se_name/bin $oracle_bin_jdk
186 # No plugin for ARM architecture yet and no plugin in Java 10 and later
187 if [[ "${DEB_BUILD_ARCH:0:3}" != "arm" && "${j2se_release}" -lt "10" ]]; then
188 plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH"
189 for b in $browser_plugin_dirs;do
190 remove_browser_plugin "\$b-javaplugin.so" "\$plugin_dir/libnpjp2.so"
196 oracle_j2sdk_jinfo() {
199 priority=${priority_override:-$j2se_priority}
202 jinfos "hl" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_jre_bin_hl
203 jinfos "jre" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_jre_bin_jre
204 if [ -n "$oracle_no_man_jre_bin_jre" ]; then
205 jinfos "jre" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_no_man_jre_bin_jre
207 jinfos "hl" $jvm_base$j2se_name/jre/lib/ $oracle_jre_lib_hl
208 jinfos "jdk" $jvm_base$j2se_name/bin/ $oracle_bin_jdk
209 if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
210 for b in $browser_plugin_dirs;do
211 echo "plugin iceweasel-javaplugin.so $jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH/libnpjp2.so"
216 oracle_j2sdk_control() {
217 build_depends="libasound2, libgl1-mesa-glx, libgtk2.0-0, libxslt1.1, libxtst6, libxxf86vm1"
219 java_browser_plugin="java-browser-plugin, "
220 depends="\${shlibs:Depends}"
221 if [ "${DEB_BUILD_ARCH:0:3}" = "arm" -a "${j2se_arch}" != "arm-vfp-hflt" ]; then
222 # ARM is only softfloat ATM so if building on armhf
223 # force the dependencies to pickup cross platform fu
224 if [ "${DEB_BUILD_ARCH}" == "armhf" ]; then
225 depends="libc6-armel, libsfgcc1, libsfstdc++6"
227 # No browser on ARM yet
228 java_browser_plugin=""
230 if [ "$create_cert_softlinks" == "true" ]; then
231 depends="$depends, ca-certificates-java"
233 for i in `seq 5 ${j2se_release}`;
235 provides_runtime="${provides_runtime} java${i}-runtime,"
236 provides_headless="${provides_headless} java${i}-runtime-headless,"
237 provides_sdk="${provides_sdk} java${i}-sdk,"
240 Package: $j2se_package
241 Architecture: $j2se_debian_arch
242 Depends: \${misc:Depends}, java-common, $depends
244 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
245 Description: $j2se_title
246 The Java(TM) SE JDK is a development environment for building
247 applications, applets, and components that can be deployed on the
250 The Java(TM) SE JDK software includes tools useful for developing and
251 testing programs written in the Java programming language and running
252 on the Java platform. These tools are designed to be used from the
253 command line. Except for appletviewer, these tools do not provide a
254 graphical user interface.
256 This package has been automatically created with java-package ($version).