2 j2se_detect_oracle_j2sdk=oracle_j2sdk_detect
3 oracle_j2sdk_detect() {
6 # JDK 9 GA release (jdk-9.0.1_linux-x64_bin.tar.gz)
7 if [[ $archive_name =~ jdk-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 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"
19 oracle_jre_bin_jre=" "
22 # Update or GA release (jdk-7u15-linux-i586.tar.gz)
23 if [[ $archive_name =~ jdk-([0-8]+)(u([0-9]+))?-linux-(i586|x64|amd64|arm-vfp-hflt)\.(bin|tar\.gz) ]]
25 j2se_release=${BASH_REMATCH[1]}
26 j2se_update=${BASH_REMATCH[3]}
27 j2se_arch=${BASH_REMATCH[4]}
28 if [[ $j2se_update != "" ]]
30 j2se_version_name="$j2se_release Update $j2se_update"
31 j2se_version=${j2se_release}u${j2se_update}${revision}
33 j2se_version_name="$j2se_release GA"
34 j2se_version=${j2se_release}${revision}
38 # Early Access Release (jdk-8-ea-bin-b103-linux-i586-15_aug_2013.tar.gz)
39 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) ]]
41 j2se_release=${BASH_REMATCH[1]}
42 j2se_update=${BASH_REMATCH[3]}
43 j2se_build=${BASH_REMATCH[6]}
44 j2se_arch=${BASH_REMATCH[7]}
45 if [[ $j2se_update != "" ]]
47 j2se_version_name="$j2se_release Update $j2se_update Early Access Release Build $j2se_build"
48 j2se_version=${j2se_release}u${j2se_update}~ea-build-${j2se_build}${revision}
50 j2se_version_name="$j2se_release Early Access Release Build $j2se_build"
51 j2se_version=${j2se_release}~ea-build-${j2se_build}${revision}
55 if [[ $j2se_release > 0 ]]
57 j2se_priority=$((310 + $j2se_release))
58 j2se_expected_min_size=${j2se_expected_min_size:-180} #Mb
60 # check if the architecture matches
63 case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
65 if [[ "$j2se_arch" != "i586" ]]; then compatible=0; fi
67 amd64|x86_64-linux-gnu)
68 if [[ "$j2se_arch" != "x64" && "$j2se_arch" != "amd64" ]]; then compatible=0; fi
70 armhf|armel|arm-linux-gnueabihf|arm-linux-gnueabi)
71 case "$archive_name" in
72 "jdk-7u"[0-9]"-linux-arm-sfp.tar.gz") # SUPPORTED
73 j2se_version=1.7.0+update${archive_name:6:1}${revision}
74 j2se_expected_min_size=100 #Mb
78 "jdk-7u"[0-9][0-9]"-linux-arm-sfp.tar.gz") # SUPPORTED
79 j2se_version=1.7.0+update${archive_name:6:2}${revision}
80 j2se_expected_min_size=60 #Mb
88 if [[ $compatible == 0 ]]
90 echo "The archive $archive_name is not supported on the ${DEB_BUILD_ARCH} architecture"
98 Java(TM) Development Kit (JDK)
99 Standard Edition, Version $j2se_version_name
102 if read_yn "Is this correct [Y/n]: "; then
104 j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
106 j2se_title="Java Platform, Standard Edition $j2se_release Development Kit"
108 j2se_install=oracle_j2sdk_install
109 j2se_remove=oracle_j2sdk_remove
110 j2se_jinfo=oracle_j2sdk_jinfo
111 j2se_control=oracle_j2sdk_control
112 if [ "${DEB_BUILD_ARCH:0:3}" = "arm" ]; then
113 # javaws is not available for ARM
114 oracle_jre_bin_hl="java keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool"
115 oracle_jre_bin_jre="policytool"
117 oracle_jre_bin_hl="${oracle_jre_bin_hl:-java javaws keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool}"
118 oracle_jre_bin_jre="${oracle_jre_bin_jre:-javaws policytool}"
120 if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
121 oracle_no_man_jre_bin_jre="${oracle_no_man_jre_bin_jre:-ControlPanel jcontrol}"
123 oracle_jre_lib_hl="jexec"
124 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}"
125 j2se_package="$j2se_vendor-java$j2se_release-jdk"
126 j2se_binary_subdir="${j2se_binary_subdir:-/jre/bin}"
132 oracle_j2sdk_install() {
134 if [ ! -e "$jvm_base$j2se_name/debian/info" ]; then
138 install_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_hl
139 install_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_jre
140 if [ -n "$oracle_no_man_jre_bin_jre" ]; then
141 install_no_man_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_no_man_jre_bin_jre
143 install_no_man_alternatives $jvm_base$j2se_name/jre/lib $oracle_jre_lib_hl
144 install_alternatives $jvm_base$j2se_name/bin $oracle_bin_jdk
146 # No plugin for ARM architecture yet
147 if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
148 plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH"
149 for b in $browser_plugin_dirs;do
150 install_browser_plugin "/usr/lib/\$b/plugins" "libjavaplugin.so" "\$b-javaplugin.so" "\$plugin_dir/libnpjp2.so"
156 oracle_j2sdk_remove() {
158 if [ ! -e "$jvm_base$j2se_name/debian/info" ]; then
162 remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_hl
163 remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_jre_bin_jre
164 if [ -n "$oracle_no_man_jre_bin_jre" ]; then
165 remove_alternatives $jvm_base$j2se_name${j2se_binary_subdir} $oracle_no_man_jre_bin_jre
167 remove_alternatives $jvm_base$j2se_name/jre/lib $oracle_jre_lib_hl
168 remove_alternatives $jvm_base$j2se_name/bin $oracle_bin_jdk
170 # No plugin for ARM architecture yet
171 if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
172 plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH"
173 for b in $browser_plugin_dirs;do
174 remove_browser_plugin "\$b-javaplugin.so" "\$plugin_dir/libnpjp2.so"
180 oracle_j2sdk_jinfo() {
183 priority=${priority_override:-$j2se_priority}
186 jinfos "hl" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_jre_bin_hl
187 jinfos "jre" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_jre_bin_jre
188 if [ -n "$oracle_no_man_jre_bin_jre" ]; then
189 jinfos "jre" $jvm_base$j2se_name${j2se_binary_subdir}/ $oracle_no_man_jre_bin_jre
191 jinfos "hl" $jvm_base$j2se_name/jre/lib/ $oracle_jre_lib_hl
192 jinfos "jdk" $jvm_base$j2se_name/bin/ $oracle_bin_jdk
193 if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then
194 for b in $browser_plugin_dirs;do
195 echo "plugin iceweasel-javaplugin.so $jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH/libnpjp2.so"
200 oracle_j2sdk_control() {
201 build_depends="libasound2, libgl1-mesa-glx, libgtk2.0-0, libxslt1.1, libxtst6, libxxf86vm1"
203 java_browser_plugin="java-browser-plugin, "
204 depends="\${shlibs:Depends}"
205 if [ "${DEB_BUILD_ARCH:0:3}" = "arm" -a "${j2se_arch}" != "arm-vfp-hflt" ]; then
206 # ARM is only softfloat ATM so if building on armhf
207 # force the dependencies to pickup cross platform fu
208 if [ "${DEB_BUILD_ARCH}" == "armhf" ]; then
209 depends="libc6-armel, libsfgcc1, libsfstdc++6"
211 # No browser on ARM yet
212 java_browser_plugin=""
214 if [ "$create_cert_softlinks" == "true" ]; then
215 depends="$depends, ca-certificates-java"
217 for i in `seq 5 ${j2se_release}`;
219 provides_runtime="${provides_runtime} java${i}-runtime,"
220 provides_headless="${provides_headless} java${i}-runtime-headless,"
221 provides_sdk="${provides_sdk} java${i}-sdk,"
224 Package: $j2se_package
225 Architecture: $j2se_debian_arch
226 Depends: \${misc:Depends}, java-common, $depends
228 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
229 Description: $j2se_title
230 The Java(TM) SE JDK is a development environment for building
231 applications, applets, and components that can be deployed on the
234 The Java(TM) SE JDK software includes tools useful for developing and
235 testing programs written in the Java programming language and running
236 on the Java platform. These tools are designed to be used from the
237 command line. Except for appletviewer, these tools do not provide a
238 graphical user interface.
240 This package has been automatically created with java-package ($version).