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
}