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
 }
__
This is the maintainer address of Debian's Java team
<http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-maintainers>. 
Please use
debian-j...@lists.debian.org for discussions and questions.

Reply via email to