Dear Maintainer, I stumbled uppon the debdiff in this bug and applied it to my local raspberry-pi debian.
I had to add support for 2-digit updates for Java 7 (included as full patch) and was then able to generate a working package for armel and install it using dpkg -i. For armhf I was able to generate a package, but it seems there is no libc6-armel package right now, so installation failed because of missing dependencies. If there currently is no plan to add an libc6-armel package to Debian I would suggest changing "armhf|armel|arm-linux-gnueabihf|arm-linux-gnueabi)" in "oracle-j2sdk.sh" to "armel|arm-linux-gnueabi)" however having libc6-armel for the armhf-arch would really be great. Thank you for considering the patch. Regards Matthias Vill
diff -u java-package/j2sdk.sh java-package.patched/j2sdk.sh --- java-package/j2sdk.sh 2012-09-07 00:40:39.000000000 +0200 +++ java-package.patched/j2sdk.sh 2013-01-09 13:56:02.282960324 +0100 @@ -1,12 +1,23 @@ j2sdk_control() { j2se_control + java_browser_plugin="java-browser-plugin, " + depends="\${shlibs:Depends}" + if [ "${DEB_BUILD_ARCH:0:3}" = "arm" ]; 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 cat << EOF Package: $j2se_package Architecture: any -Depends: \${shlibs:Depends} +Depends: $depends Recommends: netbase, libx11-6 | xlibs, libasound2, libgtk1.2, libstdc++5 -Provides: java-virtual-machine, java-runtime, java2-runtime, java-browser-plugin, java-compiler, java2-compiler, java-runtime-headless, java2-runtime-headless, java-sdk, java2-sdk, j2sdk$j2se_release, j2re$j2se_release +Provides: java-virtual-machine, java-runtime, java2-runtime, $java_browser_plugin java-compiler, java2-compiler, java-runtime-headless, java2-runtime-headless, java-sdk, java2-sdk, j2sdk$j2se_release, j2re$j2se_release Replaces: ${j2se_package}debian Description: $j2se_title The Java(TM) 2 SDK is a development environment for building diff -u java-package/oracle-j2sdk.sh java-package.patched/oracle-j2sdk.sh --- java-package/oracle-j2sdk.sh 2012-09-07 00:40:39.000000000 +0200 +++ java-package.patched/oracle-j2sdk.sh 2013-01-09 14:00:21.618283385 +0100 @@ -36,6 +36,22 @@ ;; esac ;; + armhf|armel|arm-linux-gnueabihf|arm-linux-gnueabi) + case "$archive_name" in + "jdk-7u"[0-9]"-linux-arm-sfp.tar.gz") # SUPPORTED + j2se_version=1.7.0+update${archive_name:6:1}${revision} + j2se_expected_min_size=100 #Mb + j2se_priority=317 + found=true + ;; + "jdk-7u"[0-9][0-9]"-linux-arm-sfp.tar.gz") # SUPPORTED + j2se_version=1.7.0+update${archive_name:6:2}${revision} + j2se_expected_min_size=60 #Mb + j2se_priority=317 + found=true + ;; + esac + ;; esac if [[ -n "$found" ]]; then cat << EOF @@ -55,9 +71,16 @@ j2se_install=oracle_j2sdk_install j2se_remove=oracle_j2sdk_remove j2se_jinfo=oracle_j2sdk_jinfo - oracle_jre_bin_hl="java javaws keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool" - oracle_jre_bin_jre="javaws policytool" - oracle_no_man_jre_bin_jre="ControlPanel" + if [ "${DEB_BUILD_ARCH:0:3}" = "arm" ]; then + 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" + fi + if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then + oracle_no_man_jre_bin_jre="ControlPanel" + fi oracle_jre_lib_hl="jexec" oracle_bin_jdk="appletviewer extcheck idlj jar jarsigner javac javadoc javah javap jconsole jdb jinfo jmap jps jsadebugd jstack jstat jstatd native2ascii rmic serialver" j2sdk_run @@ -73,13 +96,18 @@ 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_no_man_alternatives $jvm_base$j2se_name/jre/bin $oracle_no_man_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 +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 -plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH" -install_browser_plugin "/usr/lib/iceweasel/plugins" "libjavaplugin.so" "iceweasel-javaplugin.so" "\$plugin_dir/libnpjp2.so" -install_browser_plugin "/usr/lib/chromium/plugins" "libjavaplugin.so" "chromium-javaplugin.so" "\$plugin_dir/libnpjp2.so" +# No plugin for ARM architecture yet +if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then + plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH" + install_browser_plugin "/usr/lib/iceweasel/plugins" "libjavaplugin.so" "iceweasel-javaplugin.so" "\$plugin_dir/libnpjp2.so" + install_browser_plugin "/usr/lib/chromium/plugins" "libjavaplugin.so" "chromium-javaplugin.so" "\$plugin_dir/libnpjp2.so" +fi EOF } @@ -91,13 +119,18 @@ 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/jre/bin $oracle_no_man_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 +fi remove_alternatives $jvm_base$j2se_name/jre/lib $oracle_jre_lib_hl remove_alternatives $jvm_base$j2se_name/bin $oracle_bin_jdk -plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH" -remove_browser_plugin "iceweasel-javaplugin.so" "\$plugin_dir/libnpjp2.so" -remove_browser_plugin "chromium-javaplugin.so" "\$plugin_dir/libnpjp2.so" +# No plugin for ARM architecture yet +if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then + plugin_dir="$jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH" + remove_browser_plugin "iceweasel-javaplugin.so" "\$plugin_dir/libnpjp2.so" + remove_browser_plugin "chromium-javaplugin.so" "\$plugin_dir/libnpjp2.so" +fi EOF } @@ -109,9 +142,13 @@ 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 "jre" $jvm_base$j2se_name/jre/bin/ $oracle_no_man_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 + fi jinfos "hl" $jvm_base$j2se_name/jre/lib/ $oracle_jre_lib_hl jinfos "jdk" $jvm_base$j2se_name/bin/ $oracle_bin_jdk - echo "plugin iceweasel-javaplugin.so $jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH/libnpjp2.so" - echo "plugin chromium-javaplugin.so $jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH/libnpjp2.so" + if [ "${DEB_BUILD_ARCH:0:3}" != "arm" ]; then + echo "plugin iceweasel-javaplugin.so $jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH/libnpjp2.so" + echo "plugin chromium-javaplugin.so $jvm_base$j2se_name/jre/lib/$DEB_BUILD_ARCH/libnpjp2.so" + fi }