Skip to content
Browse files

meta-java: initial commit

* taken over mostly stuff from oe classic
* cleaned up recipes
* added license checksums
* bump icedtea6-native to 1.8.11
* use jamvm from git as native
  • Loading branch information...
0 parents commit 57e069cde6617f00ca8834a82c6f360af43d5067 Henning Heinold committed Nov 12, 2011
Showing with 9,361 additions and 0 deletions.
  1. +24 −0 README
  2. +58 −0 classes/java-library.bbclass
  3. +9 −0 classes/java-native.bbclass
  4. +184 −0 classes/java.bbclass
  5. +9 −0 conf/layer.conf
  6. +66 −0 recipes-core/ant/ant-native_1.8.1.bb
  7. +10 −0 recipes-core/ant/files/ant
  8. +33 −0 recipes-core/antlr/antlr_2.7.7.bb
  9. +11 −0 recipes-core/antlr/files/runantlr
  10. +29 −0 recipes-core/bcel/bcel_5.2.bb
  11. +31 −0 recipes-core/cacao/cacaoh-openjdk-native.inc
  12. +7 −0 recipes-core/cacao/cacaoh-openjdk-native_0.99.4.bb
  13. +66 −0 recipes-core/classpath/classpath-0.98/SimpleName.diff
  14. +37 −0 recipes-core/classpath/classpath-0.98/ecj_java_dir.patch
  15. +19 −0 recipes-core/classpath/classpath-0.98/fix-gmp.patch
  16. +37 −0 recipes-core/classpath/classpath-0.98/javanet-local.patch
  17. +13 −0 recipes-core/classpath/classpath-0.98/miscompilation.patch
  18. +503 −0 recipes-core/classpath/classpath-0.98/sun-security-getproperty.patch
  19. +46 −0 recipes-core/classpath/classpath-0.98/toolwrapper-exithook.patch
  20. +13 −0 recipes-core/classpath/classpath-initial-0.93/miscompilation.patch
  21. +37 −0 recipes-core/classpath/classpath-initial_0.93.bb
  22. +34 −0 recipes-core/classpath/classpath-native.inc
  23. +29 −0 recipes-core/classpath/classpath-native_0.98.bb
  24. +86 −0 recipes-core/classpath/classpath.inc
  25. +13 −0 recipes-core/classpath/classpath_0.98.bb
  26. +24 −0 recipes-core/classpath/files/autotools.patch
  27. +23 −0 recipes-core/classpathx/gnujaf-1.1.1/datadir_java.patch
  28. +35 −0 recipes-core/classpathx/gnujaf_1.1.1.bb
  29. +25 −0 recipes-core/classpathx/gnumail-1.1.2/datadir_java.patch
  30. +39 −0 recipes-core/classpathx/gnumail_1.1.2.bb
  31. +23 −0 recipes-core/classpathx/inetlib-1.1.1/datadir_java.patch
  32. +31 −0 recipes-core/classpathx/inetlib_1.1.1.bb
  33. +47 −0 recipes-core/cup/cup_0.10k.bb
  34. +5 −0 recipes-core/cup/files/cup
  35. +38 −0 recipes-core/ecj/ecj-bootstrap-native.bb
  36. +32 −0 recipes-core/ecj/ecj-initial.bb
  37. +1 −0 recipes-core/ecj/files/ecj-initial.in
  38. +12 −0 recipes-core/ecj/files/ecj.in
  39. +68 −0 recipes-core/ecj/libecj-bootstrap.inc
  40. +7 −0 recipes-core/ecj/libecj-bootstrap_3.6.2.bb
  41. +16 −0 recipes-core/fastjar/fastjar.inc
  42. +114 −0 recipes-core/fastjar/fastjar/jartool.patch
  43. +9 −0 recipes-core/fastjar/fastjar_0.98.bb
  44. +15 −0 recipes-core/icedtea/icedtea6-native-1.7.10/build-hacks-native.patch
  45. +141 −0 recipes-core/icedtea/icedtea6-native-1.7.10/disable-library-checks.patch
  46. +513 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-ecj-disable-compilation.patch
  47. +13 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-ecj-fix-freetype.patch
  48. +61 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-ecj-fix-zlib.patch
  49. +29 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-fix-jar-path.patch
  50. +1,130 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-hotspot-make-arch-sane-for-x86.patch
  51. +28 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-javac-in.patch
  52. +240 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-jdk-sane-x86-arch.patch
  53. +47 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-sane-x86-arch-name.patch
  54. +18 −0 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-unbreak-float.patch
  55. +15 −0 recipes-core/icedtea/icedtea6-native-1.7.5/build-hacks-native.patch
  56. +141 −0 recipes-core/icedtea/icedtea6-native-1.7.5/disable-library-checks.patch
  57. +513 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-ecj-disable-compilation.patch
  58. +13 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-ecj-fix-freetype.patch
  59. +61 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-ecj-fix-zlib.patch
  60. +43 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-fix-jar-path.patch
  61. +1,130 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-hotspot-make-arch-sane-for-x86.patch
  62. +28 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-javac-in.patch
  63. +36 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-jdk-build-sizer-32-on-amd64.patch
  64. +240 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-jdk-sane-x86-arch.patch
  65. +47 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-sane-x86-arch-name.patch
  66. +18 −0 recipes-core/icedtea/icedtea6-native-1.7.5/icedtea-unbreak-float.patch
  67. +15 −0 recipes-core/icedtea/icedtea6-native-1.8.11/build-hacks-native.patch
  68. +141 −0 recipes-core/icedtea/icedtea6-native-1.8.11/disable-library-checks.patch
  69. +513 −0 recipes-core/icedtea/icedtea6-native-1.8.11/icedtea-ecj-disable-compilation.patch
  70. +13 −0 recipes-core/icedtea/icedtea6-native-1.8.11/icedtea-ecj-fix-freetype.patch
  71. +61 −0 recipes-core/icedtea/icedtea6-native-1.8.11/icedtea-ecj-fix-zlib.patch
  72. +1,130 −0 recipes-core/icedtea/icedtea6-native-1.8.11/icedtea-hotspot-make-arch-sane-for-x86.patch
  73. +216 −0 recipes-core/icedtea/icedtea6-native-1.8.11/icedtea-jdk-sane-x86-arch.patch
  74. +38 −0 recipes-core/icedtea/icedtea6-native-1.8.11/icedtea-sane-x86-arch-name.patch
  75. +18 −0 recipes-core/icedtea/icedtea6-native-1.8.11/icedtea-unbreak-float.patch
  76. +15 −0 recipes-core/icedtea/icedtea6-native-1.8/build-hacks-native.patch
  77. +141 −0 recipes-core/icedtea/icedtea6-native-1.8/disable-library-checks.patch
  78. +513 −0 recipes-core/icedtea/icedtea6-native-1.8/icedtea-ecj-disable-compilation.patch
  79. +13 −0 recipes-core/icedtea/icedtea6-native-1.8/icedtea-ecj-fix-freetype.patch
  80. +61 −0 recipes-core/icedtea/icedtea6-native-1.8/icedtea-ecj-fix-zlib.patch
Sorry, we could not display the entire diff because it was too big.
24 README
@@ -0,0 +1,24 @@
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+branch: master
+revision: HEAD
+
+URI: git://git.openembedded.org/meta-openembedded
+branch: master
+revision: HEAD
+
+You should define at lease the following variables in a distro include file or local.conf
+
+PREFERRED_PROVIDER_virtual/java-native = "jamvm-native"
+PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native"
+
+PREFERRED_VERSION_cacaoh-native = "0.99.3"
+
+PREFERRED_VERSION_openjdk-6-jre = "6b18-1.8.11"
+PREFERRED_VERSION_icedtea6-native = "1.8.11"
+
+
+Send pull requests to openembedded-devel@lists.openembedded.org
+
+Main layer maintainers: Henning Heinold <heinold@inf.fu-berlin.de>
58 classes/java-library.bbclass
@@ -0,0 +1,58 @@
+# Inherit this bbclass for each java recipe that builds a Java library (jar file[s]).
+#
+# It automatically adds important build dependencies, defines JPN (Java Package Name)
+# a package named ${JPN} whose contents are those of ${datadir}/java (the jar location).
+#
+# The JPN is basically lib${PN}-java but takes care of the fact that ${PN} already
+# starts with "lib" and/or ends with "-java". In case the "lib" prefix is part of
+# your package's normal name (e.g. liberator) the guessing is wrong and you have
+# to set JPN manually!
+
+inherit java
+
+# use java_stage for native packages
+JAVA_NATIVE_STAGE_INSTALL = "1"
+
+def java_package_name(d):
+ import bb;
+
+ pre=""
+ post=""
+
+ pn = bb.data.getVar('PN', d, 1)
+ if not pn.startswith("lib"):
+ pre='lib'
+
+ if not pn.endswith("-java"):
+ post='-java'
+
+ return pre + pn + post
+
+JPN ?= "${@java_package_name(d)}"
+
+DEPENDS_prepend = "virtual/javac-native fastjar-native "
+
+PACKAGES = "${JPN}"
+
+PACKAGE_ARCH_${JPN} = "all"
+
+FILES_${JPN} = "${datadir_java}"
+
+# File name of the libraries' main Jar file
+JARFILENAME = "${BP}.jar"
+
+# Space-separated list of alternative file names.
+ALTJARFILENAMES = "${BPN}.jar"
+
+# Java "source" distributions often contain precompiled things
+# we want to delete first.
+do_removebinaries() {
+ find ${WORKDIR} -name "*.jar" -exec rm {} \;
+ find ${WORKDIR} -name "*.class" -exec rm {} \;
+}
+
+addtask removebinaries after do_unpack before do_patch
+
+do_install() {
+ oe_jarinstall ${JARFILENAME} ${ALTJARFILENAMES}
+}
9 classes/java-native.bbclass
@@ -0,0 +1,9 @@
+# This is to be used by recipes which rely on java-library.bbclass
+# infrastructure and are a *-native recipe which needs to install
+# jar files into staging.
+#
+# This class has nothing to do with Java's JNI.
+
+inherit native
+
+NATIVE_INSTALL_WORKS = "1"
184 classes/java.bbclass
@@ -0,0 +1,184 @@
+# Defines the commonly used target directories and provides a convenience
+# function to install jar files.
+#
+# All the default directory locations herein resemble locations chosen in
+# the Debian distribution.
+
+# Jar location on target
+datadir_java ?= ${datadir}/java
+
+# JNI library location on target
+libdir_jni ?= ${libdir}/jni
+
+# JVM bundle location on target
+libdir_jvm ?= ${libdir}/jvm
+
+STAGING_DATADIR_JAVA ?= ${STAGING_DATADIR}/java
+STAGING_LIBDIR_JNI ?= ${STAGING_LIBDIR}/jni
+STAGING_LIBDIR_JVM ?= ${STAGING_LIBDIR}/jvm
+
+STAGING_DATADIR_JAVA_NATIVE ?= ${STAGING_DATADIR_NATIVE}/java
+STAGING_LIBDIR_JNI_NATIVE ?= ${STAGING_LIBDIR_NATIVE}/jni
+STAGING_LIBDIR_JVM_NATIVE ?= ${STAGING_LIBDIR_NATIVE}/jvm
+
+oe_jarinstall() {
+ # Purpose: Install a jar file and create all the given symlinks to it.
+ # Example:
+ # oe_jarinstall foo-1.3.jar foo.jar
+ # Installs foo-1.3.jar and creates symlink foo.jar.
+ #
+ # oe_jarinstall -r foo-1.3.jar foo_1_3.jar foo.jar
+ # Installs foo_1_3.jar as foo-1.3.jar and creates a symlink to this.
+ #
+ dir=${D}${datadir_java}
+ destname=""
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -r)
+ shift
+ destname=$1
+ ;;
+ -*)
+ oefatal "oe_jarinstall: unknown option: $1"
+ ;;
+ *)
+ break;
+ ;;
+ esac
+ shift
+ done
+
+ jarname=$1
+ destname=${destname:-`basename $jarname`}
+ shift
+
+ install -d $dir
+ install -m 0644 $jarname $dir/$destname
+
+ # Creates symlinks out of the remaining arguments.
+ while [ "$#" -gt 0 ]; do
+ if [ -e $dir/$1 -o -h $dir/$1 ]; then
+ oewarn "file was in the way. removing:" $dir/$1
+ rm $dir/$1
+ fi
+ ln -s $destname $dir/$1
+ shift
+ done
+}
+
+oe_makeclasspath() {
+ # Purpose: Generate a classpath variable from the given Jar file names
+ # where the ".jar" has been omitted. The string is stored in the script
+ # variable whose name is given in the first argument to this function.
+ #
+ # oe_makeclasspath cp foo baz bar
+ # Stores ${datadir_java}/foo.jar:${datadir_java}/baz.jar:${datadir_java}/bar.jar
+ # in variable "cp".
+ #
+ # oe_makeclasspath bootcp -s foo baz bar
+ # Stores ${STAGING_DATADIR_JAVA}/foo.jar:${STAGING_DATADIR_JAVA}/baz.jar:${STAGING_DATADIR_JAVA}/bar.jar
+ # in variable "bootcp".
+ #
+ # Provide the -s at the beginning otherwise strange things happen.
+ # If -s is given the function checks whether the requested jar file exists
+ # and exits with an error message if it cannot be found.
+ #
+ # Note: In order to encourage usage of the DEPENDS variable, the function
+ # can accept recipe names. If a recipe has no corresponding Jar file it
+ # is ignored. Be careful with recipes where the recipe name is different
+ # from the the Jar file name!
+ dir=${datadir_java}
+ classpath=
+ delimiter=
+ retval=$1
+
+ shift
+
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -s)
+ # take jar files from native staging if this is a -native recipe
+ if [ ${PACKAGE_ARCH} = ${BUILD_ARCH} ]; then
+ dir=${STAGING_DATADIR_JAVA_NATIVE}
+ else
+ dir=${STAGING_DATADIR_JAVA}
+ fi
+ ;;
+ -*)
+ oefatal "oe_makeclasspath: unknown option: $1"
+ ;;
+ *)
+ file=$dir/$1.jar
+
+ if [ -e $file ]; then
+ classpath=$classpath$delimiter$file
+ delimiter=":"
+ fi
+
+ ;;
+ esac
+ shift
+ done
+
+ eval $retval="$classpath"
+}
+
+# Creates a simple wrapper script for your Java program.
+# The script is written to ${PN} by default.
+#
+# Parameters are as follows:
+# [options] <output file> <main class> [jar files ...]
+#
+# Options are
+# -o <name> where name is the output file name
+#
+# It can only take jar files from ${datadir_java}!
+oe_java_simple_wrapper() {
+ delimiter=
+ mainclass=
+ classpath=
+ output=${PN}
+
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -o)
+ shift
+ output=$1
+ ;;
+ -*)
+ oefatal "oe_java_simple_wrapper: unknown option: $1"
+ ;;
+ *)
+ if [ $mainclass ]
+ then
+ classpath=$classpath$delimiter${datadir_java}/$1
+ delimiter=":"
+ else
+ mainclass=$1
+ fi
+ ;;
+ esac
+ shift
+ done
+
+ oenote "Creating simple Java wrapper script"
+ oenote "Output File: $output"
+ oenote "Main Class: $mainclass"
+ oenote "Classpath: $classpath"
+
+ echo "#!/bin/sh" > $output
+ echo "# This file is autogenerated by the oe_java_simple_wrapper function of OpenEmbedded" >> $output
+ echo >> $output
+ echo "# You can provide additional VM arguments by setting the VMARGS environment variable." >> $output
+ echo "CLASSPATH_ARG=\"-cp $classpath\"" >> $output
+ echo >> $output
+ echo "MAIN_CLASS=$mainclass" >> $output
+ echo >> $output
+ echo "# Allows overriding the VM by setting the JAVA environment variable." >> $output
+ echo "if [ x\${JAVA} = x ]" >> $output
+ echo "then" >> $output
+ echo " JAVA=java" >> $output
+ echo "fi" >> $output
+ echo >> $output
+ echo "exec \${JAVA} \${VMARGS} \${CLASSPATH_ARG} \${MAIN_CLASS} \${@}" >> $output
+}
9 conf/layer.conf
@@ -0,0 +1,9 @@
+# We have a conf and classes directory, append to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes directory, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "meta-java"
+BBFILE_PATTERN_meta-java := "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-java = "10"
66 recipes-core/ant/ant-native_1.8.1.bb
@@ -0,0 +1,66 @@
+DESCRIPTION = "Another Neat Tool - build system for Java"
+AUTHOR = "Apache Software Foundation"
+HOMEPAGE = "http://ant.apache.org"
+LICENSE = "AL2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=503bb72c4dd62dd216d6820d5b869442"
+
+SRC_URI = "http://ftp.riken.jp/net/apache/ant/source/apache-ant-${PV}-src.tar.gz \
+ file://ant \
+ "
+
+S = "${WORKDIR}/apache-ant-${PV}"
+
+inherit java-library java-native
+
+DEPENDS = " \
+ jsch-native bsf-native xalan-j-native xerces-j-native \
+ xml-commons-resolver1.1-native gnumail-native gnujaf-native \
+ bcel-native regexp-native log4j1.2-native antlr-native oro-native \
+ junit-native jdepend-native commons-net-native commons-logging-native \
+ "
+
+do_removecruft() {
+ # Removes thing that need proprietary Jar files or are otherwise problematic
+ rm -rf ${S}/src/main/org/apache/tools/ant/taskdefs/optional/image
+ rm -rf ${S}/src/main/org/apache/tools/ant/types/optional/image
+ rm -rf ${S}/src/main/org/apache/tools/ant/taskdefs/optional/ejb
+ rm -rf ${S}/src/main/org/apache/tools/ant/taskdefs/optional/scm
+ rm -rf ${S}/src/main/org/apache/tools/ant/taskdefs/optional/starteam
+ rm -rf ${S}/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java
+}
+
+addtask removecruft before do_patch after do_unpack
+
+do_compile() {
+ mkdir -p build
+
+ oe_makeclasspath cp -s jsch bsf xalan2 xercesImpl resolver gnumail gnujaf bcel regexp log4j1.2 antlr oro junit jdepend commons-net commons-logging
+ cp=build:$cp
+
+ find src/main -name "*.java" > java_files
+
+ javac -sourcepath src/main -cp $cp -d build @java_files
+
+ mkdir -p build/org/apache/tools/ant/types/conditions
+
+ cp -r src/resources/org build/
+ (cd src/main && find . \( -name "*.properties" -or -name "*.xml" -or -name "*.mf" \) -exec cp {} ../../build/{} \;)
+
+ echo "VERSION=${PV}" > build/org/apache/tools/ant/version.txt
+ echo "DATE=`date -R`" >> build/org/apache/tools/ant/version.txt
+
+ fastjar -C build -c -f ${JARFILENAME} .
+
+ oe_makeclasspath cp -s ecj-bootstrap jsch bsf xalan2 xercesImpl resolver gnumail gnujaf bcel regexp log4j1.2 antlr oro junit jdepend commons-net commons-logging
+ cp=${STAGING_DATADIR_JAVA_NATIVE}/ant.jar:${STAGING_DATADIR}/classpath/tools.zip:$cp
+ sed -i -e"s|@JAR_FILE@|$cp|" ${WORKDIR}/ant
+}
+
+do_install_append() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/ant ${D}${bindir}
+}
+
+SRC_URI[md5sum] = "9e5960bd586d9425c46199cdd20a6fbc"
+SRC_URI[sha256sum] = "4f39057af228663c3cfb6dcfbee603a071a7e3cf48c95c30869ed81c5fcf21c8"
+
10 recipes-core/ant/files/ant
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+export CLASSPATH
+CLASSPATH=$CLASSPATH:@JAR_FILE@
+
+if [ ! $JAVA ];then
+ JAVA=java
+fi
+
+$JAVA org.apache.tools.ant.launch.Launcher $*
33 recipes-core/antlr/antlr_2.7.7.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Framework for constructing recognizers, interpreters, compilers, and translators"
+HOMEPAGE = "http://www.antlr2.org"
+# see http://www.antlr2.org/license.html
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=361934e706423915b4d9f413ad37fb65"
+
+SRC_URI = "http://www.antlr2.org/download/${BP}.tar.gz"
+SRC_URI_virtclass_native += "file://runantlr"
+
+inherit java-library
+
+do_configure_virtclass_native() {
+ sed -i -e"s|@JAR_FILE@|${STAGING_DATADIR_JAVA_NATIVE}/antlr.jar|" ${WORKDIR}/runantlr
+}
+
+do_compile() {
+ mkdir -p build
+
+ javac -sourcepath . -d build `find antlr -name "*.java"`
+
+ fastjar -C build -c -f ${JARFILENAME} .
+}
+
+do_install_virtclass_native() {
+ install ${D}${bindir}
+ install -m 0755 ${WORKDIR}/runantlr {D}${bindir}/
+}
+
+SRC_URI[md5sum] = "01cc9a2a454dd33dcd8c856ec89af090"
+SRC_URI[sha256sum] = "853aeb021aef7586bda29e74a6b03006bcb565a755c86b66032d8ec31b67dbb9"
+
+BBCLASSEXTEND = "native"
+
11 recipes-core/antlr/files/runantlr
@@ -0,0 +1,11 @@
+#!/bin/sh
+echo Running 'java antlr.Tool $*' with @JAR_FILE@ appended to the CLASSPATH variable
+
+export CLASSPATH
+CLASSPATH=$CLASSPATH:@JAR_FILE@
+
+if [ ! $JAVA ];then
+ JAVA=java
+fi
+
+$JAVA antlr.Tool $*
29 recipes-core/bcel/bcel_5.2.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Java Bytecode manipulation library"
+AUTHOR = "Apache Software Foundation"
+LICENSE = "AL2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=44030f19e8bad73725f39d16fd05ff12"
+
+SRC_URI = "http://archive.apache.org/dist/jakarta/bcel/source/${BP}-src.tar.gz"
+
+inherit java-library
+
+DEPENDS = "xerces-j regexp"
+DEPENDS_virtclass-native = "xerces-j-native regexp-native"
+
+
+do_compile() {
+ mkdir -p build
+
+ oe_makeclasspath cp -s xercesImpl regexp
+
+ javac -sourcepath src/java -d build -cp $cp `find src/java -name \*.java`
+
+ fastjar -C build -c -f ${JARFILENAME} .
+}
+
+SRC_URI[md5sum] = "905b7e718e30e7ca726530ecf106e532"
+SRC_URI[sha256sum] = "68039d59a38379d7b65ea3fc72276c43ba234776460e14361af35771bcaab295"
+
+NATIVE_INSTALL_WORKS = "1"
+BBCLASSEXTEND = "native"
+
31 recipes-core/cacao/cacaoh-openjdk-native.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Header generator for Cacao JVM - Needed for cross-compilation builds"
+HOMEPAGE = "http://www.cacaojvm.org/"
+LICENSE = "GPL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "libtool-native zlib-native virtual/javac-native classpath-native icedtea6-native"
+
+S = "${WORKDIR}/cacao-${PV}"
+
+inherit java autotools native
+
+EXTRA_OECONF = " \
+ --with-java-runtime-library=openjdk \
+ --with-java-runtime-library-classes=${STAGING_LIBDIR_JVM_NATIVE}/icedtea6-native/jre/lib/rt.jar \
+ --with-jni_md_h=${STAGING_INCDIR}/classpath \
+ --with-jni_h=${STAGING_INCDIR}/classpath \
+ --with-hpi_md_h=${STAGING_LIBDIR_JVM_NATIVE}/icedtea6-native/include/hpi \
+ --with-hpi_h=${STAGING_LIBDIR_JVM_NATIVE}/icedtea6-native/include/hpi \
+ "
+
+do_compile() {
+ # Compile the header generator only (and what is needed for it).
+ oe_runmake -C src/toolbox libtoolbox.la
+ oe_runmake -C src/vmcore libvmcore.la
+ oe_runmake -C src/cacaoh cacaoh
+}
+
+do_install() {
+ install -d ${D}${bindir}/cacaoh-${PV}
+ ${STAGING_BINDIR_NATIVE}/${HOST_SYS}-libtool --mode=install install -m 0755 src/cacaoh/cacaoh ${D}/${bindir}/cacaoh-openjdk-${PV}
+}
7 recipes-core/cacao/cacaoh-openjdk-native_0.99.4.bb
@@ -0,0 +1,7 @@
+require cacaoh-openjdk-native.inc
+
+SRC_URI = "http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "63220327925ace13756ae334c55a3baa"
+SRC_URI[sha256sum] = "1dfc4903dc0172286df4f1740fd0f12749ac81d51c602290b47cbe83d51e1d56"
+
66 recipes-core/classpath/classpath-0.98/SimpleName.diff
@@ -0,0 +1,66 @@
+Index: vm/reference/java/lang/VMClass.java
+===================================================================
+RCS file: /sources/classpath/classpath/vm/reference/java/lang/VMClass.java,v
+retrieving revision 1.20
+diff -u -r1.20 VMClass.java
+--- vm/reference/java/lang/VMClass.java 18 Sep 2007 21:52:38 -0000 1.20
++++ vm/reference/java/lang/VMClass.java 19 Apr 2008 15:19:00 -0000
+@@ -296,27 +296,43 @@
+ */
+ static String getSimpleName(Class klass)
+ {
++ int arrayCount = 0;
++ while (klass.isArray())
++ {
++ klass = klass.getComponentType();
++ ++arrayCount;
++ }
++ // now klass is the component type
++
++ String simpleComponentName = null;
+ if (isAnonymousClass(klass))
+- return "";
+- if (isArray(klass))
+ {
+- return getComponentType(klass).getSimpleName() + "[]";
++ simpleComponentName = "";
+ }
+- String fullName = getName(klass);
+- int pos = fullName.lastIndexOf("$");
+- if (pos == -1)
+- pos = 0;
+ else
+ {
+- ++pos;
+- while (Character.isDigit(fullName.charAt(pos)))
+- ++pos;
++ String fullName = getName(klass);
++ int pos = fullName.lastIndexOf("$");
++ if (pos != -1)
++ { //inner class or local class
++ // skip digits of local classes
++ while (Character.isDigit(fullName.charAt(pos+1)))
++ pos++;
++ }
++ else
++ {
++ pos = fullName.lastIndexOf(".");
++ }
++ simpleComponentName = fullName.substring(pos+1);
+ }
+- int packagePos = fullName.lastIndexOf(".", pos);
+- if (packagePos == -1)
+- return fullName.substring(pos);
+- else
+- return fullName.substring(packagePos + 1);
++
++ if (arrayCount == 0)
++ return simpleComponentName;
++
++ StringBuffer sb = new StringBuffer(simpleComponentName);
++ while (arrayCount-- > 0)
++ sb.append("[]");
++ return sb.toString();
+ }
+
+ /**
37 recipes-core/classpath/classpath-0.98/ecj_java_dir.patch
@@ -0,0 +1,37 @@
+Index: classpath-0.98/lib/gen-classlist.sh.in
+===================================================================
+--- classpath-0.98.orig/lib/gen-classlist.sh.in 2010-06-24 21:18:02.776819217 +0200
++++ classpath-0.98/lib/gen-classlist.sh.in 2010-06-24 21:18:35.625566191 +0200
+@@ -148,4 +148,7 @@
+ done
+ fi
+
++# hack for javac that uses -d and do not make the directories
++@AWK@ -F " " '{print $1}' classes.1 | uniq | awk -F " " '{system("mkdir -p " $0)}'
++
+ exit 0
+Index: classpath-0.98/tools/Makefile.am
+===================================================================
+--- classpath-0.98.orig/tools/Makefile.am 2010-06-24 21:18:02.783479881 +0200
++++ classpath-0.98/tools/Makefile.am 2010-06-24 21:20:04.925557253 +0200
+@@ -323,6 +323,8 @@
+ endif
+ ## Compile ASM separately as it is latin-1 encoded.
+ find $(srcdir)/external/asm -name '*.java' -print > asm.lst
++ @AWK@ -F "/" '{OFS=FS;gsub("/"$$2"/"$$3,"",$$0);gsub("/"$$NF,"",$$0); print $$0}' asm.lst | \
++ sort | uniq | @AWK@ -F " " '{system("mkdir -p asm/" $$0)}'
+ AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
+ $$AC -g -d asm @asm.lst
+ find $(srcdir)/gnu/classpath/tools \
+@@ -334,7 +336,10 @@
+ $(srcdir)/sun/rmi/rmic \
+ $(GJDOC_EX) \
+ -name '*.java' -print > classes.lst
+- $(JCOMPILER) -g -d classes @classes.lst
++ @AWK@ -F "/" '{OFS=FS;gsub("/"$$NF,"",$$0); print $$0}' classes.lst | \
++ sort | uniq | @AWK@ -F " " '{system("mkdir -p classes/" $$0)}'
++ BC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
++ $$BC -g -d classes @classes.lst
+ cat classes.lst asm.lst > all-classes.lst
+ ## Copy over tools resource files.
+ @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
19 recipes-core/classpath/classpath-0.98/fix-gmp.patch
@@ -0,0 +1,19 @@
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- classpath-0.98.orig/configure.ac
++++ classpath-0.98/configure.ac
+@@ -766,11 +766,11 @@ if test "x${COMPILE_JNI}" = xyes; then
+ dnl __gmpz_mul_si for earlier versions (>= 3.1).
+ dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to
+ dnl change the name of the corresponding ac_ variable on lines 860...
+ if test "x${COMPILE_GMP}" = xyes; then
+ AC_CHECK_LIB(gmp, __gmpz_mul_si,
+- [GMP_CFLAGS=-I/usr/include
++ [GMP_CFLAGS=
+ GMP_LIBS=-lgmp ],
+ [GMP_CFLAGS=
+ GMP_LIBS= ])
+ AC_SUBST(GMP_CFLAGS)
+ AC_SUBST(GMP_LIBS)
37 recipes-core/classpath/classpath-0.98/javanet-local.patch
@@ -0,0 +1,37 @@
+Index: native/jni/java-net/local.c
+===================================================================
+RCS file: /sources/classpath/classpath/native/jni/java-net/local.c,v
+retrieving revision 1.4
+diff -u -r1.4 local.c
+--- native/jni/java-net/local.c 17 Apr 2007 21:46:27 -0000 1.4
++++ native/jni/java-net/local.c 27 Jun 2008 13:14:40 -0000
+@@ -73,27 +73,18 @@
+ return socket (PF_UNIX, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
+ }
+
+-static int gcc_sucks = 0;
+-
+ int
+ local_bind (int fd, const char *addr)
+ {
+ struct sockaddr_un saddr;
+
+- /* For some reason, GCC 4.0.1 on Darwin/x86 MODIFIES the `addr'
+- pointer in the CALLER's STACK FRAME after calling this function,
+- but if we add this statement below, it doesn't! */
+- if (gcc_sucks)
+- fprintf (stderr, "bind %p\n", addr);
+-
+- if (strlen (addr) > sizeof (saddr.sun_path))
++ if (strlen (addr) >= sizeof (saddr.sun_path))
+ {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+
+- strncpy (saddr.sun_path, addr, sizeof (saddr.sun_path));
+- saddr.sun_path[sizeof (saddr.sun_path)] = '\0';
++ strcpy (saddr.sun_path, addr);
+ saddr.sun_family = AF_LOCAL;
+
+ return bind (fd, (struct sockaddr *) &saddr, SUN_LEN (&saddr));
13 recipes-core/classpath/classpath-0.98/miscompilation.patch
@@ -0,0 +1,13 @@
+Index: classpath-0.97.2/native/jni/java-io/java_io_VMFile.c
+===================================================================
+--- classpath-0.97.2.orig/native/jni/java-io/java_io_VMFile.c 2008-10-10 15:24:54.000000000 +0200
++++ classpath-0.97.2/native/jni/java-io/java_io_VMFile.c 2008-10-10 15:25:36.000000000 +0200
+@@ -439,7 +439,7 @@
+ {
+ #ifndef WITHOUT_FILESYSTEM
+ const char *filename;
+- int result;
++ volatile int result;
+
+ /* Don't use the JCL convert function because it throws an exception
+ on failure */
503 recipes-core/classpath/classpath-0.98/sun-security-getproperty.patch
@@ -0,0 +1,503 @@
+Index: gnu/classpath/debug/Simple1LineFormatter.java
+===================================================================
+--- gnu/classpath/debug/Simple1LineFormatter.java.orig 2006-07-11 18:03:59.000000000 +0200
++++ gnu/classpath/debug/Simple1LineFormatter.java 2009-03-19 19:00:47.000000000 +0100
+@@ -38,8 +38,6 @@
+
+ package gnu.classpath.debug;
+
+-import gnu.java.security.action.GetPropertyAction;
+-
+ import java.io.PrintWriter;
+ import java.io.StringWriter;
+ import java.security.AccessController;
+@@ -51,6 +49,8 @@
+ import java.util.logging.Formatter;
+ import java.util.logging.LogRecord;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * A simple 1-line formatter to use instead of the 2-line SimpleFormatter used
+ * by default in the JDK logging handlers.
+Index: gnu/classpath/debug/SystemLogger.java
+===================================================================
+--- gnu/classpath/debug/SystemLogger.java.orig 2006-12-10 21:25:41.000000000 +0100
++++ gnu/classpath/debug/SystemLogger.java 2009-03-19 19:00:47.000000000 +0100
+@@ -38,13 +38,13 @@
+
+ package gnu.classpath.debug;
+
+-import gnu.java.security.action.GetPropertyAction;
+-
+ import java.security.AccessController;
+ import java.util.StringTokenizer;
+ import java.util.logging.Level;
+ import java.util.logging.Logger;
+
++import sun.security.action.GetPropertyAction;
++
+ public final class SystemLogger extends Logger
+ {
+ public static final SystemLogger SYSTEM = new SystemLogger();
+Index: gnu/java/security/PolicyFile.java
+===================================================================
+--- gnu/java/security/PolicyFile.java.orig 2008-06-16 00:07:30.000000000 +0200
++++ gnu/java/security/PolicyFile.java 2009-03-19 19:01:31.000000000 +0100
+@@ -41,7 +41,6 @@
+ import gnu.classpath.debug.SystemLogger;
+
+ import gnu.java.lang.CPStringBuilder;
+-import gnu.java.security.action.GetPropertyAction;
+
+ import java.io.File;
+ import java.io.IOException;
+@@ -74,6 +73,8 @@
+ import java.util.StringTokenizer;
+ import java.util.logging.Logger;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * An implementation of a {@link java.security.Policy} object whose
+ * permissions are specified by a <em>policy file</em>.
+Index: gnu/java/security/action/GetPropertyAction.java
+===================================================================
+--- gnu/java/security/action/GetPropertyAction.java 2006-12-10 21:25:42.000000000 +0100
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,89 +0,0 @@
+-/* GetPropertyAction.java
+- Copyright (C) 2004 Free Software Foundation, Inc.
+-
+-This file is part of GNU Classpath.
+-
+-GNU Classpath is free software; you can redistribute it and/or modify
+-it under the terms of the GNU General Public License as published by
+-the Free Software Foundation; either version 2, or (at your option)
+-any later version.
+-
+-GNU Classpath is distributed in the hope that it will be useful, but
+-WITHOUT ANY WARRANTY; without even the implied warranty of
+-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-General Public License for more details.
+-
+-You should have received a copy of the GNU General Public License
+-along with GNU Classpath; see the file COPYING. If not, write to the
+-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+-02110-1301 USA.
+-
+-Linking this library statically or dynamically with other modules is
+-making a combined work based on this library. Thus, the terms and
+-conditions of the GNU General Public License cover the whole
+-combination.
+-
+-As a special exception, the copyright holders of this library give you
+-permission to link this library with independent modules to produce an
+-executable, regardless of the license terms of these independent
+-modules, and to copy and distribute the resulting executable under
+-terms of your choice, provided that you also meet, for each linked
+-independent module, the terms and conditions of the license of that
+-module. An independent module is a module which is not derived from
+-or based on this library. If you modify this library, you may extend
+-this exception to your version of the library, but you are not
+-obligated to do so. If you do not wish to do so, delete this
+-exception statement from your version. */
+-
+-package gnu.java.security.action;
+-
+-import java.security.PrivilegedAction;
+-
+-/**
+- * PrivilegedAction implementation that calls System.getProperty() with
+- * the property name passed to its constructor.
+- *
+- * Example of use:
+- * <code>
+- * GetPropertyAction action = new GetPropertyAction("http.proxyPort");
+- * String port = AccessController.doPrivileged(action);
+- * </code>
+- */
+-public class GetPropertyAction implements PrivilegedAction<String>
+-{
+- String name;
+- String value = null;
+-
+- public GetPropertyAction()
+- {
+- }
+-
+- public GetPropertyAction(String propName)
+- {
+- setParameters(propName);
+- }
+-
+- public GetPropertyAction(String propName, String defaultValue)
+- {
+- setParameters(propName, defaultValue);
+- }
+-
+- public String run()
+- {
+- return System.getProperty(name, value);
+- }
+-
+- public GetPropertyAction setParameters(String propName)
+- {
+- this.name = propName;
+- this.value = null;
+- return this;
+- }
+-
+- public GetPropertyAction setParameters(String propName, String defaultValue)
+- {
+- this.name = propName;
+- this.value = defaultValue;
+- return this;
+- }
+-}
+Index: gnu/java/security/key/dss/DSSKey.java
+===================================================================
+--- gnu/java/security/key/dss/DSSKey.java.orig 2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/dss/DSSKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
+ import gnu.java.lang.CPStringBuilder;
+
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.util.FormatUtil;
+
+ import java.math.BigInteger;
+@@ -51,6 +50,8 @@
+ import java.security.interfaces.DSAParams;
+ import java.security.spec.DSAParameterSpec;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * A base asbtract class for both public and private DSS (Digital Signature
+ * Standard) keys. It encapsulates the three DSS numbers: <code>p</code>,
+Index: gnu/java/security/key/dss/DSSPrivateKey.java
+===================================================================
+--- gnu/java/security/key/dss/DSSPrivateKey.java.orig 2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/dss/DSSPrivateKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -42,7 +42,6 @@
+
+ import gnu.java.security.Configuration;
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.key.IKeyPairCodec;
+
+ import java.math.BigInteger;
+@@ -50,6 +49,8 @@
+ import java.security.PrivateKey;
+ import java.security.interfaces.DSAPrivateKey;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * An object that embodies a DSS (Digital Signature Standard) private key.
+ *
+Index: gnu/java/security/key/dss/DSSPublicKey.java
+===================================================================
+--- gnu/java/security/key/dss/DSSPublicKey.java.orig 2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/dss/DSSPublicKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
+ import gnu.java.lang.CPStringBuilder;
+
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.key.IKeyPairCodec;
+
+ import java.math.BigInteger;
+@@ -49,6 +48,8 @@
+ import java.security.PublicKey;
+ import java.security.interfaces.DSAPublicKey;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * An object that embodies a DSS (Digital Signature Standard) public key.
+ *
+Index: gnu/java/security/key/rsa/GnuRSAKey.java
+===================================================================
+--- gnu/java/security/key/rsa/GnuRSAKey.java.orig 2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/rsa/GnuRSAKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
+ import gnu.java.lang.CPStringBuilder;
+
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.util.FormatUtil;
+
+ import java.math.BigInteger;
+@@ -49,6 +48,8 @@
+ import java.security.Key;
+ import java.security.interfaces.RSAKey;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * A base asbtract class for both public and private RSA keys.
+ */
+Index: gnu/java/security/key/rsa/GnuRSAPrivateKey.java
+===================================================================
+--- gnu/java/security/key/rsa/GnuRSAPrivateKey.java.orig 2008-03-16 23:04:50.000000000 +0100
++++ gnu/java/security/key/rsa/GnuRSAPrivateKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
+ import gnu.java.lang.CPStringBuilder;
+
+ import gnu.java.security.Configuration;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.Registry;
+ import gnu.java.security.key.IKeyPairCodec;
+
+@@ -51,6 +50,8 @@
+ import java.security.interfaces.RSAPrivateCrtKey;
+ import java.security.interfaces.RSAPrivateKey;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * An object that embodies an RSA private key.
+ * <p>
+Index: gnu/java/security/key/rsa/GnuRSAPublicKey.java
+===================================================================
+--- gnu/java/security/key/rsa/GnuRSAPublicKey.java.orig 2008-03-16 23:04:50.000000000 +0100
++++ gnu/java/security/key/rsa/GnuRSAPublicKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
+ import gnu.java.lang.CPStringBuilder;
+
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.key.IKeyPairCodec;
+
+ import java.math.BigInteger;
+@@ -49,6 +48,8 @@
+ import java.security.PublicKey;
+ import java.security.interfaces.RSAPublicKey;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * An object that encapsulates an RSA public key.
+ * <p>
+Index: gnu/javax/crypto/key/dh/GnuDHKey.java
+===================================================================
+--- gnu/javax/crypto/key/dh/GnuDHKey.java.orig 2006-07-11 18:03:59.000000000 +0200
++++ gnu/javax/crypto/key/dh/GnuDHKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -39,7 +39,6 @@
+ package gnu.javax.crypto.key.dh;
+
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.util.FormatUtil;
+
+ import java.math.BigInteger;
+@@ -49,6 +48,8 @@
+ import javax.crypto.interfaces.DHKey;
+ import javax.crypto.spec.DHParameterSpec;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * A base asbtract class for both public and private Diffie-Hellman keys. It
+ * encapsulates the two DH numbers: <code>p</code>, and <code>g</code>.
+Index: gnu/javax/crypto/key/dh/GnuDHPrivateKey.java
+===================================================================
+--- gnu/javax/crypto/key/dh/GnuDHPrivateKey.java.orig 2006-07-11 18:03:59.000000000 +0200
++++ gnu/javax/crypto/key/dh/GnuDHPrivateKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -40,7 +40,6 @@
+
+ import gnu.java.security.Configuration;
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.key.IKeyPairCodec;
+
+ import java.math.BigInteger;
+@@ -48,6 +47,8 @@
+
+ import javax.crypto.interfaces.DHPrivateKey;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * An implementation of the Diffie-Hellman private key.
+ * <p>
+Index: gnu/javax/crypto/key/dh/GnuDHPublicKey.java
+===================================================================
+--- gnu/javax/crypto/key/dh/GnuDHPublicKey.java.orig 2006-07-11 18:03:59.000000000 +0200
++++ gnu/javax/crypto/key/dh/GnuDHPublicKey.java 2009-03-19 19:00:47.000000000 +0100
+@@ -39,7 +39,6 @@
+ package gnu.javax.crypto.key.dh;
+
+ import gnu.java.security.Registry;
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.key.IKeyPairCodec;
+
+ import java.math.BigInteger;
+@@ -47,6 +46,8 @@
+
+ import javax.crypto.interfaces.DHPublicKey;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * An implementation of the Diffie-Hellman public key.
+ * <p>
+Index: gnu/javax/crypto/sasl/plain/PasswordFile.java
+===================================================================
+--- gnu/javax/crypto/sasl/plain/PasswordFile.java.orig 2008-05-05 23:29:46.000000000 +0200
++++ gnu/javax/crypto/sasl/plain/PasswordFile.java 2009-03-19 19:00:47.000000000 +0100
+@@ -40,7 +40,6 @@
+
+ import gnu.java.lang.CPStringBuilder;
+
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.javax.crypto.sasl.NoSuchUserException;
+ import gnu.javax.crypto.sasl.UserAlreadyExistsException;
+
+@@ -58,6 +57,8 @@
+ import java.util.NoSuchElementException;
+ import java.util.StringTokenizer;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * A representation of a Plain password file.
+ */
+Index: gnu/javax/net/ssl/provider/X509TrustManagerFactory.java
+===================================================================
+--- gnu/javax/net/ssl/provider/X509TrustManagerFactory.java.orig 2006-12-10 21:25:43.000000000 +0100
++++ gnu/javax/net/ssl/provider/X509TrustManagerFactory.java 2009-03-19 19:00:47.000000000 +0100
+@@ -66,11 +66,12 @@
+ import javax.net.ssl.TrustManagerFactorySpi;
+ import javax.net.ssl.X509TrustManager;
+
+-import gnu.java.security.action.GetPropertyAction;
+ import gnu.java.security.x509.X509CertPath;
+ import gnu.javax.net.ssl.NullManagerParameters;
+ import gnu.javax.net.ssl.StaticTrustAnchors;
+
++import sun.security.action.GetPropertyAction;
++
+ /**
+ * This class implements a {@link javax.net.ssl.TrustManagerFactory} engine
+ * for the ``JessieX509'' algorithm.
+Index: gnu/xml/aelfred2/XmlParser.java
+===================================================================
+--- gnu/xml/aelfred2/XmlParser.java.orig 2008-01-11 22:22:59.000000000 +0100
++++ gnu/xml/aelfred2/XmlParser.java 2009-03-19 19:00:47.000000000 +0100
+@@ -53,8 +53,6 @@
+
+ package gnu.xml.aelfred2;
+
+-import gnu.java.security.action.GetPropertyAction;
+-
+ import java.io.BufferedInputStream;
+ import java.io.CharConversionException;
+ import java.io.EOFException;
+@@ -74,6 +72,7 @@
+ import org.xml.sax.InputSource;
+ import org.xml.sax.SAXException;
+
++import sun.security.action.GetPropertyAction;
+
+ /**
+ * Parse XML documents and return parse events through call-backs.
+Index: sun/security/action/GetPropertyAction.java
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ sun/security/action/GetPropertyAction.java 2009-03-19 19:00:47.000000000 +0100
+@@ -0,0 +1,92 @@
++/* GetPropertyAction.java
++ Copyright (C) 2004, 2008 Free Software Foundation, Inc.
++
++This file is part of GNU Classpath.
++
++GNU Classpath is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 2, or (at your option)
++any later version.
++
++GNU Classpath is distributed in the hope that it will be useful, but
++WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++General Public License for more details.
++
++You should have received a copy of the GNU General Public License
++along with GNU Classpath; see the file COPYING. If not, write to the
++Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++02110-1301 USA.
++
++Linking this library statically or dynamically with other modules is
++making a combined work based on this library. Thus, the terms and
++conditions of the GNU General Public License cover the whole
++combination.
++
++As a special exception, the copyright holders of this library give you
++permission to link this library with independent modules to produce an
++executable, regardless of the license terms of these independent
++modules, and to copy and distribute the resulting executable under
++terms of your choice, provided that you also meet, for each linked
++independent module, the terms and conditions of the license of that
++module. An independent module is a module which is not derived from
++or based on this library. If you modify this library, you may extend
++this exception to your version of the library, but you are not
++obligated to do so. If you do not wish to do so, delete this
++exception statement from your version. */
++
++package sun.security.action;
++
++import java.security.PrivilegedAction;
++
++/**
++ * PrivilegedAction implementation that calls System.getProperty() with
++ * the property name passed to its constructor.
++ *
++ * Example of use:
++ * <code>
++ * GetPropertyAction action = new GetPropertyAction("http.proxyPort");
++ * String port = AccessController.doPrivileged(action);
++ * </code>
++ *
++ * Note: Usage of this class is discouraged as it is not a part of the
++ * J2SE API.
++ */
++public class GetPropertyAction implements PrivilegedAction<String>
++{
++ String name;
++ String value = null;
++
++ public GetPropertyAction()
++ {
++ }
++
++ public GetPropertyAction(String propName)
++ {
++ setParameters(propName);
++ }
++
++ public GetPropertyAction(String propName, String defaultValue)
++ {
++ setParameters(propName, defaultValue);
++ }
++
++ public String run()
++ {
++ return System.getProperty(name, value);
++ }
++
++ public GetPropertyAction setParameters(String propName)
++ {
++ this.name = propName;
++ this.value = null;
++ return this;
++ }
++
++ public GetPropertyAction setParameters(String propName, String defaultValue)
++ {
++ this.name = propName;
++ this.value = defaultValue;
++ return this;
++ }
++}
46 recipes-core/classpath/classpath-0.98/toolwrapper-exithook.patch
@@ -0,0 +1,46 @@
+Index: classpath-0.97.2/tools/toolwrapper.c
+===================================================================
+--- classpath-0.97.2.orig/tools/toolwrapper.c 2006-12-13 18:56:44.000000000 +0100
++++ classpath-0.97.2/tools/toolwrapper.c 2009-12-24 13:16:44.295000627 +0100
+@@ -59,6 +59,10 @@
+ /* Typedef for JNI_CreateJavaVM dlopen call. */
+ typedef jint createVM (JavaVM **, void **, void *);
+
++void exit_hook(jint);
++
++int return_code = 1;
++
+ int
+ main (int argc, const char** argv)
+ {
+@@ -143,6 +147,17 @@
+ vm_args.options[vm_args.nOptions++].optionString = "-Xbootclasspath/p:" TOOLS_ZIP;
+ }
+
++ /* Set the exit hook */
++ vm_args.options = (JavaVMOption*) realloc (vm_args.options, (vm_args.nOptions + 1) * sizeof (JavaVMOption));
++
++ if (vm_args.options == NULL)
++ {
++ fprintf (stderr, TOOLNAME ": realloc failed.\n");
++ goto destroy;
++ }
++ vm_args.options[vm_args.nOptions].optionString = "exit";
++ vm_args.options[vm_args.nOptions++].extraInfo = (void *) exit_hook;
++
+ /* Terminate vm_args.options with a NULL element. */
+ vm_args.options = (JavaVMOption*) realloc (vm_args.options, (vm_args.nOptions + 1) * sizeof (JavaVMOption));
+ if (vm_args.options == NULL)
+@@ -260,5 +275,11 @@
+ if (lt_dlexit () != 0)
+ fprintf (stderr, TOOLNAME ": lt_dlexit failed.\n");
+
+- return 1;
++ return return_code;
++}
++
++void exit_hook(jint code)
++{
++ return_code = code;
+ }
++
13 recipes-core/classpath/classpath-initial-0.93/miscompilation.patch
@@ -0,0 +1,13 @@
+Index: classpath-0.93/native/jni/java-io/java_io_VMFile.c
+===================================================================
+--- classpath-0.93.orig/native/jni/java-io/java_io_VMFile.c 2006-09-23 07:17:45.000000000 +0200
++++ classpath-0.93/native/jni/java-io/java_io_VMFile.c 2008-11-14 13:41:27.000000000 +0100
+@@ -239,7 +239,7 @@
+ {
+ #ifndef WITHOUT_FILESYSTEM
+ const char *filename;
+- int result;
++ volatile int result;
+
+ /* Don't use the JCL convert function because it throws an exception
+ on failure */
37 recipes-core/classpath/classpath-initial_0.93.bb
@@ -0,0 +1,37 @@
+# No later version of Classpath may be used because this is the latest that can be compiled
+# by jikes!
+
+require classpath-native.inc
+
+DESCRIPTION="Java1.4-compatible GNU Classpath variant that is used as bootclasspath for jikes-native."
+LIC_FILES_CHKSUM = "file://COPYING;md5=af0004801732bc4b20d90f351cf80510"
+
+DEPENDS = "zip-native fastjar-native jikes-native gettext-native"
+
+SRC_URI += " \
+ file://autotools.patch \
+ file://miscompilation.patch \
+ "
+
+EXTRA_OECONF = " \
+ --with-jikes=jikes \
+ --with-fastjar=fastjar \
+ --with-glibj \
+ --disable-Werror \
+ --disable-local-sockets \
+ --disable-alsa \
+ --disable-gconf-peer \
+ --disable-gtk-peer \
+ --disable-plugin \
+ --disable-dssi \
+ --disable-examples \
+ --disable-tools \
+ --with-glibj-dir=${STAGING_DATADIR_NATIVE}/classpath-initial \
+ --with-native-libdir=${STAGING_LIBDIR_NATIVE}/classpath-initial \
+ --includedir=${STAGING_INCDIR_NATIVE}/classpath-initial \
+ --with-vm=java \
+ "
+
+SRC_URI[md5sum] = "ffa9e9cac31c5acbf0ea9eff9efa923d"
+SRC_URI[sha256sum] = "df2d093612abd23fe67e9409d89bb2a8e79b1664fe2b2da40e1c8ed693e32945"
+
34 recipes-core/classpath/classpath-native.inc
@@ -0,0 +1,34 @@
+DESCRIPTION = "GNU Classpath standard Java libraries - For native Java-dependent programs"
+HOMEPAGE = "http://www.gnu.org/software/classpath/"
+LICENSE = "Classpath"
+
+DEPENDS = "ecj-initial fastjar-native zip-native gettext-native"
+
+inherit autotools native
+
+SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz"
+
+do_configure_prepend () {
+
+ cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}
+}
+
+export JAVA="${STAGING_BINDIR_NATIVE}/java-initial"
+export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial"
+export JAVACFLAGS="-nowarn"
+
+EXTRA_OECONF = " \
+ --with-glibj \
+ --enable-local-sockets \
+ --disable-Werror \
+ --disable-alsa \
+ --disable-gconf-peer \
+ --disable-gtk-peer \
+ --disable-plugin \
+ --disable-dssi \
+ --disable-gjdoc \
+ --disable-examples \
+ --enable-tools \
+ --includedir=${STAGING_INCDIR}/classpath \
+ "
+
29 recipes-core/classpath/classpath-native_0.98.bb
@@ -0,0 +1,29 @@
+require classpath-native.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=af0004801732bc4b20d90f351cf80510"
+
+SRC_URI += " \
+ file://SimpleName.diff;striplevel=0 \
+ file://sun-security-getproperty.patch;striplevel=0 \
+ file://ecj_java_dir.patch \
+ file://autotools.patch \
+ file://miscompilation.patch \
+ file://toolwrapper-exithook.patch \
+ "
+
+do_unpackpost() {
+ # Kind of patch: Moves package "org.w3c.dom.html2" to "org.w3c.dom.html"
+ mv external/w3c_dom/org/w3c/dom/html2 \
+ external/w3c_dom/org/w3c/dom/html
+
+ find examples/gnu/classpath/examples/html gnu/xml/dom/html2 external/w3c_dom/org/w3c/dom/html -name "*.java" \
+ -exec sed -i -e"s|org.w3c.dom.html2|org.w3c.dom.html|" {} \;
+
+ sed -i -e"s|org/w3c/dom/html2|org/w3c/dom/html|" external/w3c_dom/Makefile.am
+}
+
+addtask unpackpost after do_unpack before do_patch
+
+SRC_URI[md5sum] = "90c6571b8b0309e372faa0f9f6255ea9"
+SRC_URI[sha256sum] = "501b5acd4dff79b6100da22cef15080f31071821ce3cea6f1b739bc1b56fac3f"
+
86 recipes-core/classpath/classpath.inc
@@ -0,0 +1,86 @@
+DESCRIPTION = "GNU Classpath standard Java libraries"
+HOMEPAGE = "http://www.gnu.org/software/classpath/"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "Classpath"
+PBN = "classpath"
+
+
+inherit autotools java
+
+DEPENDS = "virtual/javac-native fastjar-native zip-native gettext-native gmp antlr-native gtk+ gconf libxtst"
+
+RPROVIDES_${PN} = ""
+
+RDEPENDS_${PN} = "${PBN}-common (>= ${PV})"
+RDEPENDS_${PN}-examples = "java2-runtime ${PN}-awt"
+RDEPENDS_${PN}-tools = "java2-runtime"
+
+RPROVIDES_${PN} = "${PBN}"
+RPROVIDES_${PN}-common = "${PBN}-common"
+RPROVIDES_${PN}-gtk = "${PBN}-awt"
+
+SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz"
+
+S = "${WORKDIR}/${PBN}-${PV}"
+
+export JAVA = "java"
+
+EXTRA_OECONF = "\
+ --with-glibj \
+ --with-ecj=javac \
+ --with-fastjar=fastjar \
+ --includedir=${includedir}/classpath \
+ --with-vm=java \
+ --disable-Werror \
+ --with-antlr-jar=${STAGING_DATADIR_JAVA_NATIVE}/antlr.jar \
+ --disable-alsa \
+ --disable-dssi \
+ --disable-qt4-peer \
+ --disable-plugin \
+ --enable-gconf-peer \
+ --enable-gtk-peer \
+ --enable-local-sockets \
+ --with-vm=java \
+ "
+
+
+EXTRA_OECONF += "\
+ "
+
+do_configure_prepend () {
+ cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}
+}
+
+
+do_install() {
+ autotools_do_install
+ mv ${D}${libdir}/security ${D}${libdir}/${PBN}
+}
+
+# Defines the packages that this classpath recipe creates.
+# This allows the classpath-minimal variants to override this
+# again.
+CPPACKAGES = "${PBN}-common ${PN}-examples \
+ ${PN}-tools ${PN}-tools-doc \
+ ${PN}-gtk ${PN}-gconf"
+
+PACKAGES =+ "${CPPACKAGES}"
+
+FILES_${PN}-dev += "${libdir}/${PBN}/*.la ${incdir}/${PBN}"
+
+FILES_${PBN}-common = "${datadir}/${PBN}/glibj.zip ${libdir}/logging.properties ${libdir}/${PBN}/security"
+FILES_${PN}-examples = "${datadir}/${PBN}/examples"
+
+FILES_${PN}-tools = "${datadir}/${PBN}/tools.zip ${bindir}"
+FILES_${PN}-tools-doc = "${mandir}"
+
+FILES_${PN}-dbg += "${libdir}/${PBN}/.debug"
+FILES_${PN}-doc = "${infodir}"
+
+# gcjwebplugin - not built yet
+#FILES_${PN}-gcjwebplugin = "${libdir}/${PBN}/libgcjwebplugin.so"
+FILES_${PN}-gtk = "${libdir}/${PBN}/libgtkpeer.so ${libdir}/${PBN}/libjawt.so"
+FILES_${PN}-gconf = "${libdir}/${PBN}/libgconfpeer.so"
+FILES_${PN} = "${libdir}/${PBN}/lib*so*"
+
13 recipes-core/classpath/classpath_0.98.bb
@@ -0,0 +1,13 @@
+require classpath.inc
+
+SRC_URI += " \
+ file://SimpleName.diff;striplevel=0 \
+ file://ecj_java_dir.patch \
+ file://autotools.patch \
+ file://fix-gmp.patch \
+ file://toolwrapper-exithook.patch \
+ "
+
+SRC_URI[md5sum] = "90c6571b8b0309e372faa0f9f6255ea9"
+SRC_URI[sha256sum] = "501b5acd4dff79b6100da22cef15080f31071821ce3cea6f1b739bc1b56fac3f"
+
24 recipes-core/classpath/files/autotools.patch
@@ -0,0 +1,24 @@
+Index: classpath-0.93/configure.ac
+===================================================================
+--- classpath-0.93.orig/configure.ac 2006-12-08 20:22:50.000000000 +0100
++++ classpath-0.93/configure.ac 2008-08-25 22:07:40.711946598 +0200
+@@ -41,6 +41,11 @@
+ AC_CONFIG_HEADERS([include/config.h])
+ AC_PREFIX_DEFAULT(/usr/local/classpath)
+
++AC_CONFIG_MACRO_DIR([m4])
++
++
++AM_ICONV_LINK
++
+ dnl -----------------------------------------------------------
+ dnl Enable collections.jar (disabled by default)
+ dnl -----------------------------------------------------------
+@@ -312,6 +317,7 @@
+ dnl AC_PROG_AWK
+ AC_PROG_CC
+ AC_PROG_CPP
++AM_PROG_CC_C_O
+
+ # Handle -Werror default case.
+ if test "$ENABLE_WERROR" = default; then
23 recipes-core/classpathx/gnujaf-1.1.1/datadir_java.patch
@@ -0,0 +1,23 @@
+Index: activation-1.1.1/Makefile.am
+===================================================================
+--- activation-1.1.1.orig/Makefile.am 2008-03-01 10:30:06.000000000 +0100
++++ activation-1.1.1/Makefile.am 2008-03-01 10:31:04.000000000 +0100
+@@ -7,6 +7,8 @@
+ JAVADOC = @JAVADOC@
+ JAVADOCFLAGS = @JAVADOCFLAGS@
+
++JARDIR = $(datadir)/java
++
+ src = @srcdir@/source
+ dst = classes
+ doc = @srcdir@/docs
+@@ -92,7 +94,7 @@
+ $(RM) config.log config.status
+
+ install-data-local:
+- @srcdir@/mkinstalldirs $(DESTDIR)/$(datadir)/java
+- $(INSTALL_DATA) $(activation_jar) $(DESTDIR)/$(datadir)/java
++ @srcdir@/mkinstalldirs $(DESTDIR)/$(JARDIR)
++ $(INSTALL_DATA) $(activation_jar) $(DESTDIR)/$(JARDIR)
+
+ # End of Makefile.am
35 recipes-core/classpathx/gnujaf_1.1.1.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Provides a mean to type data and locate components suitable for performing various kinds of action on it."
+AUTHOR = "GNU ClasspathX"
+LICENSE = "GPL+libraryexception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
+
+SRC_URI = "http://ftp.gnu.org/gnu/classpathx/activation-${PV}.tar.gz \
+ file://datadir_java.patch \
+ "
+
+inherit autotools java-library
+
+S = "${WORKDIR}/activation-${PV}"
+
+export JAVAC = "javac"
+
+# Fake javadoc
+export JAVADOC = "true"
+
+JARFILENAME = "activation-${PV}.jar"
+ALTJARFILENAMES = "activation.jar gnujaf.jar"
+
+do_compile() {
+ mkdir -p build
+
+ javac -sourcepath source -d build `find source -name "*.java"`
+
+ fastjar -C build -c -f ${JARFILENAME} .
+}
+
+SRC_URI[md5sum] = "de50d7728e8140eb404f2b4554321f8c"
+SRC_URI[sha256sum] = "b1b5ef560d30fcb11fbf537246857d14110ce4eb2b200d4c54690472305d87b7"
+
+NATIVE_INSTALL_WORKS = "1"
+BBCLASSEXTEND = "native"
+
25 recipes-core/classpathx/gnumail-1.1.2/datadir_java.patch
@@ -0,0 +1,25 @@
+Index: mail-1.1.2/Makefile.am
+===================================================================
+--- mail-1.1.2.orig/Makefile.am 2008-03-01 11:13:36.000000000 +0100
++++ mail-1.1.2/Makefile.am 2008-03-01 11:17:49.000000000 +0100
+@@ -7,6 +7,8 @@
+ JAVADOC = @JAVADOC@
+ JAVADOCFLAGS = @JAVADOCFLAGS@
+
++JARDIR = $(datadir)/java
++
+ src = @srcdir@/source
+ dst = classes
+ doc = @srcdir@/docs
+@@ -433,8 +435,8 @@
+ rm -rf $(gnumail_jar) $(providers_jar) META-INF $(dst) $(doc)
+
+ install-data-local:
+- @srcdir@/mkinstalldirs $(DESTDIR)/$(datadir)/java
+- $(INSTALL_DATA) $(gnumail_jar) $(DESTDIR)/$(datadir)/java
+- $(INSTALL_DATA) $(providers_jar) $(DESTDIR)/$(datadir)/java
++ @srcdir@/mkinstalldirs $(DESTDIR)/$(JARDIR)
++ $(INSTALL_DATA) $(gnumail_jar) $(DESTDIR)/$(JARDIR)
++ $(INSTALL_DATA) $(providers_jar) $(DESTDIR)/$(JARDIR)
+
+ # End of Makefile.am
39 recipes-core/classpathx/gnumail_1.1.2.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "GNU's free implementation of the JavaMail API specification"
+AUTHOR = "GNU ClasspathX"
+LICENSE = "GPL+libraryexception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=14bc6ee8b2e2b409be599212867d126e"
+
+SRC_URI = "http://ftp.gnu.org/gnu/classpathx/mail-${PV}.tar.gz \
+ file://datadir_java.patch \
+ "
+
+inherit java-library autotools
+
+S = "${WORKDIR}/mail-${PV}"
+
+DEPENDS = "gnujaf inetlib"
+DEPENDS_virtclass-native = "gnujaf-native inetlib-native"
+
+export JAVAC = "${STAGING_BINDIR_NATIVE}/javac"
+export JAVA = "${STAGING_BINDIR_NATIVE}/java"
+
+# Fake javadoc
+export JAVADOC = "true"
+
+EXTRA_OECONF = " \
+ --with-inetlib-jar=${STAGING_DATADIR_JAVA} \
+ --with-activation-jar=${STAGING_DATADIR_JAVA} \
+ "
+
+do_compile() {
+ oe_runmake \
+ JARDIR=${datadir_java} \
+ gnumail_jar=${JARFILENAME} \
+ providers_jar=${P}-providers.jar
+}
+
+SRC_URI[md5sum] = "0a94ff4328ceb6a4131be96946976a33"
+SRC_URI[sha256sum] = "5eb09597a8f81bfc943206e3e0f45b963ba605a646051c353374f1b475bb9f04"
+
+BBCLASSEXTEND = "native"
+
23 recipes-core/classpathx/inetlib-1.1.1/datadir_java.patch
@@ -0,0 +1,23 @@
+Index: inetlib-1.1.1/Makefile.am
+===================================================================
+--- inetlib-1.1.1.orig/Makefile.am 2008-03-01 10:49:49.000000000 +0100
++++ inetlib-1.1.1/Makefile.am 2008-03-01 10:52:21.000000000 +0100
+@@ -7,6 +7,8 @@
+ JAVADOC = @JAVADOC@
+ JAVADOCFLAGS = @JAVADOCFLAGS@
+
++JARDIR = $(datadir)/java
++
+ src = @srcdir@/source
+ dst = classes
+ doc = @srcdir@/docs
+@@ -280,7 +282,7 @@
+ find $(dst) -name '*.class' -exec rm -f '{}' ';'
+
+ install-data-local:
+- $(mkinstalldirs) $(prefix)/share/java
+- $(INSTALL_DATA) $(inetlib_jar) $(prefix)/share/java
++ $(mkinstalldirs) $(DESTDIR)/$(JARDIR)
++ $(INSTALL_DATA) $(inetlib_jar) $(DESTDIR)/$(JARDIR)
+
+ # End of Makefile.am
31 recipes-core/classpathx/inetlib_1.1.1.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "A Java library of clients for common internet protocols"
+AUTHOR = "GNU Classpath"
+HOMEPAGE = "http://gnu.org/software/classpath/inetlib.html"
+LICENSE = "GPL+libraryexception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://ftp.gnu.org/gnu/classpath/${BP}.tar.gz \
+ file://datadir_java.patch \
+ "
+
+inherit java-library autotools
+
+JPN = "libgnuinet-java"
+
+export JAVAC = "javac"
+
+export JAVA = "java"
+
+# We fake this, it is not neccessary anyway.
+export JAVADOC = "true"
+
+do_compile() {
+ oe_runmake JARDIR=${datadir_java} inetlib_jar=${JARFILENAME}
+}
+
+SRC_URI[md5sum] = "aaa24be4bc8d172ac675be8bdfa636ee"
+SRC_URI[sha256sum] = "1b078a39e022f86e4e2c8189b4d2789a5da414e8f1cb285587b7800b950a44de"
+
+NATIVE_INSTALL_WORKS = "1"
+BBCLASSEXTEND = "native"
+
47 recipes-core/cup/cup_0.10k.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "Lexical analyzer generator for Java"
+AUTHOR = "Elliot Berk, A. Appel, C. Scott Ananian"
+LICENSE = "CUP"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=2c9db91c00f38e52cfc8e67bafaa7c33"
+
+
+RDEPENDS_${PN} = "java2-runtime"
+RDEPENDS_${PN}_virtclass-native = ""
+
+inherit java-library
+
+SRC_URI = "http://www.cs.princeton.edu/~appel/modern/java/CUP/java_${BPN}_v10k.tar.gz \
+ file://cup \
+ "
+
+S = "${WORKDIR}/java_cup"
+
+do_configure() {
+ sed -i \
+ -e "s|OE_STAGING_BINDIR|${bindir}|" \
+ -e "s|OE_STAGING_DATADIR_JAVA|${data_java}|" \
+ -e "s|OE_CUP_JAR|${BP}.jar|" \
+ ${WORKDIR}/cup
+}
+
+do_compile() {
+ mkdir -p build
+
+ javac -d build `find . -name "*.java"`
+
+ fastjar -C build -c -f ${BP}.jar .
+}
+
+do_install_append() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/cup ${D}${bindir}
+}
+
+PACKAGES = "${PN}"
+
+FILES_${PN} += "${datadir_java}"
+
+SRC_URI[md5sum] = "8b11edfec13c590ea443d0f0ae0da479"
+SRC_URI[sha256sum] = "7e6dc5be74ae56c7e86e69ad0ad88dae3b2847afa9e73a76635918a6b1eb75cd"
+
+BBCLASSEXTEND = "native"
+
5 recipes-core/cup/files/cup
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cp=OE_STAGING_DATADIR_JAVA/OE_CUP_JAR
+
+exec OE_STAGING_BINDIR/java -cp $cp java_cup.Main "$@"
38 recipes-core/ecj/ecj-bootstrap-native.bb
@@ -0,0 +1,38 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+#
+# This recipe uses the jar created by libecj-bootstrap.
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
+ "
+
+DEPENDS = "libecj-bootstrap virtual/java-native"
+
+PROVIDES = "virtual/javac-native"
+
+SRC_URI = "file://ecj.in"
+
+S = "${WORKDIR}"
+
+JAR = "ecj-bootstrap.jar"
+
+inherit native
+
+do_compile() {
+ # Create the start script
+ echo "#!/bin/sh" > ecj-bootstrap
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap
+ echo "RUNTIME=java" >> ecj-bootstrap
+ cat ecj.in >> ecj-bootstrap
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/ecj-bootstrap ${D}${bindir}
+ install -m 755 ${S}/ecj-bootstrap ${D}${bindir}/javac
+}
32 recipes-core/ecj/ecj-initial.bb
@@ -0,0 +1,32 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+
+# This variant runs on the initial (not Java5-compatible runtime).
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+DEPENDS = "libecj-bootstrap"
+
+SRC_URI = "file://ecj-initial.in"
+
+S = "${WORKDIR}"
+
+inherit native
+
+JAR = "ecj-bootstrap.jar"
+
+do_compile() {
+ # Create the start script
+ echo "#!/bin/sh" > ecj-initial
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial
+ echo "RUNTIME=java-initial" >> ecj-initial
+ cat ecj-initial.in >> ecj-initial
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/ecj-initial ${D}${bindir}
+}
1 recipes-core/ecj/files/ecj-initial.in
@@ -0,0 +1 @@
+${RUNTIME} -Xmx512m -cp ${ECJ_JAR} org.eclipse.jdt.internal.compiler.batch.Main ${1+"$@"}
12 recipes-core/ecj/files/ecj.in
@@ -0,0 +1,12 @@
+error_counter=0;
+error_occured=139
+while [ ${error_counter} -le 50 -a ${error_occured} -eq 139 ]; do
+ ${RUNTIME} -Xmx1024m -cp ${ECJ_JAR} org.eclipse.jdt.internal.compiler.batch.Main ${1+"$@"}
+ error_occured=$?
+ if [ ${error_occured} -eq 139 ]; then
+ echo "ecj crashed - silently trying again"
+ error_counter=$(( $error_counter + 1 ))
+ fi
+done
+
+exit ${error_occured}
68 recipes-core/ecj/libecj-bootstrap.inc
@@ -0,0 +1,68 @@
+# This package compiles and stages only the Jar.
+
+DESCRIPTION = "JDT Core Batch Compiler - Jar only"
+HOMEPAGE = "http://www.eclipse.org/"
+LICENSE = "EPL-1"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/EPL-1;md5=d830412fb40c35122cb4d78375d30f76"
+
+DEPENDS = "fastjar-native jikes-initial virtual/java-initial"
+
+inherit native java
+
+S = "${WORKDIR}"
+
+JAR = "ecj-bootstrap-${PV}.jar"
+
+do_unpackpost() {
+ if [ ! -d source ]; then
+ mkdir source
+ fi
+
+ if [ ! -d build ]; then
+ mkdir build
+ fi
+
+ # Remove crap.
+ rm about.html build.xml
+ rm -rf META-INF
+
+ # Move source into separate subdir.
+ mv org source/
+
+ # Remove stuff unneeded for the bootstrap compiler.
+ rm -rf source/org/eclipse/jdt/internal/compiler/apt
+ rm -rf source/org/eclipse/jdt/internal/compiler/tool
+ rm -rf source/org/eclipse/jdt/internal/antadapter
+ rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java
+
+ # Make a copy of the remaining source to get the embedded
+ # resources.
+ cp -R source/org build/
+
+ # Remove source code and other stuff.
+ find build -name '*.java' -exec rm -f {} \;
+ find build -name '*.html' -exec rm -f {} \;
+}
+
+addtask unpackpost after do_unpack before do_patch
+
+do_compile() {
+ find source -name '*.java' > sourcefiles
+ split -l 25 sourcefiles ecj-sources.
+
+ # Compiling in place is done because the sources contain
+ # property files which need to be available at runtime.
+ for list in `find . -name 'ecj-sources.*'`; do
+ echo "building files in $list ...";
+ echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`;
+ jikes-initial \
+ -d build -source 1.4 -sourcepath source `cat $list`;
+ done
+
+ fastjar -c -C build . -f ${JAR}
+}
+
+do_install() {
+ oe_jarinstall ${JAR} ecj-bootstrap.jar
+}
+
7 recipes-core/ecj/libecj-bootstrap_3.6.2.bb
@@ -0,0 +1,7 @@
+require libecj-bootstrap.inc
+
+SRC_URI = " http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.6.2-201102101200/ecjsrc-${PV}.zip"
+
+SRC_URI[md5sum] = "3f3ca1973dd7a21780525c9ffba7a263"
+SRC_URI[sha256sum] = "94f2095d38d71b414a593ec56847008bec267a926ec935959fecdde44f98467f"
+
16 recipes-core/fastjar/fastjar.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "jar replacement written in C."
+HOMEPAGE = "http://savannah.nongnu.org/projects/fastjar/"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+
+DEPENDS = "zlib"
+
+SRC_URI = "http://download.savannah.nongnu.org/releases/fastjar/fastjar-${PV}.tar.gz"
+
+inherit autotools
+
+PACKAGES = "${PN}-grepjar ${PN} ${PN}-dbg ${PN}-doc"
+FILES_${PN}-grepjar = "${bindir}/grepjar"
+
+BBCLASSEXTEND = "native"
114 recipes-core/fastjar/fastjar/jartool.patch
@@ -0,0 +1,114 @@
+Index: fastjar-0.98/jartool.c
+===================================================================
+--- fastjar-0.98.orig/jartool.c 2009-09-07 00:10:47.000000000 +0200
++++ fastjar-0.98/jartool.c 2011-11-10 13:59:01.320585544 +0100
+@@ -790,6 +790,7 @@
+ progname, jarfile);
+ return 1;
+ }
++ ze->filename[len] = '\0';
+ len = UNPACK_UB4(header, CEN_EFLEN);
+ len += UNPACK_UB4(header, CEN_COMLEN);
+ if (lseek (fd, len, SEEK_CUR) == -1)
+@@ -1257,7 +1258,7 @@
+ exit_on_error("write");
+
+ /* write the file name to the zip file */
+- if (1 == write(jfd, fname, file_name_length))
++ if (-1 == write(jfd, fname, file_name_length))
+ exit_on_error("write");
+
+ if(verbose){
+@@ -1730,7 +1731,17 @@
+ struct stat sbuf;
+ int depth = 0;
+
+- tmp_buff = malloc(sizeof(char) * strlen((const char *)filename));
++ if(*filename == '/'){
++ fprintf(stderr, "Absolute path names are not allowed.\n");
++ exit(EXIT_FAILURE);
++ }
++
++ tmp_buff = malloc(strlen((const char *)filename));
++
++ if(tmp_buff == NULL) {
++ fprintf(stderr, "Out of memory.\n");
++ exit(EXIT_FAILURE);
++ }
+
+ for(;;){
+ const ub1 *idx = (const unsigned char *)strchr((const char *)start, '/');
+@@ -1738,25 +1749,28 @@
+ if(idx == NULL)
+ break;
+ else if(idx == start){
++ tmp_buff[idx - filename] = '/';
+ start++;
+ continue;
+ }
+- start = idx + 1;
+
+- strncpy(tmp_buff, (const char *)filename, (idx - filename));
+- tmp_buff[(idx - filename)] = '\0';
++ memcpy(tmp_buff + (start - filename), (const char *)start, (idx - start));
++ tmp_buff[idx - filename] = '\0';
+
+ #ifdef DEBUG
+ printf("checking the existance of %s\n", tmp_buff);
+ #endif
+- if(strcmp(tmp_buff, "..") == 0){
++ if(idx - start == 2 && memcmp(start, "..", 2) == 0){
+ --depth;
+ if (depth < 0){
+ fprintf(stderr, "Traversal to parent directories during unpacking!\n");
+ exit(EXIT_FAILURE);
+ }
+- } else if (strcmp(tmp_buff, ".") != 0)
++ } else if (idx - start != 1 || *start != '.')
+ ++depth;
++
++ start = idx + 1;
++
+ if(stat(tmp_buff, &sbuf) < 0){
+ if(errno != ENOENT)
+ exit_on_error("stat");
+@@ -1765,6 +1779,7 @@
+ #ifdef DEBUG
+ printf("Directory exists\n");
+ #endif
++ tmp_buff[idx - filename] = '/';
+ continue;
+ }else {
+ fprintf(stderr, "Hmmm.. %s exists but isn't a directory!\n",
+@@ -1781,10 +1796,11 @@
+ if(verbose && handle)
+ printf("%10s: %s/\n", "created", tmp_buff);
+
++ tmp_buff[idx - filename] = '/';
+ }
+
+ /* only a directory */
+- if(strlen((const char *)start) == 0)
++ if(*start == '\0')
+ dir = TRUE;
+
+ #ifdef DEBUG
+@@ -1792,7 +1808,7 @@
+ #endif
+
+ /* If the entry was just a directory, don't write to file, etc */
+- if(strlen((const char *)start) == 0)
++ if(*start == '\0')
+ f_fd = -1;
+
+ free(tmp_buff);
+@@ -1876,7 +1892,8 @@
+ exit(EXIT_FAILURE);
+ }
+
+- close(f_fd);
++ if (f_fd != -1)
++ close(f_fd);
+
+ if(verbose && dir == FALSE && handle)
+ printf("%10s: %s\n",
9 recipes-core/fastjar/fastjar_0.98.bb
@@ -0,0 +1,9 @@
+require fastjar.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI += "file://jartool.patch"
+
+SRC_URI[md5sum] = "d2d264d343d4d0e1575832cc1023c3bf"
+SRC_URI[sha256sum] = "f156abc5de8658f22ee8f08d7a72c88f9409ebd8c7933e9466b0842afeb2f145"
+
15 recipes-core/icedtea/icedtea6-native-1.7.10/build-hacks-native.patch
@@ -0,0 +1,15 @@
+Index: icedtea6-1.6.1/Makefile.am
+===================================================================
+--- icedtea6-1.6.1.orig/Makefile.am 2009-12-24 11:38:06.582572265 +0100
++++ icedtea6-1.6.1/Makefile.am 2009-12-24 11:57:27.159578486 +0100
+@@ -265,6 +265,10 @@
+ FT2_LIB="$(FREETYPE2_LIBS)" \
+ ALT_PARALLEL_COMPILE_JOBS="$(PARALLEL_JOBS)" \
+ HOTSPOT_BUILD_JOBS="$(PARALLEL_JOBS)" \
++ OE_CFLAGS="$(OE_CFLAGS)" \
++ OE_CPPFLAGS="$(OE_CPPFLAGS)" \
++ OE_CXXFLAGS="$(OE_CXXFLAGS)" \
++ OE_LDFLAGS="$(OE_LDFLAGS)" \
+ JAVAC="" \
+ RHINO_JAR="$(RHINO_JAR)" \
+ JAR_KNOWS_ATFILE="$(JAR_KNOWS_ATFILE)" \
141 recipes-core/icedtea/icedtea6-native-1.7.10/disable-library-checks.patch
@@ -0,0 +1,141 @@
+Index: icedtea6-1.7/configure.ac
+===================================================================
+--- icedtea6-1.7.orig/configure.ac 2010-01-26 04:52:18.000000000 +0100
++++ icedtea6-1.7/configure.ac 2010-02-08 12:05:51.354556052 +0100
+@@ -205,9 +205,9 @@
+ fi
+
+ dnl pkgconfig cannot be used to find these headers and libraries.
+-AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],[]
+- ,[AC_MSG_ERROR("CUPS headers were not found -
+- try installing cups-devel.")])
++#AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],[]
++# ,[AC_MSG_ERROR("CUPS headers were not found -
++# try installing cups-devel.")])
+ AC_CHECK_HEADERS([X11/X.h],[]
+ ,[AC_MSG_ERROR("xorg headers were not found -
+ try installing xorg-x11-proto-devel.")])
+@@ -239,12 +239,12 @@
+ AC_SUBST(XT_LIBS)
+
+ dnl Check for libXp headers and libraries.
+-PKG_CHECK_MODULES(XP, xp,[XP_FOUND=yes],[XP_FOUND=no])
+-if test "x${XP_FOUND}" = xno
+-then
+- AC_MSG_ERROR([Could not find Xp - \
+- Try installing libXp-devel.])
+-fi
++#PKG_CHECK_MODULES(XP, xp,[XP_FOUND=yes],[XP_FOUND=no])
++#if test "x${XP_FOUND}" = xno
++#then
++# AC_MSG_ERROR([Could not find Xp - \
++# Try installing libXp-devel.])
++#fi
+ AC_SUBST(XP_CFLAGS)
+ AC_SUBST(XP_LIBS)
+
+@@ -258,16 +258,16 @@
+ AC_SUBST(X11_CFLAGS)
+ AC_SUBST(X11_LIBS)
+
+-dnl Check for libXinerama headers and libraries.
+-PKG_CHECK_MODULES(XINERAMA, xinerama,[XINERAMA_FOUND=yes]
+- ,[XINERAMA_FOUND=no])
+-if test "x${XINERAMA_FOUND}" = xno
+-then
+- AC_MSG_ERROR([Could not find Xinerama - \
+- Try installing libXinerama-devel.])
+-fi
+-AC_SUBST(XINERAMA_CFLAGS)
+-AC_SUBST(XINERAMA_LIBS)
++#dnl Check for libXinerama headers and libraries.
++#PKG_CHECK_MODULES(XINERAMA, xinerama,[XINERAMA_FOUND=yes]
++# ,[XINERAMA_FOUND=no])
++#if test "x${XINERAMA_FOUND}" = xno
++#then
++# AC_MSG_ERROR([Could not find Xinerama - \
++# Try installing libXinerama-devel.])
++#fi
++#AC_SUBST(XINERAMA_CFLAGS)
++#AC_SUBST(XINERAMA_LIBS)
+
+ if test "x${ENABLE_XRENDER}" = "xyes"
+ then
+@@ -341,26 +341,26 @@
+ AC_CONFIG_FILES([tapset/jstack.stp])
+ fi
+
+-dnl Check for libpng headers and libraries.
+-PKG_CHECK_MODULES(LIBPNG, libpng,[LIBPNG_FOUND=yes]
+- ,[LIBPNG_FOUND=no])
+-if test "x${LIBPNG_FOUND}" = xno
+-then
+- AC_MSG_ERROR([Could not find libpng - \
+- Try installing libpng-devel.])
+-fi
+-AC_SUBST(LIBPNG_CFLAGS)
+-AC_SUBST(LIBPNG_LIBS)
+-
+-dnl Check for libXtst headers and libraries.
+-PKG_CHECK_MODULES(XTST, xtst,[XTST_FOUND=yes],[XTST_FOUND=no])
+-if test "x${XTST_FOUND}" = xno
+-then
+- AC_MSG_ERROR([Could not find Xtst - \
+- Try installing libXtst-devel.])
+-fi
+-AC_SUBST(XTST_CFLAGS)
+-AC_SUBST(XTST_LIBS)
++#dnl Check for libpng headers and libraries.
++#PKG_CHECK_MODULES(LIBPNG, libpng,[LIBPNG_FOUND=yes]
++# ,[LIBPNG_FOUND=no])
++#if test "x${LIBPNG_FOUND}" = xno
++#then
++# AC_MSG_ERROR([Could not find libpng - \
++# Try installing libpng-devel.])
++#fi
++#AC_SUBST(LIBPNG_CFLAGS)
++#AC_SUBST(LIBPNG_LIBS)
++
++#dnl Check for libXtst headers and libraries.
++#PKG_CHECK_MODULES(XTST, xtst,[XTST_FOUND=yes],[XTST_FOUND=no])
++#if test "x${XTST_FOUND}" = xno
++#then
++# AC_MSG_ERROR([Could not find Xtst - \
++# Try installing libXtst-devel.])
++#fi
++#AC_SUBST(XTST_CFLAGS)
++#AC_SUBST(XTST_LIBS)
+
+ dnl Check for freetype2 headers and libraries.
+ PKG_CHECK_MODULES(FREETYPE2, freetype2,[FREETYPE2_FOUND=yes]
+@@ -373,18 +373,18 @@
+ AC_SUBST(FREETYPE2_CFLAGS)
+ AC_SUBST(FREETYPE2_LIBS)
+
+-dnl Check for alsa headers and libraries (only required for Linux).
+-if test "x${BUILD_OS_DIR}" = "xlinux"
+-then
+- PKG_CHECK_MODULES(ALSA, alsa,[ALSA_FOUND=yes],[ALSA_FOUND=no])
+- if test "x${ALSA_FOUND}" = xno
+- then
+- AC_MSG_ERROR([Could not find alsa - \
+- Try installing alsa-lib-devel.])
+- fi
+-AC_SUBST(ALSA_CFLAGS)
+-AC_SUBST(ALSA_LIBS)
+-fi
++#dnl Check for alsa headers and libraries (only required for Linux).
++#if test "x${BUILD_OS_DIR}" = "xlinux"
++#then
++# PKG_CHECK_MODULES(ALSA, alsa,[ALSA_FOUND=yes],[ALSA_FOUND=no])
++# if test "x${ALSA_FOUND}" = xno
++# then
++# AC_MSG_ERROR([Could not find alsa - \
++# Try installing alsa-lib-devel.])
++# fi
++#AC_SUBST(ALSA_CFLAGS)
++#AC_SUBST(ALSA_LIBS)
++#fi
+
+ if test "x${enable_pulse_java}" = "xyes"
+ then
513 recipes-core/icedtea/icedtea6-native-1.7.10/icedtea-ecj-disable-compilation.patch
@@ -0,0 +1,513 @@
+Index: openjdk/jdk/make/sun/awt/Makefile
+===================================================================
+--- openjdk.orig/jdk/make/sun/awt/Makefile 2009-04-24 09:33:55.000000000 +0200
++++ openjdk/jdk/make/sun/awt/Makefile 2009-09-29 13:57:14.446815782 +0200
+@@ -180,7 +180,8 @@
+ include $(BUILDDIR)/common/Mapfile-vers.gmk
+ include $(BUILDDIR)/common/Library.gmk
+
+-build: fontconfigs
++#build: fontconfigs
++build:
+
+
+ ifeq ($(PLATFORM), windows)
+@@ -535,9 +536,9 @@
+ -I$(PLATFORM_SRC)/native/$(PKGDIR) \
+ $(EVENT_MODEL)
+
+-ifeq ($(PLATFORM), linux)
+-LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
+-endif
++#ifeq ($(PLATFORM), linux)
++#LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
++#endif
+
+ LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \
+ $(AWT_RUNPATH)
+Index: openjdk/jdk/make/javax/sound/jsoundalsa/Makefile
+===================================================================
+--- openjdk.orig/jdk/make/javax/sound/jsoundalsa/Makefile 2009-09-29 13:48:34.534565581 +0200
++++ openjdk/jdk/make/javax/sound/jsoundalsa/Makefile 2009-09-29 13:57:14.446815782 +0200
+@@ -44,34 +44,35 @@
+ # Files
+ #
+
+-FILES_c = \
+- Utilities.c \
+- $(DAUDIOFILES_c) \
+- $(MIDIFILES_c) \
+- $(PORTFILES_c)
++#FILES_c = \
++# Utilities.c \
++# $(DAUDIOFILES_c) \
++# $(MIDIFILES_c) \
++# $(PORTFILES_c)
+
+ # platform dependent files
+-FILES_c += \
+- PLATFORM_API_LinuxOS_ALSA_CommonUtils.c \
+- PLATFORM_API_LinuxOS_ALSA_PCM.c \
+- PLATFORM_API_LinuxOS_ALSA_PCMUtils.c \
+- PLATFORM_API_LinuxOS_ALSA_MidiIn.c \
+- PLATFORM_API_LinuxOS_ALSA_MidiOut.c \
+- PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
+- PLATFORM_API_LinuxOS_ALSA_Ports.c
+-
+-FILES_export = \
+- $(DAUDIOFILES_export) \
+- $(MIDIFILES_export) \
+- $(PORTFILES_export)
++#FILES_c += \
++# PLATFORM_API_LinuxOS_ALSA_CommonUtils.c \
++# PLATFORM_API_LinuxOS_ALSA_PCM.c \
++# PLATFORM_API_LinuxOS_ALSA_PCMUtils.c \
++# PLATFORM_API_LinuxOS_ALSA_MidiIn.c \
++# PLATFORM_API_LinuxOS_ALSA_MidiOut.c \
++# PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
++# PLATFORM_API_LinuxOS_ALSA_Ports.c
++
++FILES_export =
++#FILES_export = \
++# $(DAUDIOFILES_export) \
++# $(MIDIFILES_export) \
++# $(PORTFILES_export)
+
+-OTHER_LDLIBS += -lasound
++#OTHER_LDLIBS += -lasound
+
+ CPPFLAGS += \
+- -DUSE_DAUDIO=TRUE \
+- -DUSE_PORTS=TRUE \
+- -DUSE_PLATFORM_MIDI_OUT=TRUE \
+- -DUSE_PLATFORM_MIDI_IN=TRUE \
++ -DUSE_DAUDIO=FALSE \
++ -DUSE_PORTS=FALSE \
++ -DUSE_PLATFORM_MIDI_OUT=FALSE \
++ -DUSE_PLATFORM_MIDI_IN=FALSE \
+ -I$(SHARE_SRC)/native/com/sun/media/sound
+
+ #
+Index: openjdk/jdk/make/sun/splashscreen/Makefile
+===================================================================
+--- openjdk.orig/jdk/make/sun/splashscreen/Makefile 2009-09-29 13:48:33.738565601 +0200
++++ openjdk/jdk/make/sun/splashscreen/Makefile 2009-09-29 13:57:14.446815782 +0200
+@@ -32,7 +32,8 @@
+ #
+ # Files
+ #
+-include FILES_c.gmk
++#include FILES_c.gmk
++FILES_c =
+
+ FILES_java = \
+ java/awt/SplashScreen.java
+@@ -62,9 +63,9 @@
+ CFLAGS += -DSPLASHSCREEN -DPNG_NO_MMX_CODE
+
+ ifneq ($(PLATFORM), windows)
+- CFLAGS += -DWITH_X11
+- CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
+- OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpng -ljpeg -lgif -lz -lpthread
++# CFLAGS += -DWITH_X11
++# CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
++# OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpng -ljpeg -lgif -lz -lpthread
+ else # PLATFORM
+ CFLAGS += -DWITH_WIN32
+ OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib
+@@ -79,7 +80,7 @@
+ vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/jpeg
+ vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen
+
+-CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen -I$(SHARE_SRC)/native/$(PKGDIR)/splashscreen
++#CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen -I$(SHARE_SRC)/native/$(PKGDIR)/splashscreen
+
+ ifeq ($(PLATFORM), linux)
+ ifeq ($(ARCH_DATA_MODEL), 64)
+Index: openjdk/jdk/make/sun/xawt/Makefile
+===================================================================
+--- openjdk.orig/jdk/make/sun/xawt/Makefile 2009-04-24 09:33:56.000000000 +0200
++++ openjdk/jdk/make/sun/xawt/Makefile 2009-09-29 13:57:14.446815782 +0200
+@@ -41,15 +41,16 @@
+ #
+ # Files
+ #
+-include FILES_c_unix.gmk
+-include FILES_export_unix.gmk
++#include FILES_c_unix.gmk
++FILES_c =
++#include FILES_export_unix.gmk
+ AUTO_FILES_JAVA_DIRS = sun/awt/X11
+ AUTO_JAVA_PRUNE = WrapperGenerator.java
+
+ LDFLAGS += -L$(OPENWIN_LIB)
+
+ ifeq ($(PLATFORM), linux)
+-LDFLAGS += -lpthread
++#LDFLAGS += -lpthread
+ dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+ endif
+
+@@ -86,16 +87,19 @@
+ vpath %.c $(PLATFORM_SRC)/native/sun/java2d/opengl
+ vpath %.c $(PLATFORM_SRC)/native/sun/java2d/x11
+
+-OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \
+- $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
++#OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \
++# $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
+
+ ifeq ($(PLATFORM), solaris)
+ CPPFLAGS += -DFUNCPROTO=15
+ dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+ endif
+
+-CPPFLAGS += -I$(CUPS_HEADERS_PATH)
++#CPPFLAGS += -I$(CUPS_HEADERS_PATH)
+
++# Normally we would like to patch these includes away but
++# we need them for the successfull compilation of the sizer
++# executables.
+ CPPFLAGS += -DXAWT -DXAWT_HACK \
+ -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders \
+ -I$(PLATFORM_SRC)/native/sun/awt \
+@@ -124,10 +128,10 @@
+
+ ifeq ($(PLATFORM), linux)
+ # Allows for builds on Debian GNU Linux, X11 is in a different place
+- CPPFLAGS += -I/usr/X11R6/include/X11/extensions \
+- -I/usr/include/X11/extensions \
+- -I$(MOTIF_DIR)/include \
+- -I$(OPENWIN_HOME)/include
++# CPPFLAGS += -I/usr/X11R6/include/X11/extensions \
++# -I/usr/include/X11/extensions \
++# -I$(MOTIF_DIR)/include \
++# -I$(OPENWIN_HOME)/include
+ endif
+
+ ifeq ($(PLATFORM), solaris)
+@@ -238,18 +242,20 @@
+ $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
+
+ $(SIZES): $(SIZERS)
+- @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
+- $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
+- $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
+- $(CHMOD) +w $@;\
+- else \
+- $(ECHO) GENERATING $@; \
+- $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
+- fi
+- @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
+- $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
+- $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
+- fi
++ touch $(SIZES)
++#
++# @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
++# $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
++# $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
++# $(CHMOD) +w $@;\
++# else \
++# $(ECHO) GENERATING $@; \
++# $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
++# fi
++# @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
++# $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
++# $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
++# fi
+
+ $(TEMPDIR)/.gen.wrappers: $(SIZES) $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
+ $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
+Index: openjdk/jdk/make/sun/jawt/Makefile
+===================================================================
+--- openjdk.orig/jdk/make/sun/jawt/Makefile 2009-09-29 13:48:34.186565471 +0200
++++ openjdk/jdk/make/sun/jawt/Makefile 2009-09-29 13:57:14.446815782 +0200
+@@ -36,7 +36,8 @@
+ ifeq ($(PLATFORM), windows)
+ FILES_cpp = jawt.cpp
+ else # PLATFORM
+-FILES_c = jawt.c
++FILES_c =
++#FILES_c = jawt.c
+ endif # PLATFORM
+
+ FILES_h = $(INCLUDEDIR)/jawt.h \
+Index: openjdk/jdk/make/sun/jpeg/Makefile