--- cacao-oj6-6b12.orig/ChangeLog +++ cacao-oj6-6b12/ChangeLog @@ -1,3 +1,108 @@ +2008-10-18 Matthias Klose + + * Makefile.am: Write a summary of the jtreg test results. + +2008-10-18 Matthias Klose + + * Makefile.am (stamps/patch{,-fsg,-ecj}.stamp): Fail if patches don't + apply, call $(HG) only if it exists. + +2008-10-17 Deepak Bhole + + * plugin/icedtea/sun/applet/PluginAppletViewer.java: Re-encode <, > and & + characters in applet params. + +2008-10-17 Deepak Bhole + + * plugin/icedtea/netscape/javascript/JSObject.java: Handle null args to + call() (bug# 217). + +2008-10-17 Matthias Klose + + * IcedTeaPlugin.cc: Don't use open if's in macros; cache getenv() call. + +2008-10-17 Gary Benson + + PR icedtea/203: + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp + (SharkDecacher::start_stack): Always set the stack pointer. + (SharkCacher::start_stack): Removed. + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp + (SharkCacher::start_stack): Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.cpp + (SharkFunction::CreateBuildFrame): Only set the stack pointer + for non-product builds. + +2008-10-17 Gary Benson + + * acinclude.m4 (FIND_LIBGCJ_JAR): Fix quoting. + +2008-10-16 Deepak Bhole + + * IcedTeaPlugin.cc: Use fifo pipes instead of tcp/ip, make debug output + optional, update how security is handled. + * Makefile.am: Make liveconnect the default plugin + * configure.ac: Same. + * icedtea-webstart.patch: Revert to old revision. The new revision was + never meant to go in. + * plugin/icedtea/netscape/javascript/JSObject.java: Change println's to + debug(). + * plugin/icedtea/netscape/javascript/JSRunnable.java: Same. + * plugin/icedtea/sun/applet/AppletSecurityContextManager.java: Same. + * plugin/icedtea/sun/applet/GetMemberPluginCallRequest.java: Same. + * plugin/icedtea/sun/applet/GetWindowPluginCallRequest.java: Same. + * plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Same, and + add some time calculation output to guage performance. + * plugin/icedtea/sun/applet/PluginAppletViewer.java: Update panel resizing + code, centralize debug output calls. + * plugin/icedtea/sun/applet/PluginDebug.java: Make debug output based on + environment variable "ICEDTEAPLUGIN_DEBUG". + * plugin/icedtea/sun/applet/PluginMain.java: Update to make use of fifo. Make + stream redirectionoptional, depending on the environment variable + "ICEDTEAPLUGIN_DEBUG". + * plugin/icedtea/sun/applet/PluginMessageConsumer.java: Centralize debug + output calls. + * plugin/icedtea/sun/applet/PluginMessageHandlerWorker.java: Same. + * plugin/icedtea/sun/applet/PluginObjectStore.java: Same. + * plugin/icedtea/sun/applet/PluginStreamHandler.java: Add some time + calculation code, update to use new transfer model over fifo. + * plugin/icedtea/sun/applet/RequestQueue.java: Centralize debug output calls. + * plugin/icedtea/sun/applet/TestEnv.java: Same. + * plugin/icedtea/sun/applet/VoidPluginCallRequest.java: Same. + +2008-10-16 Lillian Angel + + * configure.ac: Updated version from 1.3 to 1.3.1. + +2008-10-16 Matthias Klose + + * acinclude.m4 (FIND_LIBGCJ_JAR): Fix check, when configuring + without --with-libgcj-jar. + +2008-10-16 Andrew John Hughes + + * Makefile.am: + Apply MEMORY_LIMIT setting to OpenJDK + builds too and make sure limit is high enough + on normal IcedTea builds to build with a CACAO IcedTea. + +2008-10-16 Andrew John Hughes + + * acinclude.m4: + Change --with-cacao to be --enable-cacao + as it only accepts yes and no. + * configure.ac: + Rename cacao macro appropriately. + +2008-10-16 Andrew John Hughes + + * Makefile.am: + Make use of ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP. + * acinclude.m4: + Add --with-netbeans-basic-cluster-src-zip option. + * configure.ac: + Enable WITH_NETBEANS_BASIC_CLUSTER_SRC_ZIP macro. + 2008-10-15 Mark Wielaard * Makefile.am (EXTRA_DIST): Always include all patches, --- cacao-oj6-6b12.orig/acinclude.m4 +++ cacao-oj6-6b12/acinclude.m4 @@ -255,20 +255,21 @@ ]) if test -z "${LIBGCJ_JAR}"; then AC_MSG_CHECKING(for libgcj-4.3.*.jar, libgcj-4.2.*.jar or libgcj-4.1.*.jar) - if test -e /usr/share/java/libgcj-4.3.*.jar; then - LIBGCJ_JAR=/usr/share/java/libgcj-4.3.*.jar + for jar in /usr/share/java/libgcj-4.3*.jar; do + test -e $jar && LIBGCJ_JAR=$jar + done + if test -n "${LIBGCJ_JAR}"; then AC_MSG_RESULT(${LIBGCJ_JAR}) else - AM_CONDITIONAL(GCC_OLD, test x = x) - if test -e /usr/share/java/libgcj-4.2.*.jar; then - LIBGCJ_JAR=/usr/share/java/libgcj-4.2.*.jar - AC_MSG_RESULT(${LIBGCJ_JAR}) - elif test -e /usr/share/java/libgcj-4.1.*.jar; then - LIBGCJ_JAR=/usr/share/java/libgcj-4.1.*.jar - AC_MSG_RESULT(${LIBGCJ_JAR}) - else + AM_CONDITIONAL(GCC_OLD, test x = x) + for jar in /usr/share/java/libgcj-4.1*.jar /usr/share/java/libgcj-4.2*.jar; do + test -e $jar && LIBGCJ_JAR=$jar + done + if test -n ${LIBGCJ_JAR}; then + AC_MSG_RESULT(${LIBGCJ_JAR}) + else AC_MSG_RESULT(no) - fi + fi fi fi if test -z "${LIBGCJ_JAR}"; then @@ -473,6 +474,23 @@ AC_SUBST(ALT_NETBEANS_PROFILER_SRC_ZIP) ]) +AC_DEFUN([WITH_NETBEANS_BASIC_CLUSTER_SRC_ZIP], +[ + AC_MSG_CHECKING(netbeans basic cluster zip) + AC_ARG_WITH([netbeans-basic-cluster-src-zip], + [AS_HELP_STRING(--with-netbeans-basic-cluster-src-zip, specify the location of the netbeans basic cluster source zip)], + [ + ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP=${withval} + AM_CONDITIONAL(USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP, test x = x) + ], + [ + ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP="not specified" + AM_CONDITIONAL(USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP, test x != x) + ]) + AC_MSG_RESULT(${ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP}) + AC_SUBST(ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP) +]) + AC_DEFUN([WITH_ALT_JAR_BINARY], [ AC_MSG_CHECKING(alternate jar command) @@ -830,13 +848,13 @@ AM_CONDITIONAL(SHARK_BUILD, test "x${use_shark}" = xyes) ]) -AC_DEFUN([AC_CHECK_WITH_CACAO], +AC_DEFUN([AC_CHECK_ENABLE_CACAO], [ AC_MSG_CHECKING(whether to use CACAO as VM) - AC_ARG_WITH([cacao], - [AS_HELP_STRING(--with-cacao,use CACAO as VM [[default=no]])], + AC_ARG_ENABLE([cacao], + [AS_HELP_STRING(--enable-cacao,use CACAO as VM [[default=no]])], [ - WITH_CACAO=yes + WITH_CACAO="${enableval}" ], [ WITH_CACAO=no --- cacao-oj6-6b12.orig/configure +++ cacao-oj6-6b12/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for icedtea6 1.3. +# Generated by GNU Autoconf 2.61 for icedtea6 1.3.1. # # Report bugs to . # @@ -574,8 +574,8 @@ # Identity of this package. PACKAGE_NAME='icedtea6' PACKAGE_TARNAME='icedtea6' -PACKAGE_VERSION='1.3' -PACKAGE_STRING='icedtea6 1.3' +PACKAGE_VERSION='1.3.1' +PACKAGE_STRING='icedtea6 1.3.1' PACKAGE_BUGREPORT='distro-pkg-dev@openjdk.java.net' ac_default_prefix=bootstrap @@ -728,8 +728,8 @@ SYSTEM_ANT_DIR ENABLE_PLUGIN_TRUE ENABLE_PLUGIN_FALSE -ENABLE_LIVECONNECT_TRUE -ENABLE_LIVECONNECT_FALSE +ENABLE_GCJWEBPLUGIN_TRUE +ENABLE_GCJWEBPLUGIN_FALSE ENABLE_PULSE_JAVA_TRUE ENABLE_PULSE_JAVA_FALSE ENABLE_DOCS_TRUE @@ -775,6 +775,9 @@ USE_ALT_NETBEANS_PROFILER_SRC_ZIP_TRUE USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE ALT_NETBEANS_PROFILER_SRC_ZIP +USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE +USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE +ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP USE_ALT_JAR_TRUE USE_ALT_JAR_FALSE ALT_JAR_CMD @@ -825,14 +828,14 @@ ALSA_LIBS LIBPULSE_CFLAGS LIBPULSE_LIBS -XULRUNNER_CFLAGS -XULRUNNER_LIBS -GTK_CFLAGS -GTK_LIBS MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS +GTK_CFLAGS +GTK_LIBS +XULRUNNER_CFLAGS +XULRUNNER_LIBS LIBFFI_CFLAGS LIBFFI_LIBS LLVM_CONFIG @@ -875,14 +878,14 @@ ALSA_LIBS LIBPULSE_CFLAGS LIBPULSE_LIBS -XULRUNNER_CFLAGS -XULRUNNER_LIBS -GTK_CFLAGS -GTK_LIBS MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS +GTK_CFLAGS +GTK_LIBS +XULRUNNER_CFLAGS +XULRUNNER_LIBS LIBFFI_CFLAGS LIBFFI_LIBS' @@ -1387,7 +1390,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures icedtea6 1.3 to adapt to many kinds of systems. +\`configure' configures icedtea6 1.3.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1457,7 +1460,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of icedtea6 1.3:";; + short | recursive ) echo "Configuration of icedtea6 1.3.1:";; esac cat <<\_ACEOF @@ -1466,12 +1469,13 @@ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors - --disable-gcjwebplugin Disable compilation of browser plugin - --enable-liveconnect Enable experimental LiveConnect plugin + --disable-liveconnect Disable compilation of browser plugin + --enable-gcjwebplugin Build the GCJ Web Plugin plugin (deprecated) --enable-pulse-java Enable pulse-java - an audio mixer spi that uses PulseAudio --disable-docs Disable generation of documentation --enable-visualvm Enable compilation of visualvm. + --enable-cacao use CACAO as VM [default=no] --disable-optimizations build with -O0 -g [default=no] --enable-zero use zero-assembler port on non-zero platforms --enable-shark use Shark JIT @@ -1511,9 +1515,11 @@ --with-visualvm-src-zip specify the location of the visualvm source zip --with-netbeans-src-zip specify the location of the netbeans profiler source zip + --with-netbeans-basic-cluster-src-zip + specify the location of the netbeans basic cluster + source zip --with-alt-jar specify the location of an alternate jar binary to use for building - --with-cacao use CACAO as VM [default=no] --with-cacao-home CACAO home directory [[default=/usr/local/cacao]] --with-cacao-src-zip specify the location of the CACAO source zip @@ -1557,18 +1563,18 @@ C compiler flags for LIBPULSE, overriding pkg-config LIBPULSE_LIBS linker flags for LIBPULSE, overriding pkg-config - XULRUNNER_CFLAGS - C compiler flags for XULRUNNER, overriding pkg-config - XULRUNNER_LIBS - linker flags for XULRUNNER, overriding pkg-config - GTK_CFLAGS C compiler flags for GTK, overriding pkg-config - GTK_LIBS linker flags for GTK, overriding pkg-config MOZILLA_CFLAGS C compiler flags for MOZILLA, overriding pkg-config MOZILLA_LIBS linker flags for MOZILLA, overriding pkg-config GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config GLIB_LIBS linker flags for GLIB, overriding pkg-config + GTK_CFLAGS C compiler flags for GTK, overriding pkg-config + GTK_LIBS linker flags for GTK, overriding pkg-config + XULRUNNER_CFLAGS + C compiler flags for XULRUNNER, overriding pkg-config + XULRUNNER_LIBS + linker flags for XULRUNNER, overriding pkg-config LIBFFI_CFLAGS C compiler flags for LIBFFI, overriding pkg-config LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config @@ -1637,7 +1643,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -icedtea6 configure 1.3 +icedtea6 configure 1.3.1 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1651,7 +1657,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by icedtea6 $as_me 1.3, which was +It was created by icedtea6 $as_me 1.3.1, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2341,7 +2347,7 @@ # Define the identity of the package. PACKAGE='icedtea6' - VERSION='1.3' + VERSION='1.3.1' cat >>confdefs.h <<_ACEOF @@ -6053,9 +6059,9 @@ -# Check whether --enable-gcjwebplugin was given. -if test "${enable_gcjwebplugin+set}" = set; then - enableval=$enable_gcjwebplugin; enable_plugin="${enableval}" +# Check whether --enable-liveconnect was given. +if test "${enable_liveconnect+set}" = set; then + enableval=$enable_liveconnect; enable_plugin="${enableval}" else enable_plugin="yes" fi @@ -6069,19 +6075,19 @@ fi -# Check whether --enable-liveconnect was given. -if test "${enable_liveconnect+set}" = set; then - enableval=$enable_liveconnect; enable_liveconnect="yes" +# Check whether --enable-gcjwebplugin was given. +if test "${enable_gcjwebplugin+set}" = set; then + enableval=$enable_gcjwebplugin; enable_gcjwebplugin="yes" else - enable_liveconnect="no" + enable_gcjwebplugin="no" fi - if test "x${enable_liveconnect}" = "xyes"; then - ENABLE_LIVECONNECT_TRUE= - ENABLE_LIVECONNECT_FALSE='#' + if test "x${enable_gcjwebplugin}" = "xyes"; then + ENABLE_GCJWEBPLUGIN_TRUE= + ENABLE_GCJWEBPLUGIN_FALSE='#' else - ENABLE_LIVECONNECT_TRUE='#' - ENABLE_LIVECONNECT_FALSE= + ENABLE_GCJWEBPLUGIN_TRUE='#' + ENABLE_GCJWEBPLUGIN_FALSE= fi @@ -8099,12 +8105,14 @@ if test -z "${LIBGCJ_JAR}"; then { echo "$as_me:$LINENO: checking for libgcj-4.3.*.jar" >&5 echo $ECHO_N "checking for libgcj-4.3.*.jar... $ECHO_C" >&6; } - if test -e /usr/share/java/libgcj-4.3.*.jar; then - LIBGCJ_JAR=/usr/share/java/libgcj-4.3.*.jar + for jar in /usr/share/java/libgcj-4.3*.jar; do + test -e $jar && LIBGCJ_JAR=$jar + done + if test -n "${LIBGCJ_JAR}"; then { echo "$as_me:$LINENO: result: ${LIBGCJ_JAR}" >&5 echo "${ECHO_T}${LIBGCJ_JAR}" >&6; } else - if test x = x; then + if test x = x; then GCC_OLD_TRUE= GCC_OLD_FALSE='#' else @@ -8112,18 +8120,16 @@ GCC_OLD_FALSE= fi - if test -e /usr/share/java/libgcj-4.2.*.jar; then - LIBGCJ_JAR=/usr/share/java/libgcj-4.2.*.jar - { echo "$as_me:$LINENO: result: ${LIBGCJ_JAR}" >&5 -echo "${ECHO_T}${LIBGCJ_JAR}" >&6; } - elif test -e /usr/share/java/libgcj-4.1.*.jar; then - LIBGCJ_JAR=/usr/share/java/libgcj-4.1.*.jar - { echo "$as_me:$LINENO: result: ${LIBGCJ_JAR}" >&5 + for jar in /usr/share/java/libgcj-4.1*.jar /usr/share/java/libgcj-4.2*.jar; do + test -e $jar && LIBGCJ_JAR=$jar + done + if test -n ${LIBGCJ_JAR}; then + { echo "$as_me:$LINENO: result: ${LIBGCJ_JAR}" >&5 echo "${ECHO_T}${LIBGCJ_JAR}" >&6; } - else + else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } - fi + fi fi fi if test -z "${LIBGCJ_JAR}"; then @@ -8477,6 +8483,41 @@ + { echo "$as_me:$LINENO: checking netbeans basic cluster zip" >&5 +echo $ECHO_N "checking netbeans basic cluster zip... $ECHO_C" >&6; } + +# Check whether --with-netbeans-basic-cluster-src-zip was given. +if test "${with_netbeans_basic_cluster_src_zip+set}" = set; then + withval=$with_netbeans_basic_cluster_src_zip; + ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP=${withval} + if test x = x; then + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE= + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE='#' +else + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE='#' + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE= +fi + + +else + + ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP="not specified" + if test x != x; then + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE= + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE='#' +else + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE='#' + USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE= +fi + + +fi + + { echo "$as_me:$LINENO: result: ${ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP}" >&5 +echo "${ECHO_T}${ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP}" >&6; } + + + { echo "$as_me:$LINENO: checking alternate jar command" >&5 echo $ECHO_N "checking alternate jar command... $ECHO_C" >&6; } @@ -8514,11 +8555,10 @@ { echo "$as_me:$LINENO: checking whether to use CACAO as VM" >&5 echo $ECHO_N "checking whether to use CACAO as VM... $ECHO_C" >&6; } - -# Check whether --with-cacao was given. -if test "${with_cacao+set}" = set; then - withval=$with_cacao; - WITH_CACAO=yes + # Check whether --enable-cacao was given. +if test "${enable_cacao+set}" = set; then + enableval=$enable_cacao; + WITH_CACAO="${enableval}" else @@ -11587,27 +11627,24 @@ fi -if test "x${enable_liveconnect}" = "xyes" +if test "x${enable_gcjwebplugin}" = "xyes" then pkg_failed=no -{ echo "$as_me:$LINENO: checking for XULRUNNER" >&5 -echo $ECHO_N "checking for XULRUNNER... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking for MOZILLA" >&5 +echo $ECHO_N "checking for MOZILLA... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then - if test -n "$XULRUNNER_CFLAGS"; then - pkg_cv_XULRUNNER_CFLAGS="$XULRUNNER_CFLAGS" + if test -n "$MOZILLA_CFLAGS"; then + pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9\"") >&5 - ($PKG_CONFIG --exists --print-errors "\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin libxul-unstable\"") >&5 + ($PKG_CONFIG --exists --print-errors "mozilla-plugin libxul-unstable") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_XULRUNNER_CFLAGS=`$PKG_CONFIG --cflags "\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9" 2>/dev/null` + pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-plugin libxul-unstable" 2>/dev/null` else pkg_failed=yes fi @@ -11616,19 +11653,16 @@ pkg_failed=untried fi if test -n "$PKG_CONFIG"; then - if test -n "$XULRUNNER_LIBS"; then - pkg_cv_XULRUNNER_LIBS="$XULRUNNER_LIBS" + if test -n "$MOZILLA_LIBS"; then + pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9\"") >&5 - ($PKG_CONFIG --exists --print-errors "\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin libxul-unstable\"") >&5 + ($PKG_CONFIG --exists --print-errors "mozilla-plugin libxul-unstable") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_XULRUNNER_LIBS=`$PKG_CONFIG --libs "\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9" 2>/dev/null` + pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-plugin libxul-unstable" 2>/dev/null` else pkg_failed=yes fi @@ -11647,85 +11681,44 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XULRUNNER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-plugin libxul-unstable"` else - XULRUNNER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-plugin libxul-unstable"` fi # Put the nasty error message in config.log where it belongs - echo "$XULRUNNER_PKG_ERRORS" >&5 - - { { echo "$as_me:$LINENO: error: Package requirements (\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9) were not met: - -$XULRUNNER_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables XULRUNNER_CFLAGS -and XULRUNNER_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -echo "$as_me: error: Package requirements (\ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9) were not met: - -$XULRUNNER_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. + echo "$MOZILLA_PKG_ERRORS" >&5 -Alternatively, you may set the environment variables XULRUNNER_CFLAGS -and XULRUNNER_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + MOZILLA_FOUND=no elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables XULRUNNER_CFLAGS -and XULRUNNER_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables XULRUNNER_CFLAGS -and XULRUNNER_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + MOZILLA_FOUND=no else - XULRUNNER_CFLAGS=$pkg_cv_XULRUNNER_CFLAGS - XULRUNNER_LIBS=$pkg_cv_XULRUNNER_LIBS + MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS + MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } - : + \ + MOZILLA_FOUND=yes fi + if test "x${MOZILLA_FOUND}" = xno + then pkg_failed=no -{ echo "$as_me:$LINENO: checking for GTK" >&5 -echo $ECHO_N "checking for GTK... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking for MOZILLA" >&5 +echo $ECHO_N "checking for MOZILLA... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then - if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" + if test -n "$MOZILLA_CFLAGS"; then + pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\"") >&5 + ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0" 2>/dev/null` + pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-plugin" 2>/dev/null` else pkg_failed=yes fi @@ -11734,16 +11727,16 @@ pkg_failed=untried fi if test -n "$PKG_CONFIG"; then - if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_LIBS" + if test -n "$MOZILLA_LIBS"; then + pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\"") >&5 + ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0" 2>/dev/null` + pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-plugin" 2>/dev/null` else pkg_failed=yes fi @@ -11762,68 +11755,29 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-plugin"` else - GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-plugin"` fi # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0) were not met: - -$GTK_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -echo "$as_me: error: Package requirements (gtk+-2.0) were not met: - -$GTK_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. + echo "$MOZILLA_PKG_ERRORS" >&5 -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + MOZILLA_FOUND=no elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + MOZILLA_FOUND=no else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS + MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS + MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } - : + \ + MOZILLA_FOUND=yes fi -else - if test "x${enable_plugin}" = "xyes" - then + fi + if test "x${MOZILLA_FOUND}" = xno + then pkg_failed=no { echo "$as_me:$LINENO: checking for MOZILLA" >&5 @@ -11834,12 +11788,12 @@ pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin libxul-unstable\"") >&5 - ($PKG_CONFIG --exists --print-errors "mozilla-plugin libxul-unstable") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"firefox-plugin firefox-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "firefox-plugin firefox-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-plugin libxul-unstable" 2>/dev/null` + pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "firefox-plugin firefox-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -11852,12 +11806,12 @@ pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin libxul-unstable\"") >&5 - ($PKG_CONFIG --exists --print-errors "mozilla-plugin libxul-unstable") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"firefox-plugin firefox-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "firefox-plugin firefox-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-plugin libxul-unstable" 2>/dev/null` + pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "firefox-plugin firefox-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -11876,9 +11830,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-plugin libxul-unstable"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "firefox-plugin firefox-xpcom"` else - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-plugin libxul-unstable"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "firefox-plugin firefox-xpcom"` fi # Put the nasty error message in config.log where it belongs echo "$MOZILLA_PKG_ERRORS" >&5 @@ -11894,8 +11848,9 @@ { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } \ - MOZILLA_FOUND=yes + MOZILLA_FOUND=yes fi + fi if test "x${MOZILLA_FOUND}" = xno then @@ -11908,12 +11863,12 @@ pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\"") >&5 - ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xulrunner-plugin xulrunner-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "xulrunner-plugin xulrunner-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-plugin" 2>/dev/null` + pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "xulrunner-plugin xulrunner-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -11926,12 +11881,12 @@ pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\"") >&5 - ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xulrunner-plugin xulrunner-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "xulrunner-plugin xulrunner-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-plugin" 2>/dev/null` + pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "xulrunner-plugin xulrunner-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -11950,9 +11905,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-plugin"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xulrunner-plugin xulrunner-xpcom"` else - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-plugin"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xulrunner-plugin xulrunner-xpcom"` fi # Put the nasty error message in config.log where it belongs echo "$MOZILLA_PKG_ERRORS" >&5 @@ -11983,12 +11938,12 @@ pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"firefox-plugin firefox-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "firefox-plugin firefox-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-firefox-plugin mozilla-firefox-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "firefox-plugin firefox-xpcom" 2>/dev/null` + pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-firefox-plugin mozilla-firefox-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -12001,12 +11956,12 @@ pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"firefox-plugin firefox-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "firefox-plugin firefox-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-firefox-plugin mozilla-firefox-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "firefox-plugin firefox-xpcom" 2>/dev/null` + pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-firefox-plugin mozilla-firefox-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -12025,9 +11980,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "firefox-plugin firefox-xpcom"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom"` else - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "firefox-plugin firefox-xpcom"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom"` fi # Put the nasty error message in config.log where it belongs echo "$MOZILLA_PKG_ERRORS" >&5 @@ -12058,12 +12013,12 @@ pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xulrunner-plugin xulrunner-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "xulrunner-plugin xulrunner-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"seamonkey-plugin seamonkey-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "seamonkey-plugin seamonkey-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "xulrunner-plugin xulrunner-xpcom" 2>/dev/null` + pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "seamonkey-plugin seamonkey-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -12076,12 +12031,12 @@ pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xulrunner-plugin xulrunner-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "xulrunner-plugin xulrunner-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"seamonkey-plugin seamonkey-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "seamonkey-plugin seamonkey-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "xulrunner-plugin xulrunner-xpcom" 2>/dev/null` + pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "seamonkey-plugin seamonkey-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -12100,9 +12055,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xulrunner-plugin xulrunner-xpcom"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "seamonkey-plugin seamonkey-xpcom"` else - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xulrunner-plugin xulrunner-xpcom"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "seamonkey-plugin seamonkey-xpcom"` fi # Put the nasty error message in config.log where it belongs echo "$MOZILLA_PKG_ERRORS" >&5 @@ -12133,12 +12088,12 @@ pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-firefox-plugin mozilla-firefox-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"iceape-plugin iceape-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "iceape-plugin iceape-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-firefox-plugin mozilla-firefox-xpcom" 2>/dev/null` + pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "iceape-plugin iceape-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -12151,12 +12106,12 @@ pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mozilla-firefox-plugin mozilla-firefox-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"iceape-plugin iceape-xpcom\"") >&5 + ($PKG_CONFIG --exists --print-errors "iceape-plugin iceape-xpcom") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-firefox-plugin mozilla-firefox-xpcom" 2>/dev/null` + pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "iceape-plugin iceape-xpcom" 2>/dev/null` else pkg_failed=yes fi @@ -12175,9 +12130,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "iceape-plugin iceape-xpcom"` else - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-firefox-plugin mozilla-firefox-xpcom"` + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "iceape-plugin iceape-xpcom"` fi # Put the nasty error message in config.log where it belongs echo "$MOZILLA_PKG_ERRORS" >&5 @@ -12198,22 +12153,27 @@ fi if test "x${MOZILLA_FOUND}" = xno then + { { echo "$as_me:$LINENO: error: Could not find plugin support headers and libraries." >&5 +echo "$as_me: error: Could not find plugin support headers and libraries." >&2;} + { (exit 1); exit 1; }; } + fi + pkg_failed=no -{ echo "$as_me:$LINENO: checking for MOZILLA" >&5 -echo $ECHO_N "checking for MOZILLA... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking for GLIB" >&5 +echo $ECHO_N "checking for GLIB... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then - if test -n "$MOZILLA_CFLAGS"; then - pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" + if test -n "$GLIB_CFLAGS"; then + pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"seamonkey-plugin seamonkey-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "seamonkey-plugin seamonkey-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "seamonkey-plugin seamonkey-xpcom" 2>/dev/null` + pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12222,16 +12182,16 @@ pkg_failed=untried fi if test -n "$PKG_CONFIG"; then - if test -n "$MOZILLA_LIBS"; then - pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" + if test -n "$GLIB_LIBS"; then + pkg_cv_GLIB_LIBS="$GLIB_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"seamonkey-plugin seamonkey-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "seamonkey-plugin seamonkey-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "seamonkey-plugin seamonkey-xpcom" 2>/dev/null` + pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12250,45 +12210,81 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "seamonkey-plugin seamonkey-xpcom"` + GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0"` else - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "seamonkey-plugin seamonkey-xpcom"` + GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0"` fi # Put the nasty error message in config.log where it belongs - echo "$MOZILLA_PKG_ERRORS" >&5 + echo "$GLIB_PKG_ERRORS" >&5 - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } - MOZILLA_FOUND=no + { { echo "$as_me:$LINENO: error: Package requirements (glib-2.0) were not met: + +$GLIB_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GLIB_CFLAGS +and GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&5 +echo "$as_me: error: Package requirements (glib-2.0) were not met: + +$GLIB_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GLIB_CFLAGS +and GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - MOZILLA_FOUND=no + { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GLIB_CFLAGS +and GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&5 +echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GLIB_CFLAGS +and GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } else - MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS - MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS + GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS + GLIB_LIBS=$pkg_cv_GLIB_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } - \ - MOZILLA_FOUND=yes + : fi - fi - if test "x${MOZILLA_FOUND}" = xno - then pkg_failed=no -{ echo "$as_me:$LINENO: checking for MOZILLA" >&5 -echo $ECHO_N "checking for MOZILLA... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking for GTK" >&5 +echo $ECHO_N "checking for GTK... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then - if test -n "$MOZILLA_CFLAGS"; then - pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" + if test -n "$GTK_CFLAGS"; then + pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"iceape-plugin iceape-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "iceape-plugin iceape-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "iceape-plugin iceape-xpcom" 2>/dev/null` + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12297,16 +12293,16 @@ pkg_failed=untried fi if test -n "$PKG_CONFIG"; then - if test -n "$MOZILLA_LIBS"; then - pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" + if test -n "$GTK_LIBS"; then + pkg_cv_GTK_LIBS="$GTK_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"iceape-plugin iceape-xpcom\"") >&5 - ($PKG_CONFIG --exists --print-errors "iceape-plugin iceape-xpcom") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "iceape-plugin iceape-xpcom" 2>/dev/null` + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12325,50 +12321,94 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "iceape-plugin iceape-xpcom"` + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0"` else - MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "iceape-plugin iceape-xpcom"` + GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0"` fi # Put the nasty error message in config.log where it belongs - echo "$MOZILLA_PKG_ERRORS" >&5 + echo "$GTK_PKG_ERRORS" >&5 - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } - MOZILLA_FOUND=no + { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0) were not met: + +$GTK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&5 +echo "$as_me: error: Package requirements (gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0) were not met: + +$GTK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - MOZILLA_FOUND=no + { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&5 +echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } else - MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS - MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS + GTK_CFLAGS=$pkg_cv_GTK_CFLAGS + GTK_LIBS=$pkg_cv_GTK_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } - \ - MOZILLA_FOUND=yes + : fi - fi - if test "x${MOZILLA_FOUND}" = xno - then - { { echo "$as_me:$LINENO: error: Could not find plugin support headers and libraries." >&5 -echo "$as_me: error: Could not find plugin support headers and libraries." >&2;} - { (exit 1); exit 1; }; } - fi + + + + + +else + if test "x${enable_plugin}" = "xyes" + then + pkg_failed=no -{ echo "$as_me:$LINENO: checking for GLIB" >&5 -echo $ECHO_N "checking for GLIB... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking for XULRUNNER" >&5 +echo $ECHO_N "checking for XULRUNNER... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then - if test -n "$GLIB_CFLAGS"; then - pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" + if test -n "$XULRUNNER_CFLAGS"; then + pkg_cv_XULRUNNER_CFLAGS="$XULRUNNER_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null` + pkg_cv_XULRUNNER_CFLAGS=`$PKG_CONFIG --cflags "\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9" 2>/dev/null` else pkg_failed=yes fi @@ -12377,16 +12417,19 @@ pkg_failed=untried fi if test -n "$PKG_CONFIG"; then - if test -n "$GLIB_LIBS"; then - pkg_cv_GLIB_LIBS="$GLIB_LIBS" + if test -n "$XULRUNNER_LIBS"; then + pkg_cv_XULRUNNER_LIBS="$XULRUNNER_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null` + pkg_cv_XULRUNNER_LIBS=`$PKG_CONFIG --libs "\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9" 2>/dev/null` else pkg_failed=yes fi @@ -12405,33 +12448,37 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0"` + XULRUNNER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9"` else - GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0"` + XULRUNNER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9"` fi # Put the nasty error message in config.log where it belongs - echo "$GLIB_PKG_ERRORS" >&5 + echo "$XULRUNNER_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (glib-2.0) were not met: + { { echo "$as_me:$LINENO: error: Package requirements (\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9) were not met: -$GLIB_PKG_ERRORS +$XULRUNNER_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -Alternatively, you may set the environment variables GLIB_CFLAGS -and GLIB_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables XULRUNNER_CFLAGS +and XULRUNNER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (glib-2.0) were not met: +echo "$as_me: error: Package requirements (\ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9) were not met: -$GLIB_PKG_ERRORS +$XULRUNNER_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -Alternatively, you may set the environment variables GLIB_CFLAGS -and GLIB_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables XULRUNNER_CFLAGS +and XULRUNNER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&2;} { (exit 1); exit 1; }; } @@ -12440,8 +12487,8 @@ is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. -Alternatively, you may set the environment variables GLIB_CFLAGS -and GLIB_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables XULRUNNER_CFLAGS +and XULRUNNER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . @@ -12450,16 +12497,16 @@ is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. -Alternatively, you may set the environment variables GLIB_CFLAGS -and GLIB_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables XULRUNNER_CFLAGS +and XULRUNNER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else - GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS - GLIB_LIBS=$pkg_cv_GLIB_LIBS + XULRUNNER_CFLAGS=$pkg_cv_XULRUNNER_CFLAGS + XULRUNNER_LIBS=$pkg_cv_XULRUNNER_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } : @@ -12474,12 +12521,12 @@ pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0" 2>/dev/null` + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12492,12 +12539,12 @@ pkg_cv_GTK_LIBS="$GTK_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0") 2>&5 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0" 2>/dev/null` + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12516,14 +12563,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0"` + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0"` else - GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0"` + GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0"` fi # Put the nasty error message in config.log where it belongs echo "$GTK_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0) were not met: + { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0) were not met: $GTK_PKG_ERRORS @@ -12534,7 +12581,7 @@ and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (gtk+-2.0 gthread-2.0 gdk-pixbuf-2.0) were not met: +echo "$as_me: error: Package requirements (gtk+-2.0) were not met: $GTK_PKG_ERRORS @@ -12575,13 +12622,6 @@ echo "${ECHO_T}yes" >&6; } : fi - - - - - - - fi fi @@ -13170,10 +13210,10 @@ Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi -if test -z "${ENABLE_LIVECONNECT_TRUE}" && test -z "${ENABLE_LIVECONNECT_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"ENABLE_LIVECONNECT\" was never defined. +if test -z "${ENABLE_GCJWEBPLUGIN_TRUE}" && test -z "${ENABLE_GCJWEBPLUGIN_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"ENABLE_GCJWEBPLUGIN\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"ENABLE_LIVECONNECT\" was never defined. +echo "$as_me: error: conditional \"ENABLE_GCJWEBPLUGIN\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi @@ -13296,6 +13336,20 @@ Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE}" && test -z "${USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE}" && test -z "${USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${USE_ALT_JAR_TRUE}" && test -z "${USE_ALT_JAR_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"USE_ALT_JAR\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -13673,7 +13727,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by icedtea6 $as_me 1.3, which was +This file was extended by icedtea6 $as_me 1.3.1, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13720,7 +13774,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -icedtea6 config.status 1.3 +icedtea6 config.status 1.3.1 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -14047,8 +14101,8 @@ SYSTEM_ANT_DIR!$SYSTEM_ANT_DIR$ac_delim ENABLE_PLUGIN_TRUE!$ENABLE_PLUGIN_TRUE$ac_delim ENABLE_PLUGIN_FALSE!$ENABLE_PLUGIN_FALSE$ac_delim -ENABLE_LIVECONNECT_TRUE!$ENABLE_LIVECONNECT_TRUE$ac_delim -ENABLE_LIVECONNECT_FALSE!$ENABLE_LIVECONNECT_FALSE$ac_delim +ENABLE_GCJWEBPLUGIN_TRUE!$ENABLE_GCJWEBPLUGIN_TRUE$ac_delim +ENABLE_GCJWEBPLUGIN_FALSE!$ENABLE_GCJWEBPLUGIN_FALSE$ac_delim ENABLE_PULSE_JAVA_TRUE!$ENABLE_PULSE_JAVA_TRUE$ac_delim ENABLE_PULSE_JAVA_FALSE!$ENABLE_PULSE_JAVA_FALSE$ac_delim ENABLE_DOCS_TRUE!$ENABLE_DOCS_TRUE$ac_delim @@ -14094,6 +14148,9 @@ USE_ALT_NETBEANS_PROFILER_SRC_ZIP_TRUE!$USE_ALT_NETBEANS_PROFILER_SRC_ZIP_TRUE$ac_delim USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE!$USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE$ac_delim ALT_NETBEANS_PROFILER_SRC_ZIP!$ALT_NETBEANS_PROFILER_SRC_ZIP$ac_delim +USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE!$USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE$ac_delim +USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE!$USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE$ac_delim +ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP!$ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP$ac_delim USE_ALT_JAR_TRUE!$USE_ALT_JAR_TRUE$ac_delim USE_ALT_JAR_FALSE!$USE_ALT_JAR_FALSE$ac_delim ALT_JAR_CMD!$ALT_JAR_CMD$ac_delim @@ -14125,9 +14182,6 @@ PULSEAUDIO_BIN!$PULSEAUDIO_BIN$ac_delim PKG_CONFIG!$PKG_CONFIG$ac_delim XPROTO_CFLAGS!$XPROTO_CFLAGS$ac_delim -XPROTO_LIBS!$XPROTO_LIBS$ac_delim -XT_CFLAGS!$XT_CFLAGS$ac_delim -XT_LIBS!$XT_LIBS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -14169,6 +14223,9 @@ ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +XPROTO_LIBS!$XPROTO_LIBS$ac_delim +XT_CFLAGS!$XT_CFLAGS$ac_delim +XT_LIBS!$XT_LIBS$ac_delim XP_CFLAGS!$XP_CFLAGS$ac_delim XP_LIBS!$XP_LIBS$ac_delim X11_CFLAGS!$X11_CFLAGS$ac_delim @@ -14185,14 +14242,14 @@ ALSA_LIBS!$ALSA_LIBS$ac_delim LIBPULSE_CFLAGS!$LIBPULSE_CFLAGS$ac_delim LIBPULSE_LIBS!$LIBPULSE_LIBS$ac_delim -XULRUNNER_CFLAGS!$XULRUNNER_CFLAGS$ac_delim -XULRUNNER_LIBS!$XULRUNNER_LIBS$ac_delim -GTK_CFLAGS!$GTK_CFLAGS$ac_delim -GTK_LIBS!$GTK_LIBS$ac_delim MOZILLA_CFLAGS!$MOZILLA_CFLAGS$ac_delim MOZILLA_LIBS!$MOZILLA_LIBS$ac_delim GLIB_CFLAGS!$GLIB_CFLAGS$ac_delim GLIB_LIBS!$GLIB_LIBS$ac_delim +GTK_CFLAGS!$GTK_CFLAGS$ac_delim +GTK_LIBS!$GTK_LIBS$ac_delim +XULRUNNER_CFLAGS!$XULRUNNER_CFLAGS$ac_delim +XULRUNNER_LIBS!$XULRUNNER_LIBS$ac_delim LIBFFI_CFLAGS!$LIBFFI_CFLAGS$ac_delim LIBFFI_LIBS!$LIBFFI_LIBS$ac_delim LLVM_CONFIG!$LLVM_CONFIG$ac_delim @@ -14203,7 +14260,7 @@ LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 32; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 35; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 --- cacao-oj6-6b12.orig/IcedTeaPlugin.cc +++ cacao-oj6-6b12/IcedTeaPlugin.cc @@ -60,6 +60,10 @@ #include #include +// GLib includes. +#include +#include + // GTK includes. #include @@ -86,6 +90,63 @@ #define ID(object) \ (object == NULL ? (PRUint32) 0 : reinterpret_cast (object)->identifier) +static int plugin_debug = 0; + +#if 1 +// Debugging macros. + +#define PLUGIN_DEBUG_0ARG(str) \ + do \ + { \ + if (plugin_debug) \ + { \ + printf (str); \ + } \ + } while (0) + +#define PLUGIN_DEBUG_1ARG(str, arg1) \ + do \ + { \ + if (plugin_debug) \ + { \ + printf (str, arg1); \ + } \ + } while (0) + +#define PLUGIN_DEBUG_2ARG(str, arg1, arg2) \ + do \ + { \ + if (plugin_debug) \ + { \ + printf (str, arg1, arg2); \ + } \ + } while (0) + +#define PLUGIN_DEBUG_3ARG(str, arg1, arg2, arg3) \ + do \ + { \ + if (plugin_debug) \ + { \ + printf (str, arg1, arg2, arg3); \ + } \ + } while (0) + +#define PLUGIN_DEBUG_4ARG(str, arg1, arg2, arg3, arg4) \ + do \ + { \ + if (plugin_debug) \ + { \ + printf (str, arg1, arg2, arg3, arg4); \ + } \ + } while (0) + +#define PLUGIN_DEBUG(message) \ + PLUGIN_DEBUG_1ARG ("ICEDTEA PLUGIN: %s\n", message) + +#define PLUGIN_DEBUG_TWO(first, second) \ + PLUGIN_DEBUG_2ARG ("ICEDTEA PLUGIN: %s %s\n", \ + first, second) + // Tracing. class Trace { @@ -94,13 +155,13 @@ { Trace::name = name; Trace::function = function; - printf ("ICEDTEA PLUGIN: %s%s\n", + PLUGIN_DEBUG_2ARG ("ICEDTEA PLUGIN: %s%s\n", name, function); } ~Trace () { - printf ("ICEDTEA PLUGIN: %s%s %s\n", + PLUGIN_DEBUG_3ARG ("ICEDTEA PLUGIN: %s%s %s\n", name, function, "return"); } private: @@ -108,15 +169,6 @@ char const* function; }; -#if 1 -// Debugging macros. -#define PLUGIN_DEBUG(message) \ - printf ("ICEDTEA PLUGIN: %s\n", message) - -#define PLUGIN_DEBUG_TWO(first, second) \ - printf ("ICEDTEA PLUGIN: %s %s\n", \ - first, second) - // Testing macro. #define PLUGIN_TEST(expression, message) \ do \ @@ -127,6 +179,18 @@ } \ while (0); +#include +#include + +inline suseconds_t get_time_in_ms() +{ + struct timeval tv; + struct timezone tz; + gettimeofday(&tv, &tz); + + return tv.tv_usec; +} + // __func__ is a variable, not a string literal, so it cannot be // concatenated by the preprocessor. #define PLUGIN_TRACE_JNIENV() Trace _trace ("JNIEnv::", __func__) @@ -152,7 +216,9 @@ #define PLUGIN_CHECK_RETURN(message, result) \ if (NS_SUCCEEDED (result)) \ + { \ PLUGIN_DEBUG (message); \ + } \ else \ { \ PLUGIN_ERROR (message); \ @@ -161,9 +227,12 @@ #define PLUGIN_CHECK(message, result) \ if (NS_SUCCEEDED (result)) \ + { \ PLUGIN_DEBUG (message); \ - else \ - PLUGIN_ERROR (message); + } else \ + { \ + PLUGIN_ERROR (message); \ + } #else @@ -241,6 +310,7 @@ // and set to NULL after each use. static GError* channel_error = NULL; // Fully-qualified appletviewer executable. +gchar* data_directory = NULL; static char* appletviewer_executable = NULL; static char* libjvm_so = NULL; @@ -249,6 +319,23 @@ static PRBool factory_created = PR_FALSE; static IcedTeaPluginFactory* factory = NULL; +// Applet viewer input channel (needs to be static because it is used in plugin_in_pipe_callback) +GIOChannel* in_from_appletviewer = NULL; + +// Callback used to monitor input pipe status. +static gboolean plugin_in_pipe_callback (GIOChannel* source, + GIOCondition condition, + gpointer plugin_data); + +#include +#include +#include +#include + +PRMonitor *jvmMsgQueuePRMonitor; +std::queue jvmMsgQueue; +nsCOMPtr processThread; + #include #include @@ -267,12 +354,12 @@ : identifier (identifier), count (0) { - printf ("JNIReference CONSTRUCT: %d %p\n", identifier, this); + PLUGIN_DEBUG_2ARG ("JNIReference CONSTRUCT: %d %p\n", identifier, this); } JNIReference::~JNIReference () { - printf ("JNIReference DECONSTRUCT: %d %p\n", identifier, this); + PLUGIN_DEBUG_2ARG ("JNIReference DECONSTRUCT: %d %p\n", identifier, this); } class JNIID : public JNIReference @@ -287,12 +374,12 @@ : JNIReference (identifier), signature (strdup (signature)) { - printf ("JNIID CONSTRUCT: %d %p\n", identifier, this); + PLUGIN_DEBUG_2ARG ("JNIID CONSTRUCT: %d %p\n", identifier, this); } JNIID::~JNIID () { - printf ("JNIID DECONSTRUCT: %d %p\n", identifier, this); + PLUGIN_DEBUG_2ARG ("JNIID DECONSTRUCT: %d %p\n", identifier, this); } char const* TYPES[10] = { "Object", @@ -306,7 +393,6 @@ "double", "void" }; -#include // FIXME: create index from security context. #define MESSAGE_CREATE() \ @@ -316,20 +402,25 @@ #define MESSAGE_ADD_STACK_REFERENCE(reference) \ message += " reference "; \ message.AppendInt (reference); \ - if (factory->result_map[reference] == NULL) { \ - factory->result_map[reference] = new ResultContainer(); \ - printf("ResultMap created -- %p %d\n", factory->result_map[reference], factory->result_map[reference]->returnIdentifier); \ + if (!factory->result_map.Get(reference, NULL)) { \ + ResultContainer *resultC = new ResultContainer(); \ + factory->result_map.Put(reference, resultC); \ + PLUGIN_DEBUG_3ARG ("ResultMap %p created for reference %d found = %d\n", resultC, reference, factory->result_map.Get(reference, NULL)); \ } \ else \ - factory->result_map[reference]->Clear(); + { \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + resultC->Clear(); \ + } #define MESSAGE_ADD_SRC(src) \ message += " src "; \ message += src; -#define MESSAGE_ADD_PRIVILEGES() \ +#define MESSAGE_ADD_PRIVILEGES(ctx) \ nsCString privileges(""); \ - GetEnabledPrivileges(&privileges); \ + GetEnabledPrivileges(&privileges, ctx); \ if (privileges.Length() > 0) \ { \ message += " privileges "; \ @@ -401,11 +492,13 @@ // shutdown (so that the permanent loop does not block // proper exit). We need better error handling -#define PROCESS_PENDING_EVENTS_REF(reference) \ +#define PROCESS_PENDING_EVENTS_REF2(reference) \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ if (factory->shutting_down == PR_TRUE && \ - factory->result_map[reference]->errorOccurred == PR_TRUE) \ + resultC->errorOccurred == PR_TRUE) \ { \ - printf("Error occured. Exiting function\n"); \ + PLUGIN_DEBUG_0ARG("Error occured. Exiting function\n"); \ return NS_ERROR_FAILURE; \ } \ PRBool hasPending; \ @@ -413,10 +506,18 @@ if (hasPending == PR_TRUE) { \ PRBool processed = PR_FALSE; \ factory->current->ProcessNextEvent(PR_TRUE, &processed); \ + } else if (g_main_context_pending (NULL)) { \ + g_main_context_iteration(NULL, false); \ } else { \ PR_Sleep(PR_INTERVAL_NO_WAIT); \ } + +#define PROCESS_PENDING_EVENTS_REF(reference) \ + if (g_main_context_pending (NULL)) { \ + g_main_context_iteration(NULL, false); \ + } + #define PROCESS_PENDING_EVENTS \ PRBool hasPending; \ factory->current->HasPendingEvents(&hasPending); \ @@ -429,57 +530,63 @@ #define MESSAGE_RECEIVE_REFERENCE(reference, cast, name) \ nsresult res = NS_OK; \ - printf ("RECEIVE 1\n"); \ - while (factory->result_map[reference]->returnIdentifier == -1 &&\ - factory->result_map[reference]->errorOccurred == PR_FALSE) \ + PLUGIN_DEBUG_0ARG ("RECEIVE 1\n"); \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + while (resultC->returnIdentifier == -1 &&\ + resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ } \ - printf ("RECEIVE 3\n"); \ - if (factory->result_map[reference]->returnIdentifier == 0 || \ - factory->result_map[reference]->errorOccurred == PR_TRUE) \ + PLUGIN_DEBUG_0ARG ("RECEIVE 3\n"); \ + if (resultC->returnIdentifier == 0 || \ + resultC->errorOccurred == PR_TRUE) \ { \ *name = NULL; \ } else { \ *name = \ reinterpret_cast \ - (factory->references.ReferenceObject (factory->result_map[reference]->returnIdentifier)); \ + (factory->references.ReferenceObject (resultC->returnIdentifier)); \ } \ - printf ("RECEIVE_REFERENCE: %s result: %x = %d\n", \ - __func__, *name, factory->result_map[reference]->returnIdentifier); + PLUGIN_DEBUG_3ARG ("RECEIVE_REFERENCE: %s result: %x = %d\n", \ + __func__, *name, resultC->returnIdentifier); // FIXME: track and free JNIIDs. #define MESSAGE_RECEIVE_ID(reference, cast, id, signature) \ PRBool processed = PR_FALSE; \ nsresult res = NS_OK; \ - printf("RECEIVE ID 1\n"); \ - while (factory->result_map[reference]->returnIdentifier == -1 &&\ - factory->result_map[reference]->errorOccurred == PR_FALSE) \ + PLUGIN_DEBUG_0ARG ("RECEIVE ID 1\n"); \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + while (resultC->returnIdentifier == -1 &&\ + resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ } \ \ - if (factory->result_map[reference]->errorOccurred == PR_TRUE) \ + if (resultC->errorOccurred == PR_TRUE) \ { \ *id = NULL; \ } else \ { \ *id = reinterpret_cast \ - (new JNIID (factory->result_map[reference]->returnIdentifier, signature)); \ - printf ("RECEIVE_ID: %s result: %x = %d, %s\n", \ - __func__, *id, factory->result_map[reference]->returnIdentifier, \ + (new JNIID (resultC->returnIdentifier, signature)); \ + PLUGIN_DEBUG_4ARG ("RECEIVE_ID: %s result: %x = %d, %s\n", \ + __func__, *id, resultC->returnIdentifier, \ signature); \ } #define MESSAGE_RECEIVE_VALUE(reference, ctype, result) \ nsresult res = NS_OK; \ - printf("RECEIVE VALUE 1\n"); \ - while (factory->result_map[reference]->returnValue == "" && \ - factory->result_map[reference]->errorOccurred == PR_FALSE) \ + PLUGIN_DEBUG_0ARG ("RECEIVE VALUE 1\n"); \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + while (resultC->returnValue == "" && \ + resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ } \ - *result = ParseValue (type, factory->result_map[reference]->returnValue); + *result = ParseValue (type, resultC->returnValue); // \ // char* valueString = ValueString (type, *result); \ // printf ("RECEIVE_VALUE: %s result: %x = %s\n", \ @@ -490,18 +597,20 @@ #define MESSAGE_RECEIVE_SIZE(reference, result) \ PRBool processed = PR_FALSE; \ nsresult res = NS_OK; \ - printf("RECEIVE SIZE 1\n"); \ - while (factory->result_map[reference]->returnValue == "" && \ - factory->result_map[reference]->errorOccurred == PR_FALSE) \ + PLUGIN_DEBUG_0ARG("RECEIVE SIZE 1\n"); \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + while (resultC->returnValue == "" && \ + resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ } \ nsresult conversionResult; \ - if (factory->result_map[reference]->errorOccurred == PR_TRUE) \ + if (resultC->errorOccurred == PR_TRUE) \ *result = NULL; \ else \ { \ - *result = factory->result_map[reference]->returnValue.ToInteger (&conversionResult); \ + *result = resultC->returnValue.ToInteger (&conversionResult); \ PLUGIN_CHECK ("parse integer", conversionResult); \ } // \ @@ -512,19 +621,21 @@ #define MESSAGE_RECEIVE_STRING(reference, char_type, result) \ PRBool processed = PR_FALSE; \ nsresult res = NS_OK; \ - printf("RECEIVE STRING 1\n"); \ - while (factory->result_map[reference]->returnValue == "" && \ - factory->result_map[reference]->errorOccurred == PR_FALSE) \ + PLUGIN_DEBUG_0ARG("RECEIVE STRING 1\n"); \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + while (resultC->returnValue == "" && \ + resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ } \ - if (factory->result_map[reference]->errorOccurred == PR_TRUE) \ + if (resultC->errorOccurred == PR_TRUE) \ *result = NULL; \ else \ {\ - printf("Setting result to: %s\n", strdup (factory->result_map[reference]->returnValue.get ())); \ + PLUGIN_DEBUG_1ARG("Setting result to: %s\n", strdup (resultC->returnValue.get ())); \ *result = reinterpret_cast \ - (strdup (factory->result_map[reference]->returnValue.get ()));\ + (strdup (resultC->returnValue.get ()));\ } // \ // printf ("RECEIVE_STRING: %s result: %x = %s\n", \ @@ -534,21 +645,22 @@ #define MESSAGE_RECEIVE_STRING_UCS(reference, result) \ PRBool processed = PR_FALSE; \ nsresult res = NS_OK; \ - printf("RECEIVE STRING UCS 1\n"); \ - while (factory->result_map[reference]->returnValueUCS.IsEmpty() && \ - factory->result_map[reference]->errorOccurred == PR_FALSE) \ + PLUGIN_DEBUG_0ARG("RECEIVE STRING UCS 1\n"); \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + while (resultC->returnValueUCS.IsEmpty() && \ + resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ } \ - if (factory->result_map[reference]->errorOccurred == PR_TRUE) \ + if (resultC->errorOccurred == PR_TRUE) \ *result = NULL; \ else \ { \ - int length = factory->result_map[reference]->returnValueUCS.Length (); \ + int length = resultC->returnValueUCS.Length (); \ jchar* newstring = static_cast (PR_Malloc (length)); \ memset (newstring, 0, length); \ - memcpy (newstring, factory->result_map[reference]->returnValueUCS.get (), length); \ - std::cout << "Setting result to: " << factory->result_map[reference]->returnValueUCS.get() << std::endl; \ + memcpy (newstring, resultC->returnValueUCS.get (), length); \ *result = static_cast (newstring); \ } @@ -559,16 +671,18 @@ #define MESSAGE_RECEIVE_BOOLEAN(reference, result) \ PRBool processed = PR_FALSE; \ nsresult res = NS_OK; \ - printf("RECEIVE BOOLEAN 1\n"); \ - while (factory->result_map[reference]->returnIdentifier == -1 && \ - factory->result_map[reference]->errorOccurred == PR_FALSE) \ + PLUGIN_DEBUG_0ARG("RECEIVE BOOLEAN 1\n"); \ + ResultContainer *resultC; \ + factory->result_map.Get(reference, &resultC); \ + while (resultC->returnIdentifier == -1 && \ + resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ } \ - if (factory->result_map[reference]->errorOccurred == PR_TRUE) \ + if (resultC->errorOccurred == PR_TRUE) \ *result = NULL; \ else \ - *result = factory->result_map[reference]->returnIdentifier; + *result = resultC->returnIdentifier; // res = factory->current->ProcessNextEvent (PR_TRUE, \ // &processed); \ // PLUGIN_CHECK_RETURN (__func__, res); \ @@ -603,16 +717,13 @@ #include #include #include -#include #include #include #include #include #include -#include #include #include -#include #include // // FIXME: I had to hack dist/include/xpcom/xpcom-config.h to comment // // out this line: #define HAVE_CPP_2BYTE_WCHAR_T 1 so that @@ -679,7 +790,7 @@ Put (key, reference); } reference->count++; - printf ("INCREMENTED: %d %p to: %d\n", key, reference, reference->count); + PLUGIN_DEBUG_3ARG ("INCREMENTED: %d %p to: %d\n", key, reference, reference->count); return reinterpret_cast (reference); } @@ -697,7 +808,7 @@ Put (key, reference); } reference->count++; - printf ("INCREMENTED: %d %p to: %d\n", key, reference, reference->count); + PLUGIN_DEBUG_3ARG ("INCREMENTED: %d %p to: %d\n", key, reference, reference->count); return reinterpret_cast (reference); } @@ -709,7 +820,7 @@ if (reference != 0) { reference->count--; - printf ("DECREMENTED: %d %p to: %d\n", key, reference, reference->count); + PLUGIN_DEBUG_3ARG ("DECREMENTED: %d %p to: %d\n", key, reference, reference->count); if (reference->count == 0) Remove (key); } @@ -721,48 +832,65 @@ ResultContainer(); ~ResultContainer(); void Clear(); + void start_timer(); + void stop_timer(); PRUint32 returnIdentifier; nsCString returnValue; nsString returnValueUCS; nsCString errorMessage; PRBool errorOccurred; + suseconds_t time; }; ResultContainer::ResultContainer () { - PLUGIN_TRACE_RC(); - returnIdentifier = -1; returnValue.Truncate(); returnValueUCS.Truncate(); errorMessage.Truncate(); errorOccurred = PR_FALSE; + + start_timer(); } ResultContainer::~ResultContainer () { - PLUGIN_TRACE_RC(); - returnIdentifier = -1; returnValue.Truncate(); returnValueUCS.Truncate(); errorMessage.Truncate(); + + stop_timer(); } void ResultContainer::Clear() { - PLUGIN_TRACE_RC(); - returnIdentifier = -1; returnValue.Truncate(); returnValueUCS.Truncate(); errorMessage.Truncate(); errorOccurred = PR_FALSE; + + start_timer(); +} + +void +ResultContainer::start_timer() +{ + time = get_time_in_ms(); +} + + +void +ResultContainer::stop_timer() +{ + PLUGIN_DEBUG_1ARG("Time elapsed = %ld\n", get_time_in_ms() - time); } #include #include +#include #include #include @@ -805,9 +933,6 @@ nsresult SetTransport (nsISocketTransport* transport); void Connected (); void Disconnected (); -// PRUint32 returnIdentifier; -// nsCString returnValue; -// nsString returnValueUCS; PRBool IsConnected (); nsCOMPtr async; nsCOMPtr current; @@ -818,7 +943,8 @@ // FIXME: make private? JNIEnv* proxyEnv; nsISecureEnv* secureEnv; - std::map result_map; + nsDataHashtable result_map; + void GetMember (); void SetMember (); void GetSlot (); @@ -829,7 +955,13 @@ void Finalize (); void ToString (); nsCOMPtr liveconnect; - std::map codebase_map; + + // normally, we shouldn't have to track unref'd handles, but in some cases, + // we may be in the middle of Eval() when finalize is called and completed. + // At this point, calling liveconnect->Eval causes bad, bad, bad things + // (first observed here after multiple refreshes: + // http://www.jigzone.com/puzzles/daily-jigsaw + nsDataHashtable js_cleared_handles; private: ~IcedTeaPluginFactory(); @@ -838,8 +970,7 @@ nsresult StartAppletviewer (); void ProcessMessage(); void ConsumeMsgFromJVM(); - void CreateSocket(); - nsCOMPtr processThread; + void InitializeJava(); nsCOMPtr sink; nsCOMPtr transport; nsCOMPtr applet_viewer_process; @@ -848,8 +979,6 @@ // Does not do construction/deconstruction or reference counting. nsDataHashtable instances; PRUint32 object_identifier_return; - PRMonitor *jvmMsgQueuePRMonitor; - std::queue jvmMsgQueue; int javascript_identifier; int name_identifier; int args_identifier; @@ -857,25 +986,16 @@ int slot_index; int value_identifier; -/** - * JNI I/O related code - * - - void WriteToJVM(nsCString& message); - void InitJVM(); - void ReadFromJVM(); - - PRMonitor *jvmPRMonitor; - nsCOMPtr readThread; - JavaVM *jvm; - JNIEnv *javaEnv; - jclass javaPluginClass; - jobject javaPluginObj; - jmethodID getMessageMID; - jmethodID postMessageMID; - - */ - + // Applet viewer input pipe name. + gchar* in_pipe_name; + // Applet viewer input watch source. + gint in_watch_source; + // Applet viewer output pipe name. + gchar* out_pipe_name; + // Applet viewer output watch source. + gint out_watch_source; + // Applet viewer output channel. + GIOChannel* out_to_appletviewer; }; class IcedTeaEventSink; @@ -1192,7 +1312,7 @@ void DecrementContextCounter(); nsresult GetCurrentContextAddr(char *addr); nsresult GetCurrentPageAddress(const char **addr); - nsresult GetEnabledPrivileges(nsCString *privileges); + nsresult GetEnabledPrivileges(nsCString *privileges, nsISecurityContext *ctx); int contextCounter; }; @@ -1314,7 +1434,6 @@ nsnull, 0, nsnull, 0); } - NS_IMPL_ISUPPORTS6 (IcedTeaPluginFactory, nsIFactory, nsIPlugin, nsIJVMManager, nsIJVMPrefsWindow, nsIJVMPlugin, nsIInputStreamCallback) @@ -1330,12 +1449,21 @@ value_identifier (0), connected (PR_FALSE), liveconnect (0), - shutting_down(PR_FALSE) + shutting_down(PR_FALSE), + in_pipe_name(NULL), + in_watch_source(NULL), + out_pipe_name(NULL), + out_watch_source(NULL), + out_to_appletviewer(NULL) { + plugin_debug = getenv ("ICEDTEAPLUGIN_DEBUG") != NULL; PLUGIN_TRACE_FACTORY (); instances.Init (); references.Init (); - printf ("CONSTRUCTING FACTORY\n"); + js_cleared_handles.Init(); + result_map.Init(); + PLUGIN_DEBUG_0ARG ("CONSTRUCTING FACTORY\n"); + printf("ICEDTEAPLUGIN_DEBUG = %s\n", getenv ("ICEDTEAPLUGIN_DEBUG")); } IcedTeaPluginFactory::~IcedTeaPluginFactory () @@ -1345,7 +1473,48 @@ secureEnv = 0; factory_created = PR_FALSE; factory = NULL; - printf ("DECONSTRUCTING FACTORY\n"); + PLUGIN_DEBUG_0ARG ("DECONSTRUCTING FACTORY\n"); + + // Removing a source is harmless if it fails since it just means the + // source has already been removed. + if (in_watch_source) + g_source_remove (in_watch_source); + in_watch_source = 0; + + // free input channel + if (in_from_appletviewer) + g_io_channel_unref (in_from_appletviewer); + in_from_appletviewer = NULL; + + // cleanup_out_watch_source: + if (out_watch_source) + g_source_remove (out_watch_source); + out_watch_source = 0; + + // free output channel + if (out_to_appletviewer) + g_io_channel_unref (out_to_appletviewer); + out_to_appletviewer = NULL; + + // free its memory + if (out_pipe_name) + { + // Delete output pipe. + unlink (out_pipe_name); + + g_free (out_pipe_name); + out_pipe_name = NULL; + } + + if (in_pipe_name) + { + // Delete input pipe. + unlink (in_pipe_name); + + // free its memory + g_free (in_pipe_name); + in_pipe_name = NULL; + } } // nsIFactory functions. @@ -1396,12 +1565,6 @@ nsCOMPtr manager; result = NS_GetComponentManager (getter_AddRefs (manager)); -/** - * JNI I/O code - - // Initialize mutex to control access to the jvm - jvmPRMonitor = PR_NewMonitor(); -*/ jvmMsgQueuePRMonitor = PR_NewMonitor(); nsCOMPtr threadManager; @@ -1413,38 +1576,13 @@ result = threadManager->GetCurrentThread (getter_AddRefs (current)); PLUGIN_CHECK_RETURN ("current thread", result); -/* - * - * Socket related code for TCP/IP communication - * - */ - - nsCOMPtr socketCreationThread; - nsCOMPtr socketCreationEvent = - new IcedTeaRunnableMethod - (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::CreateSocket); - - NS_NewThread(getter_AddRefs(socketCreationThread), socketCreationEvent); - - PLUGIN_DEBUG ("Instance::Initialize: awaiting connection from appletviewer"); - PRBool processed; - - // FIXME: move this somewhere applet-window specific so it doesn't block page - // display. - // FIXME: this doesn't work with thisiscool.com. - while (!IsConnected ()) - { -// result = socketCreationThread->ProcessNextEvent (PR_TRUE, &processed); -// PLUGIN_CHECK_RETURN ("wait for connection: process next event", result); - } - PLUGIN_DEBUG ("Instance::Initialize:" - " got confirmation that appletviewer is running."); + InitializeJava(); return NS_OK; } void -IcedTeaPluginFactory::CreateSocket () +IcedTeaPluginFactory::InitializeJava () { PRBool processed; @@ -1470,38 +1608,9 @@ result = threadManager->GetCurrentThread (getter_AddRefs (curr_thread)); - -/* - * Socket initialization code for TCP/IP communication - * - */ - - nsCOMPtr socket; - result = manager->CreateInstanceByContractID (NS_SERVERSOCKET_CONTRACTID, - nsnull, - NS_GET_IID (nsIServerSocket), - getter_AddRefs (socket)); - PLUGIN_CHECK ("create server socket", result); - - // FIXME: hard-coded port - result = socket->Init (50007, PR_TRUE, -1); - - - PLUGIN_CHECK ("socket init", result); - - nsCOMPtr listener = new IcedTeaSocketListener (this); - result = socket->AsyncListen (listener); - PLUGIN_CHECK ("add socket listener", result); - result = StartAppletviewer (); PLUGIN_CHECK ("started appletviewer", result); - while (!IsConnected()) - { - result = curr_thread->ProcessNextEvent (PR_TRUE, &processed); - PLUGIN_CHECK ("wait for connection: process next event", result); - } - } NS_IMETHODIMP @@ -1515,31 +1624,13 @@ // wake up process thread to tell it to shutdown PRThread *prThread; processThread->GetPRThread(&prThread); - printf("Interrupting process thread..."); + PLUGIN_DEBUG_0ARG ("Interrupting process thread..."); PRStatus res = PR_Interrupt(prThread); - printf(" done!\n"); + PLUGIN_DEBUG_0ARG (" done!\n"); PRInt32 exitVal; applet_viewer_process->GetExitValue(&exitVal); -/* - PRUint32 max_sleep_time = 2000; - PRUint32 sleep_time = 0; - while ((sleep_time < max_sleep_time) && (exitVal == -1)) { - printf("Appletviewer still appears to be running. Waiting...\n"); - PR_Sleep(200); - sleep_time += 200; - applet_viewer_process->GetExitValue(&exitVal); - } - - // still running? kill it with extreme prejudice - applet_viewer_process->GetExitValue(&exitVal); - if (exitVal == -1) { - printf("Appletviewer still appears to be running. Trying to kill it...\n"); - applet_viewer_process->Kill(); - } -*/ - return NS_OK; } @@ -1715,7 +1806,7 @@ jclass resultclazz; jboolean resultbool; - printf ("CREATESECUREENV\n"); + PLUGIN_DEBUG_0ARG ("CREATESECUREENV\n"); #if 0 // IcedTeaJNIEnv::AllocObject @@ -1832,9 +1923,9 @@ PLUGIN_TEST (result.i == 0, "CallStaticMethod: static void (double)"); (*outSecureEnv)->GetMethodID (clazz, "", "()V", &method); - printf ("HERE1\n"); + PLUGIN_DEBUG_0ARG ("HERE1\n"); (*outSecureEnv)->NewObject (clazz, method, NULL, &newobject); - printf ("HERE2\n"); + PLUGIN_DEBUG_0ARG ("HERE2\n"); (*outSecureEnv)->IsSameObject (newobject, newobject, &resultbool); PLUGIN_TEST (resultbool, "IsSameObject: obj, obj"); (*outSecureEnv)->IsSameObject (newobject, NULL, &resultbool); @@ -1851,13 +1942,13 @@ PLUGIN_TEST (result.i == 0, "CallStaticMethod: static void (object)"); - printf ("HERE3\n"); + PLUGIN_DEBUG_0ARG ("HERE3\n"); (*outSecureEnv)->NewGlobalRef (newobject, &newglobalobject); - printf ("HERE4\n"); + PLUGIN_DEBUG_0ARG ("HERE4\n"); (*outSecureEnv)->DeleteLocalRef (newobject); - printf ("HERE5\n"); + PLUGIN_DEBUG_0ARG ("HERE5\n"); (*outSecureEnv)->DeleteGlobalRef (newglobalobject); - printf ("HERE6\n"); + PLUGIN_DEBUG_0ARG ("HERE6\n"); (*outSecureEnv)->NewArray (jint_type, 10, &array); (*outSecureEnv)->GetArrayLength (array, &length); @@ -1956,7 +2047,7 @@ (*outSecureEnv)->GetStaticMethodID (clazz, "TestItIntArrayReturn", "()[I", &method); - printf ("GOT METHOD: %d\n", reinterpret_cast (method)->identifier); + PLUGIN_DEBUG_1ARG ("GOT METHOD: %d\n", reinterpret_cast (method)->identifier); (*outSecureEnv)->CallStaticMethod (jobject_type, clazz, method, NULL, &result); // FIXME: @@ -2162,36 +2253,17 @@ tagMessage += " "; tagMessage += appletTag; tagMessage += ""; + + // remove \n characters from the message + tagMessage.StripChars("\n"); + factory->SendMessageToAppletViewer (tagMessage); // Set back-pointer to peer instance. - printf ("SETTING PEER!!!: %p\n", aPeer); + PLUGIN_DEBUG_1ARG ("SETTING PEER!!!: %p\n", aPeer); peer = aPeer; NS_ADDREF (aPeer); - printf ("DONE SETTING PEER!!!: %p\n", aPeer); - -// if (factory->codebase_map[nsCString(documentbase)] != NULL) -// { -// printf("Found %s in map and it is %s\n", nsCString(documentbase), factory->codebase_map[nsCString(documentbase)].get()); -// -// } - - nsCString dbase(documentbase); - if (factory->codebase_map.find(dbase) != factory->codebase_map.end()) - { - factory->codebase_map[dbase] += ","; - factory->codebase_map[dbase].AppendInt(instance_identifier); - - printf("Appended: %s to %s\n", factory->codebase_map[dbase].get(), documentbase); - - } else - { - nsCString str; - str.AppendInt(instance_identifier); - factory->codebase_map[dbase] = str; - - printf("Creating and adding %s to %s and we now have: %s\n", str.get(), documentbase, factory->codebase_map.find(dbase)->second.get()); - } + PLUGIN_DEBUG_1ARG ("DONE SETTING PEER!!!: %p\n", aPeer); return NS_OK; } @@ -2208,11 +2280,11 @@ PLUGIN_CHECK_RETURN ("wait for peer: process next event", result); } - printf ("GETTING PEER!!!: %p\n", peer); + PLUGIN_DEBUG_1ARG ("GETTING PEER!!!: %p\n", peer); *aPeer = peer; // FIXME: where is this unref'd? NS_ADDREF (peer); - printf ("DONE GETTING PEER!!!: %p, %p\n", peer, *aPeer); + PLUGIN_DEBUG_2ARG ("DONE GETTING PEER!!!: %p, %p\n", peer, *aPeer); return NS_OK; } @@ -2261,13 +2333,13 @@ if (initialized == PR_FALSE) { - printf("IcedTeaPluginInstance::SetWindow: Instance %p waiting for initialization...\n", this); + PLUGIN_DEBUG_1ARG ("IcedTeaPluginInstance::SetWindow: Instance %p waiting for initialization...\n", this); while (initialized == PR_FALSE) { PROCESS_PENDING_EVENTS; } - printf("Instance %p initialization complete...\n", this); + PLUGIN_DEBUG_1ARG ("Instance %p initialization complete...\n", this); } // The window already exists. @@ -2276,37 +2348,38 @@ // The parent window is the same as in previous calls. PLUGIN_DEBUG ("Instance::SetWindow: window already exists."); + nsCString message (instanceIdentifierPrefix); + PRBool changed = PR_FALSE; + // The window is the same as it was for the last // SetWindow call. if (aWindow->width != window_width) { + // width has changed PLUGIN_DEBUG ("Instance::SetWindow: window width changed."); - // The width of the plugin window has changed. - - // Send the new width to the appletviewer. - nsCString widthMessage (instanceIdentifierPrefix); - widthMessage += "width "; - widthMessage.AppendInt (aWindow->width); - factory->SendMessageToAppletViewer (widthMessage); - // Store the new width. - window_width = aWindow->width; + window_width = aWindow->width; + changed = PR_TRUE; } if (aWindow->height != window_height) { + // width has changed PLUGIN_DEBUG ("Instance::SetWindow: window height changed."); - // The height of the plugin window has changed. - - // Send the new height to the appletviewer. - nsCString heightMessage (instanceIdentifierPrefix); - heightMessage += "height "; - heightMessage.AppendInt (aWindow->height); - factory->SendMessageToAppletViewer (heightMessage); - // Store the new height. - window_height = aWindow->height; + window_height = aWindow->height; + changed = PR_TRUE; } + + if (changed == PR_TRUE) + { + message += "width "; + message.AppendInt (window_width); + message += " height "; + message.AppendInt (window_height); + factory->SendMessageToAppletViewer (message); + } + } else { @@ -2399,14 +2472,14 @@ if (initialized == PR_FALSE) { - printf("IcedTeaPluginInstance::SetWindow: Instance %p waiting for initialization...\n", this); + PLUGIN_DEBUG_1ARG ("IcedTeaPluginInstance::SetWindow: Instance %p waiting for initialization...\n", this); while (initialized == PR_FALSE) { PROCESS_PENDING_EVENTS; // printf("waiting for java object\n"); } - printf("Instance %p initialization complete...\n", this); + PLUGIN_DEBUG_1ARG ("Instance %p initialization complete...\n", this); } return factory->GetJavaObject (instance_identifier, object); @@ -2431,8 +2504,9 @@ objectMessage += " reference "; objectMessage.AppendInt (reference); objectMessage += " GetJavaObject"; - printf ("Sending object message: %s\n", objectMessage.get()); - result_map[reference] = new ResultContainer(); + PLUGIN_DEBUG_1ARG ("Sending object message: %s\n", objectMessage.get()); + ResultContainer *container = new ResultContainer(); + result_map.Put(reference, container); SendMessageToAppletViewer (objectMessage); PRBool processed = PR_FALSE; @@ -2443,7 +2517,7 @@ current->ProcessNextEvent(PR_TRUE, &processed); } - printf ("GOT JAVA OBJECT IDENTIFIER: %d\n", object_identifier_return); + PLUGIN_DEBUG_1ARG ("GOT JAVA OBJECT IDENTIFIER: %d\n", object_identifier_return); if (object_identifier_return == 0) printf ("WARNING: received object identifier 0\n"); @@ -2459,11 +2533,85 @@ return NS_ERROR_NOT_IMPLEMENTED; } +// plugin_in_pipe_callback is called when data is available on the +// input pipe, or when the appletviewer crashes or is killed. It may +// be called after data has been destroyed in which case it simply +// returns FALSE to remove itself from the glib main loop. +static gboolean +plugin_in_pipe_callback (GIOChannel* source, + GIOCondition condition, + gpointer plugin_data) +{ + PLUGIN_DEBUG ("plugin_in_pipe_callback"); + + gchar* message = NULL; + gboolean keep_installed = TRUE; + + // If data is NULL then GCJ_Destroy has already been called and + // plugin_in_pipe_callback is being called after plugin + // destruction. In that case all we need to do is return FALSE so + // that the plugin_in_pipe_callback watch is removed. + if (condition & G_IO_IN) + { + if (g_io_channel_read_line (in_from_appletviewer, + &message, NULL, NULL, + &channel_error) + != G_IO_STATUS_NORMAL) + { + if (channel_error) + { + PLUGIN_ERROR_TWO ("Failed to read line from input channel", + channel_error->message); + g_error_free (channel_error); + channel_error = NULL; + } + else + PLUGIN_ERROR ("Failed to read line from input channel"); + } + else + { + + // Remove trailing newline from message. + //message[strlen (message) - 1] = '\0'; + PLUGIN_DEBUG_1ARG ("Received message: %s\n", message); + PLUGIN_DEBUG_1ARG (" PIPE: plugin read: %s\n", message); + } + + keep_installed = TRUE; + } + + if (condition & (G_IO_ERR | G_IO_HUP)) + { + PLUGIN_DEBUG ("appletviewer has stopped."); + keep_installed = FALSE; + } else + { + + + // push message to queue + PR_EnterMonitor(jvmMsgQueuePRMonitor); + jvmMsgQueue.push(nsCString(message)); + PR_ExitMonitor(jvmMsgQueuePRMonitor); + + // poke process thread + PRThread *prThread; + processThread->GetPRThread(&prThread); + PRStatus res = PR_Interrupt(prThread); + + } + + PLUGIN_DEBUG ("plugin_in_pipe_callback return"); + return keep_installed; +} + + NS_IMETHODIMP IcedTeaPluginFactory::OnInputStreamReady (nsIAsyncInputStream* aStream) { PLUGIN_TRACE_INSTANCE (); + return NS_OK; + // FIXME: change to NSCString. Why am I getting symbol lookup errors? // /home/fitzsim/sources/mozilla/dist/bin/firefox-bin: symbol lookup error: // /usr/lib/jvm/java-1.7.0-icedtea-1.7.0.0/jre/lib/i386/IcedTeaPlugin.so: @@ -2527,7 +2675,7 @@ void IcedTeaPluginFactory::HandleMessage (nsCString const& message) { - PLUGIN_DEBUG_TWO ("received message:", message.get()); + PLUGIN_DEBUG_1ARG ("received message: %s\n", message.get()); nsresult conversionResult; PRUint32 space; @@ -2560,7 +2708,13 @@ rest += " "; } - printf("Parse results: prefix: %s, identifier: %d, reference: %d, command: %s, rest: %s\n", (nsCString (prefix)).get(), identifier, reference, (nsCString (command)).get(), (nsCString (rest)).get()); + ResultContainer *resultC; + if (reference != -1 && result_map.Get(reference, &resultC)) + { + resultC->stop_timer(); + } + +// printf ("Parse results: prefix: %s, identifier: %d, reference: %d, command: %s, rest: %s\n", (nsCString (prefix)).get(), identifier, reference, (nsCString (command)).get(), (nsCString (rest)).get()); if (prefix == "instance") { @@ -2579,9 +2733,9 @@ IcedTeaPluginInstance* instance = NULL; instances.Get (identifier, &instance); if (instance != 0) { - printf("Setting instance.initialized for %p from %d ", instance, instance->initialized); + PLUGIN_DEBUG_2ARG ("Setting instance.initialized for %p from %d ", instance, instance->initialized); instance->initialized = PR_TRUE; - printf("to %d...\n", instance->initialized); + PLUGIN_DEBUG_1ARG ("to %d...\n", instance->initialized); } } else if (command == "url") @@ -2597,7 +2751,7 @@ do_QueryInterface (instance->peer); nsIPluginInstanceOwner* owner = nsnull; ownerGetter->GetOwner (&owner); - printf("Calling GetURL with %s and %s\n", nsCString (url).get (), nsCString (target).get ()); + PLUGIN_DEBUG_2ARG ("Calling GetURL with %s and %s\n", nsCString (url).get (), nsCString (target).get ()); nsCOMPtr event = new GetURLRunnable (instance->peer, nsCString (url).get (), nsCString (target).get ()); @@ -2609,7 +2763,7 @@ IcedTeaPluginInstance* instance = NULL; instances.Get (identifier, &instance); - printf("GetWindow instance: %d\n", instance); + PLUGIN_DEBUG_1ARG ("GetWindow instance: %d\n", instance); if (instance != 0) { nsCOMPtr event = @@ -2621,7 +2775,7 @@ } else if (command == "GetMember") { - printf ("POSTING GetMember\n"); + PLUGIN_DEBUG_0ARG ("POSTING GetMember\n"); space = rest.FindChar (' '); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = javascriptID.ToInteger (&conversionResult); @@ -2635,11 +2789,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::GetMember); NS_DispatchToMainThread (event); - printf ("POSTING GetMember DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING GetMember DONE\n"); } else if (command == "SetMember") { - printf ("POSTING SetMember\n"); + PLUGIN_DEBUG_0ARG ("POSTING SetMember\n"); space = rest.FindChar (' '); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = javascriptID.ToInteger (&conversionResult); @@ -2659,11 +2813,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::SetMember); NS_DispatchToMainThread (event); - printf ("POSTING SetMember DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING SetMember DONE\n"); } else if (command == "GetSlot") { - printf ("POSTING GetSlot\n"); + PLUGIN_DEBUG_0ARG ("POSTING GetSlot\n"); space = rest.FindChar (' '); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = javascriptID.ToInteger (&conversionResult); @@ -2677,11 +2831,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::GetSlot); NS_DispatchToMainThread (event); - printf ("POSTING GetSlot DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING GetSlot DONE\n"); } else if (command == "SetSlot") { - printf ("POSTING SetSlot\n"); + PLUGIN_DEBUG_0ARG ("POSTING SetSlot\n"); space = rest.FindChar (' '); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = javascriptID.ToInteger (&conversionResult); @@ -2700,11 +2854,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::SetSlot); NS_DispatchToMainThread (event); - printf ("POSTING SetSlot DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING SetSlot DONE\n"); } else if (command == "Eval") { - printf ("POSTING Eval\n"); + PLUGIN_DEBUG_0ARG ("POSTING Eval\n"); space = rest.FindChar (' '); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = javascriptID.ToInteger (&conversionResult); @@ -2718,11 +2872,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::Eval); NS_DispatchToMainThread (event); - printf ("POSTING Eval DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING Eval DONE\n"); } else if (command == "RemoveMember") { - printf ("POSTING RemoveMember\n"); + PLUGIN_DEBUG_0ARG ("POSTING RemoveMember\n"); space = rest.FindChar (' '); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = javascriptID.ToInteger (&conversionResult); @@ -2736,11 +2890,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::RemoveMember); NS_DispatchToMainThread (event); - printf ("POSTING RemoveMember DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING RemoveMember DONE\n"); } else if (command == "Call") { - printf ("POSTING Call\n"); + PLUGIN_DEBUG_0ARG ("POSTING Call\n"); space = rest.FindChar (' '); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = javascriptID.ToInteger (&conversionResult); @@ -2759,11 +2913,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::Call); NS_DispatchToMainThread (event); - printf ("POSTING Call DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING Call DONE\n"); } else if (command == "Finalize") { - printf ("POSTING Finalize\n"); + PLUGIN_DEBUG_0ARG ("POSTING Finalize\n"); nsDependentCSubstring javascriptID = Substring (rest, 0, space); javascript_identifier = rest.ToInteger (&conversionResult); PLUGIN_CHECK ("parse javascript id", conversionResult); @@ -2773,11 +2927,11 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::Finalize); NS_DispatchToMainThread (event); - printf ("POSTING Finalize DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING Finalize DONE\n"); } else if (command == "ToString") { - printf ("POSTING ToString\n"); + PLUGIN_DEBUG_0ARG ("POSTING ToString\n"); javascript_identifier = rest.ToInteger (&conversionResult); PLUGIN_CHECK ("parse javascript id", conversionResult); @@ -2786,13 +2940,19 @@ (this, &IcedTeaPluginFactory::IcedTeaPluginFactory::ToString); NS_DispatchToMainThread (event); - printf ("POSTING ToString DONE\n"); + PLUGIN_DEBUG_0ARG ("POSTING ToString DONE\n"); } else if (command == "Error") { - printf("Error occured. Setting error flag for container @ %d to true\n", reference); - result_map[reference]->errorOccurred = PR_TRUE; - result_map[reference]->errorMessage = (nsCString) rest; + + ResultContainer *resultC; + if (reference != -1 && result_map.Get(reference, &resultC)) + { + PLUGIN_DEBUG_1ARG ("Error occured. Setting error flag for container @ %d to true\n", reference); + + resultC->errorOccurred = PR_TRUE; + resultC->errorMessage = (nsCString) rest; + } rest += "ERROR: "; IcedTeaPluginInstance* instance = NULL; @@ -2814,7 +2974,7 @@ // object_identifier_return = rest.ToInteger (&result); // FIXME: replace with returnIdentifier ? object_identifier_return = rest.ToInteger (&conversionResult); - printf("Patrsed integer: %d\n", object_identifier_return); + PLUGIN_DEBUG_1ARG ("Patrsed integer: %d\n", object_identifier_return); PLUGIN_CHECK ("parse integer", conversionResult); } @@ -2836,9 +2996,13 @@ || command == "NewGlobalRef" || command == "NewArray") { - result_map[reference]->returnIdentifier = rest.ToInteger (&conversionResult); + ResultContainer *resultC; + result_map.Get(reference, &resultC); + PLUGIN_DEBUG_2ARG("Looking in map for %d and found = %d\n", reference, resultC); + PLUGIN_DEBUG_1ARG("Curr val = %p\n", resultC); + resultC->returnIdentifier = rest.ToInteger (&conversionResult); PLUGIN_CHECK ("parse integer", conversionResult); - printf ("GOT RETURN IDENTIFIER %d\n", result_map[reference]->returnIdentifier); + PLUGIN_DEBUG_1ARG ("GOT RETURN IDENTIFIER %d\n", resultC->returnIdentifier); } else if (command == "GetField" @@ -2852,8 +3016,10 @@ // if (returnValue != "") // PLUGIN_ERROR ("Return value already defined."); - result_map[reference]->returnValue = rest; - printf ("PLUGIN GOT RETURN VALUE: %s\n", result_map[reference]->returnValue.get()); + ResultContainer *resultC; + result_map.Get(reference, &resultC); + resultC->returnValue = rest; + PLUGIN_DEBUG_1ARG ("PLUGIN GOT RETURN VALUE: %s\n", resultC->returnValue.get()); } else if (command == "GetStringUTFChars") { @@ -2881,8 +3047,10 @@ offset - previousOffset).ToInteger (&conversionResult, 16)); PLUGIN_CHECK ("parse integer", conversionResult); } - result_map[reference]->returnValue = returnValue; - printf ("PLUGIN GOT RETURN UTF-8 STRING: %s\n", result_map[reference]->returnValue.get ()); + ResultContainer *resultC; + result_map.Get(reference, &resultC); + resultC->returnValue = returnValue; + PLUGIN_DEBUG_1ARG ("PLUGIN GOT RETURN UTF-8 STRING: %s\n", resultC->returnValue.get ()); } else if (command == "GetStringChars") { @@ -2917,9 +3085,8 @@ PLUGIN_CHECK ("parse integer", conversionResult); // FIXME: swap on big-endian systems. returnValueUCS += static_cast ((high << 8) | low); - std::cout << "High: " << high << " Low: " << low << " RVUCS: " << returnValueUCS.get() << std::endl; } - printf ("PLUGIN GOT RETURN UTF-16 STRING: %d: ", + PLUGIN_DEBUG_1ARG ("PLUGIN GOT RETURN UTF-16 STRING: %d: ", returnValueUCS.Length()); for (int i = 0; i < returnValueUCS.Length(); i++) { @@ -2929,12 +3096,16 @@ && returnValueUCS[i] <= 'z') || (returnValueUCS[i] >= '0' && returnValueUCS[i] <= '9')) - printf ("%c", returnValueUCS[i]); + { + PLUGIN_DEBUG_1ARG ("%c", returnValueUCS[i]); + } else - printf ("?"); + PLUGIN_DEBUG_0ARG ("?"); } - printf ("\n"); - result_map[reference]->returnValueUCS = returnValueUCS; + PLUGIN_DEBUG_0ARG ("\n"); + ResultContainer *resultC; + result_map.Get(reference, &resultC); + resultC->returnValueUCS = returnValueUCS; } // Do nothing for: SetStaticField, SetField, ExceptionClear, @@ -2971,13 +3142,13 @@ processThread->HasPendingEvents(&this_has_pending); if (this_has_pending == PR_TRUE) { processThread->ProcessNextEvent(PR_TRUE, &processed); - printf("Pending event processed (this) ... %d\n", processed); + PLUGIN_DEBUG_1ARG ("Pending event processed (this) ... %d\n", processed); } current->HasPendingEvents(&curr_has_pending); if (curr_has_pending == PR_TRUE) { current->ProcessNextEvent(PR_TRUE, &processed); - printf("Pending event processed (current) ... %d\n", processed); + PLUGIN_DEBUG_1ARG ("Pending event processed (current) ... %d\n", processed); } if (this_has_pending != PR_TRUE && curr_has_pending != PR_TRUE) { @@ -2999,9 +3170,8 @@ jvmMsgQueue.pop(); PR_ExitMonitor(jvmMsgQueuePRMonitor); - printf("Processing %s from JVM\n", message.get()); HandleMessage (message); - printf("Processing complete\n"); + PLUGIN_DEBUG_0ARG ("Processing complete\n"); } } @@ -3281,16 +3451,6 @@ IcedTeaPluginFactory::StartAppletviewer () { -/** - * JNI I/O code - * - InitJVM(); -*/ - -/* - * Code to initialize separate appletviewer process that communicates over TCP/IP - */ - PLUGIN_TRACE_INSTANCE (); nsresult result; @@ -3318,10 +3478,20 @@ PLUGIN_CHECK_RETURN ("init process", result); // FIXME: hard-coded port number. - char const* args[5] = { "-Xdebug", "-Xnoagent", "-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n", "sun.applet.PluginMain", "50007" }; -// char const* args[2] = { "sun.applet.PluginMain", "50007" }; - result = applet_viewer_process->Run (PR_FALSE, args, 5, nsnull); - PLUGIN_CHECK_RETURN ("run process", result); + int numArgs; + char const** args; + + if (getenv("ICEDTEAPLUGIN_DEBUG")) + { + numArgs = 4; + char const* javaArgs[4] = { "-Xdebug", "-Xnoagent", "-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n", "sun.applet.PluginMain" }; + args = javaArgs; + } else + { + numArgs = 1; + char const* javaArgs[1] = { "sun.applet.PluginMain" }; + args = javaArgs; + } // start processing thread nsCOMPtr processMessageEvent = @@ -3330,8 +3500,155 @@ NS_NewThread(getter_AddRefs(processThread), processMessageEvent); - return NS_OK; + // data->in_pipe_name + in_pipe_name = g_strdup_printf ("%s/icedtea-appletviewer-to-plugin", + data_directory); + if (!in_pipe_name) + { + PLUGIN_ERROR ("Failed to create input pipe name."); + // If data->in_pipe_name is NULL then the g_free at + // cleanup_in_pipe_name will simply return. + + result = NS_ERROR_OUT_OF_MEMORY; + goto cleanup_in_pipe_name; + } + + // clear the file first + PLUGIN_DEBUG_TWO ("clearing old input fifo (if any):", in_pipe_name); + g_remove(in_pipe_name); + + PLUGIN_DEBUG_TWO ("GCJ_New: creating input fifo:", in_pipe_name); + if (mkfifo (in_pipe_name, 0700) == -1 && errno != EEXIST) + { + PLUGIN_ERROR_TWO ("Failed to create input pipe", strerror (errno)); + result = NS_ERROR_OUT_OF_MEMORY; + goto cleanup_in_pipe_name; + } + PLUGIN_DEBUG_TWO ("GCJ_New: created input fifo:", in_pipe_name); + // Create plugin-to-appletviewer pipe which we refer to as the + // output pipe. + + // data->out_pipe_name + out_pipe_name = g_strdup_printf ("%s/icedtea-plugin-to-appletviewer", + data_directory); + + PLUGIN_DEBUG("got confirmation that appletviewer is running"); + + if (!out_pipe_name) + { + PLUGIN_ERROR ("Failed to create output pipe name."); + result = NS_ERROR_OUT_OF_MEMORY; + goto cleanup_out_pipe_name; + } + + // clear the file first + PLUGIN_DEBUG_TWO ("clearing old output fifo (if any):", out_pipe_name); + + g_remove(out_pipe_name); + PLUGIN_DEBUG_TWO ("GCJ_New: creating output fifo:", out_pipe_name); + if (mkfifo (out_pipe_name, 0700) == -1 && errno != EEXIST) + { + PLUGIN_ERROR_TWO ("Failed to create output pipe", strerror (errno)); + result = NS_ERROR_OUT_OF_MEMORY; + goto cleanup_out_pipe_name; + } + PLUGIN_DEBUG_TWO ("GCJ_New: created output fifo:", out_pipe_name); + + result = applet_viewer_process->Run (PR_FALSE, args, numArgs, nsnull); + PLUGIN_CHECK_RETURN ("run process", result); + + out_to_appletviewer = g_io_channel_new_file (out_pipe_name, + "w", &channel_error); + + if (!out_to_appletviewer) + { + if (channel_error) + { + PLUGIN_ERROR_TWO ("Failed to create output channel", + channel_error->message); + g_error_free (channel_error); + channel_error = NULL; + } + else + PLUGIN_ERROR ("Failed to create output channel"); + + result = NS_ERROR_UNEXPECTED; + goto cleanup_out_to_appletviewer; + } + + // Create appletviewer-to-plugin channel. The default encoding for + // the file is UTF-8. + // data->in_from_appletviewer + in_from_appletviewer = g_io_channel_new_file (in_pipe_name, + "r", &channel_error); + if (!in_from_appletviewer) + { + if (channel_error) + { + PLUGIN_ERROR_TWO ("Failed to create input channel", + channel_error->message); + g_error_free (channel_error); + channel_error = NULL; + } + else + PLUGIN_ERROR ("Failed to create input channel"); + + result = NS_ERROR_UNEXPECTED; + goto cleanup_in_from_appletviewer; + } + + // Watch for hangup and error signals on the input pipe. + in_watch_source = + g_io_add_watch (in_from_appletviewer, + (GIOCondition) (G_IO_IN | G_IO_ERR | G_IO_HUP), + plugin_in_pipe_callback, NULL); + + goto cleanup_done; + + cleanup_in_watch_source: + // Removing a source is harmless if it fails since it just means the + // source has already been removed. + g_source_remove (in_watch_source); + in_watch_source = 0; + + cleanup_in_from_appletviewer: + if (in_from_appletviewer) + g_io_channel_unref (in_from_appletviewer); + in_from_appletviewer = NULL; + + // cleanup_out_watch_source: + g_source_remove (out_watch_source); + out_watch_source = 0; + + cleanup_out_to_appletviewer: + if (out_to_appletviewer) + g_io_channel_unref (out_to_appletviewer); + out_to_appletviewer = NULL; + + // cleanup_out_pipe: + // Delete output pipe. + PLUGIN_DEBUG_TWO ("GCJ_New: deleting input fifo:", in_pipe_name); + unlink (out_pipe_name); + PLUGIN_DEBUG_TWO ("GCJ_New: deleted input fifo:", in_pipe_name); + + cleanup_out_pipe_name: + g_free (out_pipe_name); + out_pipe_name = NULL; + + // cleanup_in_pipe: + // Delete input pipe. + PLUGIN_DEBUG_TWO ("GCJ_New: deleting output fifo:", out_pipe_name); + unlink (in_pipe_name); + PLUGIN_DEBUG_TWO ("GCJ_New: deleted output fifo:", out_pipe_name); + + cleanup_in_pipe_name: + g_free (in_pipe_name); + in_pipe_name = NULL; + + cleanup_done: + + return result; } nsresult @@ -3342,49 +3659,48 @@ nsresult result; PRBool processed; - // while outputstream is not yet ready, process next event - while (!output) - { - result = current->ProcessNextEvent(PR_TRUE, &processed); - PLUGIN_CHECK_RETURN ("wait for output stream initialization: process next event", result); - } + PLUGIN_DEBUG_1ARG ("Writing to JVM: %s\n", message.get()); - printf("Writing to JVM: %s\n", message.get()); + gsize bytes_written = 0; -/* - * JNI I/O code - * - WriteToJVM(message); -*/ + message.Append('\n'); -/* - * - * Code to send message to separate appletviewer process over TCP/IP - * - */ - - PRUint32 writeCount = 0; - // Write trailing \0 as message termination character. - // FIXME: check that message is a valid UTF-8 string. - // printf ("MESSAGE: %s\n", message.get ()); - message.Insert('-',0); - result = output->Write (message.get (), - message.Length () + 1, - &writeCount); - PLUGIN_CHECK_RETURN ("wrote bytes", result); - if (writeCount != message.Length () + 1) - { - PLUGIN_ERROR ("Failed to write all bytes."); - return NS_ERROR_FAILURE; - } + // g_io_channel_write_chars will return something other than + // G_IO_STATUS_NORMAL if not all the data is written. In that + // case we fail rather than retrying. + if (g_io_channel_write_chars (out_to_appletviewer, + message.get(), -1, &bytes_written, + &channel_error) + != G_IO_STATUS_NORMAL) + { + if (channel_error) + { + PLUGIN_ERROR_TWO ("Failed to write bytes to output channel", + channel_error->message); + g_error_free (channel_error); + channel_error = NULL; + } + else + PLUGIN_ERROR ("Failed to write bytes to output channel"); + } - result = output->Flush (); - PLUGIN_CHECK_RETURN ("flushed output", result); + if (g_io_channel_flush (out_to_appletviewer, &channel_error) + != G_IO_STATUS_NORMAL) + { + if (channel_error) + { + PLUGIN_ERROR_TWO ("Failed to flush bytes to output channel", + channel_error->message); + g_error_free (channel_error); + channel_error = NULL; + } + else + PLUGIN_ERROR ("Failed to flush bytes to output channel"); + } - printf (" PIPE: plugin wrote: %s\n", message.get ()); + PLUGIN_DEBUG_1ARG ("Wrote %d bytes to pipe\n", bytes_written); return NS_OK; - } PRUint32 @@ -3422,12 +3738,14 @@ instanceIdentifierPrefix += " "; } +#include + void IcedTeaPluginInstance::GetWindow () { nsresult result; - printf ("HERE 22: %d\n", liveconnect_window); + PLUGIN_DEBUG_1ARG ("HERE 22: %d\n", liveconnect_window); // principalsArray, numPrincipals and securitySupports // are ignored by GetWindow. See: // @@ -3437,16 +3755,16 @@ // so they can all safely be null. if (factory->proxyEnv != NULL) { - printf ("HERE 23: %d, %p\n", liveconnect_window, current_thread ()); + PLUGIN_DEBUG_2ARG ("HERE 23: %d, %p\n", liveconnect_window, current_thread ()); result = factory->liveconnect->GetWindow(factory->proxyEnv, this, NULL, 0, NULL, &liveconnect_window); PLUGIN_CHECK ("get window", result); - printf ("HERE 24: %d\n", liveconnect_window); + PLUGIN_DEBUG_1ARG ("HERE 24: %d\n", liveconnect_window); } - printf ("HERE 20: %d\n", liveconnect_window); + PLUGIN_DEBUG_1ARG ("HERE 20: %d\n", liveconnect_window); nsCString message ("context "); message.AppendInt (0); @@ -3470,27 +3788,34 @@ IcedTeaPluginFactory::GetMember () { nsresult result; - printf ("BEFORE GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("BEFORE GETTING NAMESTRING\n"); jsize strSize = 0; jchar const* nameString; jstring name = static_cast (references.ReferenceObject (name_identifier)); ((IcedTeaJNIEnv*) secureEnv)->GetStringLength (name, &strSize); ((IcedTeaJNIEnv*) secureEnv)->GetStringChars (name, NULL, &nameString); - printf ("AFTER GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("AFTER GETTING NAMESTRING\n"); jobject liveconnect_member; if (proxyEnv != NULL) { - printf ("Calling GETMEMBER: %d, %d\n", javascript_identifier, strSize); - result = liveconnect->GetMember(proxyEnv, - javascript_identifier, - nameString, strSize, - NULL, 0, NULL, - &liveconnect_member); - PLUGIN_CHECK ("get member", result); + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + PLUGIN_DEBUG_2ARG ("Calling GETMEMBER: %d, %d\n", javascript_identifier, strSize); + result = liveconnect->GetMember(proxyEnv, + javascript_identifier, + nameString, strSize, + NULL, 0, NULL, + &liveconnect_member); + PLUGIN_CHECK ("get member", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has been cleared. GetMember call skipped\n", javascript_identifier); + liveconnect_member = NULL; + } } - printf ("GOT MEMBER: %d\n", ID (liveconnect_member)); + PLUGIN_DEBUG_1ARG ("GOT MEMBER: %d\n", ID (liveconnect_member)); nsCString message ("context "); message.AppendInt (0); message += " "; @@ -3507,15 +3832,22 @@ jobject liveconnect_member; if (proxyEnv != NULL) { - result = liveconnect->GetSlot(proxyEnv, + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + result = liveconnect->GetSlot(proxyEnv, javascript_identifier, slot_index, NULL, 0, NULL, &liveconnect_member); - PLUGIN_CHECK ("get slot", result); + PLUGIN_CHECK ("get slot", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has been cleared. GetSlot call skipped\n", javascript_identifier); + liveconnect_member = NULL; + } } - printf ("GOT SLOT: %d\n", ID (liveconnect_member)); + PLUGIN_DEBUG_1ARG ("GOT SLOT: %d\n", ID (liveconnect_member)); nsCString message ("context "); message.AppendInt (0); message += " "; @@ -3529,25 +3861,32 @@ IcedTeaPluginFactory::SetMember () { nsresult result; - printf ("BEFORE GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("BEFORE GETTING NAMESTRING\n"); jsize strSize = 0; jchar const* nameString; jstring name = static_cast (references.ReferenceObject (name_identifier)); ((IcedTeaJNIEnv*) secureEnv)->GetStringLength (name, &strSize); ((IcedTeaJNIEnv*) secureEnv)->GetStringChars (name, NULL, &nameString); - printf ("AFTER GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("AFTER GETTING NAMESTRING\n"); jobject value = references.ReferenceObject (value_identifier); jobject liveconnect_member; if (proxyEnv != NULL) { - printf ("Calling SETMEMBER: %d, %d\n", javascript_identifier, strSize); - result = liveconnect->SetMember(proxyEnv, - javascript_identifier, - nameString, strSize, - value, - NULL, 0, NULL); - PLUGIN_CHECK ("set member", result); + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + PLUGIN_DEBUG_2ARG ("Calling SETMEMBER: %d, %d\n", javascript_identifier, strSize); + result = liveconnect->SetMember(proxyEnv, + javascript_identifier, + nameString, strSize, + value, + NULL, 0, NULL); + PLUGIN_CHECK ("set member", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has been cleared. SetMember call skipped\n", javascript_identifier); + liveconnect_member = NULL; + } } nsCString message ("context "); @@ -3565,12 +3904,19 @@ jobject liveconnect_member; if (proxyEnv != NULL) { - result = liveconnect->SetSlot(proxyEnv, - javascript_identifier, - slot_index, - value, - NULL, 0, NULL); - PLUGIN_CHECK ("set slot", result); + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + result = liveconnect->SetSlot(proxyEnv, + javascript_identifier, + slot_index, + value, + NULL, 0, NULL); + PLUGIN_CHECK ("set slot", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has been cleared. SetSlot call skipped\n", javascript_identifier); + liveconnect_member = NULL; + } } nsCString message ("context "); @@ -3580,29 +3926,37 @@ SendMessageToAppletViewer (message); } +#include + void IcedTeaPluginFactory::Eval () { nsresult result; - printf ("BEFORE GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("BEFORE GETTING NAMESTRING\n"); jsize strSize = 0; jchar const* nameString; // FIXME: unreference after SendMessageToAppletViewer call. jstring name = static_cast (references.ReferenceObject (string_identifier)); ((IcedTeaJNIEnv*) secureEnv)->GetStringLength (name, &strSize); ((IcedTeaJNIEnv*) secureEnv)->GetStringChars (name, NULL, &nameString); - printf ("AFTER GETTING NAMESTRING\n"); jobject liveconnect_member; if (proxyEnv != NULL) { - printf ("Calling Eval: %d, %d\n", javascript_identifier, strSize); - result = liveconnect->Eval(proxyEnv, - javascript_identifier, - nameString, strSize, - NULL, 0, NULL, - &liveconnect_member); - PLUGIN_CHECK ("eval", result); + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + PLUGIN_DEBUG_2ARG ("Calling Eval: %d, %d\n", javascript_identifier, strSize); + result = liveconnect->Eval(proxyEnv, + javascript_identifier, + nameString, strSize, + NULL, 0, NULL, + &liveconnect_member); + PLUGIN_CHECK ("eval", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has been cleared. Eval call skipped\n", javascript_identifier); + liveconnect_member = NULL; + } } nsCString message ("context "); @@ -3618,23 +3972,30 @@ IcedTeaPluginFactory::RemoveMember () { nsresult result; - printf ("BEFORE GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("BEFORE GETTING NAMESTRING\n"); jsize strSize = 0; jchar const* nameString; jstring name = static_cast (references.ReferenceObject (name_identifier)); ((IcedTeaJNIEnv*) secureEnv)->GetStringLength (name, &strSize); ((IcedTeaJNIEnv*) secureEnv)->GetStringChars (name, NULL, &nameString); - printf ("AFTER GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("AFTER GETTING NAMESTRING\n"); jobject liveconnect_member; if (proxyEnv != NULL) { - printf ("Calling RemoveMember: %d, %d\n", javascript_identifier, strSize); - result = liveconnect->RemoveMember(proxyEnv, - javascript_identifier, - nameString, strSize, - NULL, 0, NULL); - PLUGIN_CHECK ("RemoveMember", result); + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + PLUGIN_DEBUG_2ARG ("Calling RemoveMember: %d, %d\n", javascript_identifier, strSize); + result = liveconnect->RemoveMember(proxyEnv, + javascript_identifier, + nameString, strSize, + NULL, 0, NULL); + PLUGIN_CHECK ("RemoveMember", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has been cleared. Eval call skipped", javascript_identifier); + liveconnect_member = NULL; + } } nsCString message ("context "); @@ -3650,31 +4011,38 @@ IcedTeaPluginFactory::Call () { nsresult result; - printf ("BEFORE GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("BEFORE GETTING NAMESTRING\n"); jsize strSize = 0; jchar const* nameString; jstring name = static_cast ( references.ReferenceObject (name_identifier)); ((IcedTeaJNIEnv*) secureEnv)->GetStringLength (name, &strSize); ((IcedTeaJNIEnv*) secureEnv)->GetStringChars (name, NULL, &nameString); - printf ("AFTER GETTING NAMESTRING\n"); + PLUGIN_DEBUG_0ARG ("AFTER GETTING NAMESTRING\n"); jobjectArray args = static_cast ( references.ReferenceObject (args_identifier)); jobject liveconnect_member; if (proxyEnv != NULL) { - printf ("CALL: %d, %d\n", javascript_identifier, strSize); - result = liveconnect->Call(proxyEnv, - javascript_identifier, - nameString, strSize, - args, - NULL, 0, NULL, - &liveconnect_member); - PLUGIN_CHECK ("call", result); + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + PLUGIN_DEBUG_2ARG ("CALL: %d, %d\n", javascript_identifier, strSize); + result = liveconnect->Call(proxyEnv, + javascript_identifier, + nameString, strSize, + args, + NULL, 0, NULL, + &liveconnect_member); + PLUGIN_CHECK ("call", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has been cleared. Call skipped", javascript_identifier); + liveconnect_member = NULL; + } } - printf ("GOT RETURN FROM CALL : %d\n", ID (liveconnect_member)); + PLUGIN_DEBUG_1ARG ("GOT RETURN FROM CALL : %d\n", ID (liveconnect_member)); nsCString message ("context "); message.AppendInt (0); message += " "; @@ -3690,10 +4058,21 @@ nsresult result; if (proxyEnv != NULL) { - printf ("FINALIZE: %d\n", javascript_identifier); - result = liveconnect->FinalizeJSObject(proxyEnv, + PLUGIN_DEBUG_1ARG ("FINALIZE: %d\n", javascript_identifier); + + if (!factory->js_cleared_handles.Get(javascript_identifier, NULL)) + { + // remove reference -- set to PR_FALSE rather than removing from table, + // because that allows us to guarantee to all functions using the table, + // that the entry exists + factory->js_cleared_handles.Put(javascript_identifier, PR_TRUE); + result = liveconnect->FinalizeJSObject(proxyEnv, javascript_identifier); - PLUGIN_CHECK ("finalize", result); + PLUGIN_CHECK ("finalize", result); + } else + { + PLUGIN_DEBUG_1ARG("%d has no references. Finalization skipped.\n", javascript_identifier); + } } nsCString message ("context "); @@ -3711,14 +4090,14 @@ jstring liveconnect_member; if (proxyEnv != NULL) { - printf ("Calling ToString: %d\n", javascript_identifier); + PLUGIN_DEBUG_1ARG ("Calling ToString: %d\n", javascript_identifier); result = liveconnect->ToString(proxyEnv, javascript_identifier, &liveconnect_member); PLUGIN_CHECK ("ToString", result); } - printf ("ToString: %d\n", ID (liveconnect_member)); + PLUGIN_DEBUG_1ARG ("ToString: %d\n", ID (liveconnect_member)); nsCString message ("context "); message.AppendInt (0); message += " "; @@ -3936,8 +4315,10 @@ PR_ExitMonitor(contextCounterPRMonitor); } +#include "nsCRT.h" + nsresult -IcedTeaJNIEnv::GetEnabledPrivileges(nsCString *privileges) +IcedTeaJNIEnv::GetEnabledPrivileges(nsCString *privileges, nsISecurityContext *ctx) { nsresult rv; nsCOMPtr sec_man = @@ -3952,56 +4333,30 @@ // check privileges one by one privileges->Truncate(); - char available_privileges[1024]; // see: http://docs.sun.com/source/816-6170-10/index.htm - // Should these other privileges be supported? According to - // http://java.sun.com/j2se/1.3/docs/guide/plugin/security.html it is - // either UniversalBrowserRead/UniversalJavaPermissions or the highway... - -/* - // broken down to make it clean... - sprintf(available_privileges, "%s %s %s %s %s %s %s %s %s %s %s %s", - "LimitedInstall FullInstall SilentInstall", - "UniversalAccept UniversalAwtEventQueueAccess UniversalConnect", - "UniversalConnectWithRedirect UniversalDialogModality", - "UniversalExecAccess UniversalExitAccess UniversalFdRead", - "UniversalFileDelete UniversalFileRead UniversalFileWrite", - "UniversalLinkAccess UniversalListen UniversalMulticast", - "UniversalJavaPermissions UniversalPackageAccess", - "UniversalPackageDefinition UniversalPrintJobAccess", - "UniversalPropertyRead UniversalPropertyWrite", - "UniversalSendMail UniversalSetFactory UniversalSystemClipboardAccess", - "UniversalThreadAccess UniversalThreadGroupAccess", - "UniversalTopLevelWindow"); -*/ - - sprintf(available_privileges, "%s", - "UniversalBrowserRead UniversalJavaPermissions"); - - - char *token = strtok(available_privileges, " "); - while (token != NULL) - { - isEnabled = PR_FALSE; - sec_man->IsCapabilityEnabled(token, &isEnabled); + if (ctx) + { - if (isEnabled == PR_TRUE) - { - printf("GetEnabledPrivileges : %s is enabled\n", token); - *privileges += token; - *privileges += ","; - } else { - printf("GetEnabledPrivileges : %s is _NOT_ enabled\n", token); - } + PRBool hasUniversalBrowserRead = PR_FALSE; + PRBool hasUniversalJavaPermission = PR_FALSE; - token = strtok (NULL, " "); - } + ctx->Implies("UniversalBrowserRead", "UniversalBrowserRead", &hasUniversalBrowserRead); + if (hasUniversalBrowserRead == PR_TRUE) + { + *privileges += "UniversalBrowserRead"; + } - privileges->Trim(","); + ctx->Implies("UniversalJavaPermission", "UniversalJavaPermission", &hasUniversalJavaPermission); + if (hasUniversalJavaPermission == PR_TRUE) + { + *privileges += ","; + *privileges += "UniversalJavaPermission"; + } + } - return NS_OK; + return NS_OK; } NS_IMETHODIMP @@ -4023,30 +4378,13 @@ MESSAGE_CREATE (); MESSAGE_ADD_STACK_REFERENCE(reference); MESSAGE_ADD_SRC(origin); + MESSAGE_ADD_PRIVILEGES(ctx); MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_ID (methodID); MESSAGE_ADD_ARGS (methodID, args); MESSAGE_SEND (); - MESSAGE_RECEIVE_REFERENCE (reference, jobject, result); - - if (factory->result_map[reference]->errorOccurred == PR_TRUE && - factory->result_map[reference]->errorMessage.Find("LiveConnectPermissionNeeded") == 0) - { - // Permission error. Try again. This time, send permissions over the wire - MESSAGE_CREATE (); - MESSAGE_ADD_STACK_REFERENCE(reference); - MESSAGE_ADD_SRC(origin); - MESSAGE_ADD_PRIVILEGES(); - MESSAGE_ADD_FUNC(); - MESSAGE_ADD_REFERENCE (clazz); - MESSAGE_ADD_ID (methodID); - MESSAGE_ADD_ARGS (methodID, args); - MESSAGE_SEND (); - MESSAGE_RECEIVE_REFERENCE (reference, jobject, result); - } - - + MESSAGE_RECEIVE_REFERENCE (reference, jobject, result); DecrementContextCounter (); return NS_OK; @@ -4072,32 +4410,13 @@ MESSAGE_CREATE (); MESSAGE_ADD_STACK_REFERENCE(reference); MESSAGE_ADD_SRC(origin); + MESSAGE_ADD_PRIVILEGES(ctx); MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (obj); MESSAGE_ADD_ID (methodID); MESSAGE_ADD_ARGS (methodID, args); MESSAGE_SEND (); MESSAGE_RECEIVE_VALUE (reference, type, result); - - if (factory->result_map[reference]->errorOccurred == PR_TRUE && - factory->result_map[reference]->errorMessage.Find("LiveConnectPermissionNeeded") == 0) - { - MESSAGE_CREATE (); - MESSAGE_ADD_STACK_REFERENCE(reference); - MESSAGE_ADD_SRC(origin); - MESSAGE_ADD_PRIVILEGES(); - MESSAGE_ADD_FUNC(); - MESSAGE_ADD_REFERENCE (obj); - MESSAGE_ADD_ID (methodID); - MESSAGE_ADD_ARGS (methodID, args); - MESSAGE_SEND (); - MESSAGE_RECEIVE_VALUE (reference, type, result); - - // if everything was OK, clear exception from previous access exception - if (factory->result_map[reference]->errorOccurred == PR_FALSE) - ExceptionClear(); - } - DecrementContextCounter (); return NS_OK; @@ -4297,11 +4616,9 @@ retstr.AppendInt (args[arg].s); break; case 'I': - printf("Appending (I @ %d) %d\n", arg, args[arg].i); retstr.AppendInt (args[arg].i); break; case 'J': - printf("Appending (J @ %d) %d\n", arg, args[arg].i); retstr.AppendInt (args[arg].j); break; case 'F': @@ -4311,7 +4628,6 @@ retstr += IcedTeaPrintfCString ("%g", args[arg].d); break; case 'L': - std::cout << "Appending for L: arg=" << arg << " args[arg].l=" << args[arg].l << std::endl; retstr.AppendInt (ID (args[arg].l)); i++; while (id->signature[i] != ';') @@ -4374,26 +4690,12 @@ MESSAGE_CREATE (); MESSAGE_ADD_STACK_REFERENCE(reference); MESSAGE_ADD_SRC(origin); + MESSAGE_ADD_PRIVILEGES(ctx); MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (obj); MESSAGE_ADD_ID (fieldID); MESSAGE_SEND (); MESSAGE_RECEIVE_VALUE (reference, type, result); - - if (factory->result_map[reference]->errorOccurred == PR_TRUE && - factory->result_map[reference]->errorMessage.Find("LiveConnectPermissionNeeded") == 0) - { - MESSAGE_CREATE (); - MESSAGE_ADD_STACK_REFERENCE(reference); - MESSAGE_ADD_SRC(origin); - MESSAGE_ADD_PRIVILEGES(); - MESSAGE_ADD_FUNC(); - MESSAGE_ADD_REFERENCE (obj); - MESSAGE_ADD_ID (fieldID); - MESSAGE_SEND (); - MESSAGE_RECEIVE_VALUE (reference, type, result); - } - DecrementContextCounter (); return NS_OK; @@ -4417,6 +4719,7 @@ MESSAGE_CREATE (); MESSAGE_ADD_STACK_REFERENCE(-1); MESSAGE_ADD_SRC(origin); + MESSAGE_ADD_PRIVILEGES(ctx); MESSAGE_ADD_FUNC(); MESSAGE_ADD_TYPE (type); MESSAGE_ADD_REFERENCE (obj); @@ -4447,32 +4750,13 @@ MESSAGE_CREATE (); MESSAGE_ADD_STACK_REFERENCE(reference); MESSAGE_ADD_SRC(origin); + MESSAGE_ADD_PRIVILEGES(ctx); MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_ID (methodID); MESSAGE_ADD_ARGS (methodID, args); MESSAGE_SEND (); MESSAGE_RECEIVE_VALUE (reference, type, result); - - if (factory->result_map[reference]->errorOccurred == PR_TRUE && - factory->result_map[reference]->errorMessage.Find("LiveConnectPermissionNeeded") == 0) - { - MESSAGE_CREATE (); - MESSAGE_ADD_STACK_REFERENCE(reference); - MESSAGE_ADD_SRC(origin); - MESSAGE_ADD_PRIVILEGES(); - MESSAGE_ADD_FUNC(); - MESSAGE_ADD_REFERENCE (clazz); - MESSAGE_ADD_ID (methodID); - MESSAGE_ADD_ARGS (methodID, args); - MESSAGE_SEND (); - MESSAGE_RECEIVE_VALUE (reference, type, result); - - // if everything was OK, clear exception from previous access exception - if (factory->result_map[reference]->errorOccurred == PR_FALSE) - ExceptionClear(); - } - DecrementContextCounter (); return NS_OK; @@ -4497,26 +4781,12 @@ MESSAGE_CREATE (); MESSAGE_ADD_STACK_REFERENCE(reference); MESSAGE_ADD_SRC(origin); + MESSAGE_ADD_PRIVILEGES(ctx); MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_ID (fieldID); MESSAGE_SEND (); MESSAGE_RECEIVE_VALUE (reference, type, result); - - if (factory->result_map[reference]->errorOccurred == PR_TRUE && - factory->result_map[reference]->errorMessage.Find("LiveConnectPermissionNeeded") == 0) - { - MESSAGE_CREATE (); - MESSAGE_ADD_STACK_REFERENCE(reference); - MESSAGE_ADD_SRC(origin); - MESSAGE_ADD_PRIVILEGES(); - MESSAGE_ADD_FUNC(); - MESSAGE_ADD_REFERENCE (clazz); - MESSAGE_ADD_ID (fieldID); - MESSAGE_SEND (); - MESSAGE_RECEIVE_VALUE (reference, type, result); - } - DecrementContextCounter (); return NS_OK; @@ -4540,6 +4810,7 @@ MESSAGE_CREATE (); MESSAGE_ADD_STACK_REFERENCE(-1); MESSAGE_ADD_SRC(origin); + MESSAGE_ADD_PRIVILEGES(ctx); MESSAGE_ADD_FUNC(); MESSAGE_ADD_TYPE (type); MESSAGE_ADD_REFERENCE (clazz); @@ -4581,7 +4852,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_STRING (name); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jclass, clazz); DecrementContextCounter (); return NS_OK; @@ -4598,7 +4868,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (sub); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jclass, super); DecrementContextCounter (); return NS_OK; @@ -4617,7 +4886,6 @@ MESSAGE_ADD_REFERENCE (sub); MESSAGE_ADD_REFERENCE (super); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_BOOLEAN (reference, result); DecrementContextCounter (); return NS_OK; @@ -4651,11 +4919,9 @@ MESSAGE_ADD_STACK_REFERENCE(reference); MESSAGE_ADD_FUNC(); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); // FIXME: potential leak here: when is result free'd? MESSAGE_RECEIVE_REFERENCE (reference, jthrowable, result); DecrementContextCounter (); - printf ("GOT RESUlT: %x\n", *result); return NS_OK; } @@ -4697,7 +4963,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (lobj); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE(reference, jobject, result); DecrementContextCounter (); return NS_OK; @@ -4712,7 +4977,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (gref); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); factory->references.UnreferenceObject (ID (gref)); return NS_OK; } @@ -4726,7 +4990,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (obj); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); // factory->references.UnreferenceObject (ID (obj)); return NS_OK; } @@ -4763,7 +5026,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (obj); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jclass, result); DecrementContextCounter (); return NS_OK; @@ -4782,7 +5044,6 @@ MESSAGE_ADD_REFERENCE (obj); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_BOOLEAN (reference, result); DecrementContextCounter (); return NS_OK; @@ -4801,15 +5062,10 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_STRING (name); - std::cout << "Args: " << clazz << " " << name << " " << sig << " " << *id << "@" << id << std::endl; - printf ("SIGNATURE: %s %s %s\n", __func__, name, sig); - std::cout << "Storing it at: " << id << " Currently it is: " << *id << std::endl; MESSAGE_ADD_STRING (sig); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_ID (reference, jmethodID, id, sig); DecrementContextCounter (); - std::cout << "GETMETHODID -- Name: " << name << " SIG: " << sig << " METHOD: " << id << " METHODVAL: " << *id << std::endl; return NS_OK; } @@ -4826,10 +5082,8 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_STRING (name); - printf ("SIGNATURE: %s %s %s\n", __func__, name, sig); MESSAGE_ADD_STRING (sig); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_ID (reference, jfieldID, id, sig); DecrementContextCounter (); return NS_OK; @@ -4848,10 +5102,8 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_STRING (name); - printf ("SIGNATURE: %s %s\n", __func__, sig); MESSAGE_ADD_STRING (sig); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_ID (reference, jmethodID, id, sig); DecrementContextCounter (); return NS_OK; @@ -4870,10 +5122,8 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_STRING (name); - printf ("SIGNATURE: %s %s\n", __func__, sig); MESSAGE_ADD_STRING (sig); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_ID (reference, jfieldID, id, sig); DecrementContextCounter (); return NS_OK; @@ -4892,7 +5142,6 @@ MESSAGE_ADD_SIZE (len); MESSAGE_ADD_STRING_UCS (unicode, len); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jstring, result); DecrementContextCounter (); return NS_OK; @@ -4909,7 +5158,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (str); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_SIZE (reference, result); DecrementContextCounter (); return NS_OK; @@ -4930,7 +5178,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (str); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_STRING_UCS (reference, result); DecrementContextCounter (); return NS_OK; @@ -4956,7 +5203,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_STRING_UTF (utf); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jstring, result); DecrementContextCounter (); return NS_OK; @@ -4973,7 +5219,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (str); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_SIZE (reference, result); DecrementContextCounter (); return NS_OK; @@ -4994,7 +5239,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (str); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_STRING (reference, char, result); DecrementContextCounter (); return NS_OK; @@ -5020,7 +5264,6 @@ MESSAGE_ADD_FUNC(); MESSAGE_ADD_REFERENCE (array); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_SIZE (reference, result); DecrementContextCounter (); return NS_OK; @@ -5041,7 +5284,6 @@ MESSAGE_ADD_REFERENCE (clazz); MESSAGE_ADD_REFERENCE (init); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jobjectArray, result); DecrementContextCounter (); return NS_OK; @@ -5060,7 +5302,6 @@ MESSAGE_ADD_REFERENCE (array); MESSAGE_ADD_SIZE (index); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jobject, result); DecrementContextCounter (); return NS_OK; @@ -5079,7 +5320,6 @@ MESSAGE_ADD_SIZE (index); MESSAGE_ADD_REFERENCE (val); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); return NS_OK; } @@ -5097,7 +5337,6 @@ MESSAGE_ADD_TYPE (element_type); MESSAGE_ADD_SIZE (len); MESSAGE_SEND (); - printf("MSG SEND COMPLETE. NOW RECEIVING...\n"); MESSAGE_RECEIVE_REFERENCE (reference, jarray, result); DecrementContextCounter (); return NS_OK; @@ -5246,6 +5485,37 @@ return NS_ERROR_OUT_OF_MEMORY; } + // Make sure the plugin data directory exists, creating it if + // necessary. + data_directory = g_strconcat (getenv ("HOME"), "/.icedteaplugin", NULL); + if (!data_directory) + { + PLUGIN_ERROR ("Failed to create data directory name."); + return NS_ERROR_OUT_OF_MEMORY; + } + + if (!g_file_test (data_directory, + (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) + { + int file_error = 0; + + file_error = g_mkdir (data_directory, 0700); + if (file_error != 0) + { + PLUGIN_ERROR_THREE ("Failed to create data directory", + data_directory, + strerror (errno)); + + if (data_directory) + { + g_free (data_directory); + data_directory = NULL; + }; + + return NS_ERROR_UNEXPECTED; + } + } + if (factory_created == PR_TRUE) { // wait for factory to initialize --- cacao-oj6-6b12.orig/Makefile.in +++ cacao-oj6-6b12/Makefile.in @@ -97,6 +97,7 @@ ALSA_LIBS = @ALSA_LIBS@ ALT_CACAO_SRC_ZIP = @ALT_CACAO_SRC_ZIP@ ALT_JAR_CMD = @ALT_JAR_CMD@ +ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP = @ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP@ ALT_NETBEANS_PROFILER_SRC_ZIP = @ALT_NETBEANS_PROFILER_SRC_ZIP@ ALT_OPENJDK_SRC_ZIP = @ALT_OPENJDK_SRC_ZIP@ ALT_VISUALVM_SRC_ZIP = @ALT_VISUALVM_SRC_ZIP@ @@ -286,18 +287,18 @@ NETBEANS_BASIC_CLUSTER = a7ea855f475fa3a982f094a45c155ab4 NETBEANS_PROFILER_MD5SUM = ff8e8abc42df6c6749e6b02bcf7bb0a5 VISUALVM_MD5SUM = 4b55bc623418818793392bb233da2927 -@ENABLE_LIVECONNECT_FALSE@ICEDTEAPLUGIN_CLEAN = -@ENABLE_LIVECONNECT_TRUE@ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin -@ENABLE_LIVECONNECT_FALSE@ICEDTEAPLUGIN_TARGET = -@ENABLE_LIVECONNECT_TRUE@ICEDTEAPLUGIN_TARGET = IcedTeaPlugin.so -@ENABLE_LIVECONNECT_FALSE@PLUGIN_PATCH = patches/icedtea-plugin.patch -@ENABLE_LIVECONNECT_TRUE@PLUGIN_PATCH = patches/icedtea-liveconnect.patch -@ENABLE_LIVECONNECT_FALSE@LIVECONNECT_DIR = -@ENABLE_LIVECONNECT_TRUE@LIVECONNECT_DIR = -C lib/rt netscape -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_FALSE@GCJWEBPLUGIN_CLEAN = -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@GCJWEBPLUGIN_CLEAN = clean-gcjwebplugin -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_FALSE@GCJWEBPLUGIN_TARGET = -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@GCJWEBPLUGIN_TARGET = gcjwebplugin.so +@ENABLE_GCJWEBPLUGIN_FALSE@GCJWEBPLUGIN_CLEAN = +@ENABLE_GCJWEBPLUGIN_TRUE@GCJWEBPLUGIN_CLEAN = clean-gcjwebplugin +@ENABLE_GCJWEBPLUGIN_FALSE@GCJWEBPLUGIN_TARGET = +@ENABLE_GCJWEBPLUGIN_TRUE@GCJWEBPLUGIN_TARGET = gcjwebplugin.so +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_FALSE@ICEDTEAPLUGIN_CLEAN = +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_FALSE@ICEDTEAPLUGIN_TARGET = +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ICEDTEAPLUGIN_TARGET = IcedTeaPlugin.so +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_FALSE@PLUGIN_PATCH = patches/icedtea-plugin.patch +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@PLUGIN_PATCH = patches/icedtea-liveconnect.patch +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_FALSE@LIVECONNECT_DIR = +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@LIVECONNECT_DIR = -C lib/rt netscape @ENABLE_PULSE_JAVA_FALSE@PULSE_JAVA_DIR = # include the makefile in pulseaudio subdir @@ -442,7 +443,8 @@ @USE_ALT_CACAO_SRC_ZIP_FALSE@CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz @USE_ALT_CACAO_SRC_ZIP_TRUE@CACAO_SRC_ZIP = $(ALT_CACAO_SRC_ZIP) NETBEANS_BASIC_CLUSTER_URL = http://nbi.netbeans.org/files/documents/210/2056/ -NETBEANS_BASIC_CLUSTER_SRC_ZIP = netbeans-6.1-200805300101-basic_cluster-src.zip +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@NETBEANS_BASIC_CLUSTER_SRC_ZIP = netbeans-6.1-200805300101-basic_cluster-src.zip +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_TRUE@NETBEANS_BASIC_CLUSTER_SRC_ZIP = $(ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP) NETBEANS_PROFILER_URL = http://icedtea.classpath.org/visualvm/ @USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@NETBEANS_PROFILER_SRC_ZIP = netbeans-profiler-visualvm_preview2.tar.gz @USE_ALT_NETBEANS_PROFILER_SRC_ZIP_TRUE@NETBEANS_PROFILER_SRC_ZIP = $(ALT_NETBEANS_PROFILER_SRC_ZIP) @@ -545,12 +547,12 @@ @WITH_ICEDTEA_FALSE@@WITH_OPENJDK_FALSE@ICEDTEA_HOME = $(abs_top_builddir)/bootstrap/icedtea @WITH_ICEDTEA_TRUE@@WITH_OPENJDK_FALSE@ICEDTEA_HOME = $(SYSTEM_ICEDTEA_DIR) @WITH_OPENJDK_TRUE@ICEDTEA_HOME = $(SYSTEM_OPENJDK_DIR) -@WITH_CACAO_FALSE@@WITH_ICEDTEA_TRUE@MEMORY_LIMIT = -J-Xmx512m +@WITH_ICEDTEA_FALSE@@WITH_OPENJDK_FALSE@MEMORY_LIMIT = +@WITH_ICEDTEA_FALSE@@WITH_OPENJDK_TRUE@MEMORY_LIMIT = -J-Xmx512m # OpenJDK Targets # =============== -@WITH_CACAO_TRUE@@WITH_ICEDTEA_TRUE@MEMORY_LIMIT = -J-Xmx1024m -@WITH_ICEDTEA_FALSE@MEMORY_LIMIT = +@WITH_ICEDTEA_TRUE@MEMORY_LIMIT = -J-Xmx1024m @WITH_CACAO_FALSE@ICEDTEA_BUILD_TARGET = @WITH_CACAO_TRUE@ICEDTEA_BUILD_TARGET = j2se_only @WITH_CACAO_FALSE@ICEDTEA_DEBUG_BUILD_TARGET = debug_build @@ -882,8 +884,8 @@ rm -rf openjdk rm -rf hotspot-tools rm -rf rt/netscape -@ENABLE_LIVECONNECT_TRUE@ rm -f IcedTeaPlugin.o IcedTeaPlugin.so -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ rm -f gcjwebplugin.so +@ENABLE_PLUGIN_TRUE@ rm -f IcedTeaPlugin.o IcedTeaPlugin.so +@ENABLE_GCJWEBPLUGIN_TRUE@@ENABLE_PLUGIN_FALSE@ rm -f gcjwebplugin.so rm -rf cacao rm -rf visualvm rm -rf netbeans @@ -933,17 +935,16 @@ @USE_ALT_CACAO_SRC_ZIP_FALSE@@USE_SYSTEM_CACAO_FALSE@@WITH_CACAO_TRUE@ fi ; \ @USE_ALT_CACAO_SRC_ZIP_FALSE@@USE_SYSTEM_CACAO_FALSE@@WITH_CACAO_TRUE@ $(WGET) $(CACAO_URL)$(CACAO_SRC_ZIP) -O $(CACAO_SRC_ZIP); \ @USE_ALT_CACAO_SRC_ZIP_FALSE@@USE_SYSTEM_CACAO_FALSE@@WITH_CACAO_TRUE@ fi -@WITH_VISUALVM_TRUE@ if ! echo "$(NETBEANS_BASIC_CLUSTER_MD5SUM) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP)" \ -@WITH_VISUALVM_TRUE@ | $(MD5SUM) --check ; \ -@WITH_VISUALVM_TRUE@ then \ -@WITH_VISUALVM_TRUE@ if [ $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ] ; \ -@WITH_VISUALVM_TRUE@ then \ -@WITH_VISUALVM_TRUE@ mv $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP).old ; \ -@WITH_VISUALVM_TRUE@ fi ; \ -@WITH_VISUALVM_TRUE@ $(WGET) $(NETBEANS_BASIC_CLUSTER_URL)$(NETBEANS_BASIC_CLUSTER_SRC_ZIP) \ -@WITH_VISUALVM_TRUE@ -O $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ; \ -@WITH_VISUALVM_TRUE@ fi - +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ if ! echo "$(NETBEANS_BASIC_CLUSTER_MD5SUM) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP)" \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ | $(MD5SUM) --check ; \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ then \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ if [ $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ] ; \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ then \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ mv $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP).old ; \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ fi ; \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ $(WGET) $(NETBEANS_BASIC_CLUSTER_URL)$(NETBEANS_BASIC_CLUSTER_SRC_ZIP) \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ -O $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ; \ +@USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ fi @USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ if ! echo "$(NETBEANS_PROFILER_MD5SUM) $(NETBEANS_PROFILER_SRC_ZIP)" \ @USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ | $(MD5SUM) --check ; \ @USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@ then \ @@ -1069,16 +1070,16 @@ if ! test x$${all_patches_ok} = "xyes"; then \ echo ERROR patch $${all_patches_ok} FAILED! ; \ echo WARNING make clean-patch before retrying a fix ; \ - false; \ + exit 2; \ fi ; \ - if [ -e $(abs_top_srcdir)/.hg ]; then \ + if [ -e $(abs_top_srcdir)/.hg ] && which $(HG) >/dev/null; then \ revision="-r`(cd $(srcdir); $(HG) tip --template '{rev}')`" ; \ fi ; \ icedtea_version="$(PACKAGE_VERSION)$${revision}" ; \ sed -i "s#IcedTea6#IcedTea6 $${icedtea_version}#" openjdk/jdk/make/common/shared/Defs.gmk -@ENABLE_LIVECONNECT_TRUE@ cp -a plugin/icedtea/sun/applet/*java openjdk/jdk/src/share/classes/sun/applet/ -@ENABLE_LIVECONNECT_TRUE@ cp -a plugin/icedtea/netscape rt/ +@ENABLE_PLUGIN_TRUE@ cp -a plugin/icedtea/sun/applet/*java openjdk/jdk/src/share/classes/sun/applet/ +@ENABLE_PLUGIN_TRUE@ cp -a plugin/icedtea/netscape rt/ clean-patch: rm -f stamps/patch.stamp @@ -1131,7 +1132,7 @@ if ! test x$${all_patches_ok} = "xyes"; then \ echo ERROR patch $${all_patches_ok} FAILED! ; \ echo WARNING make clean-patch before retrying a fix ; \ - false; \ + exit 2; \ fi ; clean-patch-fsg: @@ -1221,7 +1222,7 @@ if ! test x$${all_patches_ok} = "xyes"; then \ echo ERROR patch $${all_patches_ok} FAILED! ; \ echo WARNING make clean-patch before retrying a fix ; \ - false; \ + exit 2; \ fi clean-patch-ecj: @@ -1361,14 +1362,14 @@ $(ICEDTEA_ENV) \ -C openjdk/control/make/ \ $(ICEDTEA_BUILD_TARGET) -@ENABLE_LIVECONNECT_TRUE@ cp -pPRf IcedTeaPlugin.so \ -@ENABLE_LIVECONNECT_TRUE@ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) -@ENABLE_LIVECONNECT_TRUE@ cp -pPRf IcedTeaPlugin.so \ -@ENABLE_LIVECONNECT_TRUE@ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ +@ENABLE_GCJWEBPLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ +@ENABLE_GCJWEBPLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf IcedTeaPlugin.so \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf IcedTeaPlugin.so \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) @ENABLE_PULSE_JAVA_TRUE@ cp -pPRf libpulse-java.so \ @ENABLE_PULSE_JAVA_TRUE@ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) @ENABLE_PULSE_JAVA_TRUE@ cp -pPRf libpulse-java.so \ @@ -1415,14 +1416,14 @@ $(ICEDTEA_ENV) \ -C openjdk/control/make \ $(ICEDTEA_DEBUG_BUILD_TARGET) -@ENABLE_LIVECONNECT_TRUE@ cp -pPRf IcedTeaPlugin.so \ -@ENABLE_LIVECONNECT_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) -@ENABLE_LIVECONNECT_TRUE@ cp -pPRf IcedTeaPlugin.so \ -@ENABLE_LIVECONNECT_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ +@ENABLE_GCJWEBPLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_TRUE@ cp -pPRf gcjwebplugin.so \ +@ENABLE_GCJWEBPLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf IcedTeaPlugin.so \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ cp -pPRf IcedTeaPlugin.so \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) @ENABLE_PULSE_JAVA_TRUE@ cp -pPRf libpulse-java.so \ @ENABLE_PULSE_JAVA_TRUE@ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) @ENABLE_PULSE_JAVA_TRUE@ cp -pPRf libpulse-java.so \ @@ -1742,36 +1743,36 @@ rm -rf cacao rm -f stamps/cacao.stamp +# gcjwebplugin.so. +@ENABLE_GCJWEBPLUGIN_TRUE@gcjwebplugin.so: gcjwebplugin.cc +@ENABLE_GCJWEBPLUGIN_TRUE@ $(CXX) $(CXXFLAGS) $(MOZILLA_CFLAGS) \ +@ENABLE_GCJWEBPLUGIN_TRUE@ $(MOZILLA_LIBS) $(GLIB_CFLAGS) $(GLIB_LIBS) \ +@ENABLE_GCJWEBPLUGIN_TRUE@ $(GTK_CFLAGS) $(GTK_LIBS) \ +@ENABLE_GCJWEBPLUGIN_TRUE@ -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ +@ENABLE_GCJWEBPLUGIN_TRUE@ -fPIC -shared -o $@ $< + +@ENABLE_GCJWEBPLUGIN_TRUE@clean-gcjwebplugin: +@ENABLE_GCJWEBPLUGIN_TRUE@ rm -f gcjwebplugin.so # IcedTeaPlugin.so. # Separate compile and link invocations to ensure intermediate object # is listed before -l options. See: # http://developer.mozilla.org/en/docs/XPCOM_Glue -@ENABLE_LIVECONNECT_TRUE@IcedTeaPlugin.o: IcedTeaPlugin.cc -@ENABLE_LIVECONNECT_TRUE@ $(CXX) $(CXXFLAGS) \ -@ENABLE_LIVECONNECT_TRUE@ -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ -@ENABLE_LIVECONNECT_TRUE@ $(GTK_CFLAGS) \ -@ENABLE_LIVECONNECT_TRUE@ $(XULRUNNER_CFLAGS) \ -@ENABLE_LIVECONNECT_TRUE@ -fPIC -c -o $@ $< -@ENABLE_LIVECONNECT_TRUE@IcedTeaPlugin.so: IcedTeaPlugin.o -@ENABLE_LIVECONNECT_TRUE@ $(CXX) $(CXXFLAGS) \ -@ENABLE_LIVECONNECT_TRUE@ $< \ -@ENABLE_LIVECONNECT_TRUE@ $(GTK_LIBS) \ -@ENABLE_LIVECONNECT_TRUE@ $(XULRUNNER_LIBS) \ -@ENABLE_LIVECONNECT_TRUE@ -shared -o $@ - -@ENABLE_LIVECONNECT_TRUE@clean-IcedTeaPlugin: -@ENABLE_LIVECONNECT_TRUE@ rm -f IcedTeaPlugin.o -@ENABLE_LIVECONNECT_TRUE@ rm -f IcedTeaPlugin.so -# gcjwebplugin.so. -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@gcjwebplugin.so: gcjwebplugin.cc -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ $(CXX) $(CXXFLAGS) $(MOZILLA_CFLAGS) \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ $(MOZILLA_LIBS) $(GLIB_CFLAGS) $(GLIB_LIBS) \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ $(GTK_CFLAGS) $(GTK_LIBS) \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ -fPIC -shared -o $@ $< - -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@clean-gcjwebplugin: -@ENABLE_LIVECONNECT_FALSE@@ENABLE_PLUGIN_TRUE@ rm -f gcjwebplugin.so +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@IcedTeaPlugin.o: IcedTeaPlugin.cc +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(CXX) $(CXXFLAGS) \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(GTK_CFLAGS) \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(XULRUNNER_CFLAGS) \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ -fPIC -c -o $@ $< +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@IcedTeaPlugin.so: IcedTeaPlugin.o +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(CXX) $(CXXFLAGS) \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $< \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(GTK_LIBS) \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ $(XULRUNNER_LIBS) \ +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ -shared -o $@ + +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@clean-IcedTeaPlugin: +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ rm -f IcedTeaPlugin.o +@ENABLE_GCJWEBPLUGIN_FALSE@@ENABLE_PLUGIN_TRUE@ rm -f IcedTeaPlugin.so # PulseAudio based mixer # (pulse-java) @@ -1870,31 +1871,39 @@ rm -f test/jtreg.jar rm -f stamps/jtreg.stamp -check-hotspot: jtreg +check-hotspot: stamps/jtreg.stamp mkdir -p test/hotspot/JTwork test/hotspot/JTreport $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ -w:test/hotspot/JTwork -r:test/hotspot/JTreport \ -jdk:`pwd`/$(BUILD_OUTPUT_DIR)/j2sdk-image \ - `pwd`/openjdk/hotspot/test + `pwd`/openjdk/hotspot/test \ + | tee test/$@.log -check-langtools: jtreg +check-langtools: stamps/jtreg.stamp mkdir -p test/langtools/JTwork test/langtools/JTreport $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ -w:test/langtools/JTwork -r:test/langtools/JTreport \ -jdk:`pwd`/$(BUILD_OUTPUT_DIR)/j2sdk-image \ - `pwd`/openjdk/langtools/test + `pwd`/openjdk/langtools/test \ + | tee test/$@.log -check-jdk: jtreg +check-jdk: stamps/jtreg.stamp mkdir -p test/jdk/JTwork test/jdk/JTreport $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ -w:test/jdk/JTwork -r:test/jdk/JTreport \ -jdk:`pwd`/$(BUILD_OUTPUT_DIR)/j2sdk-image \ - `pwd`/openjdk/jdk/test + `pwd`/openjdk/jdk/test \ + | tee test/$@.log clean-jtreg-reports: rm -rf test/hotspot test/langtools test/jdk + rm -f test/check-*.log test/jtreg-summary.log jtregcheck: jtreg check-hotspot check-langtools check-jdk + for i in hotspot langtools jdk; do \ + echo "--------------- jtreg console summary for $$i ---------------"; \ + egrep -v '^(Passed:|Directory)' test/check-$$i.log; \ + done | tee test/jtreg-summary.log check-local: jtregcheck --- cacao-oj6-6b12.orig/configure.ac +++ cacao-oj6-6b12/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.61]) -AC_INIT([icedtea6], [1.3], [distro-pkg-dev@openjdk.java.net]) +AC_INIT([icedtea6], [1.3.1], [distro-pkg-dev@openjdk.java.net]) AM_INIT_AUTOMAKE([1.10 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) AC_CANONICAL_HOST @@ -116,17 +116,17 @@ ]) AC_SUBST(SYSTEM_ANT_DIR) -AC_ARG_ENABLE([gcjwebplugin], - [AS_HELP_STRING([--disable-gcjwebplugin], +AC_ARG_ENABLE([liveconnect], + [AS_HELP_STRING([--disable-liveconnect], [Disable compilation of browser plugin])], [enable_plugin="${enableval}"], [enable_plugin="yes"]) AM_CONDITIONAL(ENABLE_PLUGIN, test "x${enable_plugin}" = "xyes") -AC_ARG_ENABLE([liveconnect], - [AS_HELP_STRING([--enable-liveconnect], - [Enable experimental LiveConnect plugin])], - [enable_liveconnect="yes"], [enable_liveconnect="no"]) -AM_CONDITIONAL(ENABLE_LIVECONNECT, test "x${enable_liveconnect}" = "xyes") +AC_ARG_ENABLE([gcjwebplugin], + [AS_HELP_STRING([--enable-gcjwebplugin], + [Build the GCJ Web Plugin plugin (deprecated)])], + [enable_gcjwebplugin="yes"], [enable_gcjwebplugin="no"]) +AM_CONDITIONAL(ENABLE_GCJWEBPLUGIN, test "x${enable_gcjwebplugin}" = "xyes") AC_ARG_ENABLE([pulse-java], [AS_HELP_STRING([--enable-pulse-java], @@ -247,8 +247,9 @@ WITH_OPENJDK_SRC_DIR WITH_VISUALVM_SRC_ZIP WITH_NETBEANS_PROFILER_SRC_ZIP +WITH_NETBEANS_BASIC_CLUSTER_SRC_ZIP WITH_ALT_JAR_BINARY -AC_CHECK_WITH_CACAO +AC_CHECK_ENABLE_CACAO AC_CHECK_WITH_CACAO_HOME AC_CHECK_WITH_CACAO_SRC_ZIP ENABLE_OPTIMIZATIONS @@ -383,14 +384,8 @@ dnl Check for plugin support headers and libraries. dnl FIXME: use unstable -if test "x${enable_liveconnect}" = "xyes" +if test "x${enable_gcjwebplugin}" = "xyes" then - PKG_CHECK_MODULES(XULRUNNER, \ - nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9) - PKG_CHECK_MODULES(GTK, gtk+-2.0) -else - if test "x${enable_plugin}" = "xyes" - then PKG_CHECK_MODULES(MOZILLA, mozilla-plugin libxul-unstable, \ [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no]) if test "x${MOZILLA_FOUND}" = xno @@ -437,6 +432,12 @@ AC_SUBST(GLIB_LIBS) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) +else + if test "x${enable_plugin}" = "xyes" + then + PKG_CHECK_MODULES(XULRUNNER, \ + nspr mozilla-js mozilla-plugin libxul-unstable >= 1.9) + PKG_CHECK_MODULES(GTK, gtk+-2.0) fi fi --- cacao-oj6-6b12.orig/Makefile.am +++ cacao-oj6-6b12/Makefile.am @@ -9,7 +9,13 @@ NETBEANS_PROFILER_MD5SUM = ff8e8abc42df6c6749e6b02bcf7bb0a5 VISUALVM_MD5SUM = 4b55bc623418818793392bb233da2927 -if ENABLE_LIVECONNECT +if ENABLE_GCJWEBPLUGIN +GCJWEBPLUGIN_CLEAN = clean-gcjwebplugin +GCJWEBPLUGIN_TARGET = gcjwebplugin.so +else +GCJWEBPLUGIN_CLEAN = +GCJWEBPLUGIN_TARGET = +if ENABLE_PLUGIN ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin ICEDTEAPLUGIN_TARGET = IcedTeaPlugin.so PLUGIN_PATCH = patches/icedtea-liveconnect.patch @@ -19,12 +25,6 @@ ICEDTEAPLUGIN_TARGET = PLUGIN_PATCH = patches/icedtea-plugin.patch LIVECONNECT_DIR = -if ENABLE_PLUGIN -GCJWEBPLUGIN_CLEAN = clean-gcjwebplugin -GCJWEBPLUGIN_TARGET = gcjwebplugin.so -else -GCJWEBPLUGIN_CLEAN = -GCJWEBPLUGIN_TARGET = endif endif @@ -64,10 +64,10 @@ rm -rf openjdk rm -rf hotspot-tools rm -rf rt/netscape -if ENABLE_LIVECONNECT +if ENABLE_PLUGIN rm -f IcedTeaPlugin.o IcedTeaPlugin.so else -if ENABLE_PLUGIN +if ENABLE_GCJWEBPLUGIN rm -f gcjwebplugin.so endif endif @@ -295,7 +295,12 @@ endif NETBEANS_BASIC_CLUSTER_URL = http://nbi.netbeans.org/files/documents/210/2056/ -NETBEANS_BASIC_CLUSTER_SRC_ZIP = netbeans-6.1-200805300101-basic_cluster-src.zip + +if USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP + NETBEANS_BASIC_CLUSTER_SRC_ZIP = $(ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP) +else + NETBEANS_BASIC_CLUSTER_SRC_ZIP = netbeans-6.1-200805300101-basic_cluster-src.zip +endif NETBEANS_PROFILER_URL = http://icedtea.classpath.org/visualvm/ @@ -343,6 +348,8 @@ endif endif if WITH_VISUALVM +if USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP +else if ! echo "$(NETBEANS_BASIC_CLUSTER_MD5SUM) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP)" \ | $(MD5SUM) --check ; \ then \ @@ -353,7 +360,7 @@ $(WGET) $(NETBEANS_BASIC_CLUSTER_URL)$(NETBEANS_BASIC_CLUSTER_SRC_ZIP) \ -O $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ; \ fi - +endif if USE_ALT_NETBEANS_PROFILER_SRC_ZIP else if ! echo "$(NETBEANS_PROFILER_MD5SUM) $(NETBEANS_PROFILER_SRC_ZIP)" \ @@ -621,15 +628,15 @@ if ! test x$${all_patches_ok} = "xyes"; then \ echo ERROR patch $${all_patches_ok} FAILED! ; \ echo WARNING make clean-patch before retrying a fix ; \ - false; \ + exit 2; \ fi ; \ - if [ -e $(abs_top_srcdir)/.hg ]; then \ + if [ -e $(abs_top_srcdir)/.hg ] && which $(HG) >/dev/null; then \ revision="-r`(cd $(srcdir); $(HG) tip --template '{rev}')`" ; \ fi ; \ icedtea_version="$(PACKAGE_VERSION)$${revision}" ; \ sed -i "s#IcedTea6#IcedTea6 $${icedtea_version}#" openjdk/jdk/make/common/shared/Defs.gmk -if ENABLE_LIVECONNECT +if ENABLE_PLUGIN cp -a plugin/icedtea/sun/applet/*java openjdk/jdk/src/share/classes/sun/applet/ cp -a plugin/icedtea/netscape rt/ endif @@ -685,7 +692,7 @@ if ! test x$${all_patches_ok} = "xyes"; then \ echo ERROR patch $${all_patches_ok} FAILED! ; \ echo WARNING make clean-patch before retrying a fix ; \ - false; \ + exit 2; \ fi ; clean-patch-fsg: @@ -779,7 +786,7 @@ if ! test x$${all_patches_ok} = "xyes"; then \ echo ERROR patch $${all_patches_ok} FAILED! ; \ echo WARNING make clean-patch before retrying a fix ; \ - false; \ + exit 2; \ fi clean-patch-ecj: @@ -925,14 +932,14 @@ # =============== if WITH_ICEDTEA -if WITH_CACAO MEMORY_LIMIT = -J-Xmx1024m else +if WITH_OPENJDK MEMORY_LIMIT = -J-Xmx512m -endif else MEMORY_LIMIT = endif +endif if WITH_CACAO ICEDTEA_BUILD_TARGET=j2se_only @@ -954,16 +961,16 @@ $(ICEDTEA_ENV) \ -C openjdk/control/make/ \ $(ICEDTEA_BUILD_TARGET) -if ENABLE_LIVECONNECT - cp -pPRf IcedTeaPlugin.so \ +if ENABLE_GCJWEBPLUGIN + cp -pPRf gcjwebplugin.so \ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - cp -pPRf IcedTeaPlugin.so \ + cp -pPRf gcjwebplugin.so \ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) else if ENABLE_PLUGIN - cp -pPRf gcjwebplugin.so \ + cp -pPRf IcedTeaPlugin.so \ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - cp -pPRf gcjwebplugin.so \ + cp -pPRf IcedTeaPlugin.so \ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) endif endif @@ -1017,16 +1024,16 @@ $(ICEDTEA_ENV) \ -C openjdk/control/make \ $(ICEDTEA_DEBUG_BUILD_TARGET) -if ENABLE_LIVECONNECT - cp -pPRf IcedTeaPlugin.so \ +if ENABLE_GCJWEBPLUGIN + cp -pPRf gcjwebplugin.so \ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - cp -pPRf IcedTeaPlugin.so \ + cp -pPRf gcjwebplugin.so \ $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) else if ENABLE_PLUGIN - cp -pPRf gcjwebplugin.so \ + cp -pPRf IcedTeaPlugin.so \ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - cp -pPRf gcjwebplugin.so \ + cp -pPRf IcedTeaPlugin.so \ $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) endif endif @@ -1386,7 +1393,19 @@ rm -rf cacao rm -f stamps/cacao.stamp -if ENABLE_LIVECONNECT +if ENABLE_GCJWEBPLUGIN +# gcjwebplugin.so. +gcjwebplugin.so: gcjwebplugin.cc + $(CXX) $(CXXFLAGS) $(MOZILLA_CFLAGS) \ + $(MOZILLA_LIBS) $(GLIB_CFLAGS) $(GLIB_LIBS) \ + $(GTK_CFLAGS) $(GTK_LIBS) \ + -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ + -fPIC -shared -o $@ $< + +clean-gcjwebplugin: + rm -f gcjwebplugin.so +else +if ENABLE_PLUGIN # IcedTeaPlugin.so. # Separate compile and link invocations to ensure intermediate object # is listed before -l options. See: @@ -1407,18 +1426,6 @@ clean-IcedTeaPlugin: rm -f IcedTeaPlugin.o rm -f IcedTeaPlugin.so -else -if ENABLE_PLUGIN -# gcjwebplugin.so. -gcjwebplugin.so: gcjwebplugin.cc - $(CXX) $(CXXFLAGS) $(MOZILLA_CFLAGS) \ - $(MOZILLA_LIBS) $(GLIB_CFLAGS) $(GLIB_LIBS) \ - $(GTK_CFLAGS) $(GTK_LIBS) \ - -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ - -fPIC -shared -o $@ $< - -clean-gcjwebplugin: - rm -f gcjwebplugin.so endif endif @@ -1532,31 +1539,39 @@ rm -f test/jtreg.jar rm -f stamps/jtreg.stamp -check-hotspot: jtreg +check-hotspot: stamps/jtreg.stamp mkdir -p test/hotspot/JTwork test/hotspot/JTreport $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ -w:test/hotspot/JTwork -r:test/hotspot/JTreport \ -jdk:`pwd`/$(BUILD_OUTPUT_DIR)/j2sdk-image \ - `pwd`/openjdk/hotspot/test + `pwd`/openjdk/hotspot/test \ + | tee test/$@.log -check-langtools: jtreg +check-langtools: stamps/jtreg.stamp mkdir -p test/langtools/JTwork test/langtools/JTreport $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ -w:test/langtools/JTwork -r:test/langtools/JTreport \ -jdk:`pwd`/$(BUILD_OUTPUT_DIR)/j2sdk-image \ - `pwd`/openjdk/langtools/test + `pwd`/openjdk/langtools/test \ + | tee test/$@.log -check-jdk: jtreg +check-jdk: stamps/jtreg.stamp mkdir -p test/jdk/JTwork test/jdk/JTreport $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ -w:test/jdk/JTwork -r:test/jdk/JTreport \ -jdk:`pwd`/$(BUILD_OUTPUT_DIR)/j2sdk-image \ - `pwd`/openjdk/jdk/test + `pwd`/openjdk/jdk/test \ + | tee test/$@.log clean-jtreg-reports: rm -rf test/hotspot test/langtools test/jdk + rm -f test/check-*.log test/jtreg-summary.log jtregcheck: jtreg check-hotspot check-langtools check-jdk + for i in hotspot langtools jdk; do \ + echo "--------------- jtreg console summary for $$i ---------------"; \ + egrep -v '^(Passed:|Directory)' test/check-$$i.log; \ + done | tee test/jtreg-summary.log check-local: jtregcheck --- cacao-oj6-6b12.orig/debian/JB-policytool.desktop.in +++ cacao-oj6-6b12/debian/JB-policytool.desktop.in @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=@vendor@ Java @RELEASE@ Policy Tool +Name[fi]=@vendor@ Java @RELEASE@ - käytäntötyökalu +Comment=@vendor@ Java @RELEASE@ Policy Tool +Comment[fi]=@vendor@ Java @RELEASE@ - käytäntötyökalu +Exec=/@basedir@/bin/policytool +Terminal=false +Type=Application +Icon=@basename@ +Categories=Settings; --- cacao-oj6-6b12.orig/debian/changelog +++ cacao-oj6-6b12/debian/changelog @@ -0,0 +1,672 @@ +cacao-oj6 (6b12-0ubuntu2) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081018). + - Fix LiveConnect issues in the web plugin. LP: #282762. + - Fail the build, if patches don't apply. + * Show xvfb and xauth failures in the build log, when running the testsuites. + * Kill processes which still hang after running the testsuite. + Addresses: #493339. + * Run the testsuite in parallel, reducing build time. + * cacao-headless: Depend instead of recommending tzdata-java. + + -- Matthias Klose Sat, 18 Oct 2008 17:12:49 +0200 + +cacao-oj6 (6b12-0ubuntu1) intrepid; urgency=low + + * Update IcedTea to the 1.3.0 release. + * Apply upstream patch to fix upstream issue 6758986. + * Require cacao 0.99.4~20081012 as a build dependency. + + -- Matthias Klose Wed, 15 Oct 2008 23:25:49 +0200 + +cacao-oj6 (6b12~pre2-0ubuntu1) intrepid; urgency=low + + * Regenerate the cacao tarball. + + -- Matthias Klose Sun, 14 Sep 2008 13:50:07 +0200 + +cacao-oj6 (6b12~pre1-0ubuntu1) intrepid; urgency=low + + * New code drop (b12). + * Update cacao to the cacao-1.0.x branch (20080914). + * Update IcedTea build infrastructure (20080914). + + -- Matthias Klose Sun, 14 Sep 2008 11:59:29 +0200 + +cacao-oj6 (6b11-1) unstable; urgency=low + + * Upload to unstable, using the openjdk-6 .orig.tar.gz, with the cacao + upstream tarball added. + * debian/copyright: Update for the cacao-0.99.3 release. + + -- Matthias Klose Fri, 15 Aug 2008 16:50:09 +0200 + +openjdk-6 (6b11-6) unstable; urgency=low + + * Set minimum heap size independent of available memory for cacao builds. + * Link the wrapper tools with -rdynamic for cacao builds. + * Update cacao based builds: + - Update cacao to 0.99.3, remove patches applied upstream. + - Fix build failures on mipsel-linux. + * Allow setting of the bootstrap compiler per architecture. + * Configure --with-alt-jar set to fastjar to speed up builds. + * Update IcedTea build infrastructure (20080815), remove local patches + integrated in IcedTea. + - Make use of unsigned/signed types explicit. + - Fix PR icedtea/184, adding support for returning floats and doubles + for zero builds. + - Fix Fix PR icedtea/181, class type checks. + + -- Matthias Klose Fri, 15 Aug 2008 16:59:48 +0000 + +openjdk-6 (6b11-5) unstable; urgency=low + + * debian/rules (stamps/mauve-build): Configure with --host and --build. + * openjdk-6-jdk: Recommend libxt-dev (jawt_md.h header includes). + * Fix build issues on s390 (size_t is unsigned long). + + -- Matthias Klose Sun, 03 Aug 2008 20:05:44 +0200 + +openjdk-6 (6b11-4) unstable; urgency=low + + * Update IcedTea build infrastructure (20080801). + - Fix typo, causing build failure on mipsel. + + -- Matthias Klose Fri, 01 Aug 2008 01:25:51 +0200 + +openjdk-6 (6b11-3) unstable; urgency=low + + * Include the name of the VM used in the package description. + * Update IcedTea build infrastructure (20080731). + * Build for alpha, arm, mips and mipsel. + * Switch from libcupsys2(-dev) to libcups2(-dev) for newer releases. + (Closes: #492384) + * Add symlinks for header files found in JAVA_HOME/include/linux in + JAVA_HOME/include. + * openjdk-6-jre: Don' recommend lesstif2 anymore. + + -- Matthias Klose Thu, 31 Jul 2008 17:16:59 +0200 + +openjdk-6 (6b11-2ubuntu1) intrepid; urgency=low + + * xvfb seems to be broken when running with intrepid and an intrepid kernel. + Nevertheless, run xvfb-run -s "-extension GLX" on the buildds (hardy kernels). + * Stop the buildwatch process after the testsuite finishes. + + -- Matthias Klose Fri, 25 Jul 2008 12:33:44 +0200 + +openjdk-6 (6b11-2) unstable; urgency=low + + * Update IcedTea build infrastructure (20080724). + * debian/buildwatch.sh: Track long building files with no visible output. + * Fix build failure when not running the mauve testsuite. + * Disable running the testsuite for cacao builds (leaving processes around). + * Don't set a soversion for the cacao libjvm. + * Configure with --host and --build. + * Call xvfb-run with -s "-extension GLX". + + -- Matthias Klose Thu, 24 Jul 2008 22:25:30 +0200 + +openjdk-6 (6b11-1ubuntu2) intrepid; urgency=low + + * Update IcedTea build infrastructure (20080724). + * debian/buildwatch.sh: Track long building files with no visible output. + * Fix build failure when not running the mauve testsuite. + * Disable running the testsuite for cacao builds (leaving processes around). + * Don't set a soversion for the cacao libjvm. + * Configure with --host and --build. + + -- Matthias Klose Thu, 24 Jul 2008 17:58:53 +0200 + +openjdk-6 (6b11-1ubuntu1) intrepid; urgency=low + + * Regenerate the control file. + + -- Matthias Klose Wed, 23 Jul 2008 00:42:16 +0200 + +openjdk-6 (6b11-1) unstable; urgency=low + + * New code drop (b11). + * Update IcedTea build infrastructure (20080721). + * debian/generate-dfsg.sh: Update for b11. + * debian/patches/const_strings.patch, debian/patches/issue-6659207.diff: + Remove, applied upstream. + * debian/generate-debian-orig.sh: Fix /proc check. + * debian/control.in: Loosen dependency of -jre-lib on -jre. + * Support `nodocs' in DEB_BUILD_OPTIONS. + * Remove build-dependency on lesstif2-dev. + * Bootstrap using gcj on all archs; the 6b10dfsg-2 packages are broken. + * Run the jtreg harness in a virtual X environment. + * Install javazic.jar in the jre-lib package. + * Don't run the testsuite on arm; the build already takes days; only + run the testsuite on hotspot archs and powerpc. + + -- Matthias Klose Wed, 23 Jul 2008 00:28:12 +0200 + +openjdk-6 (6b10dfsg-2) unstable; urgency=low + + * Update IcedTea build infrastructure (20080714). + * On arm configure cacao builds with --enable-softfloat. + * Don't run the mauve testsuite for cacao builds (hangs the test runner + process). + * Don't configure cacao builds with --enable/-disable-zero. + * Don't remove alternatives on upgrade. + * debian/copyright: Add license for NanoXML. + * Do recommends ttf-indic-fonts instead of ttf-indic-fonts-core for + lenny and sid. Closes: #490619. + * Ignore errors when registering the jar binfmt. The alternative may + already be registered by another JVM. Closes: #490594. + * openjdk-6-jre-headless: Depend on ttf-dejavu-core instead of ttf-dejavu. + * On amd64, i386 and sparc, bootstrap using openjdk. + + -- Matthias Klose Mon, 14 Jul 2008 19:41:19 +0200 + +openjdk-6 (6b10dfsg-1ubuntu2) intrepid; urgency=low + + * Update IcedTea build infrastructure (20080702). + - Do not configure --with-shark by default. + - Update license headers from jdk7. + * Start debian/buildwatch.sh for armel and sparc builds as well. + * Allow configuration with --with-cacao. + + -- Matthias Klose Mon, 30 Jun 2008 13:30:06 +0200 + +openjdk-6 (6b10dfsg-1ubuntu1) intrepid; urgency=low + + * The rebuilt upstream tarball now has GPL-compatible free software licenses + and documented copyrights and licenses. LP: #238569. + * Fixed name of the xulrunner-1.9-javaplugin.so in the .jinfo file. + LP: #226911. + * Ignore errors during activation of class data sharing. Closes: #490617, + #490672. + + -- Matthias Klose Mon, 30 Jun 2008 13:30:06 +0200 + +openjdk-6 (6b10dfsg-1) unstable; urgency=low + + * Rebuild the upstream tar ball: + - Remove the jscheme jar files. + - Apply the patch from Iris Clark (Sun) for the copyright headers + (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=141#c4). + - Remove jdk/src/share/classes/java/lang/instrument/package.html. + - Upload to main. + * Update IcedTea build infrastructure (20080628). + * Build an openjdk-6-dbg package. + * patches/gcc-mtune-generic.diff: Fix typo. + * openjdk-6-jre: Depend on ttf-dejavu. + * debian/copyright: Add two more copyright holders, not directly + mentioned in the third party readme. + Replace Apache 2.0 license with pointer to common-licenses. + * Fix more lintian warnings. + * debian/sun_java_app.xpm: Downsize icon to 32x32 pixels. + * Build-depend/depend on rhino. + + -- Matthias Klose Sun, 29 Jun 2008 17:42:51 +0200 + +openjdk-6 (6b10-1) unstable; urgency=low + + * New code drop (b10). + - Still some non-compliant license headers found in + openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl. + - Upload to non-free. + * Update IcedTea build infrastructure (20080603). + * In fontconfig.properties, fix Korean font names and add paths to the Luxi + fonts for Motif. Add fonts for Indic languages. + * Install compilefontconfig.jar in openjdk-6-jre-lib package. + * Run the testsuites of hotspot, langtools and jdk. + * Include the jscheme-5.0 sources in the tarball, mention the jscheme + licenses in debian/copyright. + * Use the certificates provided by the ca-certificates-java package. + * More fontconfig updates (Arne Goetje). + * Fix some lintian warnings. + * Correct build-dependency for openjdk based bootstraps. + + -- Matthias Klose Wed, 04 Jun 2008 01:46:52 +0200 + +openjdk-6 (6b09-1~pre1) unstable; urgency=low + + [ Matthias Klose ] + * New code drop (b09). + * Update IcedTea build infrastructure (20080528). + - Add missing color profiles. LP: #225174. + - Moved system properties defined in hotspot to TrustManagerFactoryImpl. + LP: #224455. + * 6636469_v4.diff: Remove, committed in IcedTea. + * debian/control: Update Vcs-* attributes. + * debian/JB-jre-headless.p*.in: Fix update-binfmts calls. + * Compress the man pages, fixing the slave symlinks of the alternatives. + * javaws.desktop: Add `%u' to the Exec key, remove -viewer option. + * openjdk-6-jre-headless: Recommends libnss-mdns. + * openjdk-6-jre-headless: Warn about unmounted /proc file system. + * debian/JB-jre.mime.in: Remove the -viewer option from command (Tan Rui + Boon). + * Add a `docs' symlink pointing to /usr/share/doc/openjdk-6. LP: #218405. + * Set maintainer to the team list. + * Add copyright notices for patches and generated files. + * Add helper scripts to modify upstream tarball and generate the debian + tarball. + * Fix names for browser alternatives in jinfo file, set browser_plugin_dirs + unconditionally. + * Recommend the ttf-wqy-zenhei font instead of ttf-arphic-uming, if the + latter is available in Truetype Collection (TTC) format only, add the + fontconfig changes as a patch. + * Make the cjk font packages configurable in the control file. + * Use GCC-4.3 on all platforms where available. + * Install a config file swing.properties, allowing a user to change + the default look and feel. LP: #229112. + * When trying to determine the executable name reading /proc/self/exe, + discard known prefixes used for unionfs mounts. LP: #224110. + * Explicitely configure with --disable-zero on hotspot architectures. + * Add fix for issue 6659207, access violation in CompilerThread0. + Addresses #478560. Needs checking: LP: #229207. + * Disable building the docs on ia64, powerpc and sparc, we don't build + architecture independent packages on these architectures. + * Explicitely configure --with-parallel-jobs, needed by the updated IcedTea. + * Backport the linux-sparc patches, enable building on sparc. LP: #154080. + * Don't use an absolute path calling the compiler. + * Replace the OpenJDK version in desktop and menu files. + * Install menu files. + * Install openjdk-6-java.desktop in -jre, instead of -jre-headless. + + -- Matthias Klose Wed, 14 May 2008 08:49:54 +0200 + +openjdk-6 (6b08-1) unstable; urgency=low + + [ Torsten Werner ] + * first upload to Debian (Closes: #452750) + * Regenerate debian/control. + * Switch to bzip2 package compression in Debian but leave lzma compression + in Ubuntu. + * Temporarily downgrade Depends: tzdata-java to Recommends until the package + becomes available in Debian. + * Add myself to Uploaders. + * Do not install extras license file in openjdk-6-jre-lib. + * Add patch shebang.diff to fix a lintian warning. + * Install openjdk-6-java.desktop into the correct binary package. + * Improve some package descriptions. + * Remove some empty directories from binary packages. + * Install README.Debian in every binary package and give it some useful + content. + * Install java-rmi.cgi in package openjdk-6-jre-headless and mention it in + README.Debian. + * Install /usr/bin/jexec via update-alternatives. + * Downgrade Depends: java-common (>= 0.28). + * Add patch jexec.diff to make the jexec binary executable without + specifying an absolute path. + * Add Build-Depends: xauth and xfonts-base for mauve. + * Update and install the lintian override files. + * Replace all occurences of binary:Version and source:Version by + Source-Version to be compatible with Ubuntu release 6.06. + * Remove Conflicts: gcjwebplugin. + + [ Michael Koch ] + * Fixed Vcs-Bzr and Vcs-Browser fields. + * Removed Encoding entry from all debian/*.desktop.in files. + + [ Matthias Klose ] + * Make Java Full Screen Exclusive Mode work again with Xorg Server 1.3 + and above (Dan Munckton). LP: #154613 (Java bug 6636469). + * Configure with --enable-zero on all archs except amd64, i386, lpia. + * Update IcedTea build infrastructure. + * Handle binary files in updates of the build infrastructure. + * Enable bootstrap/normal builds per architecture. + * javaws-wrapper.sh: Use readlink --canonicalize. LP: #211515. + * binfmt-support: Handle /usr/share/binfmts/jar as a slave symlink of + the jexec alternative, install the binfmt file in the jre libdir. + Use the jexec alternative in the binfmt file. + * JB-jre-headless.postinst.in: Remove sun-java6 specific chunks. + * Differentiate between the openjdk version required as dependency and + as build dependency. + + -- Torsten Werner Wed, 09 Apr 2008 10:12:55 +0200 + +openjdk-6 (6b08-0ubuntu1) hardy; urgency=low + + * New code drop (b08). + * Update IcedTea build infrastructure. + * Move binfmt-support references from -jre to -jre-headless package. + * Don't fail on purge, if /var/lib/binfmts/openjdk-6 is missing. LP: #206721. + * Only use the basename for icons in desktop files. LP: #207413. + * Install javaws(1). LP: #191297. + * Install a wrapper script for javaws, which calls `javaws -viewer' if no + arguments are given (or else starting javaws from the desktop menu + would not do anything). + * debian/JB-web-start.applications.in: Remove the -viewer option from command. + + -- Matthias Klose Fri, 28 Mar 2008 16:10:32 +0000 + +openjdk-6 (6b07-0ubuntu1) hardy; urgency=low + + * New code drop (b07). + * Update IcedTea build infrastructure. + * debian/copyright: Update to OpenJDK Trademark Notice v1.1. + + -- Matthias Klose Sat, 22 Mar 2008 22:41:42 +0100 + +openjdk-6 (6b06-0ubuntu12) hardy; urgency=low + + * Update icon locations in menu files. + * openjdk-6-jre-headless: Provide java-virtual-machine. LP: #189953. + * openjdk-6-jre-headless: Add a conflict to gcjwebplugin; for openjdk + use the icetea-gcjwebplugin, for gij the java-gcj-compat-plugin. + + -- Matthias Klose Sat, 22 Mar 2008 20:12:41 +0100 + +openjdk-6 (6b06-0ubuntu11) hardy; urgency=low + + * Update IcedTea to 20080319. + * Move rt.jar into the openjdk-6-jre-headless package; sun/awt/X11 + class files differ between amd64 and i386. + * Install all desktop files in /usr/share/applications. + + -- Matthias Klose Wed, 19 Mar 2008 23:53:36 +0100 + +openjdk-6 (6b06-0ubuntu10) hardy; urgency=low + + * Remove print-lsb-release.patch, forwarded to IcedTea. + * Fix IcedTea configure to detect libffi without pkg-config. + + -- Matthias Klose Wed, 12 Mar 2008 20:28:55 +0100 + +openjdk-6 (6b06-0ubuntu9) hardy; urgency=low + + * Build-depend on libffi4-dev on architectures other than amd64, i386, lpia. + * Install icons in /usr/share/pixmaps, not /usr/share/icons. + * debian/rules: Call dh_icons. + + -- Matthias Klose Wed, 12 Mar 2008 11:34:44 +0100 + +openjdk-6 (6b06-0ubuntu8) hardy; urgency=low + + * Tighten dependency on java-common. + * debian/copyright: Include trademark notice. + * debian/control: Mention IcedTea in the package descriptions. + * Update IcedTea to 20080311. + + -- Matthias Klose Tue, 11 Mar 2008 21:39:27 +0100 + +openjdk-6 (6b06-0ubuntu7) hardy; urgency=low + + * Build-depend on unzip. + + -- Matthias Klose Fri, 07 Mar 2008 16:47:43 +0100 + +openjdk-6 (6b06-0ubuntu6) hardy; urgency=low + + * Build-depend on zip. + + -- Matthias Klose Fri, 07 Mar 2008 16:16:52 +0100 + +openjdk-6 (6b06-0ubuntu5) hardy; urgency=low + + * debian/mauve_tests: javax.swing.text.html.HTML.ElementTagAttributeTest, + removed, tries to access the network. + * debian/README.alternatives.in: Update for --jre-headless. + * debian/rules: Fix paths for OpenJDK based bootstrap. + * Compress packages using lzma. + * Drop build dependency on zip, unzip. + * Fix build infrastructure to bootstrap with OpenJDK instead of ecj. + * Do not build the gcjwebplugin from the OpenJDK source. + + -- Matthias Klose Fri, 07 Mar 2008 13:53:15 +0100 + +openjdk-6 (6b06-0ubuntu4) hardy; urgency=low + + * Don't register a java-rmi.cgi alternative in /usr/bin. + + -- Matthias Klose Thu, 06 Mar 2008 17:59:35 +0100 + +openjdk-6 (6b06-0ubuntu3) hardy; urgency=low + + * Split out a openjdk-6-jre-headless package, depend on java-common, + supporting update-java-alternatives --jre-headless. + * Make openjdk-6-jre-headless and openjdk-6-jre architecture any. + * New package openjdk-6-jre-lib (arch all). + * Remove openjdk-6-bin package. + * debian/patches/openjdk-ubuntu-branding.patch: New patch. + * Install images/cursors/cursors.properties as a config file. + * Do not compress demos and examples in the -demo package. + * openjdk-6-jre: Add dependency on libxinerama1. + * Update IcedTea to 20080305. + * Don't generate cacerts ourself, but depend on ca-certificates, + fix location of javax.net.ssl.trustStore property. + * Build-depend on mauve and xvfb; run some mauve tests (the list of + tests taken from the Fedora package). + * Keep a backup of the `generated' directory; some files are regenerated + differently, increasing the size of the diff. + + -- Matthias Klose Thu, 06 Mar 2008 10:05:39 +0100 + +openjdk-6 (6b06-0ubuntu2) hardy; urgency=low + + * Re-add gawk and pkg-config as build dependencies. + + -- Matthias Klose Tue, 04 Mar 2008 12:20:21 +0100 + +openjdk-6 (6b06-0ubuntu1) hardy; urgency=low + + * New code drop (b06). + * Remove java-access-bridge tarball, use an externally built package. + * Update IcedTea to 20080304. + * Don't use any compiler flags from the environment. + + -- Matthias Klose Tue, 04 Mar 2008 09:16:59 +0100 + +openjdk-6 (6b05-0ubuntu1) hardy; urgency=low + + * First public OpenJDK upstream code drop (b05). + * Depend on tzdata-java. + + -- Matthias Klose Fri, 29 Feb 2008 19:05:42 +0100 + +icedtea-java7 (7~b24-1.5+20080118-2) UNRELEASED; urgency=low + + * Fix removal of alternatives. + + -- Matthias Klose Sat, 26 Jan 2008 18:41:40 +0100 + +icedtea-java7 (7~b24-1.5+20080118-1) hardy; urgency=low + + * Fix installation of the plugin for firefox-3.0. + + -- Matthias Klose Sat, 19 Jan 2008 15:10:18 +0100 + +icedtea-java7 (7~b24-1.5+20080118-1~ppa1) hardy; urgency=low + + * Update IcedTea to 20080118. + * Fix another build failure when gcc version != gcj version. + * Use the versioned compiler to build the corba parts. + * Register plugin for firefox-3.0. + * Build using GCC-4.3. + + -- Matthias Klose Fri, 18 Jan 2008 21:15:08 +0100 + +icedtea-java7 (7~b24-1.5-2) UNRELEASED; urgency=low + + * First upload to Debian. Closes: #452750. + * debian/control.in: + - Moved package from universe/devel section to devel. + - Put icedtea-java7-doc into doc section. + - Added Homepage field and removed Homepage pseudo field from + descriptions. + - Updated Standards-Version to 3.7.3. + * debian/rules: + - Check if Makefile exists before called clean in clean target. + * debian/copyright: Converted to UTF-8. + + -- Michael Koch Sat, 05 Jan 2008 13:34:46 -0100 + +icedtea-java7 (7~b24-1.5-1) hardy; urgency=low + + * Update to IcedTea-1.5. + * debian/patches/ssp-interpreter.diff: Use bash to call the ssp script, + backslash handling differs betweend dash and bash. + + -- Matthias Klose Fri, 04 Jan 2008 09:58:27 +0100 + +icedtea-java7 (7~b24-1.5~20071214-1) hardy; urgency=low + + * New upstream snapshot (b24). + * Update java-access-bridge to 1.21.1. + * On powerpc keep the build alive using buildwatch script. + * Do not install menu entries for javaws, ControlPanel. LP: #155553, #156673. + * README.alternatives: Fix example. LP: #157063. + + -- Matthias Klose Fri, 14 Dec 2007 11:09:22 +0100 + +icedtea-java7 (7~b23-1.5~20071124-4) hardy; urgency=low + + * Allow libungif4-dev as alternative build dependency. + * On powerpc keep the build alive using buildwatch script. + * Always build the plugin using libxul-dev. + + -- Matthias Klose Mon, 10 Dec 2007 15:20:16 +0100 + +icedtea-java7 (7~b23-1.5~20071124-3) hardy; urgency=low + + * Lower optimization to -O2 for building the jdk on amd64. + * Reenable parallel build. + * Link using -Bsymbolic-functions. + * debian/patches/arguments.patch, debian/patches/const_strings.patch: + New patches (Arnaud Vandyck). + + -- Matthias Klose Thu, 29 Nov 2007 18:50:41 +0100 + +icedtea-java7 (7~b23-1.5~20071124-2) hardy; urgency=low + + * Bootstrap using ecj/gcj. + * Build using g++-4.1 on i386, lpia, powerpc. + + -- Matthias Klose Wed, 28 Nov 2007 14:46:48 +0000 + +icedtea-java7 (7~b23-1.5~20071124-1) hardy; urgency=low + + * New upstream snapshot (b23). + + -- Matthias Klose Tue, 27 Nov 2007 15:48:08 +0100 + +icedtea-java7 (7~b22-1.5~20071018-0ubuntu3) hardy; urgency=low + + * Revert the previous change, require 7~b22 versions again. + + -- Matthias Klose Sat, 20 Oct 2007 14:33:26 +0000 + +icedtea-java7 (7~b22-1.5~20071018-0ubuntu2) hardy; urgency=low + + * Loosen dependencies to 7~b21, until package is built on all archs. + + -- Matthias Klose Sat, 20 Oct 2007 07:48:36 +0000 + +icedtea-java7 (7~b22-1.5~20071018-0ubuntu1) hardy; urgency=low + + * New upstream snapshot (b22). + * Don't use parallel builds to make the build log better comparable. + + -- Matthias Klose Fri, 19 Oct 2007 19:49:51 +0200 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu5) gutsy; urgency=low + + * Update icedtea to vcs 20071012 (1.4 release), checked that the plugin + works on amd64. + * debian/copyright: Update "License Headers" section. + + -- Matthias Klose Sun, 14 Oct 2007 19:55:12 +0200 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu4) gutsy; urgency=low + + * Bootstrapping trigger upload for final step of bootstrapping i386, amd64, + lpia. + + -- LaMont Jones Wed, 10 Oct 2007 22:04:25 -0600 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu3) gutsy; urgency=low + + * Add build dependency on bzip2. + + -- Matthias Klose Wed, 10 Oct 2007 09:00:40 +0000 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu2) gutsy; urgency=low + + * Add build dependency on ant. + + -- Matthias Klose Wed, 10 Oct 2007 06:33:14 +0000 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu1) gutsy; urgency=low + + * Update icedtea to vcs 20071007. + * Update java-access-bridge to 1.20.0. + * Add build-dependency on libxinerama-dev. + * Add Xb-Npp-xxx tags for the -plugin package. + * Name the plugin "GCJ Web Browser Plugin (using IcedTea)", GCJ now + "Great Cool Java" (according to Michael Koch). + * Compress binary-indep packages using bzip2. + + -- Matthias Klose Sun, 7 Oct 2007 23:43:28 +0200 + +icedtea-java7 (7~b21-1.4+20071002-0ubuntu2) gutsy; urgency=low + + * Rebuild using icedtea 7~b21. + + -- Matthias Klose Tue, 02 Oct 2007 19:45:21 +0200 + +icedtea-java7 (7~b21-1.4+20071002-0ubuntu1) gutsy; urgency=low + + * New upstream snapshot (b21). + * Correctly unregister the executable binary format in the -bin package. + * Assemble the debian/copyright file. + + -- Matthias Klose Tue, 2 Oct 2007 09:59:37 +0200 + +icedtea-java7 (7~b19-1.3+20070905-0ubuntu1) gutsy; urgency=low + + * New upstream snapshot (b19). + * Build using g++-4.2 on amd64, using g++-4.1 on i386 and lpia. + * Build without -Werror, upstream source is not yet warning clean. + * Support DEB_BUILD_OPTIONS=parallel=. + * Add build dependency on wget. + * Add font suggestions. + * Changed font configuration to fix CJK font support (Arne Goetje). + * Fix location of the plugin, when registering the plugin alternatives. + + -- Matthias Klose Thu, 6 Sep 2007 00:46:40 +0200 + +icedtea-java7 (7~b18-1.2+20070822-0ubuntu2) gutsy; urgency=low + + * Create browser plugin directories. + * Build-depend on liblcms1-dev. + * Recommend packages with dlopened libraries: liblcms1, lesstif2, libcupsys2, + libgtk2.0-0, libgnome2-0, libgnomevfs2-0, libgconf2-4, libxrandr2, + libgl1-mesa-glx. + + -- Matthias Klose Tue, 21 Aug 2007 17:21:00 +0200 + +icedtea-java7 (7~b18-1.2+20070822-0ubuntu1) gutsy; urgency=low + + * New upstream version. + * Include java-access-bridge. + * Build -doc, -plugin packages. + * Register alternatives, priority 1060. + + -- Matthias Klose Tue, 21 Aug 2007 17:21:00 +0200 + +icedtea-java7 (7~b17-1.2+20070808-1) gutsy; urgency=low + + * Initial release, discard the initial packaging based on cdbs. + * Base the packaging on the sun-javaX packages. + + -- Matthias Klose Wed, 08 Aug 2007 15:55:39 +0200 + +icedtea (7~b16-20070724-1) UNRELEASED; urgency=low + + * Update upstream tarball to 7~b16, update icedtea to 20070724. + * debian/control: Build-depend on libfreetype6-dev. + * debian/rules: Configure --with-jar=/usr/bin/fastjar. + * Build using gcj-4.2. + + -- Matthias Klose Tue, 24 Jul 2007 11:24:55 +0200 + +icedtea (7~b14-20070704-1) unstable; urgency=low + + * Initial version. + + -- Michael Koch Wed, 04 Jul 2007 08:25:31 -0100 --- cacao-oj6-6b12.orig/debian/JB-demo.overrides.in +++ cacao-oj6-6b12/debian/JB-demo.overrides.in @@ -0,0 +1,2 @@ +# /bin/sh is a known, and available interpreter +@basename@-demo: menu-command-not-in-package --- cacao-oj6-6b12.orig/debian/JB-jre-headless.prerm.in +++ cacao-oj6-6b12/debian/JB-jre-headless.prerm.in @@ -0,0 +1,25 @@ +#!/bin/sh -e + +basedir=/@basedir@ +basediralias=/@basediralias@ +jre_tools='@jre_hl_tools@' + +rm -f $basedir/jre/lib/@archdir@/client/classes.jsa + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then + for i in $jre_tools; do + update-alternatives --remove $i $basediralias/jre/bin/$i + done + + if which update-binfmts >/dev/null; then + # try to remove and ignore the error + if [ -e /var/lib/binfmts/@basename@ ]; then + update-binfmts --package @basename@ \ + --remove jar /usr/bin/jexec || true + fi + fi + + update-alternatives --remove jexec $basediralias/jre/lib/jexec +fi + +#DEBHELPER# --- cacao-oj6-6b12.orig/debian/javaws-wrapper.sh +++ cacao-oj6-6b12/debian/javaws-wrapper.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +prog="$0" +while [ -h "$prog" ]; do prog=$(readlink -f $prog); done +[ $# -eq 0 ] && set -- -viewer +exec $(dirname $prog)/javaws.real "$@" --- cacao-oj6-6b12.orig/debian/sun_java.xpm +++ cacao-oj6-6b12/debian/sun_java.xpm @@ -0,0 +1,194 @@ +/* XPM */ +static char *sun_java[] = { +/* columns rows colors chars-per-pixel */ +"32 32 156 2", +" c #34479E", +". c #4152A3", +"X c #4153A2", +"o c #4153A3", +"O c #4D5EA8", +"+ c #4D5EA9", +"@ c #4E5EA9", +"# c #5A69AD", +"$ c #5A69AE", +"% c #5A69AF", +"& c #5A6AAD", +"* c #6675B3", +"= c #6775B2", +"- c #6775B3", +"; c #6776B3", +": c #6775B5", +"> c #6776B4", +", c #7480B7", +"< c #7380B8", +"1 c #7381B8", +"2 c #7380BA", +"3 c #7481B8", +"4 c #D12124", +"5 c #D42F31", +"6 c #D73D3E", +"7 c #D94A4A", +"8 c #D94A4B", +"9 c #DA4A4A", +"0 c #DA4B4B", +"q c #DC5957", +"w c #DC5858", +"e c #DD5859", +"r c #DD5959", +"t c #DF6664", +"y c #E06664", +"u c #E27471", +"i c #E27570", +"p c #E27472", +"a c #E37472", +"s c #E27574", +"d c #E37474", +"f c #E5827E", +"g c #E5837F", +"h c #818BBD", +"j c #818CBC", +"k c #808CBE", +"l c #818DC0", +"z c #8D97C2", +"x c #8D97C3", +"c c #8D97C5", +"v c #8E98C5", +"b c #99A2C7", +"n c #99A3C7", +"m c #99A2C8", +"M c #99A3C8", +"N c #99A2CA", +"B c #99A2CB", +"V c #A6AECD", +"C c #A5AED2", +"Z c #A6AED0", +"A c #B3B9D3", +"S c #B2B9D4", +"D c #B3B9D5", +"F c #B2B9D6", +"G c #B3BAD5", +"H c #BFC4D6", +"J c #BFC5D7", +"K c #BFC5D8", +"L c #BFC5D9", +"P c #BFC5DA", +"I c #BFC5DB", +"U c #BFC5DC", +"Y c #BFC5DD", +"T c #E58381", +"R c #E68380", +"E c #E88F89", +"W c #E88F8B", +"Q c #E8908A", +"! c #EB9D99", +"~ c #EB9D9A", +"^ c #EB9D9D", +"/ c #EDABA2", +"( c #EEABA6", +") c #EDACA6", +"_ c #F0B9B1", +"` c #F1B9B1", +"' c #F0B9B6", +"] c #F3C7BD", +"[ c #CCD0DA", +"{ c #CCD1DA", +"} c #CDD0DA", +"| c #CCD0DC", +" . c #CCD0DD", +".. c #CCD1DD", +"X. c #CCD0DE", +"o. c #CCD1DE", +"O. c #CCD1DF", +"+. c #D8DBDF", +"@. c #CCD0E0", +"#. c #D8DCE1", +"$. c #D9DCE1", +"%. c #D9DCE3", +"&. c #D9DCE4", +"*. c #D9DCE5", +"=. c #D9DCE6", +"-. c #D9DCE7", +";. c #D9DCE8", +":. c #F6D5CB", +">. c #F6D5CD", +",. c #F6D5D3", +"<. c #F9E3D7", +"1. c #F9E3DA", +"2. c #F9E3DB", +"3. c #E6E7E7", +"4. c #E5E7E9", +"5. c #E5E7EC", +"6. c #E5E8E8", +"7. c #E6E8E9", +"8. c #E6E8EA", +"9. c #E6E8EB", +"0. c #E5E8EC", +"q. c #E6E8EC", +"w. c #F9E3E1", +"e. c #F2F3EC", +"r. c #FCF0E1", +"t. c #FCF0E3", +"y. c #FCF1E5", +"u. c #FCF0E7", +"i. c #FCF1E6", +"p. c #FCF1E7", +"a. c #FCF1E8", +"s. c #FFFEED", +"d. c #FFFEEE", +"f. c #FFFEEF", +"g. c #F2F3F0", +"h. c #F2F3F1", +"j. c #F2F3F2", +"k. c #F2F3F4", +"l. c #FFFEF0", +"z. c #FFFEF1", +"x. c #FFFEF2", +"c. c #FFFEF3", +"v. c #FFFFF3", +"b. c #FFFFF4", +"n. c #FFFFF5", +"m. c #FFFFF6", +"M. c #FFFFF7", +"N. c #FFFFF8", +"B. c #FFFFF9", +"V. c #FFFFFA", +"C. c #FFFFFB", +"Z. c #FFFFFC", +"A. c #FFFFFD", +"S. c #FFFFFE", +"D. c gray100", +"F. c None", +/* pixels */ +"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.w.~ F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.r F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.' q F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.M.q u F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.F.F.M.M.! 4 1.F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.F.M.M.f 4 E M.M.F.w.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.M.i.t 4 i x.1.g u ,.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.M.>.7 4 f r.f 5 ! C.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.1.5 4 / r.7 5 >.M.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.M.q 4 E d.i 4 >.M.F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.M.4 5 d.d.4 6 x.x.F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.7 7 d.d.4 4 :.M.F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.M./ 4 <.x.q 4 7 i.F.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.M.u t x.] 4 4 ) M.F.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.u.7 _ x.E 4 ! M.M.F.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.h.@.4.M.i.u i._ 5 i.M.F.-.N : c @.M.F.F.F.F.F.", +"F.F.F.F.F.F.k.B O h P x.x.M.x.i.a :.x.M.9.L @.L O c M.F.F.F.F.", +"F.F.F.F.F.F.> X c n b n n n n h = & X v M.M.M.8. M.F.F.F.F.", +"F.F.F.F.F.F.F.+...N n n n N N n J ..4.M.M.M.x.M.M. M.F.F.F.F.", +"F.F.F.F.F.F.F.M.+.O ..x.d.x.d.x.x.3.L 8.M.M.M.x. . X M.F.F.F.F.", +"F.F.F.F.F.F.F.M.F X = = = = O 8.M.M.h.& S M.F.F.F.F.", +"F.F.F.F.F.F.F.M.M...z = = = = = j V %.x.F.M.9.% S M.F.F.F.F.F.", +"F.F.F.F.F.F.F.M.M.4.n d.d.d.d.x.d.x.M.M.M.S X l 5.F.M.F.F.F.F.F.", +"F.F.F.F.F.F.M.M.x.= O = = = = o = -.-.S h.M.F.M.F.F.F.F.F.F.", +"F.F.F.F.F.M.-.{ { %., , A x.M.M.M.M.M.F.F.F.F.F.F.F.", +"F.F.F.F.F O , J e.x.d.d.{ { { +.x.x.x.M.M.M.M.M.=.Y F.F.F.F.F.F.", +"F.F.F.F. O z H %.d.x.x.d.d.d.d.x.x.x.x...K N O C C.F.F.F.F.F.", +"F.F.F.F.N O # = = = = = O O L C.F.F.F.F.F.F.", +"F.F.F.F.M.M.%.V > & O = N =.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.M.M.M.M.x.x.M.M.M.M.M.M.M.M.M.F.F.F.F.F.F.F.F.F.F.", +"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F." +}; --- cacao-oj6-6b12.orig/debian/control.in +++ cacao-oj6-6b12/debian/control.in @@ -0,0 +1,121 @@ +Source: @basename@ +Section: devel +Priority: extra +Maintainer: OpenJDK Team +Uploaders: Michael Koch , Torsten Werner , Matthias Klose +Build-Depends: debhelper (>= 5), autotools-dev, @bd_compress@, m4, lsb-release, wget, zip, unzip, sharutils, gawk, pkg-config, procps, automake, autoconf, ant, @bd_tarball@ @bd_cacao@ @bd_gcc@ @bd_bootstrap@ @bd_openjdk@ @bd_zero@ @bd_syslibs@ @bd_plugin@ @bd_netx@ @bd_pulsejava@ @bd_mauve@ +Standards-Version: 3.8.0 +Homepage: http://openjdk.java.net/ +Vcs-Bzr: bzr+ssh://@bazaar.launchpad.net/~openjdk/openjdk/openjdk6 +Vcs-Browser: https://code.launchpad.net/~openjdk/openjdk/openjdk6 + +Package: @basename@-jdk +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: @basename@-jre (>= @pkg_version@), ${shlibs:Depends}, ${misc:Depends} +Recommends: libxt-dev +Suggests: @basename@-demo, @basename@-source, visualvm +Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk +Description: OpenJDK Development Kit (JDK) + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: @basename@-jre-headless +Architecture: any +Pre-Depends: ${dpkg:Depends} +Section: interpreters +Depends: @basename@-jre-lib (>= @pkg_version@), tzdata-java, rhino, libaccess-bridge-java (>= 1.22), java-common (>= 0.28), ${dlopenhl:Depends}, ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dlopenjl:Recommends}, ca-certificates-java +Suggests: libnss-mdns, sun-java6-fonts, @core_fonts@, @cjk_fonts@ +Provides: java-virtual-machine, java-runtime-headless, java2-runtime-headless, java5-runtime-headless, java6-runtime-headless +Replaces: @basename@-jre-lib (<< 6b06-0ubuntu11), @basename@-jre (<< 6b09dfsg-0ubuntu2) +Description: OpenJDK Java runtime, using ${vm:Name} (headless) + Minimal Java runtime - needed for executing non GUI Java programs. + Using ${vm:Name}. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: @basename@-jre +Architecture: any +Pre-Depends: ${dpkg:Depends} +Section: interpreters +Depends: @basename@-jre-headless (>= @pkg_version@), ${xandsound:Depends}, ${shlibs:Depends}, ${dlopenjre:Depends}, ${misc:Depends} +Recommends: ${dlopenjre:Recommends}, ${pkg:pulseaudio}, @cjk_fonts@ +Suggests: icedtea6-plugin +Conflicts: icedtea-gcjwebplugin (<< 1.0-1ubuntu4) +Provides: java-runtime, java2-runtime, java5-runtime, java6-runtime +Description: OpenJDK Java runtime, using ${vm:Name} + Full Java runtime environment - needed for executing Java GUI and Webstart + programs. Using ${vm:Name}. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: @basename@-jre-lib +Architecture: @lib_arch@ +Pre-Depends: ${dpkg:Depends} +Section: interpreters +Depends: @basename@-jre-headless (>= ${base:Version}), ${misc:Depends} +Recommends: ${dlopen:Recommends} +Description: OpenJDK Java runtime (architecture independent libraries) + OpenJDK Java runtime, using ${vm:Name}. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: @basename@-demo +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: @basename@-jre (>= @pkg_version@), ${shlibs:Depends}, ${misc:Depends} +Description: Java runtime based on OpenJDK (demos and examples) + OpenJDK Java runtime + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: @basename@-source +Architecture: all +Pre-Depends: ${dpkg:Depends} +Depends: @basename@-jre (>= @pkg_version@), @basename@-jdk (>= @pkg_version@) +Description: OpenJDK Development Kit (JDK) source files + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + This package contains the Java programming language source files + (src.zip) for all classes that make up the Java core API. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: @basename@-doc +Section: doc +Pre-Depends: ${dpkg:Depends} +Architecture: all +Suggests: @basename@-jdk +Description: OpenJDK Development Kit (JDK) documentation + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + This package contains the API documentation. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: @basename@-dbg +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: @basename@-jre-headless (= @pkg_version@) +Recommends: @basename@-jre (= @pkg_version@) +Suggests: @basename@-jdk (= @pkg_version@) +Description: Java runtime based on OpenJDK (debugging symbols) + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + This package contains the debugging symbols. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. --- cacao-oj6-6b12.orig/debian/swing.properties +++ cacao-oj6-6b12/debian/swing.properties @@ -0,0 +1,2 @@ +# uncomment to set the default look and feel to GTK +#swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel --- cacao-oj6-6b12.orig/debian/JB-jre.mime.in +++ cacao-oj6-6b12/debian/JB-jre.mime.in @@ -0,0 +1 @@ +application/x-java-jnlp-file; /@basedir@/jre/javaws/javaws %s --- cacao-oj6-6b12.orig/debian/JB-jre-lib.overrides.in +++ cacao-oj6-6b12/debian/JB-jre-lib.overrides.in @@ -0,0 +1,6 @@ +# The package *-jre-lib depends on *-jre via *-jre-headless and +# libaccess-bridge-java. Lintian is wrong here. +@basename@-jre-lib binary: usr-share-doc-symlink-without-dependency @basename@-jre + +# no separate directory for image files +@basename@-jre-lib binary: image-file-in-usr-lib --- cacao-oj6-6b12.orig/debian/JB-jconsole.desktop.in +++ cacao-oj6-6b12/debian/JB-jconsole.desktop.in @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=@vendor@ Java @RELEASE@ Console +Name[fi]=@vendor@ Java @RELEASE@ - konsoli +Comment=@vendor@ Java @RELEASE@ Monitoring & Management Console +Comment[fi]=@vendor@ Java @RELEASE@ - valvonta- ja hallintakonsoli +Exec=/@basedir@/bin/jconsole +Terminal=false +Type=Application +Icon=@basename@ +Categories=Application;System; --- cacao-oj6-6b12.orig/debian/JB-jre.overrides.in +++ cacao-oj6-6b12/debian/JB-jre.overrides.in @@ -0,0 +1,7 @@ +# It seems to be acceptable to use rpath for private libraries like the +# jdk is doing it. Check http://wiki.debian.org/RpathIssue for more +# information. +@basename@-jre binary: binary-or-shlib-defines-rpath + +# the doc directory and the symlink are in @basename@-jre-headless +@basename@-jre binary: no-copyright-file --- cacao-oj6-6b12.orig/debian/PLUGIN.prerm.in +++ cacao-oj6-6b12/debian/PLUGIN.prerm.in @@ -0,0 +1,18 @@ +#!/bin/sh -e + +browser_dirs="@browser_dirs@" +PLUGIN=@plugin_name@ +PLUGINPTH=/@basediralias@/jre/lib/@archdir@/$PLUGIN + +for browser_dir in $browser_dirs; do + if [ $browser_dir = xulrunner-addons ]; then + browser=xulrunner-1.9 + else + browser=$browser_dir + fi + update-alternatives --quiet --remove \ + $browser-javaplugin.so \ + $PLUGINPTH +done + +#DEBHELPER# --- cacao-oj6-6b12.orig/debian/JB-java.desktop.in +++ cacao-oj6-6b12/debian/JB-java.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=@vendor@ Java @RELEASE@ Runtime +Name[fi]=@vendor@ Java @RELEASE@ - ajonaikainen ympäristö +Comment=@vendor@ Java @RELEASE@ Runtime +Comment[fi]=@vendor@ Java @RELEASE@ - ajonaikainen ympäristö +Exec=/@basedir@/bin/java -jar +Terminal=false +Type=Application +Icon=@basename@ +MimeType=application/x-java-archive;application/java-archive;application/x-jar; +NoDisplay=true --- cacao-oj6-6b12.orig/debian/JB-jdk.menu.in +++ cacao-oj6-6b12/debian/JB-jdk.menu.in @@ -0,0 +1,7 @@ +?package(@basename@-jdk):\ + needs="x11"\ + section="Applications/System/Administration"\ + title="@vendor@ Java @RELEASE@ Console"\ + command="/@basedir@/bin/jconsole"\ + icon="/usr/share/pixmaps/@basename@.xpm"\ + hints="Java2" --- cacao-oj6-6b12.orig/debian/rules +++ cacao-oj6-6b12/debian/rules @@ -0,0 +1,1175 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +unexport LANG LC_ALL + +SHELL = /bin/bash + +vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1))) + +DPKG_VARS := $(shell dpkg-architecture) +DEB_HOST_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH) + +# don't use it on 64bit archs +ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 ppc64 s390x)) + PATH := $(CURDIR)/bin:$(PATH) + export PATH +endif + +CHANGELOG_VARS := $(shell dpkg-parsechangelog | sed -n 's/ /_/g;/^[^_]/s/^\([^:]*\):_\(.*\)/\1=\2/p') +PKGSOURCE := $(call vafilt,$(CHANGELOG_VARS),Source) + +# Support parallel= in DEB_BUILD_OPTIONS (see #209008) +COMMA=, +ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) + NJOBS = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) + HOTSPOT_BUILD_JOBS = $(NJOBS) + ALT_PARALLEL_COMPILE_JOBS = $(NJOBS) + export HOTSPOT_BUILD_JOBS + export ALT_PARALLEL_COMPILE_JOBS +endif + +# make the build log comparable +#export HOTSPOT_BUILD_JOBS = 1 +#export ALT_PARALLEL_COMPILE_JOBS = 1 + +with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes) +with_docs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),,yes) +ifneq (,$(findstring cacao, $(PKGSOURCE))) + with_docs = disabled for cacao +endif + +# even if not building the package, we configure for a specific plugin +# with_plugin_pkg: yes or empty, plugin_name: IcedTeaPlugin.so or gcjwebplugin.so +with_plugin_pkg = yes +plugin_name = IcedTeaPlugin.so + +distribution := $(shell lsb_release --id --short) +distrel := $(shell lsb_release --codename --short) + +with_wgy_zenhai = $(if $(filter $(distrel),hardy intrepid),yes) + +arch_map := alpha=alpha arm=arm armel=arm amd64=amd64 i386=i586 lpia=i586 m68k=m68k mips=mips mipsel=mipsel powerpc=ppc sparc=sparc s390=s390 ia64=ia64 +archdir_map := alpha=alpha arm=arm armel=arm amd64=amd64 i386=i386 lpia=i386 m68k=m68k mips=mips mipsel=mipsel powerpc=ppc sparc=sparc s390=s390 ia64=ia64 + +jvmarch := $(strip $(patsubst $(DEB_HOST_ARCH)=%, %, \ + $(filter $(DEB_HOST_ARCH)=%, $(arch_map)))) +archdir := $(strip $(patsubst $(DEB_HOST_ARCH)=%, %, \ + $(filter $(DEB_HOST_ARCH)=%, $(archdir_map)))) + +hotspot_archs = amd64 i386 lpia sparc +no_bootstrap_archs = alpha hppa + +stage1_gcj_archs = amd64 armel i386 ia64 lpia powerpc m68k mips mipsel sparc s390 +stage1_openjdk_archs = alpha +stage1_cacao_archs = + +ifneq (,$(findstring cacao, $(PKGSOURCE))) + stage1_gcj_archs = armel ia64 m68k mips mipsel s390 + stage1_openjdk_archs = amd64 i386 lpia sparc + stage1_cacao_archs = alpha powerpc +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), $(stage1_gcj_archs))) + STAGE1_JAVA = gcj + STAGE1_HOME = /usr/lib/jvm/java-gcj +else ifneq (,$(filter $(DEB_HOST_ARCH), $(stage1_openjdk_archs))) + STAGE1_JAVA = openjdk + STAGE1_HOME = /usr/lib/jvm/java-6-openjdk +else ifneq (,$(filter $(DEB_HOST_ARCH), $(stage1_cacao_archs))) + STAGE1_JAVA = cacao + STAGE1_HOME = /usr/lib/jvm/java-6-cacao +else + $(error unknown bootstrap method for architecture $(DEB_HOST_ARCH)) +endif + +OPENJDK_VERSION = b12 +OPENJDK_SRC_ZIP = openjdk-6-src-$(OPENJDK_VERSION)-28_aug_2008-dfsg.tar.gz +# the version of the build dependency for non-bootstrap builds; only adjust if +# the package is installable on all these architectures. +req_openjdk_bd_ver = 6b11 +req_openjdk_ver = 6b11 + +unexport CFLAGS CXXFLAGS CPPFLAGS FFLAGS LDFLAGS + +ifneq (,$(filter $(distrel),hardy gutsy feisty edgy dapper)) + ifneq (,$(filter $(DEB_HOST_ARCH), i386 lpia)) + export GCC_SUFFIX = -4.1 + GCJ_SUFFIX = -4.2 + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 powerpc sparc)) + export GCC_SUFFIX = -4.2 + endif +else + export GCC_SUFFIX = -4.3 + export GCJ_SUFFIX = -4.3 +endif + +ifneq (,$(findstring cacao, $(PKGSOURCE))) + ifneq (,$(filter $(DEB_HOST_ARCH), ia64 sparc)) + $(error cacao-is not ported for ia64-linux and sparc-linux) + endif +endif + +ifeq ($(distribution),Ubuntu) + ifneq (,$(findstring ppa, $(call vafilt,$(CHANGELOG_VARS),Version))) + with_pulse = yes + endif +endif + +DISTRIBUTION_PATCHES = \ + $(if $(filter $(distribution),Ubuntu),debian/patches/gcc-no-stack-protector.diff) \ + debian/patches/ld-symbolic-functions.diff \ + debian/patches/set-exec-name.diff \ + debian/patches/shebang.diff \ + debian/patches/jexec.diff \ + debian/patches/fontconfig-$(if $(with_wgy_zenhai),wqy-zenhei,arphic-uming).diff \ + debian/patches/no-compiler-path.diff \ + debian/patches/fix-race-cond-print.diff \ + debian/patches/jdk-AnnotationInvocationHandler.diff \ + debian/patches/jdk-freetypeScaler-crash.diff \ + +# debian/patches/gcc-mtune-generic.diff \ + +ifneq (,$(filter $(distrel),hardy gutsy feisty edgy dapper)) + DISTRIBUTION_PATCHES += \ + $(if $(filter $(DEB_HOST_ARCH), amd64), debian/patches/gcc-jdk-opt-O2.diff) \ + $(if $(filter $(DEB_HOST_ARCH), powerpc), debian/patches/gcc-opt-O2.diff) +endif + +ifeq ($(distribution),Ubuntu) + DISTRIBUTION_PATCHES += debian/patches/openjdk-ubuntu-branding.patch +endif + +ifneq (,$(findstring cacao, $(PKGSOURCE))) + DISTRIBUTION_PATCHES += \ + debian/patches/cacao-no-mmap-first-page.diff \ + debian/patches/cacao-min-heapsize.diff +endif + +export DISTRIBUTION_PATCHES + +ifeq ($(STAGE1_JAVA),gcj) + CONFIGURE_ARGS = \ + --with-gcj-home=$(STAGE1_HOME) \ + --with-ecj=/usr/bin/ecj \ + --with-java=$(STAGE1_HOME)/bin/java \ + --with-javah=/usr/bin/gjavah$(GCJ_SUFFIX) \ + --with-rmic=/usr/bin/grmic$(GCJ_SUFFIX) \ + --with-jar=/usr/bin/fastjar \ + --with-libgcj-jar=/usr/share/java/libgcj$(GCJ_SUFFIX).jar + build_target = icedtea-against-icedtea +else ifeq ($(STAGE1_JAVA),openjdk) + CONFIGURE_ARGS = \ + --with-icedtea \ + --with-icedtea-home=$(STAGE1_HOME) + build_target = #icedtea-against-icedtea +else ifeq ($(STAGE1_JAVA),cacao) + CONFIGURE_ARGS = \ + --with-icedtea \ + --with-icedtea-home=$(STAGE1_HOME) + build_target = #icedtea-against-icedtea +endif + +# there are problems --with-alt-jar=/usr/bin/fastjar, +# see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=217 +# only use it for zero ports except powerpc (which we assume as +# fast enough to build. +ifneq (,$(findstring openjdk, $(PKGSOURCE))) + ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) powerpc)) + CONFIGURE_ARGS += --with-alt-jar=/usr/bin/fastjar + endif +endif + +CONFIGURE_ARGS += \ + --with-xalan2-jar=/usr/share/java/xalan2.jar \ + --with-xalan2-serializer-jar=/usr/share/java/serializer.jar \ + --with-rhino=/usr/share/java/js.jar \ + --with-openjdk-src-zip=$(firstword $(wildcard $(OPENJDK_SRC_ZIP) /usr/src/$(OPENJDK_SRC_ZIP))) + +ifneq (,$(findstring cacao, $(PKGSOURCE))) + CONFIGURE_ARGS += \ + --enable-cacao \ + --with-cacao-src-zip=$(firstword $(wildcard $(CURDIR)/cacao-*.tar.* /usr/src/cacao-*.tar.*)) + ifneq (,$(filter $(DEB_HOST_ARCH), arm armel)) + EXTRA_BUILD_ENV = CACAO_CONFIGURE_ARGS='--enable-softfloat --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)' + else + EXTRA_BUILD_ENV = CACAO_CONFIGURE_ARGS='--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)' + endif +else + ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs))) + CONFIGURE_ARGS += --enable-zero + endif + ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs))) + EXTRA_BUILD_ENV = LIBFFI_LIBS=-lffi_pic + endif +endif + +# assume we don't build binary indep packages on these architectures +ifeq ($(with_docs),yes) + ifneq (,$(filter $(DEB_HOST_ARCH), alpha arm armel hppa ia64 lpia m68k mips mipsel powerpc s390 sparc)) + CONFIGURE_ARGS += --disable-docs + endif +else + CONFIGURE_ARGS += --disable-docs +endif + +ifneq (,$(NJOBS)) + CONFIGURE_ARGS += --with-parallel-jobs=$(NJOBS) +endif + +ifeq ($(with_plugin_pkg),yes) + ifeq ($(plugin_name),gcjwebplugin.so) + CONFIGURE_ARGS += --enable-gcjwebplugin + else + CONFIGURE_ARGS += --enable-liveconnect + endif +else + CONFIGURE_ARGS += --disable-gcjwebplugin --disable-liveconnect +endif + +ifeq ($(with_pulse),yes) + CONFIGURE_ARGS += --enable-pulse-java +endif + +CONFIGURE_ARGS += --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) + +VENDOR := openjdk +Vendor := OpenJDK + +TOP = usr/lib/jvm +jdirname = java-$(shortver)-$(origin) +ifneq (,$(findstring cacao, $(PKGSOURCE))) + origin = cacao + basename = cacao-oj$(shortver) + priority = 1059 + p_lib_arch = any + vm_name = CacaoVM JIT +else + origin = openjdk + basename = openjdk-$(shortver) + ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs))) + priority = 1061 + vm_name = Hotspot JIT + else + priority = 1057 + vm_name = Hotspot Zero + endif + p_lib_arch = all +endif +jvmver = 1.6.0 +shortver = 6 +jdiralias = java-$(shortver)-$(origin) +basedir = usr/lib/jvm/$(jdiralias) +jreimg = openjdk/control/build/linux-$(jvmarch)/j2re-image +sdkimg = openjdk/control/build/linux-$(jvmarch)/j2sdk-image +security = etc/$(jdiralias)/security + +# (most) jre and jdk tools handled by the alternatives system. +# dups in heimdal-clients, krb5-user: kinit, klist, ktab, no alternatives +all_jre_tools = $(notdir $(wildcard $(jreimg)/bin/*)) +jre_tools = $(filter javaws pluginappletviewer policytool, $(all_jre_tools)) +jre_hl_tools := $(filter-out $(jre_tools), $(all_jre_tools)) + +corba_tools = orbd servertool tnameserv +jre_hl_tools_alt= $(filter-out $(corba_tools), $(jre_hl_tools)) $(corba_tools) +jre_tools_alt = $(filter-out kinit klist ktab, $(jre_tools)) + +all_jdk_tools = $(notdir $(wildcard $(sdkimg)/bin/*)) +jdk_tools = $(filter-out $(all_jre_tools), $(all_jdk_tools)) +jdk_tools_alt = $(filter-out java-rmi.cgi, $(jdk_tools)) + +ifeq ($(distribution),Ubuntu) + pkg_compress = lzma +else + pkg_compress = bzip2 +endif + +# build dependencies +bd_bootstrap = +ifneq (,$(stage1_gcj_archs)) + bd_bootstrap += \ + gcj (>= 4:4.2.1) [$(strip $(foreach a,$(stage1_gcj_archs), $(a)))], \ + ecj [$(strip $(foreach a,$(stage1_gcj_archs), $(a)))], \ + java-gcj-compat-dev (>= 1.0.76-2ubuntu3) [$(strip $(foreach a,$(stage1_gcj_archs), $(a)))], +endif +ifneq (,$(stage1_openjdk_archs)) + bd_bootstrap += \ + openjdk-6-jdk (>= $(req_openjdk_bd_ver)) [$(strip $(foreach a,$(stage1_openjdk_archs), $(a)))], +endif +ifneq (,$(stage1_cacao_archs)) + bd_bootstrap += \ + cacao-oj6-jdk [$(strip $(foreach a,$(stage1_cacao_archs), $(a)))], +endif +bd_tarball = $(if $(findstring openjdk, $(PKGSOURCE)),,$(p_tar) (>= 6b12)$(COMMA) $(p_tar) (<< 6b13)$(COMMA)) +bd_cacao = libtool, +bd_cacao = $(if $(findstring cacao, $(PKGSOURCE)),cacao-source (>= 0.99.4~20081012)$(COMMA)) +bd_gcc = \ + g++-4.2 [amd64 powerpc sparc], g++-4.1 [i386 lpia], +ifeq (,$(filter $(distrel),hardy gutsy feisty edgy dapper)) + bd_gcc = \ + g++-4.3, +endif +bd_syslibs = \ + libjpeg62-dev, libpng12-dev, libgif-dev$(if $(filter $(distrel),etch dapper edgy feisty gutsy), | libungif4-dev), zlib1g-dev, +bd_openjdk = \ + libxtst-dev, libxi-dev, libxt-dev, libxp-dev, libxaw7-dev, \ + $(if $(filter $(distrel), etch dapper edgy gutsy hardy),libcupsys2-dev,libcups2-dev), \ + libasound2-dev, libfreetype6-dev, \ + libxalan2-java, rhino, liblcms1-dev, libxinerama-dev, +bd_zero = \ + $(if $(filter $(distribution),Ubuntu),$(if $(filter $(distrel),hardy),libffi4-dev,libffi-dev),libffi-dev) [$(foreach a,$(hotspot_archs),!$(a))], +#ifeq ($(with_plugin_pkg),yes) + bd_plugin = \ + libgtk2.0-dev, $(if $(filter $(distribution),Debian),$(if $(findstring gcj,$(plugin_name)),iceape-dev,xulrunner-dev (>= 1.9.0)),$(if $(filter $(distrel),hardy intrepid),xulrunner-1.9-dev,firefox-dev)), +#endif +bd_netx = fastjar (>= 2:0.96-0ubuntu2), +ifneq (,$(filter $(distrel),lenny sid experimental)) + bd_netx = fastjar (>= 2:0.95-4), +endif +ifneq (,$(filter $(distrel),hardy)) + bd_netx = fastjar (>= 2:0.95-1ubuntu2), +endif +bd_mauve = mauve, xvfb, autoconf, automake, xauth, xfonts-base +bd_compress = $(pkg_compress), +pkg_pulseaudio = pulseaudio (>= 0.9.12) +ifeq ($(with_pulse),yes) + bd_pulsejava = libpulse-dev (>= 0.9.12), $(pkg_pulseaudio), +endif + +dlopen_hl_depends = \ + $(if $(filter $(distrel), etch dapper edgy gutsy hardy),libcupsys2,libcups2), \ + liblcms1 +dlopen_hl_recommends = \ +dlopen_jre_depends = \ + libgtk2.0-0, libgnome2-0, libgnomevfs2-0, libgconf2-4, \ + libxrandr2, libxinerama1, libgl1-mesa-glx +dlopen_jre_recommends = + +browser_plugin_dirs = xulrunner-addons firefox iceape iceweasel mozilla midbrowser xulrunner +browser_plugin_dirs = xulrunner-addons + +ifneq (,$(filter $(distrel),etch dapper feisty)) + core_fonts = ttf-dejavu +else + core_fonts = ttf-dejavu-core +endif +cjk_fonts = ttf-baekmuk | ttf-unfonts | ttf-unfonts-core, +cjk_fonts += ttf-kochi-gothic | ttf-sazanami-gothic, +cjk_fonts += ttf-kochi-mincho | ttf-sazanami-mincho, +cjk_fonts += $(if $(with_wgy_zenhai),ttf-wqy-zenhei,ttf-arphic-uming), +ifneq (,$(filter $(distrel),lenny sid)) + cjk_fonts += ttf-indic-fonts, +else + cjk_fonts += ttf-indic-fonts-core, ttf-telugu-fonts, ttf-oriya-fonts, + cjk_fonts += ttf-kannada-fonts, ttf-bengali-fonts, +endif + +p_jre = $(basename)-jre +p_jrehl = $(basename)-jre-headless +p_lib = $(basename)-jre-lib +p_jdk = $(basename)-jdk +p_demo = $(basename)-demo +p_src = $(basename)-source +p_doc = $(basename)-doc +p_dbg = $(basename)-dbg +p_tar = openjdk-6-source-files +ifeq ($(plugin_name),gcjwebplugin.so) + p_plug= icedtea-gcjwebplugin +else + p_plug = $(if $(findstring openjdk,$(PKGSOURCE)),icedtea6-plugin,$(basename)-plugin) +endif + +d = debian/tmp +d_jre = debian/$(p_jre) +d_jrehl = debian/$(p_jrehl) +d_lib = debian/$(p_lib) +d_jdk = debian/$(p_jdk) +d_demo = debian/$(p_demo) +d_src = debian/$(p_src) +d_doc = debian/$(p_doc) +d_dbg = debian/$(p_dbg) +d_tar = debian/$(p_tar) +d_plug = debian/$(p_plug) + +control_vars = \ + '-Vvm:Name=$(vm_name)' \ + '-Vbase:Version=$(req_openjdk_ver)' \ + '-Vdlopenhl:Depends=$(dlopen_hl_depends)' \ + '-Vdlopenhl:Recommends=$(dlopen_hl_recommends)' \ + '-Vdlopenjre:Depends=$(dlopen_jre_depends)' \ + '-Vdlopenjre:Recommends=$(dlopen_jre_recommends)' \ + '-Vpkg:pulseaudio=$(pkg_pulseaudio)' \ + +ifeq ($(pkg_compress),lzma) + bd_options = -- -Zlzma + control_vars += '-Vdpkg:Depends=dpkg (>= 1.14.12ubuntu3)' +else ifeq ($(pkg_compress),bzip2) + bd_options = -- -Zbzip2 + control_vars += '-Vdpkg:Depends=dpkg (>= 1.10.24)' +endif + +debian/control: debian/control.in debian/rules + @cp -p debian/control debian/control.old + sed \ + -e 's/@basename@/$(basename)/g' \ + -e 's/@bd_bootstrap@/$(bd_bootstrap)/g' \ + -e 's/@bd_openjdk@/$(bd_openjdk)/g' \ + -e 's/@bd_zero@/$(bd_zero)/g' \ + -e 's/@bd_gcc@/$(bd_gcc)/g' \ + -e 's/@bd_syslibs@/$(bd_syslibs)/g' \ + -e 's/@bd_plugin@/$(bd_plugin)/g' \ + -e 's/@bd_netx@/$(bd_netx)/g' \ + -e 's/@bd_mauve@/$(bd_mauve)/g' \ + -e 's/@bd_compress@/$(pkg_compress)/g' \ + -e 's/@bd_tarball@/$(bd_tarball)/g' \ + -e 's/@bd_cacao@/$(bd_cacao)/g' \ + -e 's/@bd_pulsejava@/$(bd_pulsejava)/g' \ + -e 's/@core_fonts@/$(core_fonts)/g' \ + -e 's/@cjk_fonts@/$(cjk_fonts)/g' \ + -e 's/@pkg_plugin@/$(p_plug)/g' \ + -e 's,@pkg_version@,$(if $(filter $(distrel),etch dapper edgy feisty gutsy),$${Source-Version},$${binary:Version}),g' \ + -e 's/@lib_arch@/$(p_lib_arch)/g' \ + debian/control.in \ + $(if $(with_plugin_pkg),debian/control.$(plugin_name)) \ + $(if $(findstring openjdk-,$(PKGSOURCE)),debian/control.tarball) \ + > debian/control + @if cmp -s debian/control debian/control.old; then \ + rm -f debian/control.old; \ + else \ + diff -u debian/control.old debian/control; \ + echo "debian/control did change, please restart the build"; \ + rm -f debian/control.old; \ + exit 1; \ + fi + +packaging-files: + for f in debian/*.in; do \ + case "$$f" in debian/control.in) continue; esac; \ + case "$$f" in \ + debian/PLUGIN.*.in) f2=$$(echo $$f | sed 's/PLUGIN/$(p_plug)/;s/\.in$$//');; \ + *) f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \ + esac; \ + sed -e 's/@JRE@/$(p_jre)/g' \ + -e 's/@JDK@/$(p_jdk)/g' \ + -e 's/@vendor@/$(Vendor)/g' \ + -e 's/@RELEASE@/$(shortver)/g' \ + -e 's/@basename@/$(basename)/g' \ + -e 's,@TOP@,$(TOP),g' \ + -e 's,@basedir@,$(basedir),g' \ + -e 's,@basediralias@,$(TOP)/$(jdiralias),g' \ + -e 's,@jdiralias@,$(jdiralias),g' \ + -e 's,@jdirname@,$(jdirname),g' \ + -e 's/@srcname@/$(srcname)/g' \ + -e 's/@jvmarch@/$(jvmarch)/g' \ + -e 's/@archdir@/$(archdir)/g' \ + -e 's/@tag@/$(tag)/g' \ + -e 's/@priority@/$(priority)/g' \ + -e 's/@mantag@/$(mantag)/g' \ + -e 's/@jre_hl_tools@/$(jre_hl_tools_alt)/g' \ + -e 's/@jre_tools@/$(jre_tools_alt)/g' \ + -e 's/@jdk_tools@/$(jdk_tools_alt)/g' \ + -e 's/@corba_tools@/$(corba_tools)/g' \ + -e 's,@j2se_lib@,$(j2se_lib),g' \ + -e 's,@j2se_share@,$(j2se_share),g' \ + -e 's,@plugin_name@,$(plugin_name),g' \ + -e 's/@pkg_plugin@/$(p_plug)/g' \ + -e 's,@browser_dirs@,$(browser_plugin_dirs),g' \ + -e 's/@cjk_fonts@/$(cjk_fonts)/g' \ + $$f > $$f2; \ + done +ifneq (,$(filter $(DEB_HOST_ARCH), i386 lpia)) +# not yet in OpenJDK +# cat debian/$(p_jre)-i586.menu >> $(d_jre).menu + rm -f debian/$(p_jre)-i586.menu +endif + +icedtea-configure: stamps/icedtea-configure +stamps/icedtea-configure: +ifeq (0,1) + for i in $$(find test/jtreg -name '*.uu'); do \ + [ -f $$i ] || continue; \ + d=$$(dirname $$i); i=$$(basename $$i .uu); \ + rm -f $$d/$$i; \ + (cd $$d && uudecode $$i.uu); \ + done +endif + + mkdir -p bin + ( \ + echo '#! /bin/sh'; \ + echo 'if [ -x /usr/bin/linux32 ]; then'; \ + echo ' exec /usr/bin/linux32 /bin/uname "$$@"'; \ + echo 'else'; \ + echo ' exec /bin/uname "$$@"'; \ + echo 'fi'; \ + ) > bin/uname + chmod +x bin/uname + + echo "UNAME checks" + uname -a + /bin/uname -a + test -x /usr/bin/linux32 && linux32 uname -a || true + test -x /usr/bin/linux32 &&linux32 /bin/uname -a || true + + mkdir -p stamps + chmod +x configure + $(EXTRA_BUILD_ENV) ./configure $(CONFIGURE_ARGS) + touch $@ + +unpack: stamps/backup-generated stamps/unpack +stamps/unpack: stamps/icedtea-configure stamps/backup-generated + $(MAKE) stamps/extract.stamp +ifeq ($(STAGE1_JAVA),gcj) + $(MAKE) stamps/extract-ecj.stamp +endif + touch $@ + +dist-openjdk: $(OPENJDK_SRC_ZIP) + @echo "downloading openjdk source from hg to create zipfile: $(OPENJDK_SRC_ZIP)" + $(MAKE) $@ + +stamps/backup-generated: stamps/icedtea-configure + if [ -f generated.tar ]; then \ + echo >&2 "backup of generated files already exists"; \ + exit 2; \ + fi + tar cf generated.tar generated + touch $@ + +patch: stamps/patch +stamps/patch: stamps/unpack +ifeq ($(STAGE1_JAVA),gcj) + $(MAKE) stamps/patch-ecj.stamp +endif + $(MAKE) stamps/patch.stamp + touch $@ + +ifeq ($(with_check),yes) + ifneq (,$(findstring cacao, $(PKGSOURCE))) + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia powerpc)) + # only activate after testing; hangs several tests. no fun with mauve + with_mauve_check = yes + with_jtreg_check = yes + endif + else + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia powerpc sparc)) + with_mauve_check = yes + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia sparc)) + with_jtreg_check = yes + endif + endif +endif + +build: stamps/build stamps/mauve-check stamps/jtreg-check + if [ -f buildwatch.pid ]; then \ + pid=$$(cat buildwatch.pid); \ + kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \ + fi + rm -f buildwatch.pid + +stamps/build: stamps/patch +ifneq (,$(filter $(DEB_HOST_ARCH), alpha arm armel hppa ia64 m68k mips mipsel powerpc s390 sparc)) + sh -c 'sh debian/buildwatch.sh &' +endif + $(EXTRA_BUILD_ENV) $(MAKE) $(build_target) + touch $@ + +stamps/xvfb-check: + mkdir -p bin + echo 'xvfb-run -a -e xvfb-run.log -s "-extension GLX" "$$@"' > bin/my-xvfb-run + if ! /bin/sh bin/my-xvfb-run : ; then \ + echo "error running $$(cat bin/my-xvfb-run)"; \ + cat xvfb-run.log; \ + echo 'xvfb-run -a -e xvfb-run.log -s "$$@"' > bin/my-xvfb-run; \ + if ! /bin/sh bin/my-xvfb-run : ; then \ + echo "error running $$(cat bin/my-xvfb-run)"; \ + cat xvfb-run.log; \ + rm -f bin/my-xvfb-run; \ + fi; \ + fi + if [ -f bin/my-xvfb-run ]; then \ + echo "using $$(cat bin/my-xvfb-run)"; \ + fi + touch $@ + +stamps/mauve-build: stamps/build + rm -rf mauve + mkdir -p mauve +ifeq ($(with_mauve_check),yes) + tar xf /usr/src/mauve.tar.gz + cd mauve \ + && aclocal \ + && automake \ + && autoconf \ + && PATH=$(CURDIR)/$(sdkimg)/bin:$$PATH ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) + PATH=$(CURDIR)/$(sdkimg)/bin:$$PATH $(MAKE) -C mauve +endif + touch $@ + +stamps/mauve-check: stamps/build stamps/mauve-build stamps/xvfb-check +ifeq ($(with_mauve_check),yes) + if [ -f bin/my-xvfb-run ]; then \ + cd mauve && \ + JAVA_HOME=$(CURDIR)/$(sdkimg) \ + PATH=$(CURDIR)/$(sdkimg)/bin:$$PATH \ + /bin/sh $(CURDIR)/bin/my-xvfb-run java Harness \ + -vm $(CURDIR)/$(sdkimg)/bin/java \ + -file $(CURDIR)/debian/mauve_tests \ + -timeout 30000 2>&1 \ + | tee mauve_output; \ + else \ + echo "mauve testsuite not run for this build (xvfb failures)" > mauve/mauve_output; \ + cat xvfb-run.log >> mauve/mauve_output; \ + fi + @sleep 5 +else + echo "mauve testsuite not run for this build" > mauve/mauve_output +endif + touch $@ + +jtreg_processes = ps x -ww -o pid,ppid,args \ + | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,/scratch)/' \ + | sed 's,$(CURDIR)/$(sdkimg),,g;s,$(CURDIR),,g' +jtreg_pids = ps x --no-headers -ww -o pid,ppid,args \ + | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,$(CURDIR)/$(sdkimg))/ {print $$1}' + +stamps/jtreg-check: stamps/build stamps/xvfb-check +ifeq ($(with_jtreg_check),yes) + @echo "BEGIN jtreg" + if [ -f bin/my-xvfb-run ]; then \ + /bin/sh bin/my-xvfb-run $(MAKE) -j $(NJOBS) -k jtregcheck 2>&1 | tee jtreg_output; \ + else \ + echo "jtreg harness not run for this build" > jtreg_output; \ + cat xvfb-run.log >> jtreg_output; \ + fi + @echo "END jtreg" + + @echo "BEGIN jtreg-summary" + cat test/jtreg-summary.log + @echo "END jtreg-summary" + + : # kill testsuite processes still hanging + @pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "killing processes..."; \ + $(jtreg_processes); \ + kill -1 $$pids; \ + sleep 2; \ + pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "trying harder..."; \ + $(jtreg_processes); \ + kill -9 $$pids; \ + sleep 2; \ + fi; \ + else \ + echo "nothing to cleanup"; \ + fi; \ + pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "leftover processes..."; \ + $(jtreg_processes); \ + fi +else + echo "jtreg harness not run for this build" > jtreg_output +endif + touch $@ + +clean: debian-clean + dh_testdir + dh_testroot + rm -rf stamps + [ ! -f Makefile ] || $(MAKE) distclean + rm -rf openjdk openjdk-ecj + rm -f generated/sun/awt/X11/generator/sizer.{32,64} + rm -rf autom4te.cache + rm -rf mauve + rm -rf bin + rm -f jtreg_output xvfb-run.log + rm -f buildwatch.pid + if [ -f generated.tar ]; then \ + rm -rf generated; \ + tar xf generated.tar; \ + rm -f generated.tar; \ + fi + +ifeq (0,1) + for i in $$(find test/jtreg -name '*.gif') overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/expresso.mid overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/ding.sf2; do \ + [ -f $$i ] || continue; \ + if [ -f $$i.uu -a $$i.uu -nt $$i ]; then \ + rm -f $$i; \ + else \ + d=$$(dirname $$i); i=$$(basename $$i); \ + (cd $$d && uuencode -m $$i $$i > $$i.uu); \ + rm -f $$d/$$i; \ + fi; \ + done +endif + + dh_clean + +debian-clean: + dh_testdir + dh_testroot + dh_clean -k + for f in debian/*.in; do \ + case "$$f" in \ + debian/PLUGIN.*.in) f2=$$(echo $$f | sed 's/PLUGIN/$(p_plug)/;s/\.in$$//');; \ + *) f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \ + esac; \ + case "$$f2" in debian/control) continue; esac; \ + rm -f $$f2; \ + done + rm -f debian/*.install debian/*.links + +install: packaging-files + dh_testdir + dh_testroot + dh_clean -k + rm -f debian/*.install debian/*.links + dh_installdirs + + : # install into temporary location + mkdir -p $(d)/$(basedir) + cp -a $(sdkimg)/* $(d)/$(basedir)/ + cp -a $(jreimg)/man $(d)/$(basedir)/jre/ + chmod -R u+w $(d) + + : # add extra symlinks for header files + ln -sf linux/jni_md.h $(d)/$(basedir)/include/jni_md.h + ln -sf linux/jawt_md.h $(d)/$(basedir)/include/jawt_md.h + +ifneq (,$(filter --with-alt-jar=/usr/bin/fastjar, $(CONFIGURE_ARGS))) + : # add javascript files to the archive + if ! fastjar tf $(d)/$(basedir)/jre/lib/rt.jar | fgrep -q JSObject.class; then \ + echo "FIXME: Adding class files for IcedTeaPlugin to rt.jar..."; \ + fastjar -u -v -0 -f $(d)/$(basedir)/jre/lib/rt.jar \ + -C lib/rt netscape/javascript; \ + fi +endif + : # compress manpages + find $(d)/$(basedir)/man $(d)/$(basedir)/jre/man -type f ! -type l \ + | xargs gzip -9v + + : # replace common files in jdk and jre by symlinks + @cd $(d)/$(basedir); \ + for i in `find jre -type f`; do \ + i2=$${i#jre/*}; \ + [ -f $$i2 ] && cmp -s $$i $$i2 || continue; \ + d=$$(echo ./$$i2 | sed -r 's,[^/]+/,../,g;s,/[^/]+$$,,;s,\.\.$$,,'); \ + echo " symlink $$i2 -> $$d$$i"; \ + ln -sf $$d$$i $$i2; \ + done + + mkdir -p $(d)/etc/$(jdiralias)/security + mkdir -p $(d)/etc/$(jdiralias)/management + mkdir -p $(d)/etc/$(jdiralias)/images/cursors + + : # rename templates (comments only) to config files, + : # and move to /etc/$(jdiralias) + for i in \ + management/jmxremote.password \ + management/snmp.acl; \ + do \ + mv $(d)/$(basedir)/jre/lib/$$i.template $(d)/etc/$(jdiralias)/$$i; \ + done + + cp -p debian/accessibility.properties $(d)/$(basedir)/jre/lib/ + cp -p debian/swing.properties $(d)/$(basedir)/jre/lib/ + + rm -f $(d)/$(basedir)/jre/lib/security/cacerts + + : # move config files to etc/$(jdiralias) and symlink them. + for i in \ + accessibility.properties \ + calendars.properties \ + content-types.properties \ + images/cursors/cursors.properties \ + logging.properties \ + sound.properties \ + flavormap.properties \ + net.properties \ + psfontj2d.properties \ + psfont.properties.ja \ + swing.properties \ + management/jmxremote.access \ + management/management.properties \ + security/java.policy \ + security/java.security; \ + do \ + mv $(d)/$(basedir)/jre/lib/$$i $(d)/etc/$(jdiralias)/$$i; \ + done + mv $(d)/$(basedir)/jre/lib/$(archdir)/jvm.cfg \ + $(d)/etc/$(jdiralias)/ + + mv $(d)/$(basedir)/jre/lib/fontconfig.Ubuntu.properties.src \ + $(d)/etc/$(jdiralias)/fontconfig.properties.src + mv $(d)/$(basedir)/jre/lib/fontconfig.Ubuntu.bfc \ + $(d)/etc/$(jdiralias)/fontconfig.bfc + + : # remove files which we do not want to distribute + rm -f $(d)/$(basedir)/jre/lib/fontconfig*.properties.src + rm -f $(d)/$(basedir)/jre/lib/fontconfig*.bfc + + : # remove empty directories + rmdir $(d)/$(basedir)/jre/lib/management + rmdir $(d)/$(basedir)/jre/lib/applet + rmdir $(d)/$(basedir)/jre/lib/security + + : # TODO: why do we provide a custom font.properties.ja? + : # cp -p debian/font.properties.ja $(d_jbin)/etc/$(jdiralias)/. +# cp debian/font.properties.wgy_zenhai \ +# $(d)/etc/$(jdiralias)/font.properties.ja + + + : # now move things to the packages. it is so ****** to create + : # .install files first. dh_movefiles did do the job perfectly + + : # $(p_jrehl).install / $(p_jre).install + ( \ + echo 'etc'; \ + echo '$(basedir)/jre/lib/jexec'; \ + echo '$(basedir)/jre/lib/rt.jar'; \ + echo '$(basedir)/jre/man/ja'; \ + echo '$(basedir)/man/ja'; \ + echo '$(basedir)/bin/java-rmi.cgi'; \ + ) > debian/$(p_jrehl).install + $(RM) debian/$(p_jre).install + + cd $(CURDIR)/$(d); \ + for i in $(basedir)/jre/{bin,man/man1,man/ja_JP.eucJP/man1}/*; do \ + case "$$i" in \ + */javaws*|*/pluginappletviewer*|*/policytool*) echo $$i >> ../$(p_jre).install;; \ + *) echo $$i >> ../$(p_jrehl).install; \ + esac; \ + done + + cd $(CURDIR)/$(d); \ + for i in $(basedir)/{bin,man/man1,man/ja_JP.eucJP/man1}/*; do \ + [ -h $$i ] || continue; \ + case "$$i" in \ + */javaws*|*/pluginappletviewer*|*/policytool*) echo $$i >> ../$(p_jre).install;; \ + *) echo $$i >> ../$(p_jrehl).install; \ + esac; \ + done; \ + + cd $(CURDIR)/$(d); \ + for i in $(basedir)/jre/lib/$(archdir)/*; do \ + case "$$i" in \ + */$(plugin_name)) continue;; \ + */libsplashscreen.so|*/libjsoundalsa.so|$(if $(with_pulse),*/libpulse-java.so|)*/xawt) echo $$i >> ../$(p_jre).install;; \ + *) echo $$i >> ../$(p_jrehl).install; \ + esac; \ + done + + : # $(p_lib).install + ( \ + echo '$(basedir)/jre/ASSEMBLY_EXCEPTION'; \ + echo '$(basedir)/jre/README.html'; \ + echo '$(basedir)/jre/THIRD_PARTY_README'; \ + cd $(d); \ + for i in $(basedir)/jre/lib/*; do \ + case "$$i" in */$(archdir)|*/jexec|*/rt.jar) continue; esac; \ + echo $$i; \ + done; \ + ) > debian/$(p_lib).install + + : # $(p_jdk).install + ( \ + echo '$(basedir)/include'; \ + echo '$(basedir)/lib'; \ + echo '$(basedir)/LICENSE'; \ + echo '$(basedir)/ASSEMBLY_EXCEPTION'; \ + echo '$(basedir)/README.html'; \ + echo '$(basedir)/THIRD_PARTY_README'; \ + cd $(d); \ + for i in $(basedir)/{bin,man/man1,man/ja_JP.eucJP/man1}/*; do \ + [ -h $$i -o "$$i" = $(basedir)/bin/java-rmi.cgi ] && continue; \ + echo $$i; \ + done; \ + ) > debian/$(p_jdk).install + +ifeq ($(with_plugin_pkg),yes) + dh_installdirs -p$(p_plug) \ + $(foreach d, $(browser_plugin_dirs), usr/lib/$(d)/plugins) + + : # $(p_plug).install + ( \ + echo '$(basedir)/jre/lib/$(archdir)/$(plugin_name)'; \ + ) > debian/$(p_plug).install +else + : # include the plugin in the $(p_jre) package + echo '$(basedir)/jre/lib/$(archdir)/$(plugin_name)' \ + >> debian/$(p_jre).install +endif + + : # $(p_src).install + ( \ + echo '$(basedir)/src.zip'; \ + ) > debian/$(p_src).install + + : # move demos and samples, create symlinks for $(p_demo) + mkdir -p $(d)/usr/share/doc/$(p_jre)/demo + for i in $(d)/$(basedir)/demo/*; do \ + b=$$(basename $$i); \ + case "$$i" in \ + */jvmti) \ + echo $(basedir)/demo/$$b usr/share/doc/$(p_jre)/demo/$$b >> $(d_demo).links;; \ + *) \ + mv $$i $(d)/usr/share/doc/$(p_jre)/demo/$$b; \ + echo usr/share/doc/$(p_jre)/demo/$$b $(basedir)/demo/$$b >> $(d_demo).links;; \ + esac; \ + done + mv $(d)/$(basedir)/sample $(d)/usr/share/doc/$(p_jre)/examples + echo usr/share/doc/$(p_jre)/examples $(basedir)/sample >> $(d_demo).links + echo usr/share/doc/$(p_jre) usr/share/doc/$(p_demo) >> $(d_demo).links + + : # $(p_demo).install + ( \ + echo '$(basedir)/demo'; \ + echo 'usr/share/doc/$(p_jre)/examples'; \ + echo 'usr/share/doc/$(p_jre)/demo'; \ + ) > debian/$(p_demo).install + + dh_install --sourcedir=debian/tmp --fail-missing -XLICENSE + + : # give all permissions to cross-VM extension directory + sed -i \ + -e '/permission java\.security\.AllPermission;/,/};/c\' \ + -e ' permission java.security.AllPermission;\' \ + -e '};\' \ + -e '\' \ + -e 'grant codeBase "file:/$(basedir)/ext/*" {\' \ + -e ' permission java.security.AllPermission;\' \ + -e '};\' \ + -e '\' \ + -e '// Comment this out if you want to give all permissions to the\' \ + -e '// Debian Java repository too:\' \ + -e '//grant codeBase "file:/usr/share/java/repository/-" {\' \ + -e '// permission java.security.AllPermission;\' \ + -e '//};\' \ + -e '' \ + $(d_jrehl)/$(security)/java.policy +# 'make Emacs Makefile mode happy + + dh_installdirs -p$(p_jrehl) \ + usr/share/doc/$(p_jre) \ + usr/share/binfmts + + dh_installdirs -p$(p_jre) \ + usr/share/applications \ + usr/share/application-registry \ + usr/share/mime-info \ + usr/share/pixmaps + + : # add GNOME stuff + cp -p debian/$(basename)-{javaws,policytool}.desktop \ + $(d_jre)/usr/share/applications/ + cp -p debian/$(basename)-java.desktop \ + $(d_jre)/usr/share/applications/ +# not yet in OpenJDK +# cp -p debian/$(basename)-controlpanel.desktop \ +# $(d_jre)/usr/share/applications/ + + for i in archive web-start; do \ + cp debian/$(basename)-$$i.applications \ + $(d_jre)/usr/share/application-registry/; \ + cp debian/$(basename)-$$i.keys $(d_jre)/usr/share/mime-info/; \ + cp debian/$(basename)-$$i.mime $(d_jre)/usr/share/mime-info/; \ + done + + cp -p debian/sun_java.xpm \ + $(d_jre)/usr/share/pixmaps/$(basename).xpm + + mkdir -p $(d_demo)/usr/share/pixmaps + cp -p debian/sun_java_app.xpm \ + $(d_demo)/usr/share/pixmaps/$(basename)-app.xpm + + : # install icons + for i in 16 24 32 48; do \ + install -D -p openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon$${i}.png \ + $(d_jre)/usr/share/icons/hicolor/$${i}x$${i}/apps/$(basename).png; \ + done + + : # create docdir symlinks for $(p_jrehl) + ( \ + echo usr/share/doc/$(p_jre) usr/share/doc/$(p_jrehl); \ + echo usr/share/doc/$(p_jre) $(basedir)/docs; \ + ) > $(d_jrehl).links + + : # create docdir symlinks for $(p_src) + ( \ + echo usr/share/doc/$(p_jre) usr/share/doc/$(p_src); \ + ) > $(d_src).links + + : # create docdir symlinks for $(p_jdk) + ( \ + echo usr/share/doc/$(p_jre) usr/share/doc/$(p_jdk); \ + ) > $(d_jdk).links + +ifeq ($(with_plugin_pkg),yes) + : # create docdir symlinks for $(p_plug) + ( \ + echo usr/share/doc/$(p_jre) usr/share/doc/$(p_plug); \ + ) > $(d_plug).links +endif + + : # create docdir symlinks for $(p_lib) + ( \ + echo usr/share/doc/$(p_jre) usr/share/doc/$(p_lib); \ + ) > $(d_lib).links + + : # create docdir symlinks for $(p_jdk) + ( \ + echo usr/share/doc/$(p_jre) usr/share/doc/$(p_dbg); \ + ) > $(d_dbg).links + + : # create links for the gnome accessibility bridge + echo "usr/share/java/gnome-java-bridge.jar $(basedir)/jre/lib/ext/gnome-java-bridge.jar" \ + >> $(d_jrehl).links + + : # create links for the config files + find $(d_jrehl)/etc/$(jdiralias) -type f ! -name jvm.cfg \ + -printf "etc/$(jdiralias)/%P $(basedir)/jre/lib/%P\n" >> $(d_jrehl).links + echo "etc/$(jdiralias)/jvm.cfg $(basedir)/jre/lib/$(archdir)/jvm.cfg" \ + >> $(d_jrehl).links + echo "etc/ssl/certs/java/cacerts $(basedir)/jre/lib/security/cacerts" \ + >> $(d_jrehl).links + + @echo JRE_HL_TOOLS: $(jre_hl_tools_alt) jexec + @echo JRE_TOOLS: $(jre_tools_alt) + @echo JDK_TOOLS: $(jdk_tools_alt) + ( \ + echo 'name=$(jdirname)'; \ + echo 'alias=$(jdiralias)'; \ + echo 'priority=$(priority)'; \ + echo 'section=main'; \ + echo ''; \ + for i in $(jre_hl_tools_alt); do \ + echo "hl $$i /$(TOP)/$(jdiralias)/jre/bin/$$i"; \ + done; \ + echo "hl jexec /$(TOP)/$(jdiralias)/jre/lib/jexec"; \ + for i in $(jre_tools_alt); do \ + echo "jre $$i /$(TOP)/$(jdiralias)/jre/bin/$$i"; \ + done; \ + for i in $(jdk_tools_alt); do \ + echo "jdk $$i /$(TOP)/$(jdiralias)/bin/$$i"; \ + done; \ + for d in $(browser_plugin_dirs); do \ + case "$$d" in \ + xulrunner-addons) b=xulrunner-1.9;; \ + *) b=$$d;; \ + esac; \ + echo "plugin $$b-javaplugin.so /$(TOP)/$(jdiralias)/jre/lib/$(archdir)/$(plugin_name)"; \ + done; \ + ) > $(d_jrehl)/$(TOP)/.$(jdiralias).jinfo + + ( \ + echo 'package $(basename)'; \ + echo 'interpreter /usr/bin/jexec'; \ + echo 'magic PK\x03\x04'; \ + ) > $(d_jrehl)/$(basedir)/jre/lib/jar.binfmt + + : # install a wrapper for javaws + mv $(d_jre)/$(basedir)/jre/bin/javaws $(d_jre)/$(basedir)/jre/bin/javaws.real + install -m 755 debian/javaws-wrapper.sh $(d_jre)/$(basedir)/jre/bin/javaws + + : # Install stuff to generate font config and timezone files. + mkdir -p $(d_lib)/$(basedir)/jre/lib + cp -p openjdk/control/build/linux-$(jvmarch)/btjars/compilefontconfig.jar \ + $(d_lib)/$(basedir)/jre/lib/ + cp -p openjdk/control/build/linux-$(jvmarch)/btjars/javazic.jar \ + $(d_lib)/$(basedir)/jre/lib/ + + : # install lintian overrides + for FILE in debian/*.overrides; do \ + PKG=`basename $$FILE .overrides`; \ + install -D -m644 $$FILE debian/$$PKG/usr/share/lintian/overrides/$$PKG; \ + done + +nodocs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),-N$(p_doc)) +nodemo = $(if $(findstring cacao, $(PKGSOURCE)),-N$(p_demo)) + +# Build architecture independant packages +binary-indep: build install + dh_testdir + dh_testroot +ifneq (,$(findstring cacao, $(PKGSOURCE))) + : # not building any binary-indep packages for cacao +else + ifeq ($(with_docs),yes) + dh_installchangelogs -p$(p_doc) + dh_installdocs -p$(p_doc) + mkdir -p $(d_doc)/usr/share/doc/$(p_jre) + for i in openjdk/control/build/linux-$(jvmarch)/docs/*; do \ + [ -e $$i ] || continue; \ + b=$$(basename $$i); \ + cp -a $$i $(d_doc)/usr/share/doc/$(p_jre)/; \ + ln -sf ../$(p_jre)/$$b $(d_doc)/usr/share/doc/$(p_doc)/$$b; \ + done + endif + ifneq (,$(findstring openjdk-, $(PKGSOURCE))) + dh_installdocs -p$(p_tar) + dh_installchangelogs -p$(p_tar) + mkdir -p $(d_tar)/usr/src + cp -p $(OPENJDK_SRC_ZIP) $(d_tar)/usr/src/ + endif + dh_installmenu -i $(nodocs) + -dh_icons -i $(nodocs) || dh_iconcache -i $(nodocs) +# dh_installdebconf -i $(nodocs) + dh_link -i $(nodocs) + dh_compress -i $(nodocs) -Xexamples -Xdemos + dh_fixperms -i $(nodocs) + dh_installdeb -i $(nodocs) + dh_gencontrol -i $(nodocs) -- $(control_vars) + dh_md5sums -i $(nodocs) + dh_builddeb -i $(nodocs) $(bd_options) +endif + +absarchdir = $(CURDIR)/$(d_jrehl)/$(basedir)/jre/lib/$(archdir) +shlibdeps_ld_path =$(absarchdir):$(absarchdir)/client:$(absarchdir)/server:$(absarchdir)/native_threads + +# Build architecture dependant packages +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs -p$(p_jrehl) + dh_installdocs -p$(p_jrehl) \ + debian/JAVA_HOME \ + debian/README.alternatives \ + debian/README.Debian + mv $(d_jrehl)/usr/share/doc/$(p_jrehl)/* $(d_jrehl)/usr/share/doc/$(p_jre) + rm -rf $(d_jrehl)/usr/share/doc/$(p_jrehl) + for i in AUTHORS NEWS README; do \ + cp -p $$i $(d_jrehl)/usr/share/doc/$(p_jre)/$$i.IcedTea; \ + done + mkdir -p $(d_jdk)/usr/share/doc/$(p_jre) + cp mauve/mauve_output $(d_jdk)/usr/share/doc/$(p_jre)/mauve_output.log + cp jtreg_output $(d_jdk)/usr/share/doc/$(p_jre)/jtreg_output.log + -cp test/jtreg-summary.log $(d_jdk)/usr/share/doc/$(p_jre)/ + + dh_installmenu -s $(nodemo) + -dh_icons -s $(nodemo) || dh_iconcache -s $(nodemo) +# dh_installdebconf -s $(nodemo) + dh_link -s $(nodemo) + dh_strip -s $(nodemo) --dbg-package=$(p_dbg) + dh_compress -s $(nodemo) + dh_fixperms -s $(nodemo) + dh_makeshlibs -p$(p_jrehl) -p$(p_jre) + dh_shlibdeps -s $(nodemo) -L $(p_jrehl) \ + -l$(shlibdeps_ld_path) \ + -- + dh_installdeb -s $(nodemo) + dh_gencontrol -s $(nodemo) -- $(control_vars) + dh_md5sums -s $(nodemo) + dh_builddeb -s $(nodemo) #$(bd_options) + +binary: binary-arch binary-indep +.PHONY: build clean binary-indep binary-arch binary install --- cacao-oj6-6b12.orig/debian/README.Debian +++ cacao-oj6-6b12/debian/README.Debian @@ -0,0 +1,13 @@ +openjdk-6 for Debian +-------------------- + +Please look for further documentation in the directory +/usr/share/doc/openjdk-6-jre/ . + +The package openjdk-6-jre-headless ships a cgi script +/usr/lib/jvm/java-6-openjdk/bin/java-rmi.cgi that you must integrate +into your webserver setup manually if you need it. It is not activated +automatically. + + + -- Torsten Werner Wed, 02 Apr 2008 11:46:53 +0200 --- cacao-oj6-6b12.orig/debian/control.IcedTeaPlugin.so +++ cacao-oj6-6b12/debian/control.IcedTeaPlugin.so @@ -0,0 +1,17 @@ + +Package: @pkg_plugin@ +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: @basename@-jre (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Recommends: ca-certificates-java +Conflicts: icedtea-gcjwebplugin (<< 6b12) +Replaces: icedtea-gcjwebplugin, @basename@-jre (<< 6b12) +Xb-Npp-Applications: ec8030f7-c20a-464f-9b0e-13a3a9e97384, 92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a, aa5ca914-c309-495d-91cf-3141bbb04115 +Xb-Npp-Name: The IcedTea Web Browser Plugin +Xb-Npp-MimeType: application/x-java-vm, application/x-java-applet, application/x-java-applet;version=1.1, application/x-java-applet;version=1.1.1, application/x-java-applet;version=1.1.2, application/x-java-applet;version=1.1.3, application/x-java-applet;version=1.2, application/x-java-applet;version=1.2.1, application/x-java-applet;version=1.2.2, application/x-java-applet;version=1.3, application/x-java-applet;version=1.3.1, application/x-java-applet;version=1.4, application/x-java-applet;version=1.4.1, application/x-java-applet;version=1.4.2, application/x-java-applet;version=1.5, application/x-java-applet;version=1.6, application/x-java-applet;jpi-version=1.6.0_00, application/x-java-bean, application/x-java-bean;version=1.1, application/x-java-bean;version=1.1.1, application/x-java-bean;version=1.1.2, application/x-java-bean;version=1.1.3, application/x-java-bean;version=1.2, application/x-java-bean;version=1.2.1, application/x-java-bean;version=1.2.2, application/x-java-bean;version=1.3, application/x-java-bean;version=1.3.1, application/x-java-bean;version=1.4, application/x-java-bean;version=1.4.1, application/x-java-bean;version=1.4.2, application/x-java-bean;version=1.5, application/x-java-bean;version=1.6, application/x-java-bean;jpi-version=1.6.0_00 +Description: web browser plugin based on OpenJDK and IcedTea to execute Java applets + IcedTeaPlugin is a web browser plugin to execute Java applets, supporting + LiveConnect/Javascript. It is targeted for xulrunner-1.9 and compatible + browsers that support the NPAPI. + . + Icedtea is a temporary fork of OpenJDK --- cacao-oj6-6b12.orig/debian/PLUGIN.postinst.in +++ cacao-oj6-6b12/debian/PLUGIN.postinst.in @@ -0,0 +1,25 @@ +#!/bin/sh -e + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +priority=@priority@ +browser_dirs="@browser_dirs@" +PLUGIN=@plugin_name@ +PLUGINPTH=/@basediralias@/jre/lib/@archdir@/$PLUGIN + +for browser_dir in $browser_dirs; do + if [ $browser_dir = xulrunner-addons ]; then + browser=xulrunner-1.9 + else + browser=$browser_dir + fi + update-alternatives --quiet --install \ + /usr/lib/$browser_dir/plugins/libjavaplugin.so \ + $browser-javaplugin.so \ + $PLUGINPTH \ + $priority +done + +#DEBHELPER# + +exit 0 --- cacao-oj6-6b12.orig/debian/JB-jre-headless.postinst.in +++ cacao-oj6-6b12/debian/JB-jre-headless.postinst.in @@ -0,0 +1,87 @@ +#!/bin/sh + +set -e + +priority=@priority@ +basedir=/@basedir@ +basediralias=/@basediralias@ +jdiralias=@jdiralias@ +mandir=/@basediralias@/jre/man +srcext=1.gz +dstext=1.gz +jre_tools='@jre_hl_tools@' + +case "$1" in +configure) + [ -d /etc/.java ] || mkdir -m 755 /etc/.java + [ -d /etc/.java/.systemPrefs ] || mkdir -m 755 /etc/.java/.systemPrefs + if [ ! -f /etc/.java/.systemPrefs/.system.lock ]; then + touch /etc/.java/.systemPrefs/.system.lock + chmod 644 /etc/.java/.systemPrefs/.system.lock + fi + if [ ! -f /etc/.java/.systemPrefs/.systemRootModFile ]; then + touch /etc/.java/.systemPrefs/.systemRootModFile + chmod 644 /etc/.java/.systemPrefs/.systemRootModFile + fi + + for i in $jre_tools; do + unset slave1 slave2 || true + if [ -e $mandir/man1/$i.$srcext ]; then + slave1="--slave \ + /usr/share/man/man1/$i.$dstext \ + $i.$dstext \ + $mandir/man1/$i.$srcext" + fi + # disabled + if false && [ -e $mandir/ja/man1/$i.$srcext ]; then + slave2="--slave \ + /usr/share/man/ja/man1/$i.$dstext \ + ${i}_ja.$dstext \ + $mandir/ja/man1/$i.$srcext" + fi + update-alternatives \ + --install \ + /usr/bin/$i \ + $i \ + $basediralias/jre/bin/$i \ + $priority \ + $slave1 $slave2 + done + update-alternatives \ + --install /usr/bin/jexec jexec $basediralias/jre/lib/jexec $priority \ + --slave \ + /usr/share/binfmts/jar \ + jexec-binfmt \ + $basediralias/jre/lib/jar.binfmt + + # register binfmt; ignore errors, the alternative may already be + # registered by another JRE. + if which update-binfmts >/dev/null && [ -r /usr/share/binfmts/jar ]; then + update-binfmts --package @basename@ --import jar || true + fi + + mount | grep -qs 'on /proc type proc' || echo >&2 "/proc is not mounted; some java apps may fail" + + # activate class data sharing + case @jdiralias@ in + *cacao);; + *) + case @archdir@ in i386|sparc) + rm -f $basedir/jre/lib/@archdir@/client/classes.jsa + log=$(tempfile) + if ! $basedir/bin/java -client -Xshare:dump -XX:PermSize=128m > $log; then + cat >&2 $log + rm -f $log + exit 1 + fi + rm -f $log + esac + esac + + ;; + +esac + +#DEBHELPER# + +exit 0 --- cacao-oj6-6b12.orig/debian/JB-jre-headless.postrm.in +++ cacao-oj6-6b12/debian/JB-jre-headless.postrm.in @@ -0,0 +1,17 @@ +#!/bin/sh -e + +jdiralias=@jdiralias@ + +case "$1" in +purge) + if [ -z "$jdiralias" ]; then + echo >&2 "$(basename $0): Internal error" + exit 1 + fi + rm -rf /etc/$jdiralias + + # XXX should remove /etc/.java ??? + ;; +esac + +#DEBHELPER# --- cacao-oj6-6b12.orig/debian/JB-jre-headless.overrides.in +++ cacao-oj6-6b12/debian/JB-jre-headless.overrides.in @@ -0,0 +1,14 @@ +# It seems to be acceptable to use rpath for private libraries like the +# jdk is doing it. Check http://wiki.debian.org/RpathIssue for more +# information. +@basename@-jre-headless binary: binary-or-shlib-defines-rpath + +# Allow executable stack in libjvm.so. +@basename@-jre-headless binary: shlib-with-executable-stack + +# The package *-jre-headless depends on *-jre via libaccess-bridge-java. +# Lintian is wrong here. +@basename@-jre-headless binary: usr-share-doc-symlink-without-dependency @basename@-jre + +# empty directory by intent +@basename@-jre-headless binary: package-contains-empty-directory usr/share/binfmts/ --- cacao-oj6-6b12.orig/debian/JB-archive.keys.in +++ cacao-oj6-6b12/debian/JB-archive.keys.in @@ -0,0 +1,18 @@ +application/java-archive + description=Java Archive + icon_filename=@basename@ + default_action_type=application + default_application_id=java-archive + short_list_application_user_additions=java-archive +application/x-java-archive + description=Java Archive + icon_filename=@basename@ + default_action_type=application + default_application_id=java-archive + short_list_application_user_additions=java-archive +application/x-jar + description=Java Archive + icon_filename=@basename@ + default_action_type=application + default_application_id=java-archive + short_list_application_user_additions=java-archive --- cacao-oj6-6b12.orig/debian/JB-jdk.overrides.in +++ cacao-oj6-6b12/debian/JB-jdk.overrides.in @@ -0,0 +1,7 @@ +# It seems to be acceptable to use rpath for private libraries like the +# jdk is doing it. Check http://wiki.debian.org/RpathIssue for more +# information. +@basename@-jdk binary: binary-or-shlib-defines-rpath + +# this is in @basename@-jre +@basename@-jdk binary: menu-icon-missing /usr/share/pixmaps/@basename@.xpm --- cacao-oj6-6b12.orig/debian/JB-doc.doc-base.in +++ cacao-oj6-6b12/debian/JB-doc.doc-base.in @@ -0,0 +1,11 @@ +Document: @JDK@-doc +Title: @vendor@ Java(TM) @RELEASE@ JDK, Standard Edition Documentation +Author: @vendor@ +Abstract: The Java @RELEASE@ Platform Documentation contains API specifications, + feature descriptions, developer guides, reference pages for JDK tools + and utilities, demos, and links to related information. +Section: Programming + +Format: HTML +Index: /usr/share/doc/@basename@-jre/api/index.html +Files: /usr/share/doc/@basename@-jre/api/*/*.html --- cacao-oj6-6b12.orig/debian/JB-javaws.desktop.in +++ cacao-oj6-6b12/debian/JB-javaws.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=@vendor@ Java @RELEASE@ Web Start +Name[fi]=@vendor@ Java @RELEASE@ - Web Start +Comment=@vendor@ Java @RELEASE@ Web Start +Comment[fi]=@vendor@ Java @RELEASE@ - Web Start +Exec=/@basedir@/bin/javaws %u +Terminal=false +Type=Application +Icon=@basename@ +Categories=Application;Network; +MimeType=application/x-java-jnlp-file; --- cacao-oj6-6b12.orig/debian/JB-fonts.defoma-hints.in +++ cacao-oj6-6b12/debian/JB-fonts.defoma-hints.in @@ -0,0 +1,187 @@ +category truetype + +# Sans + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansRegular.ttf + Family = LucidaSans + FontName = LucidaSans + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = SansSerif + Weight = Book + Width = Variable + Shape = NoSerif Upright + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansDemiBold.ttf + Family = LucidaSans + FontName = LucidaSans-Demibold + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = SansSerif + Weight = Bold + Width = Variable + Shape = NoSerif Upright + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansOblique.ttf + Family = LucidaSans + FontName = LucidaSans-Oblique + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = SansSerif + Weight = Thin + Width = Variable + Shape = NoSerif Oblique + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansDemiOblique.ttf + Family = LucidaSans + FontName = LucidaSans-Demibold-Oblique + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = SansSerif + Weight = Bold + Width = Variable + Shape = NoSerif Oblique + Foundry = Lucida + Priority = 15 +end + +# Serif + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightRegular.ttf + Family = LucidaBright + FontName = LucidaBright-Regular + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Roman + Weight = Book + Width = Variable + Shape = NoSerif Upright + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightItalic.ttf + Family = LucidaBright + FontName = LucidaBright-Italic + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Roman + Weight = Book + Width = Variable + Shape = NoSerif Oblique + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightDemiBold.ttf + Family = Lucida-Bright + FontName = Lucida-Bright-Demi + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Roman + Weight = Bold + Width = Variable + Shape = NoSerif Upright + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightDemiItalic.ttf + Family = Lucida-Bright + FontName = Lucida-Bright-DemiItalic + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Roman + Weight = Demi + Width = Variable + Shape = NoSerif Oblique + Foundry = Lucida + Priority = 15 +end + +# Mono + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterRegular.ttf + Family = LucidaSans-Typewriter + FontName = LucidaSans-Typewriter + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Typewriter + Weight = Book + Width = Fixed + Shape = NoSerif Upright + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterOblique.ttf + Family = LucidaSans-Typewriter + FontName = LucidaSans-Typewriter-Oblique + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Typewriter + Weight = Book + Width = Fixed + Shape = NoSerif Oblique + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterBold.ttf + Family = LucidaSans-Typewriter + FontName = LucidaSans-Typewriter-Bold + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Typewriter + Weight = Bold + Width = Fixed + Shape = NoSerif Upright + Foundry = Lucida + Priority = 15 +end + +begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterBoldOblique.ttf + Family = LucidaSans-Typewriter + FontName = LucidaSans-Typewriter-Bold-Oblique + Encoding = Unicode + Location = English + Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1 + UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 + GeneralFamily = Typewriter + Weight = Bold + Width = Fixed + Shape = NoSerif Oblique + Foundry = Lucida + Priority = 15 +end --- cacao-oj6-6b12.orig/debian/buildwatch.sh +++ cacao-oj6-6b12/debian/buildwatch.sh @@ -0,0 +1,38 @@ +#! /bin/sh + +echo $$ > buildwatch.pid + +maxwait=$(expr 180 \* 60) +wait=$maxwait +ival=$(expr 30 \* 60) +#ival=3 + +while [ $wait -gt 0 ]; do + sleep $ival + wait=$(expr $wait - $ival) + state= + if ps x | grep -v grep | egrep -qs '/cc1|jar|java|gij'; then + state="compiler/java/jar running ..." + wait=$maxwait + fi + + new_quiet=$(ls -l openjdk*/control/build/*/tmp/rt-orig.jar openjdk*/control/build/*/lib/tools.jar openjdk*/control/build/*/lib/ct.sym 2>&1 | md5sum) + if [ "$old_quiet" != "$new_quiet" ]; then + state="assembling jar file ..." + wait=$maxwait + fi + old_quiet=$new_quiet + + new_noisy=$(ls -l mauve/mauve_output jtreg_output 2>&1 | md5sum) + if [ "$old_noisy" != "$new_noisy" ]; then + wait=$maxwait + elif [ -n "$state" ]; then + echo $state + fi + old_noisy=$new_noisy + + if [ ! -f buildwatch.pid ]; then + echo "buildwatch exit" + exit 0 + fi +done --- cacao-oj6-6b12.orig/debian/JB-jre-i586.menu.in +++ cacao-oj6-6b12/debian/JB-jre-i586.menu.in @@ -0,0 +1,16 @@ + +?package(@basename@-bin):\ + needs="x11"\ + section="Applications/System"\ + title="@vendor@ Java @RELEASE@ Plugin Control Panel"\ + command="/@basedir@/bin/ControlPanel"\ + icon="/usr/share/pixmaps/@basename@.xpm"\ + hints="Java2" + +?package(@basename@-bin):\ + needs="x11"\ + section="Applications/Network"\ + title="@vendor@ Java @RELEASE@ Web Start"\ + command="/@basedir@/bin/javaws -viewer"\ + icon="/usr/share/pixmaps/@basename@.xpm"\ + hints="Java2" --- cacao-oj6-6b12.orig/debian/font.properties.ja +++ cacao-oj6-6b12/debian/font.properties.ja @@ -0,0 +1,197 @@ +# @(#)font.properties.ja.linux 1.7 02/03/07 +# +# Copyright 2002 Sun Microsystems, Inc. All rights reserved. +# + +# Component Font Mappings +# +serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1 +serif.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1 +serif.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1 +serif.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1 +serif.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +# Missing Glyph Character +# +default.char=274f + +# Component Font Character Encodings +# +fontcharset.serif.0=sun.io.CharToByteISO8859_1 +fontcharset.serif.1=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.sansserif.0=sun.io.CharToByteISO8859_1 +fontcharset.sansserif.1=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.monospaced.0=sun.io.CharToByteISO8859_1 +fontcharset.monospaced.1=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.dialog.0=sun.io.CharToByteISO8859_1 +fontcharset.dialog.1=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1 +fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11JIS0208 + +# Exclusion Ranges +# + +# XFontSet Information +# +fontset.serif.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.serif.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.serif.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.serif.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.default=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 --- cacao-oj6-6b12.orig/debian/sun_java_app.xpm +++ cacao-oj6-6b12/debian/sun_java_app.xpm @@ -0,0 +1,199 @@ +/* XPM */ +static char * dukejre_xpm[] = { +"32 32 164 2", +" c None", +". c #000000", +"+ c #2D2D2D", +"@ c #363636", +"# c #313131", +"$ c #3E3E3E", +"% c #3D3D3D", +"& c #2B2B2B", +"* c #444444", +"= c #494949", +"- c #373737", +"; c #1C1C1C", +"> c #545454", +", c #434343", +"' c #272727", +") c #0B0B0B", +"! c #414141", +"~ c #5C5C5C", +"{ c #4F4F4F", +"] c #141414", +"^ c #3A3A3A", +"/ c #585858", +"( c #403A3A", +"_ c #32201F", +": c #090202", +"< c #4F4E4E", +"[ c #833D3E", +"} c #BE3432", +"| c #D63736", +"1 c #79201F", +"2 c #040101", +"3 c #251313", +"4 c #212121", +"5 c #9A5857", +"6 c #EBB9B9", +"7 c #E03A38", +"8 c #CA3430", +"9 c #862221", +"0 c #251211", +"a c #774C35", +"b c #CC5213", +"c c #A25151", +"d c #B23D3C", +"e c #AC2B29", +"f c #8F2422", +"g c #691A19", +"h c #321D1E", +"i c #7E3D20", +"j c #D55A0D", +"k c #8E3F10", +"l c #250F0F", +"m c #5D1615", +"n c #631817", +"o c #661918", +"p c #501313", +"q c #200909", +"r c #3D3A39", +"s c #6D341B", +"t c #AE4F14", +"u c #CC5515", +"v c #44403F", +"w c #381414", +"x c #310C0C", +"y c #220908", +"z c #1F0B0B", +"A c #413939", +"B c #525252", +"C c #9B6343", +"D c #D96319", +"E c #D3A88C", +"F c #D7D7D7", +"G c #868383", +"H c #797777", +"I c #898989", +"J c #A3A3A3", +"K c #DBDBDB", +"L c #E27626", +"M c #DE6F21", +"N c #E9E8E7", +"O c #EDEDED", +"P c #F8F8F8", +"Q c #FFFFFF", +"R c #EC7A20", +"S c #E27728", +"T c #ED7C21", +"U c #E5E1DE", +"V c #EEEEEE", +"W c #F6F6F6", +"X c #FDFDFD", +"Y c #B76D3E", +"Z c #E5711D", +"` c #F0851E", +" . c #ED7D24", +".. c #F18B1D", +"+. c #C75810", +"@. c #CC5616", +"#. c #E36F1D", +"$. c #F2911A", +"%. c #FBFBFB", +"&. c #F9F6F2", +"*. c #F9AA14", +"=. c #F08A1D", +"-. c #D35E13", +";. c #E16D1C", +">. c #F49B18", +",. c #B9B9B9", +"'. c #FAFAFA", +"). c #F49818", +"!. c #E3701D", +"~. c #A1480F", +"{. c #E06B1C", +"]. c #FCFCFC", +"^. c #E26D1C", +"/. c #0F0F0F", +"(. c #DE691B", +"_. c #F6A016", +":. c #E97E1C", +"<. c #F7A117", +"[. c #EB7A20", +"}. c #E4701D", +"|. c #837B77", +"1. c #A0938A", +"2. c #717171", +"3. c #959595", +"4. c #E1A27A", +"5. c #DB844B", +"6. c #D6671F", +"7. c #D56318", +"8. c #D6671B", +"9. c #DB6616", +"0. c #DE6614", +"a. c #D96B1C", +"b. c #D66A21", +"c. c #D7996D", +"d. c #C0BFBF", +"e. c #393939", +"f. c #686868", +"g. c #8F8F8F", +"h. c #D3D3D3", +"i. c #D1D1D1", +"j. c #CFCFCF", +"k. c #DCDCDC", +"l. c #D8D8D8", +"m. c #C0C0C0", +"n. c #C3C3C3", +"o. c #333333", +"p. c #696969", +"q. c #606060", +"r. c #E6E6E6", +"s. c #A0A0A0", +"t. c #8A8A8A", +"u. c #5F5F5F", +"v. c #8C8C8C", +"w. c #B6B6B6", +"x. c #BDBDBD", +"y. c #262626", +"z. c #7C7C7C", +"A. c #C2C2C2", +"B. c #C1C1C1", +"C. c #B5B5B5", +"D. c #6E6E6E", +"E. c #868686", +"F. c #ABABAB", +"G. c #292929", +" ", +" . . ", +" . . . . ", +" . . . . ", +" + . . . . . . ", +" @ # . . . . . . . ", +" $ % & . . . . . . ", +" * = - ; . . . . . ", +" * > , ' ) . . . . . . ", +" ! ~ { # ] . . . . ", +" ^ / / ( _ : . . . ", +" # < [ } | 1 2 . ", +" 3 4 5 6 7 8 9 0 a b . ", +" 3 3 c d e f g h i j . ", +" k l m n o p q r s j . ", +" t u v w x y z A B C j . ", +" $ . D E F G H I J K j L . ", +" $ . M j N O P Q Q Q j R j ", +" $ $ . S T j U V W X j T T j Y ", +" $ . . Z ` T j j j j j ...T j +. ", +" . . @.#.$.%.%.%.%.%.%.&.*.=.j -. ", +" . . @.;.>.%.%.,.. '.%.%.*.).!.j ~. ", +" . . @.{.*.%.%.%.. ].].%.*.*.^.j j ", +" /.. j (.*.%.'.%.. '.%.%.*._.^.j j ", +" . . . j :.%.'.%.%.'.'.%.<.[.}.j |. ", +" . . # . . j j j T T T T T T T j 1.2. ", +" . ^ 3.O 4.5.6.7.8.9.0.a.b.c.d.e.f. ", +" ] . g.O h.i.j.j.h.h.h.k.l.m.n.o.p. ", +" q.O O r.s.t.$ $ $ u.v.3.w.x.y.u. ", +" z.A.B.C.D.$ $ $ $ u.E.F.& u. ", +" # F.F.D.$ $ $ $ ' G.e.u. ", +" $ $ $ $ $ $ $ "}; --- cacao-oj6-6b12.orig/debian/JB-jre.postinst.in +++ cacao-oj6-6b12/debian/JB-jre.postinst.in @@ -0,0 +1,57 @@ +#!/bin/sh + +set -e + +priority=@priority@ +basedir=/@basedir@ +basediralias=/@basediralias@ +jdiralias=@jdiralias@ +mandir=/@basediralias@/jre/man +srcext=1.gz +dstext=1.gz +jre_tools='@jre_tools@' + +case "$1" in +configure) + for i in $jre_tools; do + unset slave1 slave2 || true + if [ -e $mandir/man1/$i.$srcext ]; then + slave1="--slave \ + /usr/share/man/man1/$i.$dstext \ + $i.$dstext \ + $mandir/man1/$i.$srcext" + fi + # disabled + if false && [ -e $mandir/ja/man1/$i.$srcext ]; then + slave2="--slave \ + /usr/share/man/ja/man1/$i.$dstext \ + ${i}_ja.$dstext \ + $mandir/ja/man1/$i.$srcext" + fi + update-alternatives \ + --install \ + /usr/bin/$i \ + $i \ + $basediralias/jre/bin/$i \ + $priority \ + $slave1 $slave2 + done + + # fix slave links for man page alternatives + if [ -n "$2" ] && dpkg --compare-versions "$2" lt 6-00-2ubuntu2; then + for i in $jre_tools; do + current=$(LANG=C update-alternatives --display $i 2>&1 \ + | awk '/link currently points to/ { print $NF}') + case "$current" in /@basediralias@*) + update-alternatives --quiet --set $i $basediralias/jre/bin/$i + esac + done + fi + + ;; + +esac + +#DEBHELPER# + +exit 0 --- cacao-oj6-6b12.orig/debian/JB-archive.applications.in +++ cacao-oj6-6b12/debian/JB-archive.applications.in @@ -0,0 +1,6 @@ +java-archive + command=/@basedir@/bin/java -jar + name=java-archive + can_open_multiple_files=false + requires_terminal=false + mime_types=application/java-archive,application/x-java-archive,application/x-jar --- cacao-oj6-6b12.orig/debian/JAVA_HOME.in +++ cacao-oj6-6b12/debian/JAVA_HOME.in @@ -0,0 +1,29 @@ + JAVA_HOME + +1. Legacy use of JAVA_HOME + + As of the latest versions of java-common there really should + be no need for JAVA_HOME as Java(TM) should be completely + integrated with your Debian GNU/Linux system. + + For reference, the setting of JAVA_HOME for Sun Java is: + JAVA_HOME=/@TOP@/@jdiralias@ + +2. Selecting @basename@ as the default Java(TM) implementation + + Please see README.alternatives for instructions on how + to make @basename@ executables and man pages the default on your system. + + +3. For developer information about this packaging of Java(TM) for Debian + please visit: + + https://jdk-distros.dev.java.net/ + + In addition to technical information the jdk-distros site + provides forums to discuss packaging of Java for Linux + (and OpenSolaris) and to discuss the new Operating System Distributor + License for Java (DLJ). + + + --- cacao-oj6-6b12.orig/debian/control.tarball +++ cacao-oj6-6b12/debian/control.tarball @@ -0,0 +1,14 @@ + +Package: openjdk-6-source-files +Architecture: all +Pre-Depends: ${dpkg:Depends} +Depends: zip, unzip, gawk, pkg-config, procps, ant, @bd_openjdk@ @bd_zero@ @bd_syslibs@ @bd_plugin@ @bd_netx@ +Suggests: mauve +Description: OpenJDK 6 source files (used as a build dependency) + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + This package contains the OpenJDK upstream source. You do not want to + install this package unless you use these as a build dependency. + You are likely to look for the openjdk-6-source package. + (src.zip) for all classes that make up the Java core API. --- cacao-oj6-6b12.orig/debian/copyright +++ cacao-oj6-6b12/debian/copyright @@ -0,0 +1,1969 @@ +This package was debianized by Matthias Klose on +Wed, 08 Aug 2007 15:55:39 +0200. + +It was downloaded from + http://icedtea.classpath.org + http://download.java.net/openjdk/jdk6/ + http://ftp.gnome.org/pub/GNOME/sources/java-access-bridge/ + +------------------------------------------------------------------------------ +Upstream Authors: + +IcedTea (see AUTHORS for a current list): + Lillian Angel + Gary Benson + Tania Bento + Deepak Bhole + Thomas Fitzsimmons + Kyle Galloway + Andrew Haley + Ioana Iivan + Matthias Klose + Francis Kung + Omair Majid + Casey Marshall + Raif Naffah + Joshua Sumali + Christian Thalinger + Mark Wielaard + +OpenJDK: + Sun Microsystems, Inc. + +Java Access Bridge: + Bill Haneman + Louise Miller + Gergõ Érdi + Laszlo (Laca) Peter + Jeff Cai + George Kraft IV + Padraig O'Briain + Darren Kenny + +Packaging: + Matthias Klose + +------------------------------------------------------------------------------ +Copyright: + +IcedTea: + Portions Copyright © 2007 Lillian Angel + Portions Copyright © 2007 Gary Benson + Portions Copyright © 2007 Tania Bento + Portions Copyright © 2008 Deepak Bhole + Portions Copyright © 2007 Thomas Fitzsimmons + Portions Copyright © 2007 Kyle Galloway + Portions Copyright © 2007 Andrew Haley + Portions Copyright © 2008 Ioana Iivan + Portions Copyright © 2007 Matthias Klose + Portions Copyright © 2007 Francis Kung + Portions Copyright © 2008 Omair Majid + Portions Copyright © 2007 Casey Marshall + Portions Copyright © 2007 Raif Naffah + Portions Copyright © 2007 Joshua Sumali + Portions Copyright © 2007 Christian Thalinger + Portions Copyright © 2007 Mark Wielaard + Portions Copyright © 2007, 2008 Red Hat, Inc. + Portions Copyright © 2001-2003 Jon A. Maxwell (JAM) + Portions Copyright © 1992, 1995-2007 Sun Microsystems, Inc. + Portions Copyright © 2007 Matthew Flaschen + Portions Copyright © 2000-2002 Marc De Scheemaecker + Portions Copyright © 1991-1998 Thomas G. Lane + Portions Copyright © 2007 Free Software Foundation, Inc. + +OpenJDK: + Copyright © 1996-2007 Sun Microsystems, Inc. + For third party copyrights see below (copies from the third party readme). + Portions Copyright © 1993-1999 IBM Corp. + Portions Copyright © 1997 Eastman Kodak Company. + Portions Copyright © 1999-2005 The Apache Software Foundation. + +Java Access Bridge: + Portions Copyright © 2002-2007 Bill Haneman + Portions Copyright © 2002-2007 Louise Miller + Portions Copyright © 2002-2007 Gergõ Érdi + Portions Copyright © 2002-2007 Laszlo (Laca) Peter + Portions Copyright © 2002-2007 Jeff Cai + Portions Copyright © 2002-2007 George Kraft IV + Portions Copyright © 2002-2007 Padraig O'Briain + Portions Copyright © 2002-2007 Darren Kenny + +Packaging: + Copyright © 2007, 2008 Canonical Ltd. + +------------------------------------------------------------------------------ +License: + +NOTE: the combined work which includes the upstream components below +carries forward the OpenJDK Assembly Exception (text included below). + +Packaging: + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +IcedTea: + IcedTea is licensed under the GPL v2. See `/usr/share/common-licenses/GPL-2'. + + The sound files (pulseaudio/testsounds/*.wav) were taken from the KDE Project + (www.kde.org). A copy of them can be obtained from + http://websvn.kde.org/branches/KDE/4.0/kdeartwork/sounds/ . They are licensed + by the copyright holders as GPLv2. + +OpenJDK: + OpenJDK is licensed under the GPL v2 with exceptions, + see `/usr/share/common-licenses/GPL-2'. + The exceptions are: + - "CLASSPATH" EXCEPTION TO THE GPL + - OPENJDK ASSEMBLY EXCEPTION + Various third party code in OpenJDK is licensed under different licenses. + See below (THIRD_PARTY_README). + +Java Access Bridge: + Java Access Bridge is licensed under the LGPL v2. + See `/usr/share/common-licenses/LGPL-2'. + +A Note About License Headers +---------------------------- + +Some sources downloaded from openjdk.java.net do not display the GPL +license header. Instances are: + + - The files in openjdk/j2se/src/share/classes/javax/xml/stream/ seem to + comprise the BEA-StAX source code + + http://ftpna2.bea.com/pub/downloads/jsr173.jar + + with some Sun-specific modifications. We're assuming that Sun is + bundling BEA-StAX under the terms of the Apache License 2.0 and + that the modifications are owned by Sun. + + - We are assuming that these files are owned by Sun: + openjdk/j2se/src/share/classes/**/resources/*.properties + +The downloaded sources include a script that inserts proprietary +license headers into the source files it generates. The script +itself is GPL'd so we patched them to emit the GPL header. The +file is: + openjdk/j2se/make/java/nio/genExceptions.sh + +------------------------------------------------------------------------------ +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Sun Microsystems, Inc. are subject to +the following clarification and special exception to the GPL, but only where +Sun has expressly included in the particular source file's header the words +"Sun designates this particular file as subject to the "Classpath" exception +as provided by Sun in the LICENSE file that accompanied this code." + + 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. + +------------------------------------------------------------------------------ +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Sun at openjdk.java.net and +openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the +GNU General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Sun gives you permission to link this + OpenJDK Code with certain code licensed by Sun as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Sun. + +As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to +build an executable that includes those portions of necessary code that Sun +could not provide under GPL2 (or that Sun has provided under GPL2 with the +Classpath exception). If you modify or add to the OpenJDK code, that new +GPL2 code may still be combined with Designated Exception Modules if the +new code is made subject to this exception by its copyright holder. + +------------------------------------------------------------------------------ +OpenJDK Trademark Notice +Version 1.1, 2008/3/10 + +OpenJDK (the "Name") is a trademark of Sun Microsystems, Inc. (the "Owner"). +Owner permits any person obtaining a copy of this software (the "Software") +which is based on original software retrieved from one of the following +websites: http://download.java.net/openjdk, http://hg.openjdk.java.net/jdk6, +or http://openjdk.java.net (each a "Website", with the original software made +available by the Owner on a Website being known as the "Website Software") to +use the Name in package names and version strings of the Software subject to +the following conditions: + + - The Software is a substantially complete implementation of the OpenJDK + development kit or runtime environment code made available by Owner on a + Website, and the vast majority of the Software code is identical to the + upstream Website Software; + + - No permission is hereby granted to use the Name in any other manner, + unless such use constitutes "fair use." + + - The Owner makes no warranties of any kind respecting the Name and all + representations and warranties, including any implied warranty of + merchantability, fitness for a particular purpose or non-infringement + are hereby disclaimed; and + + - This notice and the following legend are included in all copies of the + Software or portions of it: + + OpenJDK is a trademark or registered trademark of Sun Microsystems, + Inc. in the United States and other countries. + +The Name may also be used in connection with descriptions of the Software that +constitute "fair use," such as "derived from the OpenJDK code base" or "based +on the OpenJDK source code." + +Owner intends to revise this Notice as necessary in order to meet the needs of +the OpenJDK Community. Please send questions or comments about this Notice to +Sun Microsystems at openjdk-tm@sun.com. Revisions to this Notice will be +announced on the public mailing list announce@openjdk.java.net, to which you +may subscribe by visiting http://mail.openjdk.java.net. The latest version of +this Notice may be found at http://openjdk.java.net/legal. + +------------------------------------------------------------------------------ +the follwing licenses for third party code are taken from +openjdk/THIRD_PARTY_README +------------------------------------------------------------------------------ + +DO NOT TRANSLATE OR LOCALIZE. + +%% This notice is provided with respect to Thai dictionary for text breaking, which may be included with this software: + +--- begin of LICENSE file --- + +Copyright (C) 1982 The Royal Institute, Thai Royal Government. + +Copyright (C) 1998 National Electronics and Computer Technology Center, + National Science and Technology Development Agency, + Ministry of Science Technology and Environment, + Thai Royal Government. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to +whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- end of LICENSE file --- +%% This notice is provided with respect to ASM, which may be included with this software: +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. +%% This notice is provided with respect to zlib 1.1.3, which may be included with this software: + +Acknowledgments: + + The deflate format used by zlib was defined by Phil Katz. The deflate + and zlib specifications were written by L. Peter Deutsch. Thanks to all the + people who reported problems and suggested various improvements in zlib; + they are too numerous to cite here. + +Copyright notice: + + (C) 1995-1998 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* +receiving lengthy legal documents to sign. The sources are provided +for free but without warranty of any kind. The library has been +entirely written by Jean-loup Gailly and Mark Adler; it does not +include third-party code. + +If you redistribute modified sources, we would appreciate that you include +in the file ChangeLog history information documenting your changes. + +%% This notice is provided with respect to W3C (DTD for XML Signatures), which may be included with this software: +W3C® SOFTWARE NOTICE AND LICENSE +Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ +This W3C work (including software, documents, or other related items) is being provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions: +Permission to use, copy, modify, and distribute this software and its documentation, with or without modification,  for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the software and documentation or portions thereof, including modifications, that you make: +1.The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +2.Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/" +3.Notice of any changes or modifications to the W3C files, including the date changes were made. (We recommend you provide URIs to the location from which the code is derived.) +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders. +____________________________________ +This formulation of W3C's notice and license became active on August 14 1998 so as to improve compatibility with GPL. This version ensures that W3C software licensing terms are no more restrictive than GPL and consequently W3C software may be distributed in GPL packages. See the older formulation for the policy prior to this date. Please see our Copyright FAQ for common questions about using materials from our site, including specific terms and conditions for packages like libwww, Amaya, and Jigsaw. Other questions about this notice can be directed to site-policy@w3.org. +  +%% This notice is provided with respect to jscheme.jar, which may be included with this software: +Software License Agreement +Copyright © 1998-2002 by Peter Norvig. +Permission is granted to anyone to use this software, in source or object code form, on any computer system, and to modify, compile, decompile, run, and redistribute it to anyone else, subject to the following restrictions: +1.The author makes no warranty of any kind, either expressed or implied, about the suitability of this software for any purpose. +2.The author accepts no liability of any kind for damages or other consequences of the use of this software, even if they arise from defects in the software. +3.The origin of this software must not be misrepresented, either by explicit claim or by omission. +4.Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Altered versions may be distributed in packages under other licenses (such as the GNU license). +If you find this software useful, it would be nice if you let me (peter@norvig.com) know about it, and nicer still if you send me modifications that you are willing to share. However, you are not required to do so. + + +%% This notice is provided with respect to PC/SC Lite for Suse Linux v. 1.1.1, which may be included with this software: + +Copyright (c) 1999-2004 David Corcoran +Copyright (C) 1999-2003 Ludovic Rousseau +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +Changes to this license can be made only by the copyright author with +explicit written consent. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +%% This notice is provided with respect to IAIK PKCS Wrapper, which may be included with this software: + +Copyright (c) 2002 Graz University of Technology. All rights reserved. +Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: + + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: + + "This product includes software developed by IAIK of Graz University of Technology." + + Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. + +4. The names "Graz University of Technology" and "IAIK of Graz University of Technology" must not be used to endorse or promote products derived from this software without prior written permission. + +5. Products derived from this software may not be called "IAIK PKCS Wrapper", nor may "IAIK" appear in their name, without prior written permission of Graz University of Technology. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE LICENSOR BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +%% This notice is provided with respect to Document Object Model (DOM) v. Level 3, which may be included with this software: + +W3Cýý SOFTWARE NOTICE AND LICENSE + +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other related items) is being +provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you +(the licensee) agree that you have read, understood, and will comply with the following terms and conditions. + +Permission to copy, modify, and distribute this software and its documentation, with or without modification, for +any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies +of the software and documentation or portions thereof, including modifications: + 1.The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. + 2.Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the + W3C Software Short Notice should be included (hypertext is preferred, text is permitted) within the body + of any redistributed or derivative code. + 3.Notice of any changes or modifications to the files, including the date changes were made. (We + recommend you provide URIs to the location from which the code is derived.) +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKENO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, +WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THEUSE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the +software without specific, written prior permission. Title to copyright in this software and any associated +documentation will at all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 2002. This version removes the +copyright ownership notice such that this license can be used with materials other than those owned by the +W3C, reflects that ERCIM is now a host of the W3C, includes references to this specific dated version of the +license, and removes the ambiguous grant of "use". Otherwise, this version is the same as the previous +version and is written so as to preserve the Free Software Foundation's assessment of GPL compatibility and +OSI's certification under the Open Source Definition. Please see our Copyright FAQ for common questions +about using materials from our site, including specific terms and conditions for packages like libwww, Amaya, +and Jigsaw. Other questions about this notice can be directed to +site-policy@w3.org. + +%% This notice is provided with respect to Xalan, Xerces, which may be included with this software: + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999-2003 The Apache Software Foundation. All rights * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. * + * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * + * 4. The names "Xerces" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 1999, International + * Business Machines, Inc., http://www.ibm.com. For more + * information on the Apache Software Foundation, please see + * + +%% This notice is provided with respect to JavaScript, which may be included with this software: + +AMENDMENTS +The Netscape Public License Version 1.1 ("NPL") consists of the Mozilla Public License Version 1.1 with the following Amendments, including Exhibit A-Netscape Public License.  Files identified with "Exhibit A-Netscape Public License" are governed by the Netscape Public License Version 1.1. +Additional Terms applicable to the Netscape Public License. +I. Effect. +These additional terms described in this Netscape Public License -- Amendments shall apply to the Mozilla Communicator client code and to all Covered Code under this License. +II. ''Netscape's Branded Code'' means Covered Code that Netscape distributes and/or permits others to distribute under one or more trademark(s) which are controlled by Netscape but which are not licensed for use under this License. +III. Netscape and logo. +This License does not grant any rights to use the trademarks "Netscape'', the "Netscape N and horizon'' logo or the "Netscape lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", "Smart Browsing" even if such marks are included in the Original Code or Modifications. +IV. Inability to Comply Due to Contractual Obligation. +Prior to licensing the Original Code under this License, Netscape has licensed third party code for use in Netscape's Branded Code. To the extent that Netscape is limited contractually from making such third party code available under this License, Netscape may choose to reintegrate such code into Covered Code without being required to distribute such code in Source Code form, even if such code would otherwise be considered ''Modifications'' under this License. +V. Use of Modifications and Covered Code by Initial Developer. +V.1. In General. +The obligations of Section 3 apply to Netscape, except to the extent specified in this Amendment, Section V.2 and V.3. +V.2. Other Products. +Netscape may include Covered Code in products other than the Netscape's Branded Code which are released by Netscape during the two (2) years following the release date of the Original Code, without such additional products becoming subject to the terms of this License, and may license such additional products on different terms from those contained in this License. +V.3. Alternative Licensing. +Netscape may license the Source Code of Netscape's Branded Code, including Modifications incorporated therein, without such Netscape Branded Code becoming subject to the terms of this License, and may license such Netscape Branded Code on different terms from those contained in this License. +  +VI. Litigation. +Notwithstanding the limitations of Section 11 above, the provisions regarding litigation in Section 11(a), (b) and (c) of the License shall apply to all disputes relating to this License. + +EXHIBIT A-Netscape Public License. +  +''The contents of this file are subject to the Netscape Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/NPL/ +Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. +The Original Code is Mozilla Communicator client code, released March 31, 1998. +The Initial Developer of the Original Code is Netscape Communications Corporation. Portions created by Netscape are Copyright (C) 1998-1999 Netscape Communications Corporation. All Rights Reserved. +Contributor(s): ______________________________________. +  +Alternatively, the contents of this file may be used under the terms of the _____ license (the  "[___] License"), in which case the provisions of [______] License are applicable  instead of those above.  If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the NPL, indicate your decision by deleting  the provisions above and replace  them with the notice and other provisions required by the [___] License.  If you do not delete the provisions above, a recipient may use your version of this file under either the NPL or the [___] License." + +MOZILLA PUBLIC LICENSE +Version 1.1 + +1. Definitions. +1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. +1.1. ''Contributor'' means each entity that creates or contributes to the creation of Modifications. +1.2. ''Contributor Version'' means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. +1.3. ''Covered Code'' means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. +1.4. ''Electronic Distribution Mechanism'' means a mechanism generally accepted in the software development community for the electronic transfer of data. +1.5. ''Executable'' means Covered Code in any form other than Source Code. +1.6. ''Initial Developer'' means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. +1.7. ''Larger Work'' means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. +1.8. ''License'' means this document. +1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. +1.9. ''Modifications'' means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: +A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. +B. Any new file that contains any part of the Original Code or previous Modifications. +  +1.10. ''Original Code'' means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. +1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation,  method, process, and apparatus claims, in any patent Licensable by grantor. +1.11. ''Source Code'' means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. +1.12. "You'' (or "Your")  means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You'' includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control'' means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. +2. Source Code License. +2.1. The Initial Developer Grant. +The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: +(a)  under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and +(b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). +  +(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. +(d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code;  or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. +  +2.2. Contributor Grant. +Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license +  +(a)  under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and +(b) under Patent Claims infringed by the making, using, or selling of  Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of  Modifications made by that Contributor with its Contributor Version (or portions of such combination). +(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. +(d)    Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2)  separate from the Contributor Version;  3)  for infringements caused by: i) third party modifications of Contributor Version or ii)  the combination of Modifications made by that Contributor with other software  (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + +3. Distribution Obligations. +3.1. Application of License. +The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. +3.2. Availability of Source Code. +Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. +3.3. Description of Modifications. +You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. +3.4. Intellectual Property Matters +(a) Third Party Claims. +If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL'' which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. +(b) Contributor APIs. +If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. +  +          (c)    Representations. +Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + +3.5. Required Notices. +You must duplicate the notice in Exhibit A in each file of the Source Code.  If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice.  If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A.  You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code.  You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. +3.6. Distribution of Executable Versions. +You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. +3.7. Larger Works. +You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. +4. Inability to Comply Due to Statute or Regulation. +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. +5. Application of this License. +This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. +6. Versions of the License. +6.1. New Versions. +Netscape Communications Corporation (''Netscape'') may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. +6.2. Effect of New Versions. +Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. +6.3. Derivative Works. +If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL'' or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) +7. DISCLAIMER OF WARRANTY. +COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. +8. TERMINATION. +8.1.  This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. +8.2.  If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant")  alleging that: +(a)  such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i)  agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant.  If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. +(b)  any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. +8.3.  If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. +8.4.  In the event of termination under Sections 8.1 or 8.2 above,  all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. +9. LIMITATION OF LIABILITY. +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. +10. U.S. GOVERNMENT END USERS. +The Covered Code is a ''commercial item,'' as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and ''commercial computer software documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. +11. MISCELLANEOUS. +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. +12. RESPONSIBILITY FOR CLAIMS. +As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. +13. MULTIPLE-LICENSED CODE. +Initial Developer may designate portions of the Covered Code as "Multiple-Licensed".  "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. +``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ +Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +ANY KIND, either express or implied. See the License for the specific language governing rights and +limitations under the License. +The Original Code is ______________________________________. +The Initial Developer of the Original Code is ________________________. Portions created by + ______________________ are Copyright (C) ______ _______________________. All Rights +Reserved. +Contributor(s): ______________________________________. +Alternatively, the contents of this file may be used under the terms of the _____ license (the  "[___] License"), in which case the provisions of [______] License are applicable  instead of those above.  If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting  the provisions above and replace  them with the notice and other provisions required by the [___] License.  If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the [___] License." +[NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + +%% This notice is provided with respect to Mesa 3-D graphics library v. 5, which may be included with this software: + +Copyright (c) 2007 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + +%% This notice is provided with respect to Byte Code Engineering Library (BCEL), which may be included with this software: + + Apache Software License + + /* +==================================================================== * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. Allrights + * reserved. + * + * Redistribution and use in source and binary forms, withor without + * modification, are permitted provided that the followingconditions + * are met: + * + * 1. Redistributions of source code must retain the abovecopyright + * notice, this list of conditions and the followingdisclaimer. + * + * 2. Redistributions in binary form must reproduce theabove copyright + * notice, this list of conditions and the followingdisclaimer in + * the documentation and/or other materials providedwith the + * distribution. + * + * 3. The end-user documentation included with theredistribution, + * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation +(http://www.apache.org/)." + * Alternately, this acknowledgment may appear in thesoftware itself, + * if and wherever such third-party acknowledgmentsnormally appear. + * + * 4. The names "Apache" and "Apache Software Foundation"and + * "Apache BCEL" must not be used to endorse or promoteproducts + * derived from this software without prior writtenpermission. For + * written permission, please contact apache@apache.org. * + * 5. Products derived from this software may not be called"Apache", + * "Apache BCEL", nor may "Apache" appear in their name,without + * prior written permission of the Apache SoftwareFoundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED ORIMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWAREFOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING INANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF + * SUCH DAMAGE. + * +==================================================================== * + * This software consists of voluntary contributions madeby many + * individuals on behalf of the Apache Software +Foundation. For more + * information on the Apache Software Foundation, pleasesee + * . + */ + +%% This notice is provided with respect to Regexp, Regular Expression Package, which may be included with this software: + +The Apache Software License, Version 1.1 +Copyright (c) 2001 The Apache Software Foundation. All rights +reserved. +Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in +the documentation and/or other materials provided with the +distribution. + +3. The end-user documentation included with the redistribution, +if any, must include the following acknowledgment: +"This product includes software developed by the +Apache Software Foundation (http://www.apache.org/)." +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation" and +"Apache Turbine" must not be used to endorse or promote products +derived from this software without prior written permission. For +written permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache", +"Apache Turbine", nor may "Apache" appear in their name, without +prior written permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +==================================================================== +This software consists of voluntary contributions made by many +individuals on behalf of the Apache Software Foundation. For more +information on the Apache Software Foundation, please see + +http://www.apache.org. + +%% This notice is provided with respect to CUP Parser Generator for Java, which may be included with this software: + +CUP Parser Generator Copyright Notice, License, and Disclaimer + +Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided thatthe above copyright notice appear in all copies and that both the copyrightnotice and this permission notice and warranty disclaimer appear in +supporting documentation, and that the names of the authors or their employersnot be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to thissoftware, including all implied warranties of merchantability and +fitness. In no event shall the authors or their employers be liable for anyspecial, indirect or consequential damages or any damages whatsoever +resulting from loss of use, data or profits, whether in an action of contract,negligence or other tortious action, arising out of or in connection withthe use or performance of this software. + +%% This notice is provided with respect to SAX v. 2.0.1, which may be included with this software: + +Copyright Status + + SAX is free! + + In fact, it's not possible to own a license to SAX, since it's been placed in the public + domain. + + No Warranty + + Because SAX is released to the public domain, there is no warranty for the design or for + the software implementation, to the extent permitted by applicable law. Except when + otherwise stated in writing the copyright holders and/or other parties provide SAX "as is" + without warranty of any kind, either expressed or implied, including, but not limited to, the + implied warranties of merchantability and fitness for a particular purpose. The entire risk as + to the quality and performance of SAX is with you. Should SAX prove defective, you + assume the cost of all necessary servicing, repair or correction. + + In no event unless required by applicable law or agreed to in writing will any copyright + holder, or any other party who may modify and/or redistribute SAX, be liable to you for + damages, including any general, special, incidental or consequential damages arising out of + the use or inability to use SAX (including but not limited to loss of data or data being + rendered inaccurate or losses sustained by you or third parties or a failure of the SAX to + operate with any other programs), even if such holder or other party has been advised of + the possibility of such damages. + + Copyright Disclaimers + + This page includes statements to that effect by David Megginson, who would have been + able to claim copyright for the original work. + SAX 1.0 + + Version 1.0 of the Simple API for XML (SAX), created collectively by the membership of + the XML-DEV mailing list, is hereby released into the public domain. + + No one owns SAX: you may use it freely in both commercial and non-commercial + applications, bundle it with your software distribution, include it on a CD-ROM, list the + source code in a book, mirror the documentation at your own web site, or use it in any + other way you see fit. + + David Megginson, sax@megginson.com + 1998-05-11 + + SAX 2.0 + + I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and release + all of the SAX 2.0 source code, compiled code, and documentation contained in this + distribution into the Public Domain. SAX comes with NO WARRANTY or guarantee of + fitness for any purpose. + + David Megginson, david@megginson.com + 2000-05-05 + +%% This notice is provided with respect to Cryptix, which may be included with this software: + +Cryptix General License + +Copyright © 1995-2003 The Cryptix Foundation Limited. All rights reserved. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions aremet: + + 1.Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OFTHE POSSIBILITY OF SUCH DAMAGE. + +%% This notice is provided with respect to X Window System, which may be included with this software: + +Copyright The Open Group + +Permission to use, copy, modify, distribute, and sell this software and itsdocumentation for any purpose is hereby granted without fee, provided that theabove copyright notice appear in all copies and that both that copyright noticeand this permission notice appear in supporting documentation. + +The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUPBE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OFCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THESOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. + +Portions also covered by other licenses as noted in the above URL. + +%% This notice is provided with respect to Retroweaver, which may be included with this software: + +Copyright (c) February 2004, Toby Reyelts +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +Neither the name of Toby Reyelts nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +%% This notice is provided with respect to stripper, which may be included with this software: + +Stripper : debug information stripper + Copyright (c) 2003 Kohsuke Kawaguchi + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +%% This notice is provided with respect to libpng official PNG reference library, which may be included with this software: + +This copy of the libpng notices is provided for your convenience. In case ofany discrepancy between this copy and the notices in the file png.h that isincluded in the libpng distribution, the latter shall prevail. + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + +If you modify libpng you may insert additional notices immediately followingthis sentence. + +libpng version 1.2.6, December 3, 2004, is +Copyright (c) 2004 Glenn Randers-Pehrson, and is +distributed according to the same disclaimer and license as libpng-1.2.5with the following individual added to the list of Contributing Authors + Cosmin Truta + +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, areCopyright (c) 2000-2002 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.0.6with the following individuals added to the list of Contributing Authors + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes or needs. This library is provided with all faults, and the entire risk of satisfactory quality, performance, accuracy, and effort is with the user. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, areCopyright (c) 1998, 1999 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-0.96,with the following individuals added to the list of Contributing Authors: + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996, 1997 Andreas Dilger +Distributed according to the same disclaimer and license as libpng-0.88,with the following individuals added to the list of Contributing Authors: + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors"is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing Authorsand Group 42, Inc. disclaim all warranties, expressed or implied, +including, without limitation, the warranties of merchantability and offitness for any purpose. The Contributing Authors and Group 42, Inc. +assume no liability for direct, indirect, incidental, special, exemplary,or consequential damages, which may result from the use of the PNG +Reference Library, even if advised of the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute thissource code, or portions hereof, for any purpose, without fee, subjectto the following restrictions: + +1. The origin of this source code must not be misrepresented. + +2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + +3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, withoutfee, and encourage the use of this source code as a component to +supporting the PNG file format in commercial products. If you use thissource code in a product, acknowledgment is not required but would be +appreciated. + + +A "png_get_copyright" function is available, for convenient use in "about"boxes and the like: + + printf("%s",png_get_copyright(NULL)); + +Also, the PNG logo (in PNG format, of course) is supplied in the +files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is acertification mark of the Open Source Initiative. + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +December 3, 2004 + +%% This notice is provided with respect to Libungif - An uncompressed GIF library, which may be included with this software: + +The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond + +Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE. + +%% This notice is provided with respect to XML Resolver library, Xalan J2, and StAX API, which may be included with this software: + +[Apache 2.0 license removed from this file. On Debian systems the text of + the Apache 2.0 license can be found in /usr/share/common-licenses/Apache-2.0 ] + +%% Some Portions licensed from IBM are available at: +http://www.ibm.com/software/globalization/icu/ + +%% This notice is provided with respect to ICU4J, ICU 1.8.1 and later, which may be included with this software: + +ICU License - ICU 1.8.1 and later COPYRIGHT AND PERMISSION NOTICE Cop +yright (c) +1995-2003 International Business Machines Corporation and others All rightsreserved. Permission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the "Software"), todeal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,provided that the above copyright notice(s) and this permission notice appear inall copies of the Software and that both the above copyright notice(s) and thispermission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOTLIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSEAND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHTHOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY C + LAIM, OR ANYSPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTINGFROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCEOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE ORPERFORMANCE OF THIS SOFTWARE. Except as contained in this notice, the name of acopyright holder shall not be used in advertising or otherwise to promote thesale, use or other dealings in this Software without prior written authorizationof the copyright holder. + +%% This notice is provided with respect to Jing, which may be included with this software: + +Jing Copying Conditions + +Copyright (c) 2001-2003 Thai Open Source Software Center Ltd +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice,this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentation and/orother materials provided with the distribution. + * Neither the name of the Thai Open Source Software Center Ltd nor the namesof its contributors may be used to endorse or promote products derived from thissoftware without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +%% This notice is provided with respect to RELAX NG Object Model/Parser, which may be included with this software: + + +The MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy ofthis software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions: + +The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHERIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +%% This notice is provided with respect to XFree86-VidMode Extension, which may be included with this software: + +Version 1.1 of XFree86 ProjectLicence. + + Copyright (C) 1994-2004 The XFree86 Project, Inc. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicence, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions: + + 1. Redistributions of source code must retain the above copyright notice,this list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution, and in thesame place and form as other copyright, license and disclaimer information. 3. The end-user documentation included with the redistribution, if any,must include the following acknowledgment: "This product includes softwaredeveloped by The XFree86 Project, Inc (http://www.xfree86.org/) and itscontributors", in the same place and form as other third-party acknowledgments.Alternately, this acknowledgment may appear in the software itself, in the sameform and location as other such third-party acknowledgments. + 4. Except as contained in this notice, the name of The XFree86 Project,Inc shall not be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorization from TheXFree86 Project, Inc. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ANDFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE XFREE86PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ORBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISINGIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITYOF SUCH DAMAGE. + +%% This notice is provided with respect to XML Security, which may be included with this software: + + The Apache Software License, + Version 1.1 + + + PDF + + + Copyright (C) 2002 The Apache SoftwareFoundation. + All rights reserved. Redistribution anduse in + source and binary forms, with or withoutmodifica- + tion, are permitted provided that thefollowing + conditions are met: 1. Redistributions ofsource + code must retain the above copyrightnotice, this + list of conditions and the followingdisclaimer. + 2. Redistributions in binary form mustreproduce + the above copyright notice, this list of conditions and the following disclaimerin the + documentation and/or other materialsprovided with + the distribution. 3. The end-userdocumentation + included with the redistribution, if any,must + include the following acknowledgment:"This + product includes software developed bythe Apache + Software Foundation +(http://www.apache.org/)." + Alternately, this acknowledgment mayappear in the + software itself, if and wherever suchthird-party + acknowledgments normally appear. 4. Thenames + "Apache Forrest" and "Apache SoftwareFoundation" + must not be used to endorse or promoteproducts + derived from this software without priorwritten + permission. For written permission,please contact + apache@apache.org. 5. Products derivedfrom this + software may not be called "Apache", normay + "Apache" appear in their name, withoutprior + written permission of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED``AS IS'' + AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESSFOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NOEVENT + SHALL THE APACHE SOFTWARE FOUNDATION ORITS + CONTRIBUTORS BE LIABLE FOR ANY DIRECT,INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL + DAMAGES (INCLU- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANYTHEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, + OR TORT (INCLUDING NEGLIGENCE OROTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF + SUCH DAMAGE. This software consists ofvoluntary + contributions made by many individuals onbehalf + of the Apache Software Foundation. Formore + information on the Apache SoftwareFoundation, + please see . + +%% This notice is provided with respect to Independent JPEG Group's software (libjpeg), which may be included with this software: + +In plain English: + +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a program, you must acknowledge somewhere in your documentation that you've used the IJG code. + +In legalese: + +The authors make NO WARRANTY or representation, either express or implied, with respect to this software, its quality, accuracy, merchantability, or fitness for a particular purpose. This software is provided "AS IS", and you, its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1991-1998, Thomas G. Lane. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this software (or portions thereof) for any purpose, without fee, subject to these conditions: + +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice unaltered; and any additions, deletions, or changes to the original files must be clearly indicated in accompanying documentation. + +(2) If only executable code is distributed, then the accompanying documentation must state that "this software is based in part on the work of the Independent JPEG Group". + +(3) Permission for use of this software is granted only if the user accepts full responsibility for any undesirable consequences; the authors accept NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, not just to the unmodified library. If you use our work, you ought to acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name in advertising or publicity relating to this software or products derived from it. This software may be referred to only as "the Independent JPEG Group's software". + +We specifically permit and encourage the use of this software as the basis of commercial products, provided that all warranty or liability claims are assumed by the product vendor. + +ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. ansi2knr.c is NOT covered by the above copyright and conditions, but instead by the usual distribution terms of the Free Software Foundation; principally, that you must include source code if you redistribute it. (See the file ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part of any program generated from the IJG code, this does not limit you more than the foregoing paragraphs do. + +The Unix configuration script "configure" was produced with GNU Autoconf. It is copyright by the Free Software Foundation but is freely distributable. The same holds for its supporting scripts (config.guess, config.sub, ltconfig, ltmain.sh). Another support script, install-sh, is copyright by M.I.T. but is also freely distributable. + +It appears that the arithmetic coding option of the JPEG spec is covered by patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot legally be used without obtaining one or more licenses. For this reason, support for arithmetic coding has been removed from the free JPEG software. (Since arithmetic coding provides only a marginal gain over the unpatented Huffman mode, it is unlikely that very many implementations will support it.) So far as we are aware, there are no patent restrictions on the remaining code. + +The IJG distribution formerly included code to read and write GIF files. To avoid entanglement with the Unisys LZW patent, GIF reading support has been removed altogether, and the GIF writer has been simplified to produce "uncompressed GIFs". This technique does not use the LZW algorithm; the resulting GIF files are larger than usual, but are readable by all standard GIF decoders. + +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." + +%% This notice is provided with respect to X Resize and Rotate (Xrandr) Extension, which may be included with this software: +2. XFree86 License + +XFree86 code without an explicit copyright is covered by the following +copyright/license: + +Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 +PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not be +used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from the XFree86 Project. + +%% This notice is provided with respect to fontconfig, which may be included with this software: +Id: COPYING,v 1.3 2003/04/04 20:17:40 keithp Exp $ +Copyright 2001,2003 Keith Packard + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Keith Packard not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Keith Packard makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +%% This notice is provided with respect to XFree86, which may be included with this software: +Copyright (C) 1994-2002 The XFree86 Project, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated +documentation files (the "Software"), to deal in the Software without +restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT +NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not be +used in advertising or otherwise +to promote the sale, use or other dealings in this Software without prior +written authorization from the XFree86 +Project. +%% This notice is provided with respect to Fast Infoset, which may be included with this software: +* Fast Infoset ver. 0.1 software ("Software") +* +* Copyright, 2004-2005 Sun Microsystems, Inc. All Rights Reserved. +* +* Software is licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. You may +* obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +* License for the specific language governing permissions and limitations. +* +* Sun supports and benefits from the global community of open source +* developers, and thanks the community for its important contributions and +* open standards-based technology, which Sun has adopted into many of its +* products. +* +* Please note that portions of Software may be provided with notices and +* open source licenses from such communities and third parties that govern the +* use of those portions, and any licenses granted hereunder do not alter any +* rights and obligations you may have under such open source licenses, +* however, the disclaimer of warranty and limitation of liability provisions +* in this License will apply to all Software in this distribution. +* +* You acknowledge that the Software is not designed, licensed or intended +* for use in the design, construction, operation or maintenance of any nuclear +* facility. +* +* Apache License +* Version 2.0, January 2004 +* http://www.apache.org/licenses/ +* +*/ +/* +* ==================================================================== +* +* This code is subject to the freebxml License, Version 1.1 +* +* Copyright (c) 2001 - 2005 freebxml.org. All rights reserved. +* +* $Header: /cvs/fi/FastInfoset/src/com/sun/xml/internal/fastinfoset/AbstractResourceBundle.java,v 1.2 +*  ==================================================================== +*/ +%% This notice is provided with respect to Kerberos, which may be included with this software: + +/* + * Copyright (C) 1998 by the FundsXpress, INC. + * + * All rights reserved. + * + * Export of this software from the United States of America may require + * a specific license from the United States Government.  It is the + * responsibility of any person or organization contemplating export to + * obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of FundsXpress. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. FundsXpress makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +%% This notice is provided with respect to Unicode's CLDR data repository, which may be included with this software: + + Unicode Copyright + + For the general privacy policy governing access to this site, see the +Unicode Privacy Policy. For trademark usage, see the the Unicode Consortium +Trademarks and Logo Policy. + Notice to End User: Terms of Use + Carefully read the following legal agreement ("Agreement"). Use or copying +of the software and/or codes provided with this agreement (The "Software") +constitutes your acceptance of these terms + + 1. Unicode Copyright. + 1. Copyright © 1991-2005 Unicode, Inc. All rights reserved. + 2. Certain documents and files on this website contain a legend +indicating that "Modification is permitted." Any person is hereby authorized, +without fee, to modify such documents and files to create derivative works +conforming to the Unicode® Standard, subject to Terms and Conditions herein. + 3. Any person is hereby authorized, without fee, to view, use, +reproduce, and distribute all documents and files solely for informational +purposes in the creation of products supporting the Unicode Standard, subject to +the Terms and Conditions herein. + 4. Further specifications of rights and restrictions pertaining to +the use of the particular set of data files known as the "Unicode Character +Database" can be found in Exhibit 1. + 5. Further specifications of rights and restrictions pertaining to +the use of the particular set of files that constitute the online edition of The +Unicode Standard, Version 4.0, may be found in V4.0 online edition. + 6. No license is granted to "mirror" the Unicode website where a +fee is charged for access to the "mirror" site. + 7. Modification is not permitted with respect to this document. All +copies of this document must be verbatim. + 2. Restricted Rights Legend. Any technical data or software which is +licensed to the United States of America, its agencies and/or instrumentalities +under this Agreement is commercial technical data or commercial computer +software developed exclusively at private expense as defined in FAR 2.101, or +DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, +duplication, or disclosure by the Government is subject to restrictions as set +forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and +this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, +as applicable, use, duplication or disclosure by the Government is subject to +the restrictions set forth in this Agreement. + 3. Warranties and Disclaimers. + 1. This publication and/or website may include technical or +typographical errors or other inaccuracies . Changes are periodically added to +the information herein; these changes will be incorporated in new editions of +the publication and/or website. Unicode may make improvements and/or changes in +the product(s) and/or program(s) described in this publication and/or website at +any time. + 2. If this file has been purchased on magnetic or optical media +from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange +of the defective media within ninety (90) days of original purchase. + 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR +SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, +IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE +AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS +PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED +TO THIS PUBLICATION OR THE UNICODE WEBSITE. + 4. Waiver of Damages. In no event shall Unicode or its licensors be +liable for any special, incidental, indirect or consequential damages of any +kind, or any damages whatsoever, whether or not Unicode was advised of the +possibility of the damage, including, without limitation, those resulting from +the following: loss of use, data or profits, in connection with the use, +modification or distribution of this information or its derivatives. + 5. Trademarks. + 1. Unicode and the Unicode logo are registered trademarks of +Unicode, Inc. + 2. This site contains product names and corporate names of other +companies. All product names and company names and logos mentioned herein are +the trademarks or registered trademarks of their respective owners. Other +products and corporate names mentioned herein which are trademarks of a third +party are used only for explanation and for the owners' benefit and with no +intent to infringe. + 3. Use of third party products or information referred to herein is +at the user's risk. + 6. Miscellaneous. + 1. Jurisdiction and Venue. This server is operated from a location +in the State of California, United States of America. Unicode makes no +representation that the materials are appropriate for use in other locations. If +you access this server from other locations, you are responsible for compliance +with local laws. This Agreement, all use of this site and any claims and damages +resulting from use of this site are governed solely by the laws of the State of +California without regard to any principles which would apply the laws of a +different jurisdiction. The user agrees that any disputes regarding this site +shall be resolved solely in the courts located in Santa Clara County, +California. The user agrees said courts have personal jurisdiction and agree to +waive any right to transfer the dispute to any other forum. + 2. Modification by Unicode Unicode shall have the right to modify +this Agreement at any time by posting it to this site. The user may not assign +any part of this Agreement without Unicode's prior written consent. + 3. Taxes. The user agrees to pay any taxes arising from access to +this website or use of the information herein, except for those based on +Unicode's net income. + 4. Severability. If any provision of this Agreement is declared +invalid or unenforceable, the remaining provisions of this Agreement shall +remain in effect. + 5. Entire Agreement. This Agreement constitutes the entire +agreement between the parties. + +EXHIBIT 1 +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + + Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/ and http://www.unicode.org/reports/. Unicode +Software includes any source code under the directories +http://www.unicode.org/Public/ and http://www.unicode.org/reports/. + + NOTICE TO USER: Carefully read the following legal agreement. BY +DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES +("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND +AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU +DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES +OR SOFTWARE. + + COPYRIGHT AND PERMISSION NOTICE + + Copyright Ã?Â,Ã,© 1991-2004 Unicode, Inc. All rights reserved. Distributed under +the Terms of Use in http://www.unicode.org/copyright.html. + + Permission is hereby granted, free of charge, to any person obtaining a copy +of the Unicode data files and associated documentation (the "Data Files") or +Unicode software and associated documentation (the "Software") to deal in the +Data Files or Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files or +Software are furnished to do so, provided that (a) the above copyright notice(s) +and this permission notice appear with all copies of the Data Files or Software, +(b) both the above copyright notice(s) and this permission notice appear in +associated documentation, and (c) there is clear notice in each modified Data +File or in the Software as well as in the documentation associated with the Data +File(s) or Software that the data or software has been modified. + + THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD +PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. + + Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in these Data Files or Software without prior written authorization of the +copyright holder. + + Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be +registered in some jurisdictions. All other trademarks and registered trademarks +mentioned herein are the property of their respective owners. +%% This notice is provided with respect to RSA PKCS#11 Header Files & Specification, which may be included with this software: + +/* + * Copyright (C) 1998 by the FundsXpress, INC. + * + * All rights reserved. + * + * Export of this software from the United States of America may require + * a specific license from the United States Government.  It is the + * responsibility of any person or organization contemplating export to + * obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of FundsXpress. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission.  FundsXpress makes no representations about the suitability of + * this software for any purpose.  It is provided "as is" without express + * or implied warranty. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +%% This notice is provided with respect to certain files/code which may included in the implementation of AWT within the software: + +****************************************************** +BEGIN  src/solaris/native/sun/awt/HPkeysym.h +Copyright 1987, 1998  The Open Group + +All Rights Reserved. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, + +All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Hewlett Packard +or Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD +TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE.  Hewlett-Packard shall not be liable for errors +contained herein or direct, indirect, special, incidental or +consequential damages in connection with the furnishing, +performance, or use of this material. + +END  src/solaris/native/sun/awt/HPkeysym.h +****************************************************** +BEGIN  src/solaris/native/sun/awt/Xinerama.c +/***************************************************************** +Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, +BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Digital Equipment Corporation +shall not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from Digital +Equipment Corporation. +******************************************************************/ +END  src/solaris/native/sun/awt/Xinerama.c +****************************************************** +BEGIN src/solaris/native/sun/awt/Xinerama.h +/* +Copyright (C) 1994-2001 The XFree86 Project, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Soft- +ware"), to deal in the Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, provided that the above copyright +notice(s) and this permission notice appear in all copies of the Soft- +ware and that both the above copyright notice(s) and this permission +notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- +ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY +RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN +THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE- +QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR- +MANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization of +the copyright holder. +*/ +END src/solaris/native/sun/awt/Xinerama.h +****************************************************** +BEGIN src/solaris/native/sun/awt/Xrandr.h +/* + * $XFree86: xc/lib/Xrandr/Xrandr.h,v 1.9 2002/09/29 23:39:44 keithp Exp $ + * + * Copyright © 2000 Compaq Computer Corporation, Inc. + * Copyright © 2002 Hewlett-Packard Company, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Compaq not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission.  HP makes no representations about the + * suitability of this software for any purpose.  It is provided "as is" + * without express or implied warranty. + * + * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author:  Jim Gettys, HP Labs, HP. + */ + + +END src/solaris/native/sun/awt/Xrandr.h +****************************************************** +BEGIN src/solaris/native/sun/awt/extutil.h +/* + * $Xorg: extutil.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ + * +Copyright 1989, 1998  The Open Group + +All Rights Reserved. + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + * + * Author:  Jim Fulton, MIT The Open Group + * + *                     Xlib Extension-Writing Utilities + * + * This package contains utilities for writing the client API for various + * protocol extensions.  THESE INTERFACES ARE NOT PART OF THE X STANDARD AND + * ARE SUBJECT TO CHANGE! + */ +/* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */ + +END src/solaris/native/sun/awt/extutil.h +****************************************************** +BEGIN   src/solaris/native/sun/awt/fontconfig.h +/* + * $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 +keithp Exp $ + * + * Copyright © 2001 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission.  Keith Packard makes no + * representations about the suitability of this software for any purpose.  It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + +END   src/solaris/native/sun/awt/fontconfig.h +****************************************************** +BEGIN src/solaris/native/sun/awt/list.c +AND  src/solaris/native/sun/awt/list.h +AND src/solaris/native/sun/awt/multiVis.c +AND  src/solaris/native/sun/awt/multiVis.h +AND  src/solaris/native/sun/awt/wsutils.h + +Copyright (c) 1994 Hewlett-Packard Co. +Copyright (c) 1996  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + +END src/solaris/native/sun/awt/list.c +AND  src/solaris/native/sun/awt/list.h +AND src/solaris/native/sun/awt/multiVis.c +AND  src/solaris/native/sun/awt/multiVis.h +AND  src/solaris/native/sun/awt/wsutils.h + +***************************************************************** +BEGIN src/solaris/native/sun/awt/panoramiXext.h +Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, +BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Digital Equipment Corporation +shall not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from Digital +Equipment Corporation. + +END src/solaris/native/sun/awt/panoramiXext.h +****************************************************** + +BEGIN src/solaris/native/sun/awt/randr.h + + * + * Copyright © 2000, Compaq Computer Corporation, + * Copyright © 2002, Hewlett Packard, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Compaq or HP not be used in advertising + * or publicity pertaining to distribution of the software without specific, + * written prior permission.  HP makes no representations about the + * suitability of this software for any purpose.  It is provided "as is" + * without express or implied warranty. + * + * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author:  Jim Gettys, HP Labs, Hewlett-Packard, Inc. + +END src/solaris/native/sun/awt/randr.h +***************************************************** + +BEGIN src/solaris/native/sun/java2d/opengl/J2D_GL/glx.h + * Mesa 3-D graphics library + * Version:  4.1 + * + * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +END src/solaris/native/sun/java2d/opengl/J2D_GL/glx.h + + + The Jscheme Language and Implementation + +Copyright (c) 2002 Ken R. Anderson, Timothy J. Hickey, Peter Norvig + +This system is licensed under the following +zlib/libpng open-source license. + +This software is provided 'as-is', without any express or +implied warranty. + +In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it +and redistribute it freely, subject to the following +restrictions: + +1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the + product documentation would be appreciated but is not + required. + +2. Altered source versions must be plainly marked as such, and + must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. + +JScheme includes software licensed under the Apache Software License, +Version 1.1: + + +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * Portions of this software are based upon public domain software + * originally written at the National Center for Supercomputing Applications, + * University of Illinois, Urbana-Champaign. + */ + + +Licenses for sources found in the IcedTea patches/checkins: + +NanoXML: + + * This file is part of NanoXML 2 Lite. + * Copyright (C) 2000-2002 Marc De Scheemaecker, All Rights Reserved. + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from the + * use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software in + * a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. --- cacao-oj6-6b12.orig/debian/generate-debian-orig.sh +++ cacao-oj6-6b12/debian/generate-debian-orig.sh @@ -0,0 +1,51 @@ + +tarball=openjdk-6-src-b12-28_aug_2008-dfsg.tar.gz +version=6b12 +cacaotb=cacao-0.99.4~20081010.tar.bz2 +base=openjdk-6 +base=cacao-oj6 +pkgdir=$base-$version +origtar=${base}_${version}.orig.tar.gz + +icedtea_checkout=../icedtea6 +debian_checkout=openjdk6 + +if [ -d $pkgdir ]; then + echo directory $pkgdir already exists + exit 1 +fi + +if [ -d $pkgdir.orig ]; then + echo directory $pkgdir.orig already exists + exit 1 +fi + +if [ -f $origtar ]; then + tar xf $origtar + if [ -d $pkgdir.orig ]; then + mv $pkgdir.orig $pkgdir + fi + tar -c -f - -C $icedtea_checkout . | tar -x -f - -C $pkgdir + cp -a $debian_checkout $pkgdir/debian +else + rm -rf $pkgdir.orig + mkdir -p $pkgdir.orig + case "$base" in + openjdk*) + cp -p $tarball $pkgdir.orig/ ;; + cacao*) + if [ -f $cacaotb ]; then + : # don't include the cacao tarball anymore + #cp -p $cacaotb $pkgdir.orig/ + fi + esac + tar -c -f - -C $icedtea_checkout . | tar -x -f - -C $pkgdir.orig + ( + cd $pkgdir.orig + sh autogen.sh + rm -rf autom4te.cache + ) + cp -a $pkgdir.orig $pkgdir + rm -rf $pkgdir.orig/.hg + cp -a $debian_checkout $pkgdir/debian +fi --- cacao-oj6-6b12.orig/debian/JB-demo.menu.in +++ cacao-oj6-6b12/debian/JB-demo.menu.in @@ -0,0 +1,55 @@ +?package(@basename@-demo):\ + needs="x11"\ + section="Applications/Programming"\ + title="@vendor@ Java @RELEASE@ FileChooser Demo"\ + command="/bin/sh -c 'cd /@basedir@/demo/jfc/FileChooserDemo; /@basedir@/bin/java -jar FileChooserDemo.jar'"\ + icon="/usr/share/pixmaps/@basename@-app.xpm"\ + hints="Java2" + +?package(@basename@-demo):\ + needs="x11"\ + section="Applications/Programming"\ + title="@vendor@ Java @RELEASE@ Font2DTest Demo"\ + command="/bin/sh -c 'cd /@basedir@/demo/jfc/Font2DTest; /@basedir@/bin/java -jar Font2DTest.jar'"\ + icon="/usr/share/pixmaps/@basename@-app.xpm"\ + hints="Java2" + +?package(@basename@-demo):\ + needs="x11"\ + section="Applications/Programming"\ + title="@vendor@ Java @RELEASE@ Java 2D Demo"\ + command="/bin/sh -c 'cd /@basedir@/demo/jfc/Java2D; /@basedir@/bin/java -jar Java2Demo.jar'"\ + icon="/usr/share/pixmaps/@basename@-app.xpm"\ + hints="Java2" + +?package(@basename@-demo):\ + needs="x11"\ + section="Applications/Programming"\ + title="@vendor@ Java @RELEASE@ SampleTree Demo"\ + command="/bin/sh -c 'cd /@basedir@/demo/jfc/SampleTree; /@basedir@/bin/java -jar SampleTree.jar'"\ + icon="/usr/share/pixmaps/@basename@-app.xpm"\ + hints="Java2" + +?package(@basename@-demo):\ + needs="x11"\ + section="Applications/Programming"\ + title="@vendor@ Java @RELEASE@ Stylepad Demo"\ + command="/bin/sh -c 'cd /@basedir@/demo/jfc/Stylepad; /@basedir@/bin/java -jar Stylepad.jar'"\ + icon="/usr/share/pixmaps/@basename@-app.xpm"\ + hints="Java2" + +?package(@basename@-demo):\ + needs="x11"\ + section="Applications/Programming"\ + title="@vendor@ Java @RELEASE@ SwingSet2 Demo"\ + command="/bin/sh -c 'cd /@basedir@/demo/jfc/SwingSet2; /@basedir@/bin/java -jar SwingSet2.jar'"\ + icon="/usr/share/pixmaps/@basename@-app.xpm"\ + hints="Java2" + +?package(@basename@-demo):\ + needs="x11"\ + section="Applications/Programming"\ + title="@vendor@ Java @RELEASE@ TableExample Demo"\ + command="/bin/sh -c 'cd /@basedir@/demo/jfc/TableExample; /@basedir@/bin/java -jar TableExample.jar'"\ + icon="/usr/share/pixmaps/@basename@-app.xpm"\ + hints="Java2" --- cacao-oj6-6b12.orig/debian/sharedmimeinfo +++ cacao-oj6-6b12/debian/sharedmimeinfo @@ -0,0 +1,12 @@ + + + + Java Archive + + + + + Java Web Start application + + + --- cacao-oj6-6b12.orig/debian/JB-jdk.prerm.in +++ cacao-oj6-6b12/debian/JB-jdk.prerm.in @@ -0,0 +1,14 @@ +#!/bin/sh -e + +jdk_tools='@jdk_tools@' +basedir=/@basedir@ +basediralias=/@basediralias@ + + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then + for i in $jdk_tools; do + update-alternatives --remove $i $basediralias/bin/$i + done +fi + +#DEBHELPER# --- cacao-oj6-6b12.orig/debian/README.alternatives.in +++ cacao-oj6-6b12/debian/README.alternatives.in @@ -0,0 +1,26 @@ + +Packages providing a runtime or a development environment for the Java +language all use symlinks in the /etc/alternatives directory to enable +the system administrator to choose which programs to use for java, +javac, javah, etc. + +Starting with java-common 0.23ubuntu1, the update-java-alternatives +script can be used to set a bunch of jre/jdk alternatives: + +- Set all runtime tools to point to the @basename@ alternatives: + + update-java-alternatives --jre --set @jdirname@ + +- Set all runtime tools (headless only) to point to the @basename@ + alternatives: + + update-java-alternatives --jre-headless --set @jdirname@ + +- Set all runtime and development tools to point to the @basename@ + alternatives: + + update-java-alternatives --set @jdirname@ + +- Set all runtime and development tools to auto mode: + + update-java-alternatives --auto --- cacao-oj6-6b12.orig/debian/JB-jre.prerm.in +++ cacao-oj6-6b12/debian/JB-jre.prerm.in @@ -0,0 +1,13 @@ +#!/bin/sh -e + +basedir=/@basedir@ +basediralias=/@basediralias@ +jre_tools='@jre_tools@' + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then + for i in $jre_tools; do + update-alternatives --remove $i $basediralias/jre/bin/$i + done +fi + +#DEBHELPER# --- cacao-oj6-6b12.orig/debian/generate-dfsg-zip.sh +++ cacao-oj6-6b12/debian/generate-dfsg-zip.sh @@ -0,0 +1,107 @@ +#!/bin/sh + +if [ ! -f "$1" ]; then + echo "does not exist: $1" + exit 1 +fi + +dist=$(lsb_release -is) + +# Untar openjdk source zip. +rm -rf openjdk +mkdir openjdk +tar xf $1 -C openjdk + +# Remove binaries +rm -f \ + openjdk/jdk/test/sun/management/windows/revokeall.exe \ + openjdk/jdk/test/sun/management/jmxremote/bootstrap/linux-i586/launcher \ + openjdk/jdk/test/sun/management/jmxremote/bootstrap/solaris-sparc/launcher \ + openjdk/jdk/test/sun/management/jmxremote/bootstrap/solaris-i586/launcher + +# Remove test sources with questionable license headers. +rm -f \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource3.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4165815Test.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4177489_Resource_jf.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Getter.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4177489Test.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource2.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4083270Test.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4177489_Resource.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Test.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4168625Class.java \ + openjdk/jdk/test/java/util/Locale/Bug4175998Test.java \ + openjdk/jdk/test/java/util/ResourceBundle/RBTestFmwk.java \ + openjdk/jdk/test/java/util/ResourceBundle/TestResource_fr.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4179766Resource.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4179766Getter.java \ + openjdk/jdk/test/java/util/ResourceBundle/Bug4179766Class.java \ + openjdk/jdk/test/java/util/ResourceBundle/TestResource.java \ + openjdk/jdk/test/java/util/ResourceBundle/FakeTestResource.java \ + openjdk/jdk/test/java/util/ResourceBundle/TestResource_de.java \ + openjdk/jdk/test/java/util/ResourceBundle/TestBug4179766.java \ + openjdk/jdk/test/java/util/ResourceBundle/TestResource_fr_CH.java \ + openjdk/jdk/test/java/util/ResourceBundle/ResourceBundleTest.java \ + openjdk/jdk/test/java/util/ResourceBundle/TestResource_it.java \ + openjdk/jdk/test/java/util/Locale/PrintDefaultLocale.java \ + openjdk/jdk/test/java/util/Locale/LocaleTest.java \ + openjdk/jdk/test/java/util/Locale/LocaleTestFmwk.java \ + openjdk/jdk/test/java/util/Locale/Bug4184873Test.java \ + openjdk/jdk/test/sun/text/resources/LocaleDataTest.java + +# Remove J2DBench sources, some of which have questionable license +# headers. +rm -rf \ + openjdk/jdk/src/share/demo/java2d/J2DBench + +# BEGIN Debian/Ubuntu additions + +# binary files +rm -f \ + openjdk/jdk/test/sun/net/idn/*.spp + +rm -f \ + openjdk/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/linux-i586/libLauncher.so \ + openjdk/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so \ + openjdk/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so \ + openjdk/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparcv9/libLauncher.so \ + openjdk/jdk/test/tools/launcher/lib/i386/lib32/lib32/liblibrary.so \ + openjdk/jdk/test/tools/launcher/lib/i386/lib32/liblibrary.so \ + openjdk/jdk/test/tools/launcher/lib/sparc/lib32/lib32/liblibrary.so \ + openjdk/jdk/test/tools/launcher/lib/sparc/lib32/liblibrary.so \ + openjdk/jdk/test/tools/launcher/lib/sparc/lib64/lib64/liblibrary.so \ + openjdk/jdk/test/tools/launcher/lib/sparc/lib64/liblibrary.so + +rm -f \ + openjdk/jdk/test/java/util/Locale/data/deflocale.exe \ + openjdk/jdk/test/java/util/Locale/data/deflocale.jds3 \ + openjdk/jdk/test/java/util/Locale/data/deflocale.rhel4 \ + openjdk/jdk/test/java/util/Locale/data/deflocale.sh \ + openjdk/jdk/test/java/util/Locale/data/deflocale.sol10 \ + openjdk/jdk/test/java/util/Locale/data/deflocale.winvista \ + openjdk/jdk/test/java/util/Locale/data/deflocale.winxp \ + +# has w3c copyright. license to be checked / needs checking after decoding +rm -f \ + openjdk/jdk/test/javax/xml/crypto/dsig/data/xml-stylesheet \ + openjdk/jdk/test/javax/xml/crypto/dsig/data/xml-stylesheet.b64 + +# TODO +#$ find openjdk -name '*.jar' -o -name '*.class'|grep -v test + +# END Debian/Ubuntu additions + +# Create new zip with new name. + +NEW_ZIP=$(echo $1 | sed -e 's/\.tar.gz/-dfsg.tar.gz/') +(cd openjdk && tar -cz -f ../$NEW_ZIP *) + +# Remove old unzipped openjdk dir. +rm -rf openjdk --- cacao-oj6-6b12.orig/debian/control.gcjwebplugin.so +++ cacao-oj6-6b12/debian/control.gcjwebplugin.so @@ -0,0 +1,12 @@ + +Package: icedtea6-gcjwebplugin +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: openjdk-6-jre (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Conflicts: icedtea-gcjwebplugin +Replaces: icedtea-gcjwebplugin +Xb-Npp-Applications: ec8030f7-c20a-464f-9b0e-13a3a9e97384, 92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a, aa5ca914-c309-495d-91cf-3141bbb04115 +Xb-Npp-Name: The IcedTea Web Browser Plugin (using OpenJDK) +Xb-Npp-MimeType: application/x-java-vm, application/x-java-applet, application/x-java-applet;version=1.1, application/x-java-applet;version=1.1.1, application/x-java-applet;version=1.1.2, application/x-java-applet;version=1.1.3, application/x-java-applet;version=1.2, application/x-java-applet;version=1.2.1, application/x-java-applet;version=1.2.2, application/x-java-applet;version=1.3, application/x-java-applet;version=1.3.1, application/x-java-applet;version=1.4, application/x-java-applet;version=1.4.1, application/x-java-applet;version=1.4.2, application/x-java-applet;version=1.5, application/x-java-applet;version=1.6, application/x-java-applet;jpi-version=1.6.0_00, application/x-java-bean, application/x-java-bean;version=1.1, application/x-java-bean;version=1.1.1, application/x-java-bean;version=1.1.2, application/x-java-bean;version=1.1.3, application/x-java-bean;version=1.2, application/x-java-bean;version=1.2.1, application/x-java-bean;version=1.2.2, application/x-java-bean;version=1.3, application/x-java-bean;version=1.3.1, application/x-java-bean;version=1.4, application/x-java-bean;version=1.4.1, application/x-java-bean;version=1.4.2, application/x-java-bean;version=1.5, application/x-java-bean;version=1.6, application/x-java-bean;jpi-version=1.6.0_00 +Description: Java plugin based on OpenJDK and gcjwebplugin + Icedtea is a temporary fork of OpenJDK --- cacao-oj6-6b12.orig/debian/compat +++ cacao-oj6-6b12/debian/compat @@ -0,0 +1 @@ +5 --- cacao-oj6-6b12.orig/debian/JB-controlpanel.desktop.in +++ cacao-oj6-6b12/debian/JB-controlpanel.desktop.in @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=@vendor@ Java @RELEASE@ Plugin Control Panel +Name[fi]=@vendor@ Java @RELEASE@ - liitännäisen ohjauspaneeli +Comment=@vendor@ Java @RELEASE@ Plugin Control Panel +Comment[fi]=@vendor@ Java @RELEASE@ - liitännäisen ohjauspaneeli +Exec=/@basedir@/bin/ControlPanel +Terminal=false +Type=Application +Icon=@basename@ +Categories=Settings; --- cacao-oj6-6b12.orig/debian/JB-dbg.overrides.in +++ cacao-oj6-6b12/debian/JB-dbg.overrides.in @@ -0,0 +1,2 @@ +# The package *-jre-lib depends on *-jre via *-jre-headless. Lintian is wrong here. +@basename@-dbg binary: usr-share-doc-symlink-without-dependency @basename@-jre --- cacao-oj6-6b12.orig/debian/PLUGIN.overrides.in +++ cacao-oj6-6b12/debian/PLUGIN.overrides.in @@ -0,0 +1,2 @@ +# empty directories for plugin alternatives +@pkg_plugin@ binary: package-contains-empty-directory --- cacao-oj6-6b12.orig/debian/copyright.cacao +++ cacao-oj6-6b12/debian/copyright.cacao @@ -0,0 +1,356 @@ + +=============================================================================== +CACAO +=============================================================================== + +This package was debianized by Stephan Michels on +Sat, 12 Nov 2005 22:07:41 +0100. + +It was downloaded from http://www.cacaojvm.org/ + +Copyright Holder: CACAO Project + Copyright (C) 1996-2008 Verein zur Foerderung der freien virtuellen Maschine CACAO + Portions Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel, + C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring, + E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, + J. Wenninger, Institut f. Computersprachen - TU Wien + +License: + + + This program 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 of the License, or + (at your option) any later version. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +On Debian systems a full copy of the GNU General Public License, GPL, can be +found in the file /usr/share/common-licenses/GPL-2. + + +CACAO uses code from other free software projects. Only code licensed +under a GPL compatible license can be merged in. You can find the +licenses of third party sources in their respective sources. + + +* src/mm/boehm-gc + +Merged in the Boehm-Weiser garbage collector from +http://www.hpl.hp.com/personal/Hans_Boehm/gc/. + +Copyright (c) 1988, 1989 Hans-J. Boehm, Alan J. Demers +Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved. +Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. +Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved. +Portions Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved. + +The file linux_threads.c is also +Copyright (c) 1998 by Fergus Henderson. All rights reserved. + +The files Makefile.am, and configure.in are +Copyright (c) 2001 by Red Hat Inc. All rights reserved. + +Several files supporting GNU-style builds are copyrighted by the Free +Software Foundation, and carry a different license from that given +below. + +THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED +OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + +Permission is hereby granted to use or copy this program +for any purpose, provided the above notices are retained on all copies. +Permission to modify the code and to distribute modified code is granted, +provided the above notices are retained, and a notice that the code was +modified is included with the above copyright notice. + +A few of the files needed to use the GNU-style build procedure come with +slightly different licenses, though they are all similar in spirit. A few +are GPL'ed, but with an exception that should cover all uses in the +collector. (If you are concerned about such things, I recommend you look +at the notice in config.guess or ltmain.sh.) + +The files copyrighted by Hewlett-Packard Company have the notice: + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + +* src/fdlibm + +fdlimb contains general algorithms useful for runtimes and compilers to +support strict double and float mathematical operations. + +fdlibm files carry the following notices: + + Copyright (c) 1991 by AT&T. + + Permission to use, copy, modify, and distribute this software for any + purpose without fee is hereby granted, provided that this entire notice + is included in all copies of any software which is or includes a copy + or modification of this software and in all copies of the supporting + documentation for such software. + + THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY + REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + + Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + + Developed at SunPro, a Sun Microsystems, Inc. business. + Permission to use, copy, modify, and distribute this + software is freely granted, provided that this notice + is preserved. + +The upstream for fdlibm is libgcj (http://gcc.gnu.org/java/), they sync +again with the 'real' upstream (http://www.netlib.org/fdlibm/readme). + + +* src/threads/green/{locks.[ch],threadio.[ch],threads.[ch]} + +This files are taken from Kaffe.org VM available at +http://www.kaffe.org/. Kaffe's license.terms file is located in the +top directory of the source code. The current license of Kaffe is the +same as of CACAO, GPL Version 2. + + +* src/vm/jit/{i386,x86_64}/{dis-asm.h,i386-dis.c} + +Print i386 instructions for GDB, the GNU debugger. +Copyright 1988, 1989, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +This file is part of GDB. + +This program 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 of the License, or +(at your option) any later version. + +This program 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 this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ + + +* src/vm/jit/{i386,x86_64}/dis-asm.h + +Interface between the opcode library and its callers. + +Copyright 2001, 2002 Free Software Foundation, Inc. + +This program 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. + +This program 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 this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, +Boston, MA 02110-1301 USA + +Written by Cygnus Support, 1993. + +The opcode library (libopcodes.a) provides instruction decoders for +a large variety of instruction sets, callable with an identical +interface, for making instruction-processing programs more independent +of the instruction set being processed. + + +* src/vm/jit/powerpc/{ppc.h,ppc-dis.c,ppc-opc.c} + +Copyright 1994, 1995, 2000, 2001, 2002 Free Software Foundation, Inc. +Written by Ian Lance Taylor, Cygnus Support + +This file is part of GDB, GAS, and the GNU binutils. + +GDB, GAS, and the GNU binutils are free software; you can redistribute +them and/or modify them 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. + +GDB, GAS, and the GNU binutils are distributed in the hope that they +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 this file; see the file COPYING. If not, write to the Free +Software Foundation, Inc., 51 Franklin St, Fifth Floor, +Boston, MA 02110-1301 USA. + + +* src/lib/classes/* + +GNU Classpath is licensed under the terms of the GNU General Public +License with the following clarification and special exception: + + "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." + +See license.terms for the text of the GNU General Public License. + +More information on GNU Classpath is available from +http://www.gnu.org/software/classpath/classpath.html. + + +* m4/{iconv.m4,lib-ld.m4,lib-link.m4,lib-prefix.m4} + +Copyright (C) 1996-2003 Free Software Foundation, Inc. +This file is free software, distributed under the terms of the GNU +General Public License. As a special exception to the GNU General +Public License, this file may be distributed as part of a program +that contains a configuration script generated by Autoconf, under +the same distribution terms as the rest of that program. + + +* src/toolbox/avl.[ch] + +libavl - library for manipulation of binary trees. +Copyright (C) 1998-2002 Free Software Foundation, Inc. + +This program 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 of the +License, or (at your option) any later version. + +This program 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 this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +02110-1301 USA. + +The author may be contacted at on the Internet, or +write to Ben Pfaff, Stanford University, Computer Science Dept., 353 +Serra Mall, Stanford CA 94305, USA. + + +* src/vm/unzip.[ch] + +Copyright (C) 1998 Gilles Vollant + +This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g + WinZip, InfoZip tools and compatible. +Encryption and multi volume ZipFile (span) are not supported. +Old compressions used by old PKZip 1.x are not supported + +THIS IS AN ALPHA VERSION. AT THIS STAGE OF DEVELOPPEMENT, SOMES API OR STRUCTURE +CAN CHANGE IN FUTURE VERSION !! +I WAIT FEEDBACK at mail info@winimage.com +Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution + +Condition of use and distribution are the same than zlib : + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + + +src/mm/boehm-gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/armcc + + * Copyright (c) 2007 by NEC LE-IT: All rights reserved. + * A transcription of ARMv6 atomic operations for the ARM Realview Toolchain. + * This code works with armcc from RVDS 3.1 + * This is based on work in gcc/arm.h by + * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved. + * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. + * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved. + * + * + * + * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED + * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + * + * Permission is hereby granted to use or copy this program + * for any purpose, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + +src/mm/boehm-gc/include/private + + Copyright (c) 2004-2005 Andrei Polushin + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + +contrib/vmlog: + +/* Copyright (C) 2006 Edwin Steiner */ +/* 2007 Peter Molnar */ + +/* This program 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 of the License, or + * (at your option) any later version. + * + * This program 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. + */ + +Some of the build files are + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. --- cacao-oj6-6b12.orig/debian/JB-jdk.postinst.in +++ cacao-oj6-6b12/debian/JB-jdk.postinst.in @@ -0,0 +1,55 @@ +#!/bin/sh + +set -e + +priority=@priority@ +basedir=/@basedir@ +basediralias=/@basediralias@ +mandir=/@basediralias@/man +jdiralias=@jdiralias@ +srcext=1.gz +dstext=1.gz +jdk_tools='@jdk_tools@' + +case "$1" in +configure) + for i in $jdk_tools; do + unset slave1 slave2 || true + if [ -e $mandir/man1/$i.$srcext ]; then + slave1="--slave \ + /usr/share/man/man1/$i.$dstext \ + $i.$dstext \ + $mandir/man1/$i.$srcext" + fi + if false && [ -e $mandir/ja/man1/$i.$srcext ]; then + slave2="--slave \ + /usr/share/man/ja/man1/$i.$dstext \ + ${i}_ja.$dstext \ + $mandir/ja/man1/$i.$srcext" + fi + update-alternatives \ + --install \ + /usr/bin/$i \ + $i \ + $basediralias/bin/$i \ + $priority \ + $slave1 $slave2 + done + + # fix slave links for man page alternatives + if [ -n "$2" ] && dpkg --compare-versions "$2" lt 6-00-2ubuntu2; then + for i in $jdk_tools; do + current=$(LANG=C update-alternatives --display $i 2>&1 \ + | awk '/link currently points to/ { print $NF}') + case "$current" in /@basediralias@*) + update-alternatives --quiet --set $i $basediralias/bin/$i + esac + done + fi + + ;; +esac + +#DEBHELPER# + +exit 0 --- cacao-oj6-6b12.orig/debian/JB-jre.menu.in +++ cacao-oj6-6b12/debian/JB-jre.menu.in @@ -0,0 +1,7 @@ +?package(@basename@-jre):\ + needs="x11"\ + section="Applications/System/Administration"\ + title="@vendor@ Java @RELEASE@ Policy Tool"\ + command="/@basedir@/bin/policytool"\ + icon="/usr/share/pixmaps/@basename@.xpm"\ + hints="Java2" --- cacao-oj6-6b12.orig/debian/JB-archive.mime.in +++ cacao-oj6-6b12/debian/JB-archive.mime.in @@ -0,0 +1,6 @@ +application/java-archive + ext: jar +application/x-java-archive + ext: jar +application/x-jar + ext: jar --- cacao-oj6-6b12.orig/debian/JB-web-start.mime.in +++ cacao-oj6-6b12/debian/JB-web-start.mime.in @@ -0,0 +1,2 @@ +application/x-java-jnlp-file + ext: jnlp --- cacao-oj6-6b12.orig/debian/JB-web-start.applications.in +++ cacao-oj6-6b12/debian/JB-web-start.applications.in @@ -0,0 +1,6 @@ +java-web-start + command="/@basedir@/bin/javaws" + name=java-web-start + can_open_multiple_files=false + requires_terminal=false + mime_types=application/x-java-jnlp-file --- cacao-oj6-6b12.orig/debian/mauve_tests +++ cacao-oj6-6b12/debian/mauve_tests @@ -0,0 +1,2570 @@ +javax.xml.xpath.XPath +javax.xml.parsers.DocumentBuilder.PR27864 +javax.xml.parsers.DocumentBuilder.parseSimpleXML +javax.crypto.spec.TestOfPBEKeySpec +javax.crypto.spec.TestOfSecretKeySpec +javax.accessibility.AccessibleContext.getAccessibleRelationSet +javax.imageio.plugins.jpeg.TestJPEGImageReadParam +javax.imageio.plugins.jpeg.TestJPEGHuffmanTable +javax.imageio.plugins.jpeg.TestJPEGQTable +javax.imageio.stream.IIOByteBuffer.setOffset +javax.imageio.stream.IIOByteBuffer.setLength +javax.imageio.stream.IIOByteBuffer.setData +javax.imageio.spi.ServiceRegistry.getServiceProviderByClass +javax.imageio.spi.ServiceRegistry.deregisterAll +javax.imageio.spi.ServiceRegistry.getCategories +javax.imageio.spi.ServiceRegistry.lookupProviders +javax.imageio.spi.ServiceRegistry.registerServiceProvider +javax.imageio.spi.IIOServiceProvider.getVersion +javax.imageio.spi.IIOServiceProvider.getVendorName +javax.imageio.spi.ImageOutputStreamSpi.ImageOutputStreamSpi +javax.imageio.spi.ImageOutputStreamSpi.needsCacheFile +javax.imageio.spi.ImageOutputStreamSpi.canUseCacheFile +javax.imageio.spi.ImageReaderWriterSpi.getNativeImageMetadataFormatName +javax.imageio.spi.ImageReaderWriterSpi.getFileSuffixes +javax.imageio.spi.ImageReaderWriterSpi.getExtraImageMetadataFormatNames +javax.imageio.spi.ImageReaderWriterSpi.getPluginClassName +javax.imageio.spi.ImageReaderWriterSpi.getNativeStreamMetadataFormatName +javax.imageio.spi.ImageReaderWriterSpi.getExtraStreamMetadataFormatNames +javax.imageio.spi.ImageReaderWriterSpi.getMIMETypes +javax.imageio.spi.ImageReaderWriterSpi.isStandardImageMetadataFormatSupported +javax.imageio.spi.ImageReaderWriterSpi.getFormatNames +javax.imageio.spi.ImageReaderWriterSpi.isStandardStreamMetadataFormatSupported +javax.imageio.spi.ImageInputStreamSpi.ImageInputStreamSpi +javax.imageio.spi.ImageInputStreamSpi.needsCacheFile +javax.imageio.spi.ImageInputStreamSpi.canUseCacheFile +javax.imageio.spi.ImageTranscoderSpi.ImageTranscoderSpi +javax.imageio.spi.IIORegistry.getDefaultInstance +javax.naming.CompoundName.simple +javax.naming.directory.BasicAttribute.Enumerate +javax.naming.CompositeName.composite +javax.management.ObjectName.apply +javax.management.ObjectName.Parsing +javax.management.ObjectName.ParsingJDK6 +javax.management.ObjectName.applyJDK6 +javax.management.openmbean.ArrayType.IsValue +javax.management.openmbean.ArrayType.Constructor2 +javax.management.openmbean.ArrayType.Equals +javax.management.openmbean.ArrayType.IsPrimitiveArray +javax.management.openmbean.ArrayType.GetArrayType +javax.management.openmbean.ArrayType.HashCode +javax.management.openmbean.ArrayType.GetPrimitiveArrayType +javax.management.openmbean.ArrayType.Constructor1 +javax.management.openmbean.CompositeDataInvocationHandler.Test +javax.management.MBeanServerPermission.Constructor +javax.security.auth.login.TestOfPR25202 +javax.print.SimpleDoc.constructor +javax.print.SimpleDoc.getStreamForBytes +javax.print.SimpleDoc.getAttributes +javax.print.SimpleDoc.getReaderForText +javax.print.DocFlavor.parseMimeType +javax.print.attribute.TextSyntax.constructors +javax.print.attribute.ResolutionSyntax.simple +javax.print.attribute.EnumSyntax.serialize +javax.print.attribute.EnumSyntax.equals +javax.print.attribute.AttributeSetUtilities.simple +javax.print.attribute.Size2DSyntax.simple +javax.print.attribute.SetOfIntegerSyntax.Simple +javax.print.attribute.HashAttributeSet.populatedSet +javax.print.attribute.HashAttributeSet.nullTests +javax.print.attribute.HashAttributeSet.emptySet +javax.print.attribute.standard.MediaSize.userClass +javax.swing.JWindow.isRootPaneCheckingEnabled +javax.swing.JSplitPane.setComponent +javax.swing.JSplitPane.setResizeWeight +javax.swing.JSplitPane.getDividerLocation +javax.swing.JSplitPane.getInputMap +javax.swing.JSplitPane.getActionMap +javax.swing.JSplitPane.paramString +javax.swing.JSplitPane.Constructor +javax.swing.JOptionPane.getInputMap +javax.swing.JTabbedPane.getInputMap +javax.swing.JTabbedPane.Mnemonic +javax.swing.JTabbedPane.remove +javax.swing.JToggleButton.constructor +javax.swing.JToggleButton.actionEvent +javax.swing.JToggleButton.isFocusable +javax.swing.JToggleButton.uidelegate +javax.swing.JToggleButton.getActionCommand +javax.swing.JToggleButton.model +javax.swing.JToggleButton.click +javax.swing.text.View.getResizeWeight +javax.swing.text.View.getMaximumSpan +javax.swing.text.View.getMinimumSpan +javax.swing.text.View.getAlignment +javax.swing.text.GapContent.getString +javax.swing.text.GapContent.GapContentTest +javax.swing.text.GapContent.length +javax.swing.text.GapContent.constructors +javax.swing.text.GapContent.insertString +javax.swing.text.GapContent.getChars +javax.swing.text.GapContent.PositionTest +javax.swing.text.GapContent.remove +javax.swing.text.ElementIterator.ElementIteratorTest +javax.swing.text.AbstractDocument.BranchElement.getStartOffset +javax.swing.text.AbstractDocument.BranchElement.getElementIndexNullPointer +javax.swing.text.AbstractDocument.BranchElement.BranchElementTest +javax.swing.text.AbstractDocument.BranchElement.getElementIndex +javax.swing.text.AbstractDocument.LeafElement.getStartOffset +javax.swing.text.AbstractDocument.getDocumentProperties +javax.swing.text.AbstractDocument.ElementChange2 +javax.swing.text.AbstractDocument.AbstractDocumentTest +javax.swing.text.AbstractDocument.ElementChange +javax.swing.text.AbstractDocument.filterTest +javax.swing.text.MaskFormatter.MaskFormatterTest +javax.swing.text.DefaultFormatter.getValueClass +javax.swing.text.PlainDocument.getRootElements +javax.swing.text.PlainDocument.getDocumentProperties +javax.swing.text.PlainDocument.removeJoinesLines +javax.swing.text.PlainDocument.multipleLeafs +javax.swing.text.PlainDocument.getText +javax.swing.text.PlainDocument.getLength +javax.swing.text.PlainDocument.createPosition +javax.swing.text.PlainDocument.insertUpdate +javax.swing.text.PlainDocument.insertString +javax.swing.text.PlainDocument.PlainDocumentTest +javax.swing.text.AttributeSet.isEqual +javax.swing.text.Segment.clone +javax.swing.text.Segment.first +javax.swing.text.Segment.setIndex +javax.swing.text.Segment.last +javax.swing.text.Segment.getIndex +javax.swing.text.Segment.current +javax.swing.text.Segment.next +javax.swing.text.Segment.isPartialReturn +javax.swing.text.Segment.getEndIndex +javax.swing.text.Segment.setPartialReturn +javax.swing.text.Segment.getBeginIndex +javax.swing.text.Segment.constructors +javax.swing.text.Segment.toString +javax.swing.text.Segment.previous +javax.swing.text.TextAction.augmentList +javax.swing.text.TabSet.getTab +javax.swing.text.TabSet.constructor +javax.swing.text.TabSet.getTabCount +javax.swing.text.TabSet.getTabIndex +javax.swing.text.TabSet.getTabIndexAfter +javax.swing.text.TabSet.equals +javax.swing.text.TabSet.toString +javax.swing.text.html.HTML.HTML_Test +javax.swing.text.html.HTMLDocument.FindById +javax.swing.text.html.parser.Entity.Entity_Test +javax.swing.text.html.parser.TagElement.TagElement_Test +javax.swing.text.html.parser.AttributeList.AttributeList_test +javax.swing.text.html.parser.Element.Element_Test +javax.swing.text.html.parser.ParserDelegator.Entities +javax.swing.text.html.parser.ParserDelegator.Text4 +javax.swing.text.html.parser.ParserDelegator.randomTables +javax.swing.text.html.parser.ParserDelegator.SimpleParsing +javax.swing.text.html.parser.ParserDelegator.Text3 +javax.swing.text.html.parser.ParserDelegator.Text +javax.swing.text.html.parser.ParserDelegator.eolnNorification +javax.swing.text.html.parser.ParserDelegator.tokenLocations +javax.swing.text.html.parser.DTD.DTD_test +javax.swing.text.BoxView.spans +javax.swing.text.StyleConstants.setTabSet +javax.swing.text.StyleConstants.setUnderline +javax.swing.text.StyleConstants.getLeftIndent +javax.swing.text.StyleConstants.getIcon +javax.swing.text.StyleConstants.setFontFamily +javax.swing.text.StyleConstants.isBold +javax.swing.text.StyleConstants.setLineSpacing +javax.swing.text.StyleConstants.isSubscript +javax.swing.text.StyleConstants.setItalic +javax.swing.text.StyleConstants.getFontSize +javax.swing.text.StyleConstants.setComponent +javax.swing.text.StyleConstants.setBidiLevel +javax.swing.text.StyleConstants.getForeground +javax.swing.text.StyleConstants.setSuperscript +javax.swing.text.StyleConstants.getSpaceAbove +javax.swing.text.StyleConstants.getLineSpacing +javax.swing.text.StyleConstants.setSpaceBelow +javax.swing.text.StyleConstants.setBackground +javax.swing.text.StyleConstants.getRightIndent +javax.swing.text.StyleConstants.getFirstLineIndent +javax.swing.text.StyleConstants.isItalic +javax.swing.text.StyleConstants.getTabSet +javax.swing.text.StyleConstants.setIcon +javax.swing.text.StyleConstants.isUnderline +javax.swing.text.StyleConstants.setBold +javax.swing.text.StyleConstants.setAlignment +javax.swing.text.StyleConstants.setSubscript +javax.swing.text.StyleConstants.setRightIndent +javax.swing.text.StyleConstants.isSuperscript +javax.swing.text.StyleConstants.getSpaceBelow +javax.swing.text.StyleConstants.setFontSize +javax.swing.text.StyleConstants.getFontFamily +javax.swing.text.StyleConstants.constants +javax.swing.text.StyleConstants.setStrikeThrough +javax.swing.text.StyleConstants.setForeground +javax.swing.text.StyleConstants.getAlignment +javax.swing.text.StyleConstants.setLeftIndent +javax.swing.text.StyleConstants.getBackground +javax.swing.text.StyleConstants.getComponent +javax.swing.text.StyleConstants.getBidiLevel +javax.swing.text.StyleConstants.setFirstLineIndent +javax.swing.text.StyleConstants.setSpaceAbove +javax.swing.text.StyleConstants.isStrikeThrough +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure3 +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure1 +javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument6 +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure7 +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure2 +javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument1 +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure4 +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure6 +javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument3 +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure5 +javax.swing.text.DefaultStyledDocument.ElementBuffer.insert +javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure8 +javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument2 +javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument5 +javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument4 +javax.swing.text.DefaultStyledDocument.Insert +javax.swing.text.DefaultStyledDocument.insertString +javax.swing.text.DefaultStyledDocument.Create +javax.swing.text.SimpleAttributeSet.removeAttributesOnlyIfMatch +javax.swing.text.SimpleAttributeSet.clone +javax.swing.text.SimpleAttributeSet.EMPTY +javax.swing.text.SimpleAttributeSet.containsAttributes +javax.swing.text.SimpleAttributeSet.containsChecksParent +javax.swing.text.SimpleAttributeSet.containsAttribute +javax.swing.text.SimpleAttributeSet.getResolveParent +javax.swing.text.SimpleAttributeSet.removeAttribute +javax.swing.text.SimpleAttributeSet.copyAttributes +javax.swing.text.SimpleAttributeSet.equals +javax.swing.text.SimpleAttributeSet.removeAttributes +javax.swing.text.SimpleAttributeSet.getAttribute +javax.swing.text.SimpleAttributeSet.isEqual +javax.swing.text.SimpleAttributeSet.getAttributeCount +javax.swing.text.SimpleAttributeSet.constructors +javax.swing.text.SimpleAttributeSet.isDefined +javax.swing.text.SimpleAttributeSet.addAttribute +javax.swing.text.SimpleAttributeSet.getAttributeNames +javax.swing.text.SimpleAttributeSet.setResolveParent +javax.swing.text.SimpleAttributeSet.isEmpty +javax.swing.text.SimpleAttributeSet.addAttributes +javax.swing.text.SimpleAttributeSet.nullValue +javax.swing.text.ZoneView.getMaximumZoneSize +javax.swing.text.ZoneView.createZone +javax.swing.text.ZoneView.constructor +javax.swing.text.ZoneView.zoneWasLoaded +javax.swing.text.ZoneView.isZoneLoaded +javax.swing.text.ZoneView.loadChildren +javax.swing.text.ZoneView.setMaxZonesLoaded +javax.swing.text.ZoneView.unloadZone +javax.swing.text.ZoneView.setMaximumZoneSize +javax.swing.text.FlowView.FlowStrategy.adjustRow +javax.swing.text.FlowView.getFlowAxis +javax.swing.text.InternationalFormatter.InternationalFormatterTest +javax.swing.text.Utilities.getNextWord +javax.swing.text.Utilities.getBreakLocation +javax.swing.text.Utilities.getPreviousWord +javax.swing.text.Utilities.getWordStart +javax.swing.text.Utilities.getTabbedTextOffset +javax.swing.text.TabStop.constructors +javax.swing.text.TabStop.toString +javax.swing.text.StringContent.insertUndo +javax.swing.text.StringContent.BadLocationExceptionTest +javax.swing.text.StringContent.stickyPosition +javax.swing.text.StringContent.length +javax.swing.text.StringContent.removeUndo +javax.swing.text.StringContent.constructors +javax.swing.text.StringContent.insertString +javax.swing.text.StringContent.StringContentTest +javax.swing.text.StyledEditorKit.createInputAttributesTest +javax.swing.text.StyleContext.NamedStyleInit +javax.swing.text.StyleContext.NamedStyleSetResolveParent +javax.swing.text.StyleContext.addStyle +javax.swing.text.StyleContext.addAttribute +javax.swing.JScrollBar.getAccessibleContext +javax.swing.JScrollBar.getInputMap +javax.swing.JScrollBar.constructors +javax.swing.JScrollBar.getActionMap +javax.swing.JScrollBar.paramString +javax.swing.plaf.basic.BasicButtonUI.getTextShiftOffset +javax.swing.plaf.basic.BasicButtonUI.getPropertyPrefix +javax.swing.plaf.basic.BasicButtonUI.defaultTextIconGap +javax.swing.plaf.basic.BasicButtonUI.setTextShiftOffset +javax.swing.plaf.basic.BasicButtonUI.defaultTextShiftOffset +javax.swing.plaf.basic.BasicButtonUI.clearTextShiftOffset +javax.swing.plaf.basic.BasicRadioButtonMenuItemUI.getPropertyPrefix +javax.swing.plaf.basic.BasicToggleButtonUI.getPropertyPrefix +javax.swing.plaf.basic.BasicSeparatorUI.getPreferredSize +javax.swing.plaf.basic.BasicSeparatorUI.getMinimumSize +javax.swing.plaf.basic.BasicSeparatorUI.getMaximumSize +javax.swing.plaf.basic.BasicLookAndFeel.initSystemColorDefaults +javax.swing.plaf.basic.BasicCheckBoxMenuItemUI.getPropertyPrefix +javax.swing.plaf.basic.BasicHTML.isHTMLString +javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer +javax.swing.plaf.basic.BasicScrollBarUI.getPreferredSize +javax.swing.plaf.basic.BasicScrollBarUI.constructor +javax.swing.plaf.basic.BasicScrollBarUI.getMinimumSize +javax.swing.plaf.basic.BasicScrollBarUI.createDecreaseButton +javax.swing.plaf.basic.BasicScrollBarUI.getMaximumSize +javax.swing.plaf.basic.BasicScrollBarUI.getMaximumThumbSize +javax.swing.plaf.basic.BasicScrollBarUI.installDefaults +javax.swing.plaf.basic.BasicScrollBarUI.createIncreaseButton +javax.swing.plaf.basic.BasicScrollBarUI.installComponents +javax.swing.plaf.basic.BasicScrollBarUI.getMinimumThumbSize +javax.swing.plaf.basic.BasicInternalFrameTitlePane.MaximizeAction.constructor +javax.swing.plaf.basic.BasicInternalFrameTitlePane.IconifyAction.constructor +javax.swing.plaf.basic.BasicInternalFrameTitlePane.CloseAction.constructor +javax.swing.plaf.basic.BasicInternalFrameTitlePane.RestoreAction.constructor +javax.swing.plaf.basic.BasicInternalFrameTitlePane.MoveAction.constructor +javax.swing.plaf.basic.BasicInternalFrameTitlePane.SizeAction.constructor +javax.swing.plaf.basic.BasicPasswordFieldUI.getPropertyPrefix +javax.swing.plaf.basic.BasicSplitPaneUI.BasicHorizontalLayoutManager.layoutContainer +javax.swing.plaf.basic.BasicSplitPaneUI.getDividerLocation +javax.swing.plaf.basic.BasicArrowButton.getPreferredSize +javax.swing.plaf.basic.BasicArrowButton.isFocusTraversable +javax.swing.plaf.basic.BasicArrowButton.getMinimumSize +javax.swing.plaf.basic.BasicArrowButton.isFocusable +javax.swing.plaf.basic.BasicArrowButton.getMaximumSize +javax.swing.plaf.basic.BasicSliderUI.xPositionForValue +javax.swing.plaf.basic.BasicSliderUI.getPreferredSize +javax.swing.plaf.basic.BasicSliderUI.getMinimumSize +javax.swing.plaf.basic.BasicSliderUI.valueForYPosition +javax.swing.plaf.basic.BasicSliderUI.getMaximumSize +javax.swing.plaf.basic.BasicSliderUI.getThumbSize +javax.swing.plaf.basic.BasicSliderUI.valueForXPosition +javax.swing.plaf.basic.BasicSliderUI.constructors +javax.swing.plaf.basic.BasicSliderUI.yPositionForValue +javax.swing.plaf.basic.BasicTextFieldUI.getPropertyPrefix +javax.swing.plaf.basic.BasicTextPaneUI.getPropertyPrefix +javax.swing.plaf.basic.BasicMenuItemUI.getPropertyPrefix +javax.swing.plaf.basic.BasicFormattedTextFieldUI.getPropertyPrefix +javax.swing.plaf.basic.BasicTextAreaUI.getPropertyPrefix +javax.swing.plaf.basic.BasicComboBoxUI.getDefaultSize +javax.swing.plaf.basic.BasicComboBoxUI.createEditor +javax.swing.plaf.basic.BasicComboBoxUI.getMaximumSize +javax.swing.plaf.basic.BasicListUI.updateLayoutStateNeeded +javax.swing.plaf.basic.BasicMenuUI.getPropertyPrefix +javax.swing.plaf.basic.BasicIconFactory.getCheckBoxMenuItemIcon +javax.swing.plaf.basic.BasicIconFactory.getMenuArrowIcon +javax.swing.plaf.basic.BasicIconFactory.getCheckBoxIcon +javax.swing.plaf.basic.BasicFileChooserUI.getFileName +javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonText +javax.swing.plaf.basic.BasicFileChooserUI.constructor +javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonMnemonic +javax.swing.plaf.basic.BasicFileChooserUI.uninstallStrings +javax.swing.plaf.basic.BasicFileChooserUI.getApproveButton +javax.swing.plaf.basic.BasicFileChooserUI.getGoHomeAction +javax.swing.plaf.basic.BasicFileChooserUI.getUpdateAction +javax.swing.plaf.basic.BasicFileChooserUI.getDirectoryName +javax.swing.plaf.basic.BasicFileChooserUI.getApproveSelectionAction +javax.swing.plaf.basic.BasicFileChooserUI.installStrings +javax.swing.plaf.basic.BasicFileChooserUI.getChangeToParentDirectoryAction +javax.swing.plaf.basic.BasicFileChooserUI.getCancelSelectionAction +javax.swing.plaf.basic.BasicFileChooserUI.getFileView +javax.swing.plaf.basic.BasicFileChooserUI.installIcons +javax.swing.plaf.basic.BasicFileChooserUI.getNewFolderAction +javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonToolTipText +javax.swing.plaf.basic.BasicFileChooserUI.getDialogTitle +javax.swing.plaf.basic.BasicCheckBoxUI.getPropertyPrefix +javax.swing.plaf.basic.BasicComboBoxEditor.removeActionListener +javax.swing.plaf.basic.BasicComboBoxEditor.addActionListener +javax.swing.plaf.basic.BasicComboBoxEditor.constructor +javax.swing.plaf.basic.BasicEditorPaneUI.getPropertyPrefix +javax.swing.plaf.basic.BasicRootPaneUI.installDefaults +javax.swing.plaf.basic.BasicRadioButtonUI.getPropertyPrefix +javax.swing.plaf.ColorUIResource.serialization +javax.swing.plaf.ColorUIResource.equals +javax.swing.plaf.ColorUIResource.constructors +javax.swing.plaf.metal.MetalTheme.MetalThemeTest +javax.swing.plaf.metal.MetalLookAndFeel.getMenuTextFont +javax.swing.plaf.metal.MetalLookAndFeel.getDescription +javax.swing.plaf.metal.MetalLookAndFeel.isNativeLookAndFeel +javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorBackground +javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControl +javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveForeground +javax.swing.plaf.metal.MetalLookAndFeel.getMenuBackground +javax.swing.plaf.metal.MetalLookAndFeel.getMenuForeground +javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlShadow +javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleForeground +javax.swing.plaf.metal.MetalLookAndFeel.getControlTextFont +javax.swing.plaf.metal.MetalLookAndFeel.getControlHighlight +javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlHighlight +javax.swing.plaf.metal.MetalLookAndFeel.getControlTextColor +javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlDarkShadow +javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorForeground +javax.swing.plaf.metal.MetalLookAndFeel.getSubTextFont +javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme +javax.swing.plaf.metal.MetalLookAndFeel.getControlShadow +javax.swing.plaf.metal.MetalLookAndFeel.isSupportedLookAndFeel +javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedBackground +javax.swing.plaf.metal.MetalLookAndFeel.getInactiveControlTextColor +javax.swing.plaf.metal.MetalLookAndFeel.getWhite +javax.swing.plaf.metal.MetalLookAndFeel.getUserTextFont +javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorForeground +javax.swing.plaf.metal.MetalLookAndFeel.getControlDisabled +javax.swing.plaf.metal.MetalLookAndFeel.getID +javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleBackground +javax.swing.plaf.metal.MetalLookAndFeel.getName +javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextColor +javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleFont +javax.swing.plaf.metal.MetalLookAndFeel.getInactiveSystemTextColor +javax.swing.plaf.metal.MetalLookAndFeel.getUserTextColor +javax.swing.plaf.metal.MetalLookAndFeel.getWindowBackground +javax.swing.plaf.metal.MetalLookAndFeel.getBlack +javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorSelectedForeground +javax.swing.plaf.metal.MetalLookAndFeel.getDesktopColor +javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextFont +javax.swing.plaf.metal.MetalLookAndFeel.getControlDarkShadow +javax.swing.plaf.metal.MetalLookAndFeel.getControlInfo +javax.swing.plaf.metal.MetalLookAndFeel.getMenuDisabledForeground +javax.swing.plaf.metal.MetalLookAndFeel.getFocusColor +javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedForeground +javax.swing.plaf.metal.MetalLookAndFeel.getHighlightedTextColor +javax.swing.plaf.metal.MetalLookAndFeel.getControl +javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveBackground +javax.swing.plaf.metal.MetalLookAndFeel.getTextHighlightColor +javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlInfo +javax.swing.plaf.metal.MetalComboBoxIcon.getIconWidth +javax.swing.plaf.metal.MetalComboBoxIcon.getIconHeight +javax.swing.plaf.metal.MetalComboBoxUI.getPreferredSize +javax.swing.plaf.metal.MetalComboBoxUI.createArrowButton +javax.swing.plaf.metal.MetalFileChooserUI.getFileName +javax.swing.plaf.metal.MetalFileChooserUI.createFilterComboBoxModel +javax.swing.plaf.metal.MetalFileChooserUI.getButtonPanel +javax.swing.plaf.metal.MetalFileChooserUI.getPreferredSize +javax.swing.plaf.metal.MetalFileChooserUI.getMinimumSize +javax.swing.plaf.metal.MetalFileChooserUI.getMaximumSize +javax.swing.plaf.metal.MetalFileChooserUI.getApproveButton +javax.swing.plaf.metal.MetalFileChooserUI.setFileName +javax.swing.plaf.metal.MetalFileChooserUI.getBottomPanel +javax.swing.plaf.metal.MetalCheckBoxUI.getPropertyPrefix +javax.swing.plaf.metal.MetalIconFactory.TreeFolderIcon.getAdditionalHeight +javax.swing.plaf.metal.MetalIconFactory.TreeFolderIcon.getShift +javax.swing.plaf.metal.MetalIconFactory.PaletteCloseIcon.getIconWidth +javax.swing.plaf.metal.MetalIconFactory.PaletteCloseIcon.getIconHeight +javax.swing.plaf.metal.MetalIconFactory.TreeLeafIcon.getAdditionalHeight +javax.swing.plaf.metal.MetalIconFactory.TreeLeafIcon.getShift +javax.swing.plaf.metal.MetalIconFactory.getInternalFrameCloseIcon +javax.swing.plaf.metal.MetalIconFactory.getInternalFrameMaximizeIcon +javax.swing.plaf.metal.MetalIconFactory.getMenuItemCheckIcon +javax.swing.plaf.metal.MetalIconFactory.getRadioButtonMenuItemIcon +javax.swing.plaf.metal.MetalIconFactory.getCheckBoxMenuItemIcon +javax.swing.plaf.metal.MetalIconFactory.getTreeHardDriveIcon +javax.swing.plaf.metal.MetalIconFactory.getTreeLeafIcon +javax.swing.plaf.metal.MetalIconFactory.getMenuArrowIcon +javax.swing.plaf.metal.MetalIconFactory.getFileChooserNewFolderIcon +javax.swing.plaf.metal.MetalIconFactory.getTreeControlIcon +javax.swing.plaf.metal.MetalIconFactory.getFileChooserDetailViewIcon +javax.swing.plaf.metal.MetalIconFactory.getTreeFloppyDriveIcon +javax.swing.plaf.metal.MetalIconFactory.getMenuItemArrowIcon +javax.swing.plaf.metal.MetalIconFactory.getFileChooserListViewIcon +javax.swing.plaf.metal.MetalIconFactory.getTreeComputerIcon +javax.swing.plaf.metal.MetalIconFactory.getFileChooserHomeFolderIcon +javax.swing.plaf.metal.MetalIconFactory.getInternalFrameAltMaximizeIcon +javax.swing.plaf.metal.MetalIconFactory.getRadioButtonIcon +javax.swing.plaf.metal.MetalIconFactory.getFileChooserUpFolderIcon +javax.swing.plaf.metal.MetalIconFactory.getInternalFrameDefaultMenuIcon +javax.swing.plaf.metal.MetalIconFactory.getInternalFrameMinimizeIcon +javax.swing.plaf.metal.MetalIconFactory.getCheckBoxIcon +javax.swing.plaf.metal.MetalIconFactory.getTreeFolderIcon +javax.swing.plaf.metal.MetalRadioButtonUI.getSelectColor +javax.swing.plaf.metal.MetalRadioButtonUI.getFocusColor +javax.swing.plaf.metal.MetalRadioButtonUI.getDisabledTextColor +javax.swing.plaf.metal.MetalComboBoxButton.setIconOnly +javax.swing.plaf.metal.MetalComboBoxButton.isFocusTraversable +javax.swing.plaf.metal.MetalComboBoxButton.setEnabled +javax.swing.plaf.metal.MetalComboBoxButton.isIconOnly +javax.swing.plaf.metal.MetalComboBoxButton.getComboBox +javax.swing.plaf.metal.MetalComboBoxButton.getComboIcon +javax.swing.plaf.metal.MetalComboBoxButton.setComboBox +javax.swing.plaf.metal.MetalComboBoxButton.constructors +javax.swing.plaf.metal.MetalComboBoxButton.setComboIcon +javax.swing.plaf.metal.DefaultMetalTheme.getMenuTextFont +javax.swing.plaf.metal.DefaultMetalTheme.DefaultMetalThemeTest +javax.swing.plaf.metal.DefaultMetalTheme.getControlTextFont +javax.swing.plaf.metal.DefaultMetalTheme.getSubTextFont +javax.swing.plaf.metal.DefaultMetalTheme.getUserTextFont +javax.swing.plaf.metal.DefaultMetalTheme.getName +javax.swing.plaf.metal.DefaultMetalTheme.getWindowTitleFont +javax.swing.plaf.metal.DefaultMetalTheme.getSystemTextFont +javax.swing.plaf.metal.MetalComboBoxEditor.constructor +javax.swing.plaf.metal.MetalComboBoxEditor.editorBorderInsets +javax.swing.plaf.metal.MetalToolTipUI.constructor +javax.swing.plaf.metal.MetalToolTipUI.createUI +javax.swing.plaf.metal.OceanTheme.OceanThemeTest +javax.swing.plaf.metal.OceanTheme.addCustomEntriesToTable +javax.swing.plaf.metal.MetalToggleButtonUI.getSelectColor +javax.swing.plaf.metal.MetalToggleButtonUI.getFocusColor +javax.swing.plaf.metal.MetalToggleButtonUI.getDisabledTextColor +javax.swing.plaf.metal.MetalBorders.ToolBarBorder.getBorderInsets +javax.swing.plaf.metal.MetalBorders.MenuItemBorder.borderInsets +javax.swing.plaf.metal.MetalBorders.MenuBarBorder.getBorderInsets +javax.swing.plaf.metal.MetalBorders.MenuBarBorder.borderInsets +javax.swing.plaf.metal.MetalBorders.getToggleButtonBorder +javax.swing.plaf.metal.MetalBorders.getDesktopIconBorder +javax.swing.plaf.metal.MetalBorders.getButtonBorder +javax.swing.plaf.metal.MetalBorders.getTextFieldBorder +javax.swing.plaf.metal.MetalBorders.getTextBorder +javax.swing.plaf.metal.MetalScrollButton.getButtonWidth +javax.swing.plaf.metal.MetalScrollButton.getPreferredSize +javax.swing.plaf.metal.MetalScrollButton.constructor +javax.swing.plaf.metal.MetalScrollButton.getMinimumSize +javax.swing.plaf.metal.MetalScrollButton.isFocusable +javax.swing.plaf.metal.MetalScrollButton.getMaximumSize +javax.swing.plaf.metal.MetalScrollBarUI.layoutContainer +javax.swing.plaf.metal.MetalScrollBarUI.getPreferredSize +javax.swing.plaf.metal.MetalScrollBarUI.constructor +javax.swing.plaf.metal.MetalScrollBarUI.installDefaults +javax.swing.plaf.metal.MetalScrollBarUI.getMinimumThumbSize +javax.swing.plaf.metal.MetalButtonUI.getSelectColor +javax.swing.plaf.metal.MetalButtonUI.getFocusColor +javax.swing.plaf.metal.MetalButtonUI.getDisabledTextColor +javax.swing.plaf.IconUIResource.constructor +javax.swing.JFrame.isRootPaneCheckingEnabled +javax.swing.JFrame.glassPaneLayout +javax.swing.JFrame.constructors +javax.swing.border.TitledBorder.getTitleFont +javax.swing.border.TitledBorder.getTitle +javax.swing.border.TitledBorder.setTitleJustification +javax.swing.border.TitledBorder.getBorder +javax.swing.border.TitledBorder.getBorderInsets +javax.swing.border.TitledBorder.setTitleColor +javax.swing.border.TitledBorder.setTitle +javax.swing.border.TitledBorder.setTitlePosition +javax.swing.border.TitledBorder.getTitleJustification +javax.swing.border.TitledBorder.setBorder +javax.swing.border.TitledBorder.getTitleColor +javax.swing.border.TitledBorder.isBorderOpaque +javax.swing.border.TitledBorder.constructors +javax.swing.border.TitledBorder.setTitleFont +javax.swing.border.TitledBorder.getTitlePosition +javax.swing.border.CompoundBorder.isBorderOpaque +javax.swing.JTable.AccessibleJTable.AccessibleJTableHeaderCell.getAccessibleRole +javax.swing.JTable.AccessibleJTable.AccessibleJTableCell.getAccessibleRole +javax.swing.JTable.AccessibleJTable.getAccessibleColumnHeader +javax.swing.JTable.setRowSelectionAllowed +javax.swing.JTable.getColumn +javax.swing.JTable.getRowHeight +javax.swing.JTable.convertColumnIndexToModel +javax.swing.JTable.createDefaultDataModel +javax.swing.JTable.getCellEditor +javax.swing.JTable.setColumnSelectionAllowed +javax.swing.JTable.setAutoCreateColumnsFromModel +javax.swing.JTable.setRowHeight +javax.swing.JTable.createDefaultSelectionModel +javax.swing.JTable.getAccessibleContext +javax.swing.JTable.convertColumnIndexToView +javax.swing.JTable.isCellEditable +javax.swing.JTable.getInputMap +javax.swing.JTable.getCellRect +javax.swing.JTable.isRowSelected +javax.swing.JTable.getModel +javax.swing.JTable.initializeLocalVars +javax.swing.JTable.createDefaultColumnsFromModel +javax.swing.JTable.getAutoCreateColumnsFromModel +javax.swing.JTable.isColumnSelected +javax.swing.JTable.addColumn +javax.swing.table.AbstractTableModel.getColumnName +javax.swing.table.AbstractTableModel.fireTableDataChanged +javax.swing.table.AbstractTableModel.fireTableStructureChanged +javax.swing.table.AbstractTableModel.fireTableRowsUpdated +javax.swing.table.AbstractTableModel.fireTableRowsDeleted +javax.swing.table.AbstractTableModel.getColumnClass +javax.swing.table.AbstractTableModel.isCellEditable +javax.swing.table.AbstractTableModel.fireTableChanged +javax.swing.table.AbstractTableModel.findColumn +javax.swing.table.AbstractTableModel.fireTableRowsInserted +javax.swing.table.AbstractTableModel.fireTableCellUpdated +javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent +javax.swing.table.DefaultTableColumnModel.getListeners +javax.swing.table.DefaultTableColumnModel.getColumn +javax.swing.table.DefaultTableColumnModel.getColumnModelListeners +javax.swing.table.DefaultTableColumnModel.getSelectedColumnCount +javax.swing.table.DefaultTableColumnModel.getSelectionModel +javax.swing.table.DefaultTableColumnModel.getTotalColumnWidth +javax.swing.table.DefaultTableColumnModel.constructor +javax.swing.table.DefaultTableColumnModel.getColumns +javax.swing.table.DefaultTableColumnModel.setColumnSelectionAllowed +javax.swing.table.DefaultTableColumnModel.getColumnSelectionAllowed +javax.swing.table.DefaultTableColumnModel.getColumnCount +javax.swing.table.DefaultTableColumnModel.setSelectionModel +javax.swing.table.DefaultTableColumnModel.setColumnMargin +javax.swing.table.DefaultTableColumnModel.getColumnIndexAtX +javax.swing.table.DefaultTableColumnModel.addColumnModelListener +javax.swing.table.DefaultTableColumnModel.removeColumn +javax.swing.table.DefaultTableColumnModel.moveColumn +javax.swing.table.DefaultTableColumnModel.addColumn +javax.swing.table.DefaultTableColumnModel.getColumnIndex +javax.swing.table.DefaultTableColumnModel.getColumnMargin +javax.swing.table.DefaultTableModel.removeRow +javax.swing.table.DefaultTableModel.getRowCount +javax.swing.table.DefaultTableModel.setColumnCount +javax.swing.table.DefaultTableModel.insertRow +javax.swing.table.DefaultTableModel.getColumnCount +javax.swing.table.DefaultTableModel.convertToVector +javax.swing.table.DefaultTableModel.setColumnIdentifiers +javax.swing.table.DefaultTableModel.isCellEditable +javax.swing.table.DefaultTableModel.setDataVector +javax.swing.table.DefaultTableModel.setValueAt +javax.swing.table.DefaultTableModel.moveRow +javax.swing.table.DefaultTableModel.newDataAvailable +javax.swing.table.DefaultTableModel.addRow +javax.swing.table.DefaultTableModel.constructors +javax.swing.table.DefaultTableModel.getDataVector +javax.swing.table.DefaultTableModel.rowsRemoved +javax.swing.table.DefaultTableModel.addColumn +javax.swing.table.DefaultTableModel.setRowCount +javax.swing.table.DefaultTableModel.getValueAt +javax.swing.table.TableColumn.setCellEditor +javax.swing.table.TableColumn.getHeaderRenderer +javax.swing.table.TableColumn.getIdentifier +javax.swing.table.TableColumn.setPreferredWidth +javax.swing.table.TableColumn.setHeaderValue +javax.swing.table.TableColumn.getCellRenderer +javax.swing.table.TableColumn.sizeWidthToFit +javax.swing.table.TableColumn.setResizable +javax.swing.table.TableColumn.properties +javax.swing.table.TableColumn.removePropertyChangeListener +javax.swing.table.TableColumn.setIdentifier +javax.swing.table.TableColumn.addPropertyChangeListener +javax.swing.table.TableColumn.setMinWidth +javax.swing.table.TableColumn.setModelIndex +javax.swing.table.TableColumn.setCellRenderer +javax.swing.table.TableColumn.getModelIndex +javax.swing.table.TableColumn.setMaxWidth +javax.swing.table.TableColumn.setWidth +javax.swing.table.TableColumn.constants +javax.swing.table.TableColumn.setHeaderRenderer +javax.swing.table.TableColumn.getHeaderValue +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getLocale +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.isFocusTraversable +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.setAccessibleName +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleName +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleDescription +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleIndexInParent +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleContext +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.isVisible +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleChild +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleRole +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleComponent +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleChildrenCount +javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleValue +javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleChild +javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleRole +javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleChildrenCount +javax.swing.table.JTableHeader.getAccessibleContext +javax.swing.event.InternalFrameEvent.constructor +javax.swing.event.InternalFrameEvent.getInternalFrame +javax.swing.event.InternalFrameEvent.paramString +javax.swing.event.ListDataEvent.getIndex0 +javax.swing.event.ListDataEvent.constructor +javax.swing.event.ListDataEvent.getType +javax.swing.event.ListDataEvent.getSource +javax.swing.event.ListDataEvent.getIndex1 +javax.swing.event.ListDataEvent.toString +javax.swing.event.TableModelEvent.constructors +javax.swing.event.SwingPropertyChangeSupport.firePropertyChange +javax.swing.event.SwingPropertyChangeSupport.getPropertyChangeListeners +javax.swing.event.SwingPropertyChangeSupport.constructor +javax.swing.event.SwingPropertyChangeSupport.hasListeners +javax.swing.event.SwingPropertyChangeSupport.removePropertyChangeListener +javax.swing.event.SwingPropertyChangeSupport.addPropertyChangeListener +javax.swing.event.EventListenerList.getListeners +javax.swing.event.EventListenerList.add +javax.swing.event.EventListenerList.getListenerList +javax.swing.event.EventListenerList.getListenerCount +javax.swing.event.EventListenerList.toString +javax.swing.event.EventListenerList.remove +javax.swing.event.TreeSelectionEvent.isAddedPath +javax.swing.event.TreeSelectionEvent.cloneWithSource +javax.swing.event.TreeSelectionEvent.constructors +javax.swing.JDesktopPane.constructor +javax.swing.JRadioButton.isFocusable +javax.swing.JRadioButton.uidelegate +javax.swing.JRadioButton.getActionCommand +javax.swing.JRadioButton.model +javax.swing.JMenuBar.getComponentIndex +javax.swing.JMenuBar.getHelpMenu +javax.swing.JMenuBar.getSubElements +javax.swing.JMenuBar.setMargin +javax.swing.JMenuBar.getInputMap +javax.swing.JMenuBar.setHelpMenu +javax.swing.JMenuBar.getActionMap +javax.swing.JMenuBar.getMenu +javax.swing.JCheckBoxMenuItem.uidelegate +javax.swing.JCheckBoxMenuItem.getActionCommand +javax.swing.JCheckBoxMenuItem.model +javax.swing.JCheckBoxMenuItem.constructors +javax.swing.JComboBox.getPrototypeDisplayValue +javax.swing.JComboBox.MutableTest2 +javax.swing.JComboBox.setEditor +javax.swing.JComboBox.getEditor +javax.swing.JComboBox.addItem +javax.swing.JComboBox.MutableTest1 +javax.swing.JComboBox.removeItem +javax.swing.JComboBox.setModel +javax.swing.JComboBox.setSelectedIndex +javax.swing.JComboBox.model +javax.swing.JComboBox.listenerList +javax.swing.JComboBox.setPrototypeDisplayValue +javax.swing.JComboBox.setEditable +javax.swing.JComboBox.SimpleSelectionTest +javax.swing.OverlayLayout.layoutContainer +javax.swing.OverlayLayout.getLayoutAlignmentY +javax.swing.OverlayLayout.getLayoutAlignmentX +javax.swing.OverlayLayout.preferredLayoutSize +javax.swing.OverlayLayout.minimumLayoutSize +javax.swing.OverlayLayout.maximumLayoutSize +javax.swing.JScrollPane.AccessibleJScrollPane.resetViewport +javax.swing.JScrollPane.createHorizontalScrollBar +javax.swing.JScrollPane.getInputMap +javax.swing.JScrollPane.createVerticalScrollBar +javax.swing.JScrollPane.getActionMap +javax.swing.DefaultListCellRenderer.getListCellRendererComponent +javax.swing.JFileChooser.setFileHidingEnabled +javax.swing.JFileChooser.getControlButtonsAreShown +javax.swing.JFileChooser.setApproveButtonMnemonic +javax.swing.JFileChooser.setFileSystemView +javax.swing.JFileChooser.getApproveButtonText +javax.swing.JFileChooser.setDialogTitle +javax.swing.JFileChooser.setDialogType +javax.swing.JFileChooser.setSelectedFile +javax.swing.JFileChooser.getChoosableFileFilters +javax.swing.JFileChooser.getApproveButtonMnemonic +javax.swing.JFileChooser.setApproveButtonText +javax.swing.JFileChooser.getDialogType +javax.swing.JFileChooser.getFileFilter +javax.swing.JFileChooser.setAccessory +javax.swing.JFileChooser.isAcceptAllFileFilterUsed +javax.swing.JFileChooser.accept +javax.swing.JFileChooser.setControlButtonsAreShown +javax.swing.JFileChooser.setFileView +javax.swing.JFileChooser.setCurrentDirectory +javax.swing.JFileChooser.isFileHidingEnabled +javax.swing.JFileChooser.constructors +javax.swing.JFileChooser.changeToParentDirectory +javax.swing.JFileChooser.getFileView +javax.swing.JFileChooser.getFileSystemView +javax.swing.JFileChooser.setSelectedFiles +javax.swing.JFileChooser.setFileFilter +javax.swing.JFileChooser.getFileSelectionMode +javax.swing.JFileChooser.setFileSelectionMode +javax.swing.JFileChooser.getSelectedFiles +javax.swing.JFileChooser.getAccessory +javax.swing.JFileChooser.setApproveButtonToolTipText +javax.swing.JFileChooser.getApproveButtonToolTipText +javax.swing.JFileChooser.getDialogTitle +javax.swing.SpinnerDateModel.getPreviousValue +javax.swing.SpinnerDateModel.setStart +javax.swing.SpinnerDateModel.setEnd +javax.swing.SpinnerDateModel.setValue +javax.swing.SpinnerDateModel.getNextValue +javax.swing.SpinnerDateModel.constructors +javax.swing.JDialog.isRootPaneCheckingEnabled +javax.swing.JPopupMenu.getInputMap +javax.swing.JSlider.getPaintTrack +javax.swing.JSlider.addChangeListener +javax.swing.JSlider.setMinimum +javax.swing.JSlider.setSnapToTicks +javax.swing.JSlider.setOrientation +javax.swing.JSlider.getMinorTickSpacing +javax.swing.JSlider.setValue +javax.swing.JSlider.setMaximum +javax.swing.JSlider.setExtent +javax.swing.JSlider.setPaintLabels +javax.swing.JSlider.getSnapToTicks +javax.swing.JSlider.setMinorTickSpacing +javax.swing.JSlider.getUIClassID +javax.swing.JSlider.setLabelTable +javax.swing.JSlider.getPaintTicks +javax.swing.JSlider.setModel +javax.swing.JSlider.getMaximum +javax.swing.JSlider.setPaintTicks +javax.swing.JSlider.getPaintLabels +javax.swing.JSlider.getMinimum +javax.swing.JSlider.getModel +javax.swing.JSlider.getInverted +javax.swing.JSlider.setInverted +javax.swing.JSlider.constructors +javax.swing.JSlider.getMajorTickSpacing +javax.swing.JSlider.createStandardLabels +javax.swing.JSlider.setMajorTickSpacing +javax.swing.JSlider.getExtent +javax.swing.JSlider.setPaintTrack +javax.swing.JSlider.getLabelTable +javax.swing.DefaultButtonModel.addActionListener +javax.swing.DefaultButtonModel.setPressed +javax.swing.DefaultButtonModel.setEnabled +javax.swing.DefaultButtonModel.constructor +javax.swing.DefaultButtonModel.setActionCommand +javax.swing.DefaultButtonModel.getSelectedObjects +javax.swing.DefaultButtonModel.setArmed +javax.swing.DefaultButtonModel.setSelected +javax.swing.DefaultButtonModel.constants +javax.swing.DefaultButtonModel.setRollover +javax.swing.DefaultButtonModel.setGroup +javax.swing.JComponent.getListeners +javax.swing.JComponent.setVerifyInputWhenFocusTarget +javax.swing.JComponent.getVetoableChangeListeners +javax.swing.JComponent.setInheritsPopupMenu +javax.swing.JComponent.getPreferredSize +javax.swing.JComponent.setEnabled +javax.swing.JComponent.constructor +javax.swing.JComponent.registerKeyboardAction +javax.swing.JComponent.setUI +javax.swing.JComponent.getActionForKeyStroke +javax.swing.JComponent.setMinimumSize +javax.swing.JComponent.setPreferredSize +javax.swing.JComponent.setDefaultLocale +javax.swing.JComponent.setBackground +javax.swing.JComponent.setBorder +javax.swing.JComponent.getInputMap +javax.swing.JComponent.setVisible +javax.swing.JComponent.setAlignmentX +javax.swing.JComponent.setComponentPopupMenu +javax.swing.JComponent.getFont +javax.swing.JComponent.setAlignmentY +javax.swing.JComponent.setMaximumSize +javax.swing.JComponent.setFont +javax.swing.JComponent.getVerifyInputWhenFocusTarget +javax.swing.JComponent.putClientProperty +javax.swing.JComponent.getAlignmentY +javax.swing.JComponent.getComponentPopupMenu +javax.swing.JComponent.getAlignmentX +javax.swing.JComponent.removeVetoableChangeListener +javax.swing.JComponent.getRegisteredKeyStrokes +javax.swing.JComponent.setForeground +javax.swing.JComponent.paint +javax.swing.JComponent.setOpaque +javax.swing.JComponent.addVetoableChangeListener +javax.swing.JProgressBar.isStringPainted +javax.swing.JProgressBar.setOrientation +javax.swing.JProgressBar.setValue +javax.swing.JProgressBar.setBorderPainted +javax.swing.JProgressBar.setStringPainted +javax.swing.JProgressBar.getAccessibleContext +javax.swing.JProgressBar.getPercentComplete +javax.swing.JProgressBar.paramString +javax.swing.JMenu.uidelegate +javax.swing.JMenu.getInputMap +javax.swing.JMenu.getActionCommand +javax.swing.JMenu.model +javax.swing.JMenu.getPopUpMenu +javax.swing.JMenu.remove +javax.swing.UIManager.LookAndFeelInfo.constructor +javax.swing.UIManager.getPropertyChangeListeners +javax.swing.UIManager.getBoolean +javax.swing.UIManager.addAuxiliaryLookAndFeel +javax.swing.UIManager.getString +javax.swing.UIManager.getBorder +javax.swing.UIManager.getIcon +javax.swing.UIManager.getInsets +javax.swing.UIManager.removeAuxiliaryLookAndFeel +javax.swing.UIManager.setLookAndFeel +javax.swing.UIManager.getFont +javax.swing.UIManager.getDefaults +javax.swing.UIManager.getInt +javax.swing.UIManager.addPropertyChangeListener +javax.swing.UIManager.getUI +javax.swing.UIManager.getDimension +javax.swing.UIManager.getLookAndFeelDefaults +javax.swing.UIManager.getCrossPlatformLookAndFeelClassName +javax.swing.UIManager.getColor +javax.swing.UIManager.getAuxiliaryLookAndFeels +javax.swing.JPanel.setBorder +javax.swing.JPanel.Layouter +javax.swing.JTree.getCellRenderer +javax.swing.JTree.isRowSelected +javax.swing.JTree.setModel +javax.swing.TransferHandler.exportToClipboard +javax.swing.TransferHandler.TransferActionConstructor +javax.swing.TransferHandler.canImport +javax.swing.TransferHandler.importData +javax.swing.TransferHandler.createTransferable +javax.swing.JToolTip.setComponent +javax.swing.JToolTip.setTipText +javax.swing.JToolTip.getAccessibleContext +javax.swing.JToolTip.getUIClassID +javax.swing.JToolTip.getTipText +javax.swing.JToolTip.paramString +javax.swing.JToolTip.getComponent +javax.swing.JToolBar.buttonInsets +javax.swing.JToolBar.getInputMap +javax.swing.JRootPane.RootLayout.layoutContainer +javax.swing.JRootPane.RootLayout.getLayoutAlignmentY +javax.swing.JRootPane.RootLayout.getLayoutAlignmentX +javax.swing.JRootPane.RootLayout.preferredLayoutSize +javax.swing.JRootPane.setLayeredPane +javax.swing.ScrollPaneLayout.minimumLayoutSize +javax.swing.Timer.preparatory +javax.swing.Timer.setDelay +javax.swing.Timer.basic +javax.swing.Timer.test_23918 +javax.swing.Timer.setInitialDelay +javax.swing.ActionMap.newMapKeysNull +javax.swing.InputMap.put +javax.swing.InputMap.constructor +javax.swing.InputMap.keys +javax.swing.InputMap.setParent +javax.swing.InputMap.size +javax.swing.InputMap.newMapKeysNull +javax.swing.InputMap.get +javax.swing.InputMap.getParent +javax.swing.InputMap.remove +javax.swing.InputMap.clear +javax.swing.InputMap.allKeys +javax.swing.filechooser.FileView.getDescription +javax.swing.filechooser.FileView.getIcon +javax.swing.filechooser.FileView.getName +javax.swing.filechooser.FileView.isTraversable +javax.swing.filechooser.FileView.getTypeDescription +javax.swing.filechooser.FileSystemView.getFileSystemView +javax.swing.ViewportLayout.layoutContainer +javax.swing.ViewportLayout.minimumLayoutSize +javax.swing.JList.AccessibleJList.AccessibleJListChild.isFocusTraversable +javax.swing.JList.AccessibleJList.AccessibleJListChild.isEnabled +javax.swing.JList.AccessibleJList.AccessibleJListChild.setEnabled +javax.swing.JList.AccessibleJList.AccessibleJListChild.setCursor +javax.swing.JList.AccessibleJList.AccessibleJListChild.getForeground +javax.swing.JList.AccessibleJList.AccessibleJListChild.setBackground +javax.swing.JList.AccessibleJList.AccessibleJListChild.isVisible +javax.swing.JList.AccessibleJList.AccessibleJListChild.isShowing +javax.swing.JList.AccessibleJList.AccessibleJListChild.getFont +javax.swing.JList.AccessibleJList.AccessibleJListChild.getCursor +javax.swing.JList.AccessibleJList.AccessibleJListChild.getAccessibleRole +javax.swing.JList.AccessibleJList.AccessibleJListChild.setFont +javax.swing.JList.AccessibleJList.AccessibleJListChild.getAccessibleStateSet +javax.swing.JList.AccessibleJList.AccessibleJListChild.setForeground +javax.swing.JList.AccessibleJList.AccessibleJListChild.getBackground +javax.swing.JList.AccessibleJList.valueChanged +javax.swing.JList.AccessibleJList.getAccessibleChild +javax.swing.JList.AccessibleJList.getAccessibleRole +javax.swing.JList.AccessibleJList.intervalAdded +javax.swing.JList.AccessibleJList.intervalRemoved +javax.swing.JList.AccessibleJList.contentsChanged +javax.swing.JList.AccessibleJList.getAccessibleStateSet +javax.swing.JList.setValueIsAdjusting +javax.swing.JList.setVisibleRowCount +javax.swing.JList.setSelectionBackground +javax.swing.JList.setBackground +javax.swing.JList.getSelectionBackground +javax.swing.JList.getInputMap +javax.swing.JList.setModel +javax.swing.JList.getNextMatch +javax.swing.JList.setLayoutOrientation +javax.swing.JList.constructors +javax.swing.JList.getBackground +javax.swing.ToolTipManager.setReshowDelay +javax.swing.ToolTipManager.setInitialDelay +javax.swing.ToolTipManager.setDismissDelay +javax.swing.AbstractButton.constructor +javax.swing.AbstractButton.setRolloverEnabled +javax.swing.AbstractButton.setRolloverSelectedIcon +javax.swing.AbstractButton.init +javax.swing.AbstractButton.setVerticalTextPosition +javax.swing.AbstractButton.setHorizontalAlignment +javax.swing.AbstractButton.setHorizontalTextPosition +javax.swing.AbstractButton.setRolloverIcon +javax.swing.AbstractButton.setVerticalAlignment +javax.swing.AbstractButton.createChangeListener +javax.swing.JLayeredPane.defaultLayoutManager +javax.swing.JLayeredPane.getComponentsInLayer +javax.swing.JLayeredPane.setPosition +javax.swing.JLayeredPane.moveToFront +javax.swing.JLayeredPane.addImpl +javax.swing.DefaultListModel.toArray +javax.swing.DefaultListModel.trimToSize +javax.swing.DefaultListModel.removeAllElements +javax.swing.DefaultListModel.constructor +javax.swing.DefaultListModel.add +javax.swing.DefaultListModel.lastElement +javax.swing.DefaultListModel.copyInto +javax.swing.DefaultListModel.firstElement +javax.swing.DefaultListModel.setElementAt +javax.swing.DefaultListModel.set +javax.swing.DefaultListModel.elementAt +javax.swing.DefaultListModel.ensureCapacity +javax.swing.DefaultListModel.indexOf +javax.swing.DefaultListModel.insertElementAt +javax.swing.DefaultListModel.setSize +javax.swing.DefaultListModel.lastIndexOf +javax.swing.DefaultListModel.elements +javax.swing.DefaultListModel.size +javax.swing.DefaultListModel.getSize +javax.swing.DefaultListModel.capacity +javax.swing.DefaultListModel.removeElementAt +javax.swing.DefaultListModel.get +javax.swing.DefaultListModel.contains +javax.swing.DefaultListModel.getElementAt +javax.swing.DefaultListModel.removeRange +javax.swing.DefaultListModel.addElement +javax.swing.DefaultListModel.removeElement +javax.swing.DefaultListModel.isEmpty +javax.swing.DefaultListModel.remove +javax.swing.DefaultListModel.clear +javax.swing.JFormattedTextField.JFormattedTextFieldTests +javax.swing.AbstractAction.clone +javax.swing.AbstractAction.setEnabled +javax.swing.AbstractAction.getValue +javax.swing.AbstractAction.constructors +javax.swing.AbstractAction.putValue +javax.swing.JTextArea.preferredSize +javax.swing.JTextArea.isValidChecks +javax.swing.JTextArea.text +javax.swing.JTextArea.gettingText +javax.swing.JCheckBox.constructor +javax.swing.JCheckBox.isFocusable +javax.swing.JCheckBox.uidelegate +javax.swing.JCheckBox.getActionCommand +javax.swing.JCheckBox.model +javax.swing.JButton.uidelegate +javax.swing.JButton.getActionCommand +javax.swing.JButton.model +javax.swing.SizeRequirements.calculateAlignedPositions +javax.swing.tree.TreePath.getParentPath +javax.swing.tree.TreePath.serialization +javax.swing.tree.TreePath.getPath +javax.swing.tree.TreePath.getLastPathComponent +javax.swing.tree.TreePath.PR27651 +javax.swing.tree.TreePath.isDescendant +javax.swing.tree.TreePath.equals +javax.swing.tree.TreePath.getPathCount +javax.swing.tree.TreePath.constructors +javax.swing.tree.TreePath.getPathComponent +javax.swing.tree.TreePath.pathByAddingChild +javax.swing.tree.DefaultMutableTreeNode.clone +javax.swing.tree.DefaultMutableTreeNode.getChildAt +javax.swing.tree.DefaultMutableTreeNode.getChildBefore +javax.swing.tree.DefaultMutableTreeNode.getSiblingCount +javax.swing.tree.DefaultMutableTreeNode.isNodeSibling +javax.swing.tree.DefaultMutableTreeNode.getIndex +javax.swing.tree.DefaultMutableTreeNode.isNodeChild +javax.swing.tree.DefaultMutableTreeNode.add +javax.swing.tree.DefaultMutableTreeNode.getFirstChild +javax.swing.tree.DefaultMutableTreeNode.getPath +javax.swing.tree.DefaultMutableTreeNode.removeAllChildren +javax.swing.tree.DefaultMutableTreeNode.getChildCount +javax.swing.tree.DefaultMutableTreeNode.isNodeRelated +javax.swing.tree.DefaultMutableTreeNode.getNextSibling +javax.swing.tree.DefaultMutableTreeNode.getPreviousSibling +javax.swing.tree.DefaultMutableTreeNode.setAllowsChildren +javax.swing.tree.DefaultMutableTreeNode.getPreviousLeaf +javax.swing.tree.DefaultMutableTreeNode.isNodeAncestor +javax.swing.tree.DefaultMutableTreeNode.getNextPreviousNode +javax.swing.tree.DefaultMutableTreeNode.isNodeDescendant +javax.swing.tree.DefaultMutableTreeNode.breadthFirstEnumeration +javax.swing.tree.DefaultMutableTreeNode.getLastLeaf +javax.swing.tree.DefaultMutableTreeNode.children +javax.swing.tree.DefaultMutableTreeNode.getAllowsChildren +javax.swing.tree.DefaultMutableTreeNode.getFirstLeaf +javax.swing.tree.DefaultMutableTreeNode.constructors +javax.swing.tree.DefaultMutableTreeNode.isLeaf +javax.swing.tree.DefaultMutableTreeNode.insert +javax.swing.tree.DefaultMutableTreeNode.DefaultMutableTreeNodeTest +javax.swing.tree.DefaultMutableTreeNode.getParent +javax.swing.tree.DefaultMutableTreeNode.getLastChild +javax.swing.tree.DefaultMutableTreeNode.pathFromAncestorEnumeration +javax.swing.tree.DefaultMutableTreeNode.remove +javax.swing.tree.DefaultMutableTreeNode.getNextLeaf +javax.swing.tree.DefaultMutableTreeNode.getChildAfter +javax.swing.tree.DefaultTreeCellRenderer.getBackgroundSelectionColor +javax.swing.tree.DefaultTreeCellRenderer.getOpenIcon +javax.swing.tree.DefaultTreeCellRenderer.getClosedIcon +javax.swing.tree.DefaultTreeCellRenderer.setOpenIcon +javax.swing.tree.DefaultTreeCellRenderer.constructor +javax.swing.tree.DefaultTreeCellRenderer.getLeafIcon +javax.swing.tree.DefaultTreeCellRenderer.getBorderSelectionColor +javax.swing.tree.DefaultTreeCellRenderer.setLeafIcon +javax.swing.tree.DefaultTreeCellRenderer.getDefaultLeafIcon +javax.swing.tree.DefaultTreeCellRenderer.setBackgroundSelectionColor +javax.swing.tree.DefaultTreeCellRenderer.getDefaultOpenIcon +javax.swing.tree.DefaultTreeCellRenderer.getDefaultClosedIcon +javax.swing.tree.DefaultTreeCellRenderer.setBackgroundNonSelectionColor +javax.swing.tree.DefaultTreeCellRenderer.setBorderSelectionColor +javax.swing.tree.DefaultTreeCellRenderer.getBackgroundNonSelectionColor +javax.swing.tree.DefaultTreeCellRenderer.setClosedIcon +javax.swing.tree.VariableHeightLayoutCache.getBounds +javax.swing.BoxLayout.layoutContainer +javax.swing.BoxLayout.invalidateLayout +javax.swing.BoxLayout.constructor +javax.swing.BoxLayout.simplevertical +javax.swing.BoxLayout.maximumLayoutSize2 +javax.swing.BoxLayout.getLayoutAlignmentY +javax.swing.BoxLayout.horizontal2 +javax.swing.BoxLayout.getLayoutAlignmentX +javax.swing.BoxLayout.simplehorizontal +javax.swing.BoxLayout.constants +javax.swing.BoxLayout.preferredLayoutSize +javax.swing.BoxLayout.minimumLayoutSize +javax.swing.BoxLayout.maximumLayoutSize +javax.swing.JApplet.isRootPaneCheckingEnabled +javax.swing.DefaultBoundedRangeModel.setValueIsAdjusting +javax.swing.DefaultBoundedRangeModel.setMinimum +javax.swing.DefaultBoundedRangeModel.serialization +javax.swing.DefaultBoundedRangeModel.setValue +javax.swing.DefaultBoundedRangeModel.setMaximum +javax.swing.DefaultBoundedRangeModel.setExtent +javax.swing.DefaultBoundedRangeModel.getChangeListeners +javax.swing.DefaultBoundedRangeModel.getValue +javax.swing.DefaultBoundedRangeModel.setRangeProperties +javax.swing.DefaultBoundedRangeModel.getMaximum +javax.swing.DefaultBoundedRangeModel.getValueIsAdjusting +javax.swing.DefaultBoundedRangeModel.getMinimum +javax.swing.DefaultBoundedRangeModel.general +javax.swing.DefaultBoundedRangeModel.toString +javax.swing.DefaultBoundedRangeModel.getExtent +javax.swing.undo.UndoableEditSupport.getUndoableEditListeners +javax.swing.undo.UndoableEditSupport.createCompoundEdit +javax.swing.undo.UndoableEditSupport.toString +javax.swing.undo.UndoableEditSupport.beginUpdate +javax.swing.undo.UndoableEditSupport.UndoableEditSupport +javax.swing.undo.UndoableEditSupport.getUpdateLevel +javax.swing.undo.CompoundEdit.lastEdit +javax.swing.undo.CompoundEdit.addEdit +javax.swing.undo.CompoundEdit.canRedo +javax.swing.undo.CompoundEdit.canUndo +javax.swing.undo.CompoundEdit.isInProgress +javax.swing.undo.AbstractUndoableEdit.getRedoPresentationName +javax.swing.undo.AbstractUndoableEdit.addEdit +javax.swing.undo.AbstractUndoableEdit.canRedo +javax.swing.undo.AbstractUndoableEdit.redo +javax.swing.undo.AbstractUndoableEdit.undo +javax.swing.undo.AbstractUndoableEdit.canUndo +javax.swing.undo.AbstractUndoableEdit.getPresentationName +javax.swing.undo.AbstractUndoableEdit.replaceEdit +javax.swing.undo.AbstractUndoableEdit.isSignificant +javax.swing.undo.AbstractUndoableEdit.getUndoPresentationName +javax.swing.undo.StateEdit.undo +javax.swing.undo.StateEdit.getPresentationName +javax.swing.undo.UndoManager.getRedoPresentationName +javax.swing.undo.UndoManager.getUndoOrRedoPresentationName +javax.swing.undo.UndoManager.addEdit +javax.swing.undo.UndoManager.canRedo +javax.swing.undo.UndoManager.trimEdits +javax.swing.undo.UndoManager.undoTo +javax.swing.undo.UndoManager.editToBeUndone +javax.swing.undo.UndoManager.canUndo +javax.swing.undo.UndoManager.undoableEditHappened +javax.swing.undo.UndoManager.setLimit +javax.swing.undo.UndoManager.discardAllEdits +javax.swing.undo.UndoManager.redoTo +javax.swing.undo.UndoManager.end +javax.swing.undo.UndoManager.toString +javax.swing.undo.UndoManager.getUndoPresentationName +javax.swing.undo.UndoManager.getLimit +javax.swing.undo.UndoManager.editToBeRedone +javax.swing.undo.UndoManager.canUndoOrRedo +javax.swing.JMenuItem.getActionCommand +javax.swing.JMenuItem.constructors +javax.swing.DefaultComboBoxModel.removeAllElements +javax.swing.DefaultComboBoxModel.insertElementAt +javax.swing.DefaultComboBoxModel.getIndexOf +javax.swing.DefaultComboBoxModel.getSize +javax.swing.DefaultComboBoxModel.constructors +javax.swing.DefaultComboBoxModel.removeElementAt +javax.swing.DefaultComboBoxModel.getSelectedItem +javax.swing.DefaultComboBoxModel.getElementAt +javax.swing.DefaultComboBoxModel.addElement +javax.swing.DefaultComboBoxModel.removeElement +javax.swing.SizeSequence.getIndex +javax.swing.SizeSequence.getSizes +javax.swing.SizeSequence.removeEntries +javax.swing.SizeSequence.setSizes +javax.swing.SizeSequence.setSize +javax.swing.SizeSequence.getSize +javax.swing.SizeSequence.constructors +javax.swing.SizeSequence.insertEntries +javax.swing.JTextField.CopyPaste +javax.swing.JTextField.createDefaultModel +javax.swing.JTextField.setDocument +javax.swing.JTextField.fireActionPerformed +javax.swing.UIDefaults.putDefaults +javax.swing.UIDefaults.getBoolean +javax.swing.UIDefaults.remove +javax.swing.RepaintManager.addDirtyRegion +javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleName +javax.swing.JInternalFrame.AccessibleJInternalFrame.getCurrentAccessibleValue +javax.swing.JInternalFrame.AccessibleJInternalFrame.getMaximumAccessibleValue +javax.swing.JInternalFrame.AccessibleJInternalFrame.setCurrentAccessibleValue +javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleRole +javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleValue +javax.swing.JInternalFrame.AccessibleJInternalFrame.getMinimumAccessibleValue +javax.swing.JInternalFrame.getDesktopIcon +javax.swing.JInternalFrame.isRootPaneCheckingEnabled +javax.swing.JInternalFrame.setDefaultCloseOperation +javax.swing.JInternalFrame.isIconifiable +javax.swing.JInternalFrame.setTitle +javax.swing.JInternalFrame.setClosable +javax.swing.JInternalFrame.setResizable +javax.swing.JInternalFrame.setIconifiable +javax.swing.JInternalFrame.setFrameIcon +javax.swing.JInternalFrame.setMaximizable +javax.swing.JInternalFrame.getInputMap +javax.swing.JInternalFrame.setClosed +javax.swing.JInternalFrame.setNormalBounds +javax.swing.JInternalFrame.setSelected2 +javax.swing.JInternalFrame.dispose +javax.swing.JInternalFrame.isResizable +javax.swing.JInternalFrame.constructors +javax.swing.JInternalFrame.paramString +javax.swing.JInternalFrame.setDesktopIcon +javax.swing.JInternalFrame.getNormalBounds +javax.swing.SpinnerListModel.Constructors +javax.swing.SpinnerListModel.Ordering +javax.swing.SpinnerListModel.SetList +javax.swing.SpinnerListModel.ArrayModel +javax.swing.SpinnerListModel.ListModel +javax.swing.JRadioButtonMenuItem.isFocusable +javax.swing.JRadioButtonMenuItem.uidelegate +javax.swing.JRadioButtonMenuItem.getActionCommand +javax.swing.JRadioButtonMenuItem.model +javax.swing.KeyStroke.getKeyStroke +javax.swing.SpinnerNumberModel.getPreviousValue +javax.swing.SpinnerNumberModel.setMinimum +javax.swing.SpinnerNumberModel.setValue +javax.swing.SpinnerNumberModel.setMaximum +javax.swing.SpinnerNumberModel.getNextValue +javax.swing.SpinnerNumberModel.setStepSize +javax.swing.SpinnerNumberModel.constructors +javax.swing.JLabel.AccessibleJLabel.getAccessibleName +javax.swing.JLabel.setDisplayedMnemonicIndex +javax.swing.JLabel.constructor +javax.swing.JLabel.getAccessibleContext +javax.swing.JLabel.Icon +javax.swing.JLabel.getInputMap +javax.swing.JLabel.setHorizontalAlignment +javax.swing.JLabel.setFont +javax.swing.JLabel.setDisplayedMnemonic +javax.swing.JLabel.getActionMap +javax.swing.JLabel.Mnemonic +javax.swing.JLabel.paramString +javax.swing.JLabel.setVerticalAlignment +javax.swing.JEditorPane.ContentType +javax.swing.JEditorPane.ViewType +javax.swing.JEditorPane.setText +javax.swing.JEditorPane.getScrollableTracks +javax.swing.DefaultListSelectionModel.clone +javax.swing.DefaultListSelectionModel.getListeners +javax.swing.DefaultListSelectionModel.setValueIsAdjusting +javax.swing.DefaultListSelectionModel.setAnchorSelectionIndex +javax.swing.DefaultListSelectionModel.removeListSelectionListener +javax.swing.DefaultListSelectionModel.constructor +javax.swing.DefaultListSelectionModel.removeIndexInterval +javax.swing.DefaultListSelectionModel.removeSelectionInterval +javax.swing.DefaultListSelectionModel.getAnchorSelectionIndex +javax.swing.DefaultListSelectionModel.getLeadSelectionIndex +javax.swing.DefaultListSelectionModel.isLeadAnchorNotificationEnabled +javax.swing.DefaultListSelectionModel.setSelectionInterval +javax.swing.DefaultListSelectionModel.getSelectionMode +javax.swing.DefaultListSelectionModel.isSelectedIndex +javax.swing.DefaultListSelectionModel.moveLeadSelectionIndex +javax.swing.DefaultListSelectionModel.leadSelectionIndex +javax.swing.DefaultListSelectionModel.getMaxSelectionIndex +javax.swing.DefaultListSelectionModel.getMinSelectionIndex +javax.swing.DefaultListSelectionModel.getListSelectionListeners +javax.swing.DefaultListSelectionModel.getValueIsAdjusting +javax.swing.DefaultListSelectionModel.isSelectionEmpty +javax.swing.DefaultListSelectionModel.addSelectionInterval +javax.swing.DefaultListSelectionModel.setLeadSelectionIndex +javax.swing.DefaultListSelectionModel.toString +javax.swing.DefaultListSelectionModel.setSelectionMode +javax.swing.DefaultListSelectionModel.clearSelection +javax.swing.DefaultListSelectionModel.insertIndexInterval +javax.swing.DefaultListSelectionModel.addListSelectionListener +javax.swing.SwingUtilities.calculateInnerArea +javax.swing.SwingUtilities.isRectangleContainingRectangle +javax.swing.SwingUtilities.computeIntersection +javax.swing.SwingUtilities.replaceUIActionMap +javax.swing.SwingUtilities.computeUnion +javax.swing.JSpinner.ListEditor.constructor +javax.swing.JSpinner.ListEditor.getModel +javax.swing.JSpinner.NumberEditor.getModel +javax.swing.JSpinner.NumberEditor.constructors +javax.swing.JSpinner.NumberEditor.getFormat +javax.swing.JSpinner.DefaultEditor.constructor +javax.swing.JSpinner.DefaultEditor.stateChanged +javax.swing.JSpinner.DefaultEditor.propertyChange +javax.swing.JSpinner.DefaultEditor.preferredLayoutSize +javax.swing.JSpinner.DefaultEditor.minimumLayoutSize +javax.swing.JSpinner.DateEditor.getModel +javax.swing.JSpinner.getPreviousValue +javax.swing.JSpinner.addChangeListener +javax.swing.JSpinner.createEditor +javax.swing.JSpinner.getChangeListeners +javax.swing.JSpinner.setEditor +javax.swing.JSpinner.getUIClassID +javax.swing.JSpinner.getEditor +javax.swing.JSpinner.setModel +javax.swing.JSpinner.getNextValue +javax.swing.JSpinner.getModel +javax.swing.JSpinner.constructors +javax.swing.JSpinner.removeChangeListener +javax.swing.ButtonGroup.constructor +javax.swing.ButtonGroup.add +javax.swing.ButtonGroup.isSelected +javax.swing.ButtonGroup.getSelection +javax.swing.ButtonGroup.getElements +javax.swing.ButtonGroup.getButtonCount +javax.swing.ButtonGroup.setSelected +javax.swing.ButtonGroup.remove +javax.swing.JViewport.setView +gnu.javax.crypto.jce.TestOfDHKeyAgreement2 +gnu.javax.crypto.jce.TestOfPR27849 +gnu.javax.crypto.jce.TestOfPR27228 +java.rmi.server.Uniqueness +java.lang.Integer.compareTo +java.lang.Integer.decode +java.lang.Integer.new_Integer +java.lang.Integer.IntegerTest +java.lang.Integer.getInteger +java.lang.Integer.parseInt +java.lang.ClassLoader.redefine +java.lang.ClassLoader.security +java.lang.ClassLoader.loadClass +java.lang.ClassLoader.initialize +java.lang.ClassLoader.Resources +java.lang.ClassLoader.BootDefinedPackages +java.lang.Number.NumberTest +java.lang.ProcessBuilder.simple +java.lang.System.getProperty +java.lang.System.arraycopy +java.lang.System.identityHashCode +java.lang.ThreadGroup.enumerate +java.lang.ThreadGroup.insecurity +java.lang.ThreadGroup.security +java.lang.String.substring +java.lang.String.compareTo +java.lang.String.getBytes13 +java.lang.String.hash +java.lang.String.split +java.lang.String.getBytes14 +java.lang.String.startsWith +java.lang.String.equals +java.lang.String.indexOf +java.lang.String.to +java.lang.String.StringTest +java.lang.String.surrogate +java.lang.String.charAt +java.lang.String.new_String +java.lang.String.getBytes +java.lang.String.CASE_INSENSITIVE_ORDER +java.lang.Class.ClassTest +java.lang.Class.serialization +java.lang.Class.reflect +java.lang.Class.security +java.lang.Class.init +java.lang.Class.newInstance +java.lang.Class.reflect2 +java.lang.Cloneable.CloneableTest +java.lang.ref.WeakReference.weakref +java.lang.ref.PhantomReference.phantom +java.lang.Double.compareTo +java.lang.Double.DoubleSetterTest +java.lang.Double.DoubleTest +java.lang.Double.toHexString +java.lang.Double.parseDouble +java.lang.Double.compare +java.lang.Double.valueOf +java.lang.StrictMath.cbrt +java.lang.StrictMath.expm1 +java.lang.StrictMath.cosh +java.lang.StrictMath.sinh +java.lang.StrictMath.tanh +java.lang.Short.hash +java.lang.Short.ShortTest +java.lang.InheritableThreadLocal.simple +java.lang.Math.max +java.lang.Math.ulp +java.lang.Math.sin +java.lang.Math.min +java.lang.Math.cos +java.lang.Math.MathTest +java.lang.Math.rint +java.lang.Boolean.BooleanTest +java.lang.Boolean.equals_Boolean +java.lang.Boolean.new_Boolean +java.lang.Boolean.hashcode_Boolean +java.lang.Boolean.get +java.lang.Boolean.value +java.lang.Float.compareTo +java.lang.Float.toHexString +java.lang.Float.compare +java.lang.Float.parseFloat +java.lang.Float.valueOf +java.lang.Float.FloatTest +java.lang.Float.new_Float +java.lang.reflect.Array.set +java.lang.reflect.Array.newInstance +java.lang.reflect.AccessibleObject.accessible +java.lang.reflect.Field.promotion +java.lang.reflect.Field.access +java.lang.reflect.Field.toString +java.lang.reflect.Modifier.toString12 +java.lang.reflect.Modifier.toString +java.lang.reflect.Constructor.newInstance +java.lang.reflect.Constructor.toString +java.lang.reflect.Proxy.DeclaringClass +java.lang.reflect.Proxy.check13 +java.lang.reflect.Proxy.ExceptionRaising +java.lang.reflect.Proxy.ToString +java.lang.reflect.InvocationTargetException.Chain +java.lang.reflect.Method.equals +java.lang.reflect.Method.toString +java.lang.reflect.Method.invoke +java.lang.reflect.ReflectAccess +java.lang.ThreadLocal.simple +java.lang.Object.clone +java.lang.Object.wait +java.lang.Object.ObjectTest +java.lang.Object.oom +java.lang.Byte.ByteTest +java.lang.Byte.new_Byte +java.lang.StringBuffer.StringBufferTest +java.lang.StringBuffer.plus +java.lang.Long.Tests15 +java.lang.Long.getLong +java.lang.Long.LongTest +java.lang.Long.new_Long +java.lang.Thread.join +java.lang.Thread.isAlive +java.lang.Thread.name +java.lang.Thread.interrupt +java.lang.Thread.contextClassLoader +java.lang.Thread.getThreadGroup +java.lang.Thread.priority +java.lang.Thread.stop +java.lang.Thread.daemon +java.lang.Package.getPackage +java.lang.Character.digit +java.lang.Character.Blocks +java.lang.Character.unicode +java.lang.Character.getNumericValue +java.lang.Character.getType +java.lang.Character.hash +java.lang.Character.classify +java.lang.Character.classify12 +java.lang.Character.to +java.lang.Character.consts +java.lang.Character.forDigit +java.lang.Character.getType12 +java.lang.Character.equals_Character +java.lang.Character.CharacterTest +java.lang.Character.Blocks15 +java.lang.SecurityManager.thread +java.text.StringCharacterIterator.constructor +java.text.StringCharacterIterator.iter +java.text.CollationElementIterator.offset +java.text.CollationElementIterator.jdk11 +java.text.AttributedString.constructors +java.text.AttributedString.addAttribute +java.text.AttributedString.getIterator +java.text.AttributedString.addAttributes +java.text.AttributedString.Test +java.text.DecimalFormat.setCurrency +java.text.DecimalFormat.clone +java.text.DecimalFormat.setDecimalFormatSymbols +java.text.DecimalFormat.getNegativePrefix +java.text.DecimalFormat.applyPattern +java.text.DecimalFormat.formatToCharacterIterator +java.text.DecimalFormat.getNegativeSuffix +java.text.DecimalFormat.setNegativePrefix +java.text.DecimalFormat.applyLocalizedPattern +java.text.DecimalFormat.getDecimalFormatSymbols +java.text.DecimalFormat.toLocalizedPattern +java.text.DecimalFormat.isDecimalSeparatorAlwaysShown +java.text.DecimalFormat.setNegativeSuffix +java.text.DecimalFormat.PR27311 +java.text.DecimalFormat.getPositivePrefix +java.text.DecimalFormat.getCurrency +java.text.DecimalFormat.equals +java.text.DecimalFormat.digits +java.text.DecimalFormat.setDecimalSeparatorAlwaysShown +java.text.DecimalFormat.setPositiveSuffix +java.text.DecimalFormat.parse +java.text.DecimalFormat.setPositivePrefix +java.text.DecimalFormat.toPattern14 +java.text.DecimalFormat.setMultiplier +java.text.DecimalFormat.format +java.text.DecimalFormat.getPositiveSuffix +java.text.DecimalFormat.setGroupingSize +java.text.DecimalFormat.PR23996 +java.text.DecimalFormat.toPattern +java.text.DecimalFormat.constructors +java.text.DecimalFormat.MaximumAndMinimumDigits +java.text.DecimalFormat.formatExp +java.text.DecimalFormat.getGroupingSize +java.text.DecimalFormat.hashCode +java.text.DecimalFormat.position +java.text.DecimalFormat.getMultiplier +java.text.NumberFormat.UK +java.text.CharacterIterator.implement +java.text.ParsePosition.Test +java.text.BreakIterator.chariter +java.text.BreakIterator.patho +java.text.BreakIterator.lineiter +java.text.BreakIterator.sentiter +java.text.BreakIterator.worditer +java.text.Collator.Constants +java.text.Collator.GetSet +java.text.ParseException.Test +java.text.Annotation.Test +java.text.RuleBasedCollator.CollatorTests +java.text.RuleBasedCollator.VeryBasic +java.text.MessageFormat.format14 +java.text.MessageFormat.attribute +java.text.MessageFormat.parse +java.text.MessageFormat.format +java.text.ChoiceFormat.next +java.text.ChoiceFormat.parse +java.text.ChoiceFormat.format +java.text.DateFormatSymbols.setMonths +java.text.DateFormatSymbols.setShortMonths +java.text.DateFormatSymbols.setEras +java.text.DateFormatSymbols.setAmPmStrings +java.text.DateFormatSymbols.setWeekdays +java.text.DateFormatSymbols.setZoneStrings +java.text.DateFormatSymbols.setShortWeekdays +java.text.DateFormatSymbols.Test +java.text.AttributedCharacterIterator.Attribute.toString +java.text.AttributedCharacterIterator.getRunLimit +java.text.AttributedCharacterIterator.implement +java.text.AttributedCharacterIterator.getRunStart +java.text.AttributedCharacterIterator.getAttribute +java.text.DateFormat.equals +java.text.DateFormat.hashCode +java.text.DateFormat.Test +java.text.ACIAttribute.Test +java.text.DecimalFormatSymbols.serial +java.text.DecimalFormatSymbols.GetSet12 +java.text.DecimalFormatSymbols.getCurrency +java.text.DecimalFormatSymbols.DumpDefault11 +java.text.DecimalFormatSymbols.GetSet11 +java.text.DecimalFormatSymbols.DumpDefault12 +java.text.FieldPosition.Test +java.text.SimpleDateFormat.applyPattern +java.text.SimpleDateFormat.Localization +java.text.SimpleDateFormat.applyLocalizedPattern +java.text.SimpleDateFormat.toLocalizedPattern +java.text.SimpleDateFormat.attribute +java.text.SimpleDateFormat.Cloning +java.text.SimpleDateFormat.getDateFormatSymbols +java.text.SimpleDateFormat.parse +java.text.SimpleDateFormat.toPattern +java.text.SimpleDateFormat.constructors +java.text.SimpleDateFormat.setDateFormatSymbols +java.text.SimpleDateFormat.getAndSet2DigitYearStart +java.text.SimpleDateFormat.Test +java.text.Bidi.Basic +java.text.Bidi.reorderVisually +java.math.BigInteger.compareTo +java.math.BigInteger.modInverse +java.math.BigInteger.shift +java.math.BigInteger.serialization +java.math.BigInteger.add +java.math.BigInteger.TestOfPR27372 +java.math.BigInteger.signum +java.math.BigInteger.modPow +java.math.BigInteger.equals +java.math.BigInteger.divide +java.math.BigInteger.setBit +java.math.BigInteger.multiply +java.math.BigInteger.TestOfToByteArray +java.math.BigInteger.toString +java.math.BigInteger.ctor +java.math.BigInteger.abs +java.math.BigInteger.valueOf +java.math.BigDecimal.compareTo +java.math.BigDecimal.divide +java.math.BigDecimal.DiagBigDecimal +java.math.BigDecimal.construct +java.math.BigDecimal.setScale +java.security.MessageDigest.Instance +java.security.AccessController.doPrivileged +java.security.AccessController.contexts +java.security.Security.getAlgorithms +java.security.Security.provider +java.security.Provider.NameVersionInfo +java.security.SecureRandom.SHA1PRNG +java.security.SecureRandom.TestOfPR23899 +java.security.SecureRandom.Instance +java.security.KeyPairGenerator.getInstance14 +java.security.AlgorithmParameters.getInstance14 +java.security.AlgorithmParameterGenerator.getInstance14 +java.security.DigestInputStream.readMD5 +java.security.KeyFactory.getInstance14 +java.security.Signature.getInstance14 +java.security.Signature.Instance +java.security.BasicPermission.newPermission +java.sql.Clob.ClobTest +java.sql.Types.TestJdbc10 +java.sql.Types.TestJdbc20 +java.sql.Array.ArrayTest +java.sql.Blob.BlobTest +java.sql.Connection.TestJdbc +java.sql.Time.TimeTest +java.sql.DriverManager.DriverManagerTest +java.sql.Date.DateTest +java.sql.DatabaseMetaData.TestJdbc +java.sql.Timestamp.TimestampTest +java.io.RandomAccessFile.setLength +java.io.RandomAccessFile.security +java.io.RandomAccessFile.jdk11 +java.io.RandomAccessFile.randomaccessfile +java.io.BufferedWriter.Test +java.io.PipedReaderWriter.Test +java.io.PushbackInputStream.ProtectedVars +java.io.PushbackInputStream.BufferOverflow +java.io.PushbackInputStream.Unread +java.io.FileOutputStream.append +java.io.FileOutputStream.fileoutputstream +java.io.FileOutputStream.security +java.io.FileOutputStream.write +java.io.FileOutputStream.jdk12 +java.io.StringWriter.Test +java.io.FilterOutputStream.write +java.io.ObjectInputStream.security +java.io.ObjectInputStream.readResolve +java.io.ObjectInputStream.ClassLoaderTest +java.io.ObjectOutputStream.security +java.io.ObjectOutputStream.StreamDataTest +java.io.ObjectOutputStream.useProtocolVersion +java.io.InputStream.Test +java.io.Utf8Encoding.ReadReference +java.io.Utf8Encoding.WriteRead +java.io.FilePermission.traversal2 +java.io.FilePermission.simple +java.io.FilePermission.traversal +java.io.FileWriter.jdk11 +java.io.OutputStreamWriter.jdk11 +java.io.Serializable.BreakMe +java.io.Serializable.BreakMeTestSer +java.io.Serializable.ParentReadResolve +java.io.Serializable.readResolve +java.io.Serializable.ParentWriteReplace +java.io.ObjectInputOutput.LoopSerializationTest +java.io.ObjectInputOutput.ExtTest +java.io.ObjectInputOutput.Deserializable +java.io.ObjectInputOutput.ProxySerializationTest +java.io.ObjectInputOutput.Compat1 +java.io.ObjectInputOutput.SerTest +java.io.ObjectInputOutput.HierarchyTest +java.io.ObjectInputOutput.OutputTest +java.io.ObjectInputOutput.InputTest +java.io.PrintWriter.jdk11 +java.io.PrintWriter.checkError +java.io.SequenceInputStream.Test +java.io.StringBufferInputStream.ProtectedVars +java.io.StringBufferInputStream.SimpleRead +java.io.StringBufferInputStream.MarkReset +java.io.LineNumberReader.Test2 +java.io.LineNumberReader.mark +java.io.LineNumberReader.Test +java.io.InputStreamReader.hang +java.io.InputStreamReader.utf8 +java.io.InputStreamReader.jdk11 +java.io.InputStreamReader.except +java.io.InputStreamReader.getEncoding +java.io.DataInputStream.readLine +java.io.DataInputStream.ReadReference +java.io.DataInputStream.ReadReference2 +java.io.FilterWriter.write +java.io.CharArrayWriter.ProtectedVars +java.io.CharArrayWriter.BasicTests +java.io.FileDescriptor.jdk11 +java.io.Reader.Test +java.io.PushbackReader.BufferOverflow +java.io.PushbackReader.Unread +java.io.ByteArrayOutputStream.subclass +java.io.ByteArrayOutputStream.write +java.io.PrintStream.subclass +java.io.PrintStream.encodings +java.io.ObjectStreamClass.ProxyTest +java.io.ObjectStreamClass.Test +java.io.FilterReader.SimpleRead +java.io.FilterReader.MarkReset +java.io.BufferedOutputStream.interrupt +java.io.BufferedOutputStream.Test +java.io.BufferedInputStream.Skip +java.io.BufferedInputStream.BigMark +java.io.BufferedInputStream.ProtectedVars +java.io.BufferedInputStream.ZeroRead +java.io.BufferedInputStream.SimpleRead +java.io.BufferedInputStream.MarkReset +java.io.BufferedReader.mark +java.io.BufferedReader.SimpleRead +java.io.BufferedReader.MarkReset +java.io.BufferedReader.boundary +java.io.DataOutputStream.WriteRead2 +java.io.DataOutputStream.writeUTF +java.io.DataOutputStream.WriteRead +java.io.PipedStream.close +java.io.PipedStream.receive +java.io.PipedStream.Test +java.io.FileInputStream.fileinputstream +java.io.FileInputStream.read +java.io.FileInputStream.security +java.io.Writer.Test +java.io.FilterInputStream.SimpleRead +java.io.FilterInputStream.MarkReset +java.io.FileReader.jdk11 +java.io.StringReader.Test +java.io.ByteArrayInputStream.ProtectedVars +java.io.ByteArrayInputStream.SimpleRead +java.io.ByteArrayInputStream.MarkReset +java.io.File.newFileURI +java.io.File.URI +java.io.File.createFile +java.io.File.security +java.io.File.ReadMethods +java.io.File.ExecuteMethods +java.io.File.list +java.io.File.jdk11 +java.io.File.newFile +java.io.File.WriteMethods +java.io.File.canWrite +java.io.File.listFiles +java.io.File.emptyFile +java.io.File.UnicodeURI +java.io.OutputStream.Test +java.io.StreamTokenizer.WordWhiteChars +java.io.StreamTokenizer.slashstar +java.io.StreamTokenizer.commentchar +java.io.StreamTokenizer.slashslash +java.io.StreamTokenizer.newline +java.io.StreamTokenizer.misc +java.io.StreamTokenizer.Test +java.io.LineNumberInputStream.Test +java.io.CharArrayReader.ProtectedVars +java.io.CharArrayReader.OutOfBounds +java.io.CharArrayReader.SimpleRead +java.io.CharArrayReader.MarkReset +java.util.Stack.AcuniaStackTest +java.util.Arrays.asList +java.util.Arrays.fill +java.util.Arrays.equals +java.util.Arrays.sort +java.util.Arrays.binarySearch +java.util.Properties.getProperty +java.util.Properties.AcuniaPropertiesTest +java.util.Properties.load +java.util.TreeSet.basic +java.util.Observable.observable +java.util.StringTokenizer.hasMoreElements +java.util.StringTokenizer.hasMoreTokens +java.util.StringTokenizer.countTokens +java.util.StringTokenizer.nextToken +java.util.StringTokenizer.constructors +java.util.StringTokenizer.nextElement +java.util.IdentityHashMap.simple +java.util.prefs.PreferenceTest +java.util.Hashtable.HashContains +java.util.Hashtable.AcuniaHashtableTest +java.util.Hashtable.EnumerateAndModify +java.util.Hashtable.basic +java.util.Hashtable.ContainsHash +java.util.Hashtable.NullValue +java.util.TreeMap.serialization +java.util.TimeZone.setDefault +java.util.TimeZone.zdump +java.util.TimeZone.setID +java.util.UUID.TestAll +java.util.Currency.Constructors +java.util.Currency.Germany +java.util.Currency.ReferenceEquality +java.util.Currency.France +java.util.Currency.getInstance +java.util.Currency.Japan +java.util.Currency.UK +java.util.Currency.Korea +java.util.Currency.PRC +java.util.Currency.Canada +java.util.Currency.CanadaFrench +java.util.Currency.China +java.util.Currency.Taiwan +java.util.Currency.Italy +java.util.AbstractCollection.AcuniaAbstractCollectionTest +java.util.AbstractCollection.AcuniaAddCollectionTest +java.util.AbstractCollection.toString +java.util.SimpleTimeZone.clone +java.util.SimpleTimeZone.hasSameRules +java.util.SimpleTimeZone.getRawOffset +java.util.SimpleTimeZone.setRawOffset +java.util.SimpleTimeZone.check14 +java.util.SimpleTimeZone.equals +java.util.SimpleTimeZone.inDaylightTime +java.util.SimpleTimeZone.setStartYear +java.util.SimpleTimeZone.constructors +java.util.SimpleTimeZone.getOffset +java.util.SimpleTimeZone.setDSTSavings +java.util.SimpleTimeZone.hashCode +java.util.SimpleTimeZone.constants +java.util.SimpleTimeZone.getDSTSavings +java.util.AbstractList.AcuniaAbstractListTest +java.util.Collections.nCopies +java.util.Collections.fill +java.util.Collections.max +java.util.Collections.copy +java.util.Collections.rotate +java.util.Collections.unmodifiableList +java.util.Collections.min +java.util.Collections.unmodifiableMap +java.util.Collections.reverse +java.util.Collections.reverseOrder +java.util.Collections.sort +java.util.Collections.binarySearch +java.util.logging.SocketHandler.SocketHandler +java.util.logging.XMLFormatter.getTail +java.util.logging.Handler.isLoggable +java.util.logging.Handler.setEncoding +java.util.logging.Handler.setFilter +java.util.logging.Handler.getErrorManager +java.util.logging.Handler.reportError +java.util.logging.Handler.setLevel +java.util.logging.Handler.setErrorManager +java.util.logging.LogRecord.getThreadID +java.util.logging.LogRecord.setLoggerName +java.util.logging.LogRecord.getMillis +java.util.logging.LogRecord.setThrown +java.util.logging.LogRecord.setThreadID +java.util.logging.LogRecord.setSequenceNumber +java.util.logging.LogRecord.setSourceMethodName +java.util.logging.LogRecord.setResourceBundle +java.util.logging.LogRecord.setMillis +java.util.logging.LogRecord.setMessage +java.util.logging.LogRecord.setParameters +java.util.logging.LogRecord.setSourceClassName +java.util.logging.LogRecord.setLevel +java.util.logging.Level.intValue +java.util.logging.Level.equals +java.util.logging.Level.getName +java.util.logging.Level.parse +java.util.logging.Level.toString +java.util.logging.Level.hashCode +java.util.logging.LogManager.readConfiguration +java.util.logging.LoggingMXBean.Test +java.util.logging.Logger.hierarchyChecks +java.util.logging.Logger.getName +java.util.logging.Logger.getAnonymousLogger +java.util.logging.Logger.securityChecks +java.util.logging.Logger.getParent +java.util.logging.Logger.global +java.util.Iterator.ConcurrentModification +java.util.BitSet.AcuniaBitSetTest +java.util.BitSet.flip +java.util.BitSet.jdk10 +java.util.BitSet.get +java.util.BitSet.clear +java.util.Timer.taskException +java.util.GregorianCalendar.first +java.util.GregorianCalendar.setFirstDayOfWeek +java.util.GregorianCalendar.dayOfWeekInMonth +java.util.GregorianCalendar.setWeekOfMonth +java.util.GregorianCalendar.internal +java.util.GregorianCalendar.equals +java.util.GregorianCalendar.getMinimum +java.util.GregorianCalendar.getMinimalDaysInFirstWeek +java.util.GregorianCalendar.conversion +java.util.GregorianCalendar.weekOfYear +java.util.Random.basic +java.util.AbstractSet.AcuniaAbstractSetTest +java.util.Calendar.TimeZone +java.util.Calendar.ampm +java.util.Calendar.add +java.util.Calendar.minmax +java.util.Calendar.setTime +java.util.Calendar.setTimeZone +java.util.Calendar.getInstance +java.util.Calendar.set +java.util.Calendar.simple +java.util.Calendar.roll +java.util.Calendar.dstOffset +java.util.regex.Matcher.hitEnd +java.util.regex.Pattern.UnicodeSimpleCategory +java.util.regex.Pattern.pcrematches +java.util.regex.Pattern.matches +java.util.regex.PatternSplit +java.util.regex.CharacterClasses +java.util.AbstractSequentialList.AcuniaAbstractSequentialListTest +java.util.LinkedList.subList +java.util.LinkedList.AcuniaLinkedListTest +java.util.LinkedList.SubListTest +java.util.HashMap.AcuniaHashMapTest +java.util.jar.JarInputStream.getNextEntry +java.util.jar.JarFile.TestOfManifest +java.util.jar.JarFile.basic +java.util.Vector.subList +java.util.Vector.copyInto +java.util.Vector.removeAll +java.util.Vector.retainAll +java.util.Vector.VectorSerialization +java.util.zip.ZipEntry.time +java.util.zip.ZipEntry.Size +java.util.zip.ZipEntry.newZipEntry +java.util.zip.ZipEntry.setComment +java.util.zip.ZipInputStream.close +java.util.zip.ZipInputStream.basic +java.util.zip.Deflater.PR27435 +java.util.zip.Adler32.checksum +java.util.zip.GZIPInputStream.PR24461 +java.util.zip.GZIPInputStream.basic +java.util.zip.InflaterInputStream.basic +java.util.zip.ZipFile.DirEntryTest +java.util.zip.ZipFile.NoEntryTest +java.util.zip.ZipFile.newZipFile +java.util.Date.compareTo +java.util.Date.clone +java.util.Date.before +java.util.Date.serialization +java.util.Date.range +java.util.Date.equals +java.util.Date.parse +java.util.Date.after +java.util.Date.getTimezoneOffset +java.util.LinkedHashMap.LinkedHashMapTest +java.util.LinkedHashMap.Regress +java.util.ArrayList.subList +java.util.ArrayList.serial +java.util.ResourceBundle.getBundle +java.util.AbstractMap.AcuniaAbstractMapTest +java.beans.XMLDecoder.jdk14 +java.beans.Expression.check +java.beans.Introspector.getBeanInfo2 +java.beans.Introspector.getBeanInfo4 +java.beans.Introspector.getBeanInfo +java.beans.Introspector.jdk11 +java.beans.Introspector.jdk12 +java.beans.Introspector.getBeanInfo2_2 +java.beans.DesignMode.constants +java.beans.PropertyEditorSupport.setValue +java.beans.PropertyEditorSupport.getSource +java.beans.SimpleBeanInfo.getIcon +java.beans.SimpleBeanInfo.getDefaultPropertyIndex +java.beans.SimpleBeanInfo.getEventSetDescriptors +java.beans.SimpleBeanInfo.getDefaultEventIndex +java.beans.SimpleBeanInfo.getBeanDescriptor +java.beans.SimpleBeanInfo.getAdditionalBeanInfo +java.beans.SimpleBeanInfo.loadImage +java.beans.EventSetDescriptor.constructorTest1 +java.beans.FeatureDescriptor.check +java.beans.beancontext.BeanContextSupport.toArray +java.beans.beancontext.BeanContextSupport.getChildPropertyChangeListener +java.beans.beancontext.BeanContextSupport.serialize +java.beans.beancontext.BeanContextSupport.getChildBeanContextChild +java.beans.beancontext.BeanContextSupport.getChildBeanContextMembershipListener +java.beans.beancontext.BeanContextSupport.setDesignTime +java.beans.beancontext.BeanContextSupport.getChildVisibility +java.beans.beancontext.BeanContextSupport.constructors +java.beans.beancontext.BeanContextSupport.getChildVetoableChangeListener +java.beans.beancontext.BeanContextSupport.getChildSerializable +java.beans.beancontext.BeanContextSupport.getBeanContextPeer +java.beans.beancontext.BeanContextServicesSupport.getChildBeanContextServicesListener +java.beans.beancontext.InstantiateChild +java.beans.beancontext.Remove +java.beans.beancontext.Array +java.beans.beancontext.Add +java.beans.PropertyChangeSupport.firePropertyChange +java.beans.VetoableChangeSupport.addVetoableChangeListener +java.beans.Statement.check +java.beans.Beans.instantiate_1 +java.beans.EventHandler.check +java.beans.EventHandler.check14b +java.beans.PropertyDescriptor.constructorTest2 +java.beans.PropertyDescriptor.constructorTest1 +java.beans.MethodDescriptor.constructorTest1 +java.awt.AWTEvent.constants +java.awt.CardLayout.show +java.awt.CardLayout.first +java.awt.CardLayout.testMaximumLayoutSize +java.awt.CardLayout.testMinimumLayoutSize +java.awt.Graphics.clearRect +java.awt.Polygon.contains +java.awt.Polygon.getPathIterator +java.awt.BasicStroke.equals +java.awt.BasicStroke.constructors +java.awt.BasicStroke.hashCode +java.awt.BasicStroke.constants +java.awt.Graphics2D.setClip +java.awt.Graphics2D.getClip +java.awt.Graphics2D.getClipBounds +java.awt.Graphics2D.setTransform +java.awt.Graphics2D.clip +java.awt.Graphics2D.transform +java.awt.Point.move +java.awt.Point.clone +java.awt.Point.equals +java.awt.Point.constructors +java.awt.Point.setLocation +java.awt.Point.translate +java.awt.Point.getLocation +java.awt.event.ComponentEvent.paramString +java.awt.image.ShortLookupTable.getTable +java.awt.image.ShortLookupTable.lookupPixel +java.awt.image.ShortLookupTable.constructors +java.awt.image.PixelGrabber.SimpleGrabber +java.awt.image.PixelGrabber.testNullProducer +java.awt.image.ConvolveOp.getEdgeCondition +java.awt.image.ConvolveOp.getKernel +java.awt.image.ConvolveOp.filterRaster +java.awt.image.ConvolveOp.getRenderingHints +java.awt.image.ConvolveOp.getPoint2D +java.awt.image.ConvolveOp.createCompatibleDestRaster +java.awt.image.ConvolveOp.constructors +java.awt.image.ConvolveOp.getBounds2D +java.awt.image.ConvolveOp.constants +java.awt.image.IndexColorModel.getGreens +java.awt.image.IndexColorModel.getComponentSize +java.awt.image.IndexColorModel.getTransparentPixel +java.awt.image.IndexColorModel.getColorSpace +java.awt.image.IndexColorModel.getAlphas +java.awt.image.IndexColorModel.getPixelSize +java.awt.image.IndexColorModel.isValid +java.awt.image.IndexColorModel.constructors +java.awt.image.IndexColorModel.getBlues +java.awt.image.IndexColorModel.getReds +java.awt.image.IndexColorModel.getTransparency +java.awt.image.DataBuffer.getDataTypeSize +java.awt.image.DataBuffer.getOffset +java.awt.image.DataBuffer.constants +java.awt.image.DataBuffer.getOffsets +java.awt.image.DataBufferUShort.getData +java.awt.image.DataBufferUShort.getBankData +java.awt.image.DataBufferUShort.setElem +java.awt.image.DataBufferUShort.getElem +java.awt.image.DataBufferUShort.getDataType +java.awt.image.DataBufferUShort.constructors +java.awt.image.ComponentSampleModel.setPixels +java.awt.image.ComponentSampleModel.getPixelStride +java.awt.image.ComponentSampleModel.getDataElements +java.awt.image.ComponentSampleModel.getSample +java.awt.image.ComponentSampleModel.getBandOffsets +java.awt.image.ComponentSampleModel.equals +java.awt.image.ComponentSampleModel.getPixel +java.awt.image.ComponentSampleModel.getNumDataElements +java.awt.image.ComponentSampleModel.getSamples +java.awt.image.ComponentSampleModel.getSampleSize +java.awt.image.ComponentSampleModel.getSampleFloat +java.awt.image.ComponentSampleModel.setDataElements +java.awt.image.ComponentSampleModel.constructors +java.awt.image.ComponentSampleModel.setPixel +java.awt.image.ComponentSampleModel.createDataBuffer +java.awt.image.ComponentSampleModel.getOffset +java.awt.image.ComponentSampleModel.getSampleDouble +java.awt.image.ComponentSampleModel.createCompatibleSampleModel +java.awt.image.ComponentSampleModel.setSamples +java.awt.image.ComponentSampleModel.hashCode +java.awt.image.ComponentSampleModel.getPixels +java.awt.image.ComponentSampleModel.getScanlineStride +java.awt.image.ComponentSampleModel.createSubsetSampleModel +1 problem (1 error)java.awt.image.ColorModel.getComponentSize +java.awt.image.ColorModel.getRGBdefault +java.awt.image.ColorModel.constructors +java.awt.image.LookupTable.constructor +java.awt.image.LookupTable.getNumComponents +java.awt.image.RescaleOp.getScaleFactors +java.awt.image.RescaleOp.getRenderingHints +java.awt.image.RescaleOp.getPoint2D +java.awt.image.RescaleOp.constructors +java.awt.image.RescaleOp.getNumFactors +java.awt.image.RescaleOp.getOffsets +java.awt.image.DirectColorModel.coerceData +java.awt.image.WritableRaster.createChild +java.awt.image.WritableRaster.createWritableChild +java.awt.image.ComponentColorModel.coerceData +java.awt.image.SampleModel.setPixels +java.awt.image.SampleModel.getSample +java.awt.image.SampleModel.getPixel +java.awt.image.SampleModel.getSamples +java.awt.image.SampleModel.getSampleSize +java.awt.image.SampleModel.getSampleFloat +java.awt.image.SampleModel.setPixel +java.awt.image.SampleModel.setSample +java.awt.image.SampleModel.createDataBuffer +java.awt.image.SampleModel.getSampleDouble +java.awt.image.SampleModel.setSamples +java.awt.image.SampleModel.getPixels +java.awt.image.BandCombineOp.getPoint2D +java.awt.image.BandCombineOp.createCompatibleDestRaster +java.awt.image.BandCombineOp.getBounds2D +java.awt.image.BandCombineOp.filter +java.awt.image.LookupOp.constructor +java.awt.image.LookupOp.filterRaster +java.awt.image.LookupOp.getRenderingHints +java.awt.image.LookupOp.getTable +java.awt.image.LookupOp.getPoint2D +java.awt.image.Kernel.getYOrigin +java.awt.image.Kernel.constructor +java.awt.image.Kernel.getXOrigin +java.awt.image.Kernel.getHeight +java.awt.image.Kernel.check +java.awt.image.Kernel.getKernelData +java.awt.image.Kernel.getWidth +java.awt.image.BufferedImage.getSubimage +java.awt.image.BufferedImage.getSetRgb1Pixel +java.awt.image.DataBufferByte.getData +java.awt.image.DataBufferByte.getBankData +java.awt.image.DataBufferByte.setElem +java.awt.image.DataBufferByte.getElem +java.awt.image.DataBufferByte.getDataType +java.awt.image.DataBufferByte.constructors +java.awt.image.DataBufferShort.getData +java.awt.image.DataBufferShort.getBankData +java.awt.image.DataBufferShort.setElem +java.awt.image.DataBufferShort.getElem +java.awt.image.DataBufferShort.getDataType +java.awt.image.DataBufferShort.constructors +java.awt.image.Raster.createChild +java.awt.image.DataBufferInt.getData +java.awt.image.DataBufferInt.getBankData +java.awt.image.DataBufferInt.setElem +java.awt.image.DataBufferInt.getElem +java.awt.image.DataBufferInt.getDataType +java.awt.image.DataBufferInt.constructors +java.awt.image.SinglePixelPackedSampleModel.getBitOffsets +java.awt.image.SinglePixelPackedSampleModel.getDataElements +java.awt.image.SinglePixelPackedSampleModel.getSample +java.awt.image.SinglePixelPackedSampleModel.equals +java.awt.image.SinglePixelPackedSampleModel.getPixel +java.awt.image.SinglePixelPackedSampleModel.getNumDataElements +java.awt.image.SinglePixelPackedSampleModel.getSamples +java.awt.image.SinglePixelPackedSampleModel.getSampleSize +java.awt.image.SinglePixelPackedSampleModel.setDataElements +java.awt.image.SinglePixelPackedSampleModel.constructors +java.awt.image.SinglePixelPackedSampleModel.getBitMasks +java.awt.image.SinglePixelPackedSampleModel.setPixel +java.awt.image.SinglePixelPackedSampleModel.setSample +java.awt.image.SinglePixelPackedSampleModel.createDataBuffer +java.awt.image.SinglePixelPackedSampleModel.getOffset +java.awt.image.SinglePixelPackedSampleModel.createCompatibleSampleModel +java.awt.image.SinglePixelPackedSampleModel.hashCode +java.awt.image.SinglePixelPackedSampleModel.getPixels +java.awt.image.SinglePixelPackedSampleModel.getScanlineStride +java.awt.image.SinglePixelPackedSampleModel.createSubsetSampleModel +java.awt.image.ByteLookupTable.getTable +java.awt.image.ByteLookupTable.lookupPixel +java.awt.image.ByteLookupTable.constructors +java.awt.image.MultiPixelPackedSampleModel.getBitOffset +java.awt.image.MultiPixelPackedSampleModel.getTransferType +java.awt.image.MultiPixelPackedSampleModel.getDataElements +java.awt.image.MultiPixelPackedSampleModel.getSample +java.awt.image.MultiPixelPackedSampleModel.equals +java.awt.image.MultiPixelPackedSampleModel.getPixel +java.awt.image.MultiPixelPackedSampleModel.getSampleSize +java.awt.image.MultiPixelPackedSampleModel.setDataElements +java.awt.image.MultiPixelPackedSampleModel.constructors +java.awt.image.MultiPixelPackedSampleModel.setPixel +java.awt.image.MultiPixelPackedSampleModel.setSample +java.awt.image.MultiPixelPackedSampleModel.createDataBuffer +java.awt.image.MultiPixelPackedSampleModel.getPixelBitStride +java.awt.image.MultiPixelPackedSampleModel.getOffset +java.awt.image.MultiPixelPackedSampleModel.createCompatibleSampleModel +java.awt.image.MultiPixelPackedSampleModel.hashCode +java.awt.image.MultiPixelPackedSampleModel.getScanlineStride +java.awt.image.MultiPixelPackedSampleModel.createSubsetSampleModel +java.awt.image.AffineTransformOp.getPoint2D +java.awt.image.AffineTransformOp.createCompatibleDestRaster +java.awt.image.AffineTransformOp.constructors +java.awt.image.AffineTransformOp.getBounds2D +java.awt.image.PixelInterleavedSampleModel.createSubsetSampleModel +java.awt.image.BandedSampleModel.setPixels +java.awt.image.BandedSampleModel.getDataElements +java.awt.image.BandedSampleModel.getSample +java.awt.image.BandedSampleModel.getPixel +java.awt.image.BandedSampleModel.getSamples +java.awt.image.BandedSampleModel.getSampleFloat +java.awt.image.BandedSampleModel.setDataElements +java.awt.image.BandedSampleModel.constructors +java.awt.image.BandedSampleModel.setPixel +java.awt.image.BandedSampleModel.setSample +java.awt.image.BandedSampleModel.createDataBuffer +java.awt.image.BandedSampleModel.getSampleDouble +java.awt.image.BandedSampleModel.createCompatibleSampleModel +java.awt.image.BandedSampleModel.setSamples +java.awt.image.BandedSampleModel.hashCode +java.awt.image.BandedSampleModel.getPixels +java.awt.image.BandedSampleModel.createSubsetSampleModel +java.awt.image.ColorConvertOp.filterRaster +java.awt.image.ColorConvertOp.getPoint2D +java.awt.image.ColorConvertOp.createCompatibleDestRaster +java.awt.image.ColorConvertOp.constructors +java.awt.image.ColorConvertOp.getBounds2D +java.awt.ScrollPaneAdjustable.paramString +java.awt.GridBagLayout.AdjustForGravity +java.awt.GridBagLayout.toString +java.awt.Dimension.clone +java.awt.Dimension.equals +java.awt.Dimension.setSize +java.awt.Dimension.getSize +java.awt.Dimension.constructors +java.awt.TextField.getPreferredSize +java.awt.TextField.getMinimumSize +java.awt.TextField.constructors +java.awt.BorderLayout.layoutContainer +java.awt.BorderLayout.getHgap +java.awt.BorderLayout.maxLayoutSize +java.awt.BorderLayout.setVgap +java.awt.BorderLayout.getVgap +java.awt.BorderLayout.getLayoutAlignmentY +java.awt.BorderLayout.Test15 +java.awt.BorderLayout.getLayoutAlignmentX +java.awt.BorderLayout.setHgap +java.awt.BorderLayout.constructors +java.awt.BorderLayout.constants +java.awt.BorderLayout.preferredLayoutSize +java.awt.BorderLayout.addLayoutComponent +java.awt.Scrollbar.testSetBlockIncrement +java.awt.Scrollbar.testSetUnitIncrement +java.awt.Scrollbar.testSetValues +java.awt.List.testSelected +java.awt.ScrollPane.add +java.awt.ScrollPane.getScrollPosition +java.awt.ScrollPane.testSetLayout +java.awt.ScrollPane.setScrollPosition +java.awt.ScrollPane.doLayout +java.awt.Choice.getSelected +java.awt.Choice.remove +java.awt.KeyboardFocusManager.getFocusOwner +java.awt.KeyboardFocusManager.getGlobalPermanentFocusOwner +java.awt.KeyboardFocusManager.getGlobalFocusOwner +java.awt.AWTPermission.constructor +java.awt.ColorClass.decode +java.awt.ColorClass.serialization +java.awt.ColorClass.equals +java.awt.ColorClass.getGreen +java.awt.ColorClass.constructors +java.awt.ColorClass.brighter +java.awt.ColorClass.hashCode +java.awt.ColorClass.constants +java.awt.ColorClass.getBlue +java.awt.ColorClass.getRed +java.awt.RenderingHints.Key.isCompatibleValue +java.awt.RenderingHints.clone +java.awt.RenderingHints.keySet +java.awt.RenderingHints.put +java.awt.RenderingHints.add +java.awt.RenderingHints.putAll +java.awt.RenderingHints.entrySet +java.awt.RenderingHints.equals +java.awt.RenderingHints.size +java.awt.RenderingHints.get +java.awt.RenderingHints.values +java.awt.RenderingHints.containsValue +java.awt.RenderingHints.isEmpty +java.awt.RenderingHints.remove +java.awt.RenderingHints.clear +java.awt.Panel.TestPanelRepaint +java.awt.AWTKeyStroke.serialization +java.awt.AWTKeyStroke.equals +java.awt.AWTKeyStroke.getAWTKeyStroke +java.awt.Rectangle.clone +java.awt.Rectangle.add +java.awt.Rectangle.setRect +java.awt.Rectangle.setBounds +java.awt.Rectangle.equals +java.awt.Rectangle.intersects +java.awt.Rectangle.setSize +java.awt.Rectangle.grow +java.awt.Rectangle.outcode +java.awt.Rectangle.union +java.awt.Rectangle.constructors +java.awt.Rectangle.intersection +java.awt.Rectangle.setLocation +java.awt.Rectangle.translate +java.awt.Rectangle.contains +java.awt.Rectangle.isEmpty +java.awt.Menu.insert +java.awt.AlphaComposite.getInstance +java.awt.AlphaComposite.equals +java.awt.AlphaComposite.getInstance14 +java.awt.AlphaComposite.getRule +java.awt.Window.security +java.awt.Window.focusCycleRootTest +java.awt.EventClass.constants +java.awt.Frame.isDisplayable1 +java.awt.Frame.isDisplayable5 +java.awt.Frame.isDisplayable4 +java.awt.Frame.isDisplayable3 +java.awt.Frame.isDisplayable6 +java.awt.Frame.menubar +java.awt.Frame.isDisplayable2 +java.awt.Frame.isDisplayable7 +java.awt.Container.getListeners +java.awt.Container.setLayout +java.awt.Container.getPreferredSize +java.awt.Container.applyComponentOrientation +java.awt.Container.getComponentAt +java.awt.Container.getAlignmentY +java.awt.Container.getAlignmentX +java.awt.Container.addImpl +java.awt.FontClass.serialization +java.awt.MenuItem.label1 +java.awt.font.TextHitInfo.isLeadingEdge +java.awt.font.TextHitInfo.getOtherHit +java.awt.font.TextHitInfo.leading +java.awt.font.TextHitInfo.getOffsetHit +java.awt.font.TextHitInfo.equals +java.awt.font.TextHitInfo.getCharIndex +java.awt.font.TextHitInfo.afterOffset +java.awt.font.TextHitInfo.getInsertionIndex +java.awt.font.TextHitInfo.toString +java.awt.font.TextHitInfo.beforeOffset +java.awt.font.TextHitInfo.hashCode +java.awt.font.TextHitInfo.trailing +java.awt.font.TransformAttribute.serialization +java.awt.font.TransformAttribute.getTransform +java.awt.font.TransformAttribute.isIdentity +java.awt.font.ShapeGraphicAttribute.ShapeGraphicAttributeTest +java.awt.font.ImageGraphicAttribute.ImageGraphicAttributeTest +java.awt.font.TextAttribute.toString13 +java.awt.font.TextAttribute.serialization +java.awt.font.TextAttribute.toString +java.awt.font.TextAttribute.constants13 +java.awt.font.TextAttribute.constants +java.awt.GradientPaint.getPoint2 +java.awt.GradientPaint.equals +java.awt.GradientPaint.getColor1 +java.awt.GradientPaint.constructors +java.awt.GradientPaint.getColor2 +java.awt.GradientPaint.isCyclic +java.awt.GradientPaint.getTransparency +java.awt.GradientPaint.getPoint1 +java.awt.TextComponent.setSelectionStart +java.awt.Component.repaint +java.awt.Component.getListeners +java.awt.Component.setName +java.awt.Component.properties14 +java.awt.Component.getMaximumSize +java.awt.Component.setMinimumSize +java.awt.Component.getForeground +java.awt.Component.setPreferredSize +java.awt.Component.properties +java.awt.Component.requestFocus +java.awt.Component.isValid +java.awt.Component.getFont +java.awt.Component.setMaximumSize +java.awt.Component.setComponentOrientation +java.awt.datatransfer.DataFlavor.writeExternal +java.awt.datatransfer.StringSelection.selection +java.awt.TextArea.getPreferredSize +java.awt.TextArea.getMinimumSize +java.awt.TextArea.testReplaceText +java.awt.TextArea.constructors +java.awt.TextArea.testAppendText +java.awt.TextArea.testInsertText +java.awt.TextArea.testInvalidConstructorValues +java.awt.color.ColorSpace.isCS_sRGB +java.awt.color.ColorSpace.getInstance +java.awt.FlowLayout.minimumLayoutSize +java.awt.geom.Ellipse2D.Double.clone +java.awt.geom.Ellipse2D.Double.getY +java.awt.geom.Ellipse2D.Double.setFrame +java.awt.geom.Ellipse2D.Double.getHeight +java.awt.geom.Ellipse2D.Double.getX +java.awt.geom.Ellipse2D.Double.constructors +java.awt.geom.Ellipse2D.Double.getBounds2D +java.awt.geom.Ellipse2D.Double.isEmpty +java.awt.geom.Ellipse2D.Double.getWidth +java.awt.geom.Ellipse2D.Float.clone +java.awt.geom.Ellipse2D.Float.getY +java.awt.geom.Ellipse2D.Float.setFrame +java.awt.geom.Ellipse2D.Float.getHeight +java.awt.geom.Ellipse2D.Float.getX +java.awt.geom.Ellipse2D.Float.constructors +java.awt.geom.Ellipse2D.Float.getBounds2D +java.awt.geom.Ellipse2D.Float.isEmpty +java.awt.geom.Ellipse2D.Float.getWidth +java.awt.geom.Ellipse2D.intersects +java.awt.geom.Ellipse2D.contains +java.awt.geom.GeneralPath.getCurrentPoint +java.awt.geom.GeneralPath.GeneralPath +java.awt.geom.GeneralPath.append_PathIterator +java.awt.geom.GeneralPath.contains +java.awt.geom.GeneralPath.getPathIterator +java.awt.geom.RectangularShape.getFrame +java.awt.geom.RectangularShape.setFrame +java.awt.geom.RectangularShape.getMinY +java.awt.geom.RectangularShape.intersects +java.awt.geom.RectangularShape.getMaxY +java.awt.geom.RectangularShape.getMaxX +java.awt.geom.RectangularShape.setFrameFromCenter +java.awt.geom.RectangularShape.setFrameFromDiagonal +java.awt.geom.RectangularShape.getMinX +java.awt.geom.RectangularShape.getCenterX +java.awt.geom.RectangularShape.getCenterY +java.awt.geom.RectangularShape.contains +java.awt.geom.RectangularShape.isEmpty +java.awt.geom.RectangularShape.getBounds +java.awt.geom.Line2D.clone +java.awt.geom.Line2D.getP1 +java.awt.geom.Line2D.linesIntersect +java.awt.geom.Line2D.ptSegDistSq +java.awt.geom.Line2D.relativeCCW +java.awt.geom.Line2D.getP2 +java.awt.geom.Line2D.setLine +java.awt.geom.Line2D.equals +java.awt.geom.Line2D.intersects +java.awt.geom.Line2D.ptLineDistSq +java.awt.geom.Line2D.ptSegDist +java.awt.geom.Line2D.intersectsLine +java.awt.geom.Line2D.contains +java.awt.geom.Line2D.ptLineDist +java.awt.geom.Line2D.getPathIterator +java.awt.geom.Line2D.getBounds +java.awt.geom.Area.clone +java.awt.geom.Area.add +java.awt.geom.Area.isRectangular +java.awt.geom.Area.createTransformedArea +java.awt.geom.Area.isPolygonal +java.awt.geom.Area.intersect +java.awt.geom.Area.equals +java.awt.geom.Area.exclusiveOr +java.awt.geom.Area.intersects +java.awt.geom.Area.reset +java.awt.geom.Area.isSingular +java.awt.geom.Area.constructors +java.awt.geom.Area.getBounds2D +java.awt.geom.Area.contains +java.awt.geom.Area.subtract +java.awt.geom.Area.isEmpty +java.awt.geom.Area.transform +java.awt.geom.Area.getBounds +java.awt.geom.Rectangle2D.Double.clone +java.awt.geom.Rectangle2D.Double.createIntersection +java.awt.geom.Rectangle2D.Double.setRect +java.awt.geom.Rectangle2D.Double.outcode +java.awt.geom.Rectangle2D.Double.createUnion +java.awt.geom.Rectangle2D.Double.isEmpty +java.awt.geom.Rectangle2D.Float.clone +java.awt.geom.Rectangle2D.Float.createIntersection +java.awt.geom.Rectangle2D.Float.setRect +java.awt.geom.Rectangle2D.Float.outcode +java.awt.geom.Rectangle2D.Float.createUnion +java.awt.geom.Rectangle2D.Float.isEmpty +java.awt.geom.Rectangle2D.add +java.awt.geom.Rectangle2D.setFrame +java.awt.geom.Rectangle2D.intersect +java.awt.geom.Rectangle2D.equals +java.awt.geom.Rectangle2D.intersects +java.awt.geom.Rectangle2D.union +java.awt.geom.Rectangle2D.intersectsLine +java.awt.geom.Rectangle2D.getBounds2D +java.awt.geom.Rectangle2D.contains +java.awt.geom.Rectangle2D.constants +java.awt.geom.Rectangle2D.getPathIterator +java.awt.geom.Rectangle2D.getBounds +java.awt.geom.Arc2D.Double.clone +java.awt.geom.Arc2D.Float.clone +java.awt.geom.Arc2D.setFrame +java.awt.geom.Arc2D.setAngleStart +java.awt.geom.Arc2D.setArc +java.awt.geom.Arc2D.setArcByTangent +java.awt.geom.Arc2D.containsAngle +java.awt.geom.Arc2D.setArcByCenter +java.awt.geom.Arc2D.intersects +java.awt.geom.Arc2D.getEndPoint +java.awt.geom.Arc2D.setAngleExtent +java.awt.geom.Arc2D.constructors +java.awt.geom.Arc2D.getBounds2D +java.awt.geom.Arc2D.contains +java.awt.geom.Arc2D.getStartPoint +java.awt.geom.Arc2D.constants +java.awt.geom.Arc2D.isEmpty +java.awt.geom.Arc2D.getPathIterator +java.awt.geom.Arc2D.setAngles +java.awt.geom.Arc2D.setArcType +java.awt.geom.QuadCurve2D.Double.getP1 +java.awt.geom.QuadCurve2D.Double.getP2 +java.awt.geom.QuadCurve2D.Double.getCtrlPt +java.awt.geom.QuadCurve2D.Double.getBounds2D +java.awt.geom.QuadCurve2D.Double.Double +java.awt.geom.QuadCurve2D.Double.setCurve +java.awt.geom.QuadCurve2D.Float.getP1 +java.awt.geom.QuadCurve2D.Float.Float +java.awt.geom.QuadCurve2D.Float.getP2 +java.awt.geom.QuadCurve2D.Float.getCtrlPt +java.awt.geom.QuadCurve2D.Float.getBounds2D +java.awt.geom.QuadCurve2D.Float.setCurve +java.awt.geom.QuadCurve2D.clone +java.awt.geom.QuadCurve2D.getFlatness +java.awt.geom.QuadCurve2D.subdivide +java.awt.geom.QuadCurve2D.getFlatnessSq +java.awt.geom.QuadCurve2D.setCurve +java.awt.geom.QuadCurve2D.getPathIterator +java.awt.geom.CubicCurve2D.Double.getP1 +java.awt.geom.CubicCurve2D.Double.getCtrlP2 +java.awt.geom.CubicCurve2D.Double.getP2 +java.awt.geom.CubicCurve2D.Double.getBounds2D +java.awt.geom.CubicCurve2D.Double.Double +java.awt.geom.CubicCurve2D.Double.setCurve +java.awt.geom.CubicCurve2D.Double.getCtrlP1 +java.awt.geom.CubicCurve2D.Float.getP1 +java.awt.geom.CubicCurve2D.Float.getCtrlP2 +java.awt.geom.CubicCurve2D.Float.Float +java.awt.geom.CubicCurve2D.Float.getP2 +java.awt.geom.CubicCurve2D.Float.getBounds2D +java.awt.geom.CubicCurve2D.Float.setCurve +java.awt.geom.CubicCurve2D.Float.getCtrlP1 +java.awt.geom.CubicCurve2D.clone +java.awt.geom.CubicCurve2D.getFlatness +java.awt.geom.CubicCurve2D.subdivide +java.awt.geom.CubicCurve2D.getFlatnessSq +java.awt.geom.CubicCurve2D.setCurve +java.awt.geom.CubicCurve2D.getPathIterator +java.awt.geom.FlatteningPathIterator.FlatteningPathIterator +java.awt.geom.FlatteningPathIterator.getWindingRule +java.awt.geom.FlatteningPathIterator.getFlatness +java.awt.geom.FlatteningPathIterator.getRecursionLimit +java.awt.geom.FlatteningPathIterator.currentSegment +java.awt.geom.AffineTransform.clone +java.awt.geom.AffineTransform.preConcatenate +java.awt.geom.AffineTransform.getRotateInstance +java.awt.geom.AffineTransform.getMatrix +java.awt.geom.AffineTransform.inverseTransform +java.awt.geom.AffineTransform.getScaleInstance +java.awt.geom.AffineTransform.createInverse +java.awt.geom.AffineTransform.deltaTransform +java.awt.geom.AffineTransform.equals +java.awt.geom.AffineTransform.setTransform +java.awt.geom.AffineTransform.constructors +java.awt.geom.AffineTransform.getTranslateInstance +java.awt.geom.AffineTransform.constants +java.awt.geom.AffineTransform.concatenate +java.awt.geom.AffineTransform.getShearInstance +java.awt.geom.AffineTransform.transform +java.awt.geom.AffineTransform.getDeterminant +java.awt.geom.AffineTransform.isIdentity +java.awt.geom.RoundRectangle2D.intersects +java.awt.geom.RoundRectangle2D.contains +java.awt.testName +java.nio.Buffer.IntBufferTest +java.nio.Buffer.ShortBufferTest +java.nio.Buffer.FloatBufferTest +java.nio.Buffer.LongBufferTest +java.nio.Buffer.ByteBufferTest +java.nio.Buffer.DoubleBufferTest +java.nio.Buffer.CharBufferTest +java.nio.LongBuffer.compact +java.nio.ShortBuffer.compact +java.nio.IntBuffer.compareTo +java.nio.IntBuffer.compact +java.nio.channels.Channels.ChannelsTest +java.nio.channels.Selector.testEmptySelect +java.nio.channels.FileChannel.copyIO +java.nio.channels.FileChannel.multibufferIO +java.nio.channels.FileChannel.truncate +java.nio.channels.FileChannel.map +java.nio.channels.FileChannel.offsetSingleBuffer +java.nio.channels.FileChannel.singlebufferIO +java.nio.channels.FileChannel.multidirectbufferIO +java.nio.channels.FileChannel.offsetSingleDirectBuffer +java.nio.DoubleBuffer.compareTo +java.nio.DoubleBuffer.compact +java.nio.ByteBuffer.direct +java.nio.ByteBuffer.compact +java.nio.ByteBuffer.TestAllocateDirect +java.nio.ByteBuffer.GetPut +java.nio.ByteBuffer.putDouble +java.nio.ByteBuffer.Order +java.nio.ByteBuffer.Allocating +java.nio.CharBuffer.compact +java.nio.FloatBuffer.compareTo +java.nio.FloatBuffer.compact +java.nio.charset.Charset.UTF8Charset +java.nio.charset.Charset.utf16 +java.nio.charset.Charset.canEncode +java.nio.charset.Charset.forName --- cacao-oj6-6b12.orig/debian/control +++ cacao-oj6-6b12/debian/control @@ -0,0 +1,138 @@ +Source: cacao-oj6 +Section: devel +Priority: extra +Maintainer: OpenJDK Team +Uploaders: Michael Koch , Torsten Werner , Matthias Klose +Build-Depends: debhelper (>= 5), autotools-dev, lzma, m4, lsb-release, wget, zip, unzip, sharutils, gawk, pkg-config, procps, automake, autoconf, ant, openjdk-6-source-files (>= 6b12), openjdk-6-source-files (<< 6b13), cacao-source (>= 0.99.4~20081012), g++-4.3, gcj (>= 4:4.2.1) [armel ia64 m68k mips mipsel s390], ecj [armel ia64 m68k mips mipsel s390], java-gcj-compat-dev (>= 1.0.76-2ubuntu3) [armel ia64 m68k mips mipsel s390], openjdk-6-jdk (>= 6b11) [amd64 i386 lpia sparc], cacao-oj6-jdk [alpha powerpc], libxtst-dev, libxi-dev, libxt-dev, libxp-dev, libxaw7-dev, libcups2-dev, libasound2-dev, libfreetype6-dev, libxalan2-java, rhino, liblcms1-dev, libxinerama-dev, libffi-dev [!amd64 !i386 !lpia !sparc], libjpeg62-dev, libpng12-dev, libgif-dev, zlib1g-dev, libgtk2.0-dev, xulrunner-1.9-dev, fastjar (>= 2:0.96-0ubuntu2), mauve, xvfb, autoconf, automake, xauth, xfonts-base +Standards-Version: 3.8.0 +Homepage: http://openjdk.java.net/ +Vcs-Bzr: bzr+ssh://@bazaar.launchpad.net/~openjdk/openjdk/openjdk6 +Vcs-Browser: https://code.launchpad.net/~openjdk/openjdk/openjdk6 + +Package: cacao-oj6-jdk +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: cacao-oj6-jre (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Recommends: libxt-dev +Suggests: cacao-oj6-demo, cacao-oj6-source, visualvm +Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk +Description: OpenJDK Development Kit (JDK) + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-jre-headless +Architecture: any +Pre-Depends: ${dpkg:Depends} +Section: interpreters +Depends: cacao-oj6-jre-lib (>= ${binary:Version}), tzdata-java, rhino, libaccess-bridge-java (>= 1.22), java-common (>= 0.28), ${dlopenhl:Depends}, ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dlopenjl:Recommends}, ca-certificates-java +Suggests: libnss-mdns, sun-java6-fonts, ttf-dejavu-core, ttf-baekmuk | ttf-unfonts | ttf-unfonts-core, ttf-kochi-gothic | ttf-sazanami-gothic, ttf-kochi-mincho | ttf-sazanami-mincho, ttf-wqy-zenhei, ttf-indic-fonts-core, ttf-telugu-fonts, ttf-oriya-fonts, ttf-kannada-fonts, ttf-bengali-fonts, +Provides: java-virtual-machine, java-runtime-headless, java2-runtime-headless, java5-runtime-headless, java6-runtime-headless +Replaces: cacao-oj6-jre-lib (<< 6b06-0ubuntu11), cacao-oj6-jre (<< 6b09dfsg-0ubuntu2) +Description: OpenJDK Java runtime, using ${vm:Name} (headless) + Minimal Java runtime - needed for executing non GUI Java programs. + Using ${vm:Name}. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-jre +Architecture: any +Pre-Depends: ${dpkg:Depends} +Section: interpreters +Depends: cacao-oj6-jre-headless (>= ${binary:Version}), ${xandsound:Depends}, ${shlibs:Depends}, ${dlopenjre:Depends}, ${misc:Depends} +Recommends: ${dlopenjre:Recommends}, ${pkg:pulseaudio}, ttf-baekmuk | ttf-unfonts | ttf-unfonts-core, ttf-kochi-gothic | ttf-sazanami-gothic, ttf-kochi-mincho | ttf-sazanami-mincho, ttf-wqy-zenhei, ttf-indic-fonts-core, ttf-telugu-fonts, ttf-oriya-fonts, ttf-kannada-fonts, ttf-bengali-fonts, +Suggests: icedtea6-plugin +Conflicts: icedtea-gcjwebplugin (<< 1.0-1ubuntu4) +Provides: java-runtime, java2-runtime, java5-runtime, java6-runtime +Description: OpenJDK Java runtime, using ${vm:Name} + Full Java runtime environment - needed for executing Java GUI and Webstart + programs. Using ${vm:Name}. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-jre-lib +Architecture: any +Pre-Depends: ${dpkg:Depends} +Section: interpreters +Depends: cacao-oj6-jre-headless (>= ${base:Version}), ${misc:Depends} +Recommends: ${dlopen:Recommends} +Description: OpenJDK Java runtime (architecture independent libraries) + OpenJDK Java runtime, using ${vm:Name}. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-demo +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: cacao-oj6-jre (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Java runtime based on OpenJDK (demos and examples) + OpenJDK Java runtime + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-source +Architecture: all +Pre-Depends: ${dpkg:Depends} +Depends: cacao-oj6-jre (>= ${binary:Version}), cacao-oj6-jdk (>= ${binary:Version}) +Description: OpenJDK Development Kit (JDK) source files + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + This package contains the Java programming language source files + (src.zip) for all classes that make up the Java core API. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-doc +Section: doc +Pre-Depends: ${dpkg:Depends} +Architecture: all +Suggests: cacao-oj6-jdk +Description: OpenJDK Development Kit (JDK) documentation + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + This package contains the API documentation. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-dbg +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: cacao-oj6-jre-headless (= ${binary:Version}) +Recommends: cacao-oj6-jre (= ${binary:Version}) +Suggests: cacao-oj6-jdk (= ${binary:Version}) +Description: Java runtime based on OpenJDK (debugging symbols) + OpenJDK is a development environment for building applications, + applets, and components using the Java programming language. + . + This package contains the debugging symbols. + . + The packages are built using the IcedTea build support and patches + from the IcedTea project. + +Package: cacao-oj6-plugin +Architecture: any +Pre-Depends: ${dpkg:Depends} +Depends: cacao-oj6-jre (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Recommends: ca-certificates-java +Conflicts: icedtea-gcjwebplugin (<< 6b12) +Replaces: icedtea-gcjwebplugin, cacao-oj6-jre (<< 6b12) +Xb-Npp-Applications: ec8030f7-c20a-464f-9b0e-13a3a9e97384, 92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a, aa5ca914-c309-495d-91cf-3141bbb04115 +Xb-Npp-Name: The IcedTea Web Browser Plugin +Xb-Npp-MimeType: application/x-java-vm, application/x-java-applet, application/x-java-applet;version=1.1, application/x-java-applet;version=1.1.1, application/x-java-applet;version=1.1.2, application/x-java-applet;version=1.1.3, application/x-java-applet;version=1.2, application/x-java-applet;version=1.2.1, application/x-java-applet;version=1.2.2, application/x-java-applet;version=1.3, application/x-java-applet;version=1.3.1, application/x-java-applet;version=1.4, application/x-java-applet;version=1.4.1, application/x-java-applet;version=1.4.2, application/x-java-applet;version=1.5, application/x-java-applet;version=1.6, application/x-java-applet;jpi-version=1.6.0_00, application/x-java-bean, application/x-java-bean;version=1.1, application/x-java-bean;version=1.1.1, application/x-java-bean;version=1.1.2, application/x-java-bean;version=1.1.3, application/x-java-bean;version=1.2, application/x-java-bean;version=1.2.1, application/x-java-bean;version=1.2.2, application/x-java-bean;version=1.3, application/x-java-bean;version=1.3.1, application/x-java-bean;version=1.4, application/x-java-bean;version=1.4.1, application/x-java-bean;version=1.4.2, application/x-java-bean;version=1.5, application/x-java-bean;version=1.6, application/x-java-bean;jpi-version=1.6.0_00 +Description: web browser plugin based on OpenJDK and IcedTea to execute Java applets + IcedTeaPlugin is a web browser plugin to execute Java applets, supporting + LiveConnect/Javascript. It is targeted for xulrunner-1.9 and compatible + browsers that support the NPAPI. + . + Icedtea is a temporary fork of OpenJDK --- cacao-oj6-6b12.orig/debian/font.properties.ja.wgy_zenhai +++ cacao-oj6-6b12/debian/font.properties.ja.wgy_zenhai @@ -0,0 +1,244 @@ +# @(#)font.properties.ja.linux 1.7 02/03/07 +# +# Copyright 2002 Sun Microsystems, Inc. All rights reserved. +# + +# Component Font Mappings +# +serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1 +serif.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1 +serif.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1 +serif.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1 +serif.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.italic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.bold.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.bolditalic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.italic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.bold.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialog.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.bolditalic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +# Missing Glyph Character +# +default.char=274f + +# Component Font Character Encodings +# +fontcharset.serif.0=sun.io.CharToByteISO8859_1 +fontcharset.serif.1=sun.awt.motif.CharToByteX11JIS0208 +fontcharset.serif.2=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.sansserif.0=sun.io.CharToByteISO8859_1 +fontcharset.sansserif.1=sun.awt.motif.CharToByteX11JIS0208 +fontcharset.sansserif.2=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.monospaced.0=sun.io.CharToByteISO8859_1 +fontcharset.monospaced.1=sun.awt.motif.CharToByteX11JIS0208 +fontcharset.monospaced.2=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.dialog.0=sun.io.CharToByteISO8859_1 +fontcharset.dialog.1=sun.awt.motif.CharToByteX11JIS0208 +fontcharset.dialog.2=sun.awt.motif.CharToByteX11JIS0208 + +fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1 +fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11JIS0208 +fontcharset.dialoginput.2=sun.awt.motif.CharToByteX11JIS0208 + +# Exclusion Ranges +# + +# XFontSet Information +# +fontset.serif.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.serif.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.serif.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.serif.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.sansserif.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.monospaced.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialog.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.italic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.bold=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.bolditalic=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.dialoginput.plain=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + +fontset.default=\ +-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\ +-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\ +-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\ +-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 + --- cacao-oj6-6b12.orig/debian/accessibility.properties +++ cacao-oj6-6b12/debian/accessibility.properties @@ -0,0 +1,9 @@ +# +# The following line specifies the assistive technology classes +# that should be loaded into the Java VM when the AWT is initialized. +# Specify multiple classes by separating them with commas. +# Note: the line below cannot end the file (there must be at +# a minimum a blank line following it). +# +assistive_technologies=org.GNOME.Accessibility.JavaBridge + --- cacao-oj6-6b12.orig/debian/JB-web-start.keys.in +++ cacao-oj6-6b12/debian/JB-web-start.keys.in @@ -0,0 +1,6 @@ +application/x-java-jnlp-file + description=Java Web Start Application + icon_filename=sun-java + default_action_type=application + default_application_id=java-web-start + short_list_application_user_additions=java-web-start --- cacao-oj6-6b12.orig/debian/patches/fontconfig-arphic-uming.diff +++ cacao-oj6-6b12/debian/patches/fontconfig-arphic-uming.diff @@ -0,0 +1,244 @@ +--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig 2008-10-12 10:42:26.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties 2008-10-12 10:43:49.000000000 +0000 +@@ -25,107 +25,156 @@ + + # Version + +-# Uses Ubuntu 6.10 (Edgy) fonts and file paths. ++# Used for Ubuntu 6.10 (edgy), Ubuntu 7.04 (feisty), Ubuntu 7.10 (gutsy), ++# Debian 4.0 (etch), Debian 5.0 (lenny) fonts and file paths. + version=1 + + # Component Font Mappings + ++allfonts.chinese-gb18030=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++allfonts.chinese-gb18030.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++allfonts.chinese-big5=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++allfonts.chinese-big5.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++ + dialog.plain.latin-1=DejaVu Sans +-dialog.plain.japanese-x0208=Kochi Gothic +-dialog.plain.korean=Baekmuk Dotum ++dialog.plain.latin-1.motif=LuxiSans-Regular ++dialog.plain.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + dialog.bold.latin-1=DejaVu Sans Bold +-dialog.bold.japanese-x0208=Kochi Gothic +-dialog.bold.korean=Baekmuk Dotum ++dialog.bold.latin-1.motif=LuxiSans-Bold ++dialog.bold.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + dialog.italic.latin-1=DejaVu Sans Oblique +-dialog.italic.japanese-x0208=Kochi Gothic +-dialog.italic.korean=Baekmuk Dotum ++dialog.italic.latin-1.motif=LuxiSans-Oblique ++dialog.italic.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique +-dialog.bolditalic.japanese-x0208=Kochi Gothic +-dialog.bolditalic.korean=Baekmuk Dotum +- ++dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique ++dialog.bolditalic.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.plain.latin-1=DejaVu Sans +-sansserif.plain.japanese-x0208=Kochi Gothic +-sansserif.plain.korean=Baekmuk Dotum ++sansserif.plain.latin-1.motif=LuxiSans-Regular ++sansserif.plain.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.bold.latin-1=DejaVu Sans Bold +-sansserif.bold.japanese-x0208=Kochi Gothic +-sansserif.bold.korean=Baekmuk Dotum ++sansserif.bold.latin-1.motif=LuxiSans-Bold ++sansserif.bold.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.italic.latin-1=DejaVu Sans Oblique +-sansserif.italic.japanese-x0208=Kochi Gothic +-sansserif.italic.korean=Baekmuk Dotum ++sansserif.italic.latin-1.motif=LuxiSans-Oblique ++sansserif.italic.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique +-sansserif.bolditalic.japanese-x0208=Kochi Gothic +-sansserif.bolditalic.korean=Baekmuk Dotum +- ++sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique ++sansserif.bolditalic.japanese-x0208=-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.plain.latin-1=DejaVu Serif +-serif.plain.japanese-x0208=Kochi Mincho +-serif.plain.korean=Baekmuk Batang ++serif.plain.latin-1.motif=LuxiSerif-Regular ++serif.plain.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.bold.latin-1=DejaVu Serif Bold +-serif.bold.japanese-x0208=Kochi Mincho +-serif.bold.korean=Baekmuk Batang ++serif.bold.latin-1.motif=LuxiSerif-Bold ++serif.bold.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.italic.latin-1=DejaVu Serif Oblique +-serif.italic.japanese-x0208=Kochi Mincho +-serif.italic.korean=Baekmuk Batang ++serif.italic.latin-1.motif=LuxiSerif-Oblique ++serif.italic.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.bolditalic.latin-1=DejaVu Serif Bold Oblique +-serif.bolditalic.japanese-x0208=Kochi Mincho +-serif.bolditalic.korean=Baekmuk Batang +- ++serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique ++serif.bolditalic.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.plain.latin-1=DejaVu Sans Mono +-monospaced.plain.japanese-x0208=Kochi Gothic +-monospaced.plain.korean=Baekmuk Dotum ++monospaced.plain.latin-1.motif=LuxiMono-Regular ++monospaced.plain.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.bold.latin-1=DejaVu Sans Mono Bold +-monospaced.bold.japanese-x0208=Kochi Gothic +-monospaced.bold.korean=Baekmuk Dotum ++monospaced.bold.latin-1.motif=LuxiMono-Bold ++monospaced.bold.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.italic.latin-1=DejaVu Sans Mono Oblique +-monospaced.italic.japanese-x0208=Kochi Gothic +-monospaced.italic.korean=Baekmuk Dotum ++monospaced.italic.latin-1.motif=LuxiMono-Oblique ++monospaced.italic.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +-monospaced.bolditalic.japanese-x0208=Kochi Gothic +-monospaced.bolditalic.korean=Baekmuk Dotum +- ++monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique ++monospaced.bolditalic.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.plain.latin-1=DejaVu Sans Mono +-dialoginput.plain.japanese-x0208=Kochi Gothic +-dialoginput.plain.korean=Baekmuk Dotum ++dialoginput.plain.latin-1.motif=LuxiMono-Regular ++dialoginput.plain.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.bold.latin-1=DejaVu Sans Mono Bold +-dialoginput.bold.japanese-x0208=Kochi Gothic +-dialoginput.bold.korean=Baekmuk Dotum ++dialoginput.bold.latin-1.motif=LuxiMono-Bold ++dialoginput.bold.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.italic.latin-1=DejaVu Sans Mono Oblique +-dialoginput.italic.japanese-x0208=Kochi Gothic +-dialoginput.italic.korean=Baekmuk Dotum ++dialoginput.italic.latin-1.motif=LuxiMono-Oblique ++dialoginput.italic.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +-dialoginput.bolditalic.japanese-x0208=Kochi Gothic +-dialoginput.bolditalic.korean=Baekmuk Dotum +- +-allfonts.chinese-big5=AR PL ZenKai Uni +-allfonts.chinese-gb18030=AR PL ZenKai Uni ++dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique ++dialoginput.bolditalic.japanese-x0208=-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + # Search Sequences + + sequence.allfonts=latin-1 +-sequence.allfonts.Big5=chinese-big5,latin-1 +-sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1 +-sequence.allfonts.EUC-KR=korean,latin-1 +-sequence.allfonts.GB18030=chinese-gb18030,latin-1 ++sequence.allfonts.UTF-8.ko=latin-1,korean ++sequence.allfonts.UTF-8=latin-1,chinese-gb18030 ++sequence.allfonts.UTF-8.ja=latin-1,japanese-x0208 ++sequence.allfonts.UTF-8.zh.CN=latin-1,chinese-gb18030 ++sequence.allfonts.UTF-8.zh.TW=latin-1,chinese-big5 ++sequence.allfonts.Big5=latin-1,chinese-big5 ++sequence.allfonts.GB2312=latin-1,chinese-gb18030 ++sequence.allfonts.x-euc-jp-linux=latin-1,japanese-x0208 ++sequence.allfonts.EUC-KR=latin-1,korean ++sequence.allfonts.GB18030=latin-1,chinese-gb18030 + sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean + ++# Exclusion Ranges ++ ++exclusion.japanese-x0208=0390-03d6,2200-22ef,2701-27be ++ + # Font File Names + + filename.DejaVu_Sans=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf +@@ -143,8 +192,27 @@ + filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf + filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf + +-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf +-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf +-filename.AR_PL_ZenKai_Uni=/usr/share/fonts//truetype/arphic/ukai.ttf +-filename.Baekmuk_Dotum=/usr/share/fonts/truetype/baekmuk/dotum.ttf +-filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf ++filename.-misc-ar_pl_shanheisun_uni-medium-r-normal--*-*-*-*-p-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttf ++filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-*-*=/usr/share/fonts/truetype/baekmuk/batang.ttf ++filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-*-*=/usr/share/fonts/truetype/baekmuk/gulim.ttf ++filename.-ipamona-uigothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/ipamona/ipagui-mona.ttf ++filename.-ipamona-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/ipamona/ipamp-mona.ttf ++ ++filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf ++filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf ++filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf ++filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf ++filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf ++filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf ++filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf ++filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf ++filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf ++filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf ++filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf ++filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf ++ ++# AWT X11 font paths ++awtfontpath.latin-1=/usr/share/fonts/X11/Type1 ++awtfontpath.chinese-gb18030=/usr/share/fonts/truetype/arphic ++awtfontpath.japanese-x0208=/usr/share/fonts/truetype/ipamona/ ++awtfontpath.korean=/usr/share/fonts/truetype/baekmuk --- cacao-oj6-6b12.orig/debian/patches/openjdk-ubuntu-branding.patch +++ cacao-oj6-6b12/debian/patches/openjdk-ubuntu-branding.patch @@ -0,0 +1,11 @@ +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp~ 2008-09-12 21:41:33.000000000 +0200 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2008-09-12 21:43:07.000000000 +0200 +@@ -28,7 +28,7 @@ + #include "incls/_precompiled.incl" + #include "incls/_arguments.cpp.incl" + +-#define DEFAULT_VENDOR_URL_BUG "http://java.sun.com/webapps/bugreport/crash.jsp" ++#define DEFAULT_VENDOR_URL_BUG "https://bugs.launchpad.net/ubuntu/+source/openjdk-6/" + #define DEFAULT_JAVA_LAUNCHER "generic" + + char** Arguments::_jvm_flags_array = NULL; --- cacao-oj6-6b12.orig/debian/patches/fix-race-cond-print.diff +++ cacao-oj6-6b12/debian/patches/fix-race-cond-print.diff @@ -0,0 +1,15 @@ +--- openjdk/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java 2008-04-11 04:18:13.000000000 -0400 ++++ openjdk/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java 2008-07-30 12:45:40.000000000 -0400 +@@ -163,6 +163,12 @@ + + + public UnixPrintServiceLookup() { ++ try { ++ refreshServices(); ++ } catch (Exception se) { ++ IPPPrintService.debug_println(debugPrefix+"Exception in refreshServices()"); ++ } ++ + // start the printer listener thread + if (pollServices) { + PrinterChangeListener thr = new PrinterChangeListener(); --- cacao-oj6-6b12.orig/debian/patches/set-exec-name.diff +++ cacao-oj6-6b12/debian/patches/set-exec-name.diff @@ -0,0 +1,69 @@ +--- openjdk/hotspot/src/os/linux/launcher/java_md.c.orig 2008-05-13 11:00:46.020643623 +0200 ++++ openjdk/hotspot/src/os/linux/launcher/java_md.c 2008-05-13 11:02:27.212170074 +0200 +@@ -1011,8 +1011,19 @@ + char buf[PATH_MAX+1]; + int len = readlink(self, buf, PATH_MAX); + if (len >= 0) { ++ const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL}; ++ const char **prefix; ++ size_t prefix_len = 0; + buf[len] = '\0'; /* readlink doesn't nul terminate */ +- exec_path = strdup(buf); ++ for (prefix = prefixes; *prefix; prefix++) { ++ prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix); ++ if (!strncmp(*prefix, buf, prefix_len)) { ++ prefix_len--; ++ break; ++ } ++ prefix_len = 0; ++ } ++ exec_path = strdup(buf + prefix_len); + } + } + #else /* !__sun && !__linux */ +--- openjdk/hotspot/src/os/solaris/launcher/java_md.c.orig 2008-05-13 11:00:46.020643623 +0200 ++++ openjdk/hotspot/src/os/solaris/launcher/java_md.c 2008-05-13 11:02:08.771891907 +0200 +@@ -1011,8 +1011,19 @@ + char buf[PATH_MAX+1]; + int len = readlink(self, buf, PATH_MAX); + if (len >= 0) { ++ const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL}; ++ const char **prefix; ++ size_t prefix_len = 0; + buf[len] = '\0'; /* readlink doesn't nul terminate */ +- exec_path = strdup(buf); ++ for (prefix = prefixes; *prefix; prefix++) { ++ prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix); ++ if (!strncmp(*prefix, buf, prefix_len)) { ++ prefix_len--; ++ break; ++ } ++ prefix_len = 0; ++ } ++ exec_path = strdup(buf + prefix_len); + } + } + #else /* !__sun && !__linux */ +--- openjdk/jdk/src/solaris/bin/java_md.c.orig 2008-05-13 11:00:46.020643623 +0200 ++++ openjdk/jdk/src/solaris/bin/java_md.c 2008-05-13 11:01:28.581285640 +0200 +@@ -884,8 +884,19 @@ + char buf[PATH_MAX+1]; + int len = readlink(self, buf, PATH_MAX); + if (len >= 0) { ++ const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL}; ++ const char **prefix; ++ size_t prefix_len = 0; + buf[len] = '\0'; /* readlink doesn't nul terminate */ +- exec_path = JLI_StringDup(buf); ++ for (prefix = prefixes; *prefix; prefix++) { ++ prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix); ++ if (!strncmp(*prefix, buf, prefix_len)) { ++ prefix_len--; ++ break; ++ } ++ prefix_len = 0; ++ } ++ exec_path = JLI_StringDup(buf + prefix_len); + } + } + #else /* !__sun && !__linux */ --- cacao-oj6-6b12.orig/debian/patches/jdk-AnnotationInvocationHandler.diff +++ cacao-oj6-6b12/debian/patches/jdk-AnnotationInvocationHandler.diff @@ -0,0 +1,49 @@ +Description: + +sun/reflect/annotation/AnnotationInvocationHandler.java.getMemberMethods +might throw if there is a security manager that does not allow +getDeclaredMethods. + +The author of this code (Josh Bloch) confirms that the intent was for the +doPrivileged block in this method to prevent security exceptions. +The methods cannot escape to untrusted code. + +Evaluation: + +Yes. Fix provided courtesy of Toby Reyelts and Josh Bloch at Google. + +# HG changeset patch +# User martin +# Date 1224185752 25200 +# Node ID 68730f05449cd4f39ce1cb82adc6c4e57f87554f +# Parent 214ebdcf7252d4862449fe0ae295e6c60a127315 +SecurityException in AnnotationInvocationHandler.getMemberMethods +Summary: Move call to getDeclaredMethods inside doPrivileged +Reviewed-by: +Contributed-by: jjb@google.com + +--- openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java~ 2008-08-28 10:14:34.000000000 +0200 ++++ openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java 2008-10-18 11:21:46.000000000 +0200 +@@ -272,14 +272,14 @@ + */ + private Method[] getMemberMethods() { + if (memberMethods == null) { +- final Method[] mm = type.getDeclaredMethods(); +- AccessController.doPrivileged(new PrivilegedAction() { +- public Object run() { +- AccessibleObject.setAccessible(mm, true); +- return null; +- } +- }); +- memberMethods = mm; ++ memberMethods = AccessController.doPrivileged( ++ new PrivilegedAction() { ++ public Method[] run() { ++ final Method[] mm = type.getDeclaredMethods(); ++ AccessibleObject.setAccessible(mm, true); ++ return mm; ++ } ++ }); + } + return memberMethods; + } --- cacao-oj6-6b12.orig/debian/patches/gcc-opt-O2.diff +++ cacao-oj6-6b12/debian/patches/gcc-opt-O2.diff @@ -0,0 +1,37 @@ +--- openjdk/hotspot/build/linux/makefiles/gcc.make~ 2007-11-29 12:38:22.578339247 +0100 ++++ openjdk/hotspot/build/linux/makefiles/gcc.make 2007-11-29 12:42:28.742052571 +0100 +@@ -103,7 +103,7 @@ + CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) + + # The flags to use for an Optimized g++ build +-OPT_CFLAGS += -O3 ++OPT_CFLAGS += -O2 + + # Hotspot uses very unstrict aliasing turn this optimization off + OPT_CFLAGS += -fno-strict-aliasing +--- openjdk/corba/make/common/Defs-linux.gmk~ 2007-11-29 12:38:22.578339247 +0100 ++++ openjdk/corba/make/common/Defs-linux.gmk 2007-11-29 12:42:52.452410236 +0100 +@@ -76,8 +76,8 @@ + # + # Default optimization + # +-CC_HIGHEST_OPT = -O3 +-CC_HIGHER_OPT = -O3 ++CC_HIGHEST_OPT = -O2 ++CC_HIGHER_OPT = -O2 + CC_LOWER_OPT = -O2 + CC_NO_OPT = + +--- openjdk/jdk/make/common/Defs-linux.gmk~ 2007-11-29 12:38:22.578339247 +0100 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2007-11-29 12:43:13.992735167 +0100 +@@ -86,8 +86,8 @@ + # + # Default optimization + # +-CC_HIGHEST_OPT = -O3 +-CC_HIGHER_OPT = -O3 ++CC_HIGHEST_OPT = -O2 ++CC_HIGHER_OPT = -O2 + CC_LOWER_OPT = -O2 + CC_NO_OPT = + --- cacao-oj6-6b12.orig/debian/patches/gcc-mtune-generic.diff +++ cacao-oj6-6b12/debian/patches/gcc-mtune-generic.diff @@ -0,0 +1,11 @@ +--- openjdk/hotspot/build/linux/makefiles/gcc.make~ 2007-11-24 16:52:59.077912783 +0100 ++++ openjdk/hotspot/build/linux/makefiles/gcc.make 2007-11-24 17:10:26.373711002 +0100 +@@ -69,7 +69,7 @@ + CFLAGS += -g + + ARCHFLAG = $(ARCHFLAG/$(BUILDARCH)) +-ARCHFLAG/i486 = -m32 -march=i586 ++ARCHFLAG/i486 = -m32 -march=i586 -mtune=generic + ARCHFLAG/amd64 = -m64 + ARCHFLAG/ia64 = + ARCHFLAG/sparc = -m32 -mcpu=v9 --- cacao-oj6-6b12.orig/debian/patches/no-compiler-path.diff +++ cacao-oj6-6b12/debian/patches/no-compiler-path.diff @@ -0,0 +1,48 @@ +--- openjdk/corba/make/common/shared/Compiler-gcc.gmk~ 2008-05-14 18:10:07.782578279 +0200 ++++ openjdk/corba/make/common/shared/Compiler-gcc.gmk 2008-05-14 18:15:42.217623155 +0200 +@@ -58,17 +58,17 @@ + ifeq ($(PLATFORM), linux) + + # Settings specific to Linux +- CC = $(COMPILER_PATH)gcc$(GCC_SUFFIX) +- CPP = $(COMPILER_PATH)gcc$(GCC_SUFFIX) -E ++ CC = gcc$(GCC_SUFFIX) ++ CPP = gcc$(GCC_SUFFIX) -E + # statically link libstdc++ before C++ ABI is stablized on Linux + STATIC_CXX = true + ifeq ($(STATIC_CXX),true) + # g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++" + # We need to use gcc to statically link the C++ runtime. gcc and g++ use + # the same subprocess to compile C++ files, so it is OK to build using gcc. +- CXX = $(COMPILER_PATH)gcc$(GCC_SUFFIX) ++ CXX = gcc$(GCC_SUFFIX) + else +- CXX = $(COMPILER_PATH)g++$(GCC_SUFFIX) ++ CXX = g++$(GCC_SUFFIX) + endif + ifdef ICEDTEA_ZERO_BUILD + # zero +--- openjdk/jdk/make/common/shared/Compiler-gcc.gmk~ 2008-05-14 18:17:30.669259124 +0200 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2008-05-14 18:58:41.196526465 +0200 +@@ -58,17 +58,17 @@ + ifeq ($(PLATFORM), linux) + + # Settings specific to Linux +- CC = $(COMPILER_PATH)gcc$(GCC_SUFFIX) +- CPP = $(COMPILER_PATH)gcc$(GCC_SUFFIX) -E ++ CC = gcc$(GCC_SUFFIX) ++ CPP = gcc$(GCC_SUFFIX) -E + # statically link libstdc++ before C++ ABI is stablized on Linux + STATIC_CXX = true + ifeq ($(STATIC_CXX),true) + # g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++" + # We need to use gcc to statically link the C++ runtime. gcc and g++ use + # the same subprocess to compile C++ files, so it is OK to build using gcc. +- CXX = $(COMPILER_PATH)gcc$(GCC_SUFFIX) ++ CXX = gcc$(GCC_SUFFIX) + else +- CXX = $(COMPILER_PATH)g++$(GCC_SUFFIX) ++ CXX = g++$(GCC_SUFFIX) + endif + ifdef ICEDTEA_ZERO_BUILD + # zero --- cacao-oj6-6b12.orig/debian/patches/ld-symbolic-functions.diff +++ cacao-oj6-6b12/debian/patches/ld-symbolic-functions.diff @@ -0,0 +1,43 @@ +--- openjdk/corba/make/common/Defs-linux.gmk.orig 2008-07-26 23:40:27.434474148 +0200 ++++ openjdk/corba/make/common/Defs-linux.gmk 2008-07-26 23:42:08.776002862 +0200 +@@ -205,7 +205,7 @@ + + EXTRA_LIBS += -lc + +-LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs ++LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs -Wl,-Bsymbolic-functions + LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) + + # +--- openjdk/hotspot/agent/src/os/linux/Makefile.orig 2008-07-26 23:40:27.434474148 +0200 ++++ openjdk/hotspot/agent/src/os/linux/Makefile 2008-07-26 23:42:08.776002862 +0200 +@@ -62,7 +62,7 @@ + + $(LIBSA): $(OBJS) mapfile + if [ ! -d $(ARCH) ] ; then mkdir $(ARCH) ; fi +- $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS) ++ $(GCC) -shared -Wl,-Bsymbolic-functions $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS) + + test.o: test.c + $(GCC) -c -o test.o -g -D_GNU_SOURCE -D_$(ARCH)_ $(if $(filter $(ARCH),alpha),,-D$(ARCH)) $(INCLUDES) test.c +--- openjdk/hotspot/build/linux/makefiles/gcc.make.orig 2008-07-26 23:40:27.464474601 +0200 ++++ openjdk/hotspot/build/linux/makefiles/gcc.make 2008-07-26 23:42:08.776002862 +0200 +@@ -142,6 +142,7 @@ + + # Enable linker optimization + LFLAGS += -Xlinker -O1 ++LFLAGS += -Wl,-Bsymbolic-functions + + # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. + MAPFLAG = -Xlinker --version-script=FILENAME +--- openjdk/jdk/make/common/Defs-linux.gmk.orig 2008-07-26 23:40:27.444474299 +0200 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2008-07-26 23:42:08.776002862 +0200 +@@ -215,7 +215,7 @@ + + EXTRA_LIBS += -lc + +-LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs ++LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs -Wl,-Bsymbolic-functions + LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) + + # --- cacao-oj6-6b12.orig/debian/patches/fontconfig-wqy-zenhei.diff +++ cacao-oj6-6b12/debian/patches/fontconfig-wqy-zenhei.diff @@ -0,0 +1,390 @@ +--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig 2008-10-12 10:35:09.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties 2008-10-12 10:40:55.000000000 +0000 +@@ -25,106 +25,260 @@ + + # Version + +-# Uses Ubuntu 6.10 (Edgy) fonts and file paths. ++# Used for Ubuntu 8.04 (hardy), Ubuntu 8.10 (intrepid) fonts and file paths. + version=1 +- ++Index + # Component Font Mappings + +-dialog.plain.latin-1=DejaVu Sans +-dialog.plain.japanese-x0208=Kochi Gothic +-dialog.plain.korean=Baekmuk Dotum ++# Chinese fonts ++allfonts.umingcn=AR PL UMing CN ++#allfonts.umingcn.motif=AR PL UMing CN ++allfonts.uminghk=AR PL UMing HK ++#allfonts.uminghk.motif=AR PL UMing HK ++allfonts.umingtw=AR PL UMing TW ++#allfonts.umingtw.motif=AR PL UMing TW ++allfonts.wqy-zenhei=WenQuanYi Zen Hei ++#allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei ++allfonts.shanheisun=AR PL ShanHeiSun Uni ++#allfonts.shanheisun.motif=AR PL ShanHeiSun Uni ++ ++# Indic scripts ++allfonts.bengali=Lohit Bengali ++allfonts.gujarati=Lohit Gujarati ++allfonts.hindi=Lohit Hindi ++#allfonts.malayalam=Lohit Malayalam ++allfonts.oriya=Lohit Oriya ++allfonts.punjabi=Lohit Punjabi ++allfonts.tamil=Lohit Tamil ++allfonts.telugu=Lohit Telugu ++#allfonts.sinhala=LKLUG + +-dialog.bold.latin-1=DejaVu Sans Bold +-dialog.bold.japanese-x0208=Kochi Gothic +-dialog.bold.korean=Baekmuk Dotum + +-dialog.italic.latin-1=DejaVu Sans Oblique +-dialog.italic.japanese-x0208=Kochi Gothic +-dialog.italic.korean=Baekmuk Dotum ++serif.plain.latin-1=DejaVu Serif ++#serif.plain.latin-1.motif=LuxiSerif-Regular ++serif.plain.japanese-kochi=Kochi Mincho ++serif.plain.japanese-sazanami=Sazanami Mincho ++serif.plain.japanese-vlgothic=Kochi Mincho ++serif.plain.korean-baekmuk=Baekmuk Batang ++#serif.plain.korean-baekmuk.motif=Baekmuk Batang ++serif.plain.korean-un=UnBatang ++#serif.plain.korean-un.motif=UnBatang + +-dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique +-dialog.bolditalic.japanese-x0208=Kochi Gothic +-dialog.bolditalic.korean=Baekmuk Dotum ++serif.bold.latin-1=DejaVu Serif Bold ++#serif.bold.latin-1.motif=LuxiSerif-Bold ++serif.bold.japanese-kochi=Kochi Mincho ++serif.bold.japanese-sazanami=Sazanami Mincho ++serif.bold.japanese-vlgothic=Kochi Mincho ++serif.bold.korean-baekmuk=Baekmuk Batang ++#serif.bold.korean-baekmuk.motif=Baekmuk Batang ++serif.bold.korean-un=UnBatang Bold ++#serif.bold.korean-un.motif=UnBatang Bold + ++serif.italic.latin-1=DejaVu Serif Oblique ++#serif.italic.latin-1.motif=LuxiSerif-Oblique ++serif.italic.japanese-kochi=Kochi Mincho ++serif.italic.japanese-sazanami=Sazanami Mincho ++serif.italic.japanese-vlgothic=Kochi Mincho ++serif.italic.korean-baekmuk=Baekmuk Batang ++#serif.italic.korean-baekmuk.motif=Baekmuk Batang ++serif.italic.korean-un=UnBatang ++#serif.italic.korean-un.motif=UnBatang ++ ++serif.bolditalic.latin-1=DejaVu Serif Bold Oblique ++#serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique ++serif.bolditalic.japanese-kochi=Kochi Mincho ++serif.bolditalic.japanese-sazanami=Sazanami Mincho ++serif.bolditalic.japanese-vlgothic=Kochi Mincho ++serif.bolditalic.korean-baekmuk=Baekmuk Batang ++#serif.bolditalic.korean-baekmuk.motif=Baekmuk Batang ++serif.bolditalic.korean-un=UnBatang Bold ++#serif.bolditalic.korean-un.motif=UnBatang Bold + + sansserif.plain.latin-1=DejaVu Sans +-sansserif.plain.japanese-x0208=Kochi Gothic +-sansserif.plain.korean=Baekmuk Dotum ++#sansserif.plain.latin-1.motif=LuxiSans-Regular ++sansserif.plain.japanese-kochi=Kochi Gothic ++sansserif.plain.japanese-sazanami=Sazanami Gothic ++sansserif.plain.japanese-vlgothic=VL PGothic ++sansserif.plain.korean-baekmuk=Baekmuk Gulim ++#sansserif.plain.korean-baekmuk.motif=Baekmuk Gulim ++sansserif.plain.korean-un=UnDotum ++#sansserif.plain.korean-un.motif=UnDotum + + sansserif.bold.latin-1=DejaVu Sans Bold +-sansserif.bold.japanese-x0208=Kochi Gothic +-sansserif.bold.korean=Baekmuk Dotum ++#sansserif.bold.latin-1.motif=LuxiSans-Bold ++sansserif.bold.japanese-kochi=Kochi Gothic ++sansserif.bold.japanese-sazanami=Sazanami Gothic ++sansserif.bold.japanese-vlgothic=VL PGothic ++sansserif.bold.korean-baekmuk=Baekmuk Gulim ++#sansserif.bold.korean-baekmuk.motif=Baekmuk Gulim ++sansserif.bold.korean-un=UnDotum Bold ++#sansserif.bold.korean-un.motif=UnDotum Bold + + sansserif.italic.latin-1=DejaVu Sans Oblique +-sansserif.italic.japanese-x0208=Kochi Gothic +-sansserif.italic.korean=Baekmuk Dotum ++#sansserif.italic.latin-1.motif=LuxiSans-Oblique ++sansserif.italic.japanese-kochi=Kochi Gothic ++sansserif.italic.japanese-sazanami=Sazanami Gothic ++sansserif.italic.japanese-vlgothic=VL PGothic ++sansserif.italic.korean-baekmuk=Baekmuk Gulim ++#sansserif.italic.korean-baekmuk.motif=Baekmuk Gulim ++sansserif.italic.korean-un=UnDotum ++#sansserif.italic.korean-un.motif=UnDotum + + sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique +-sansserif.bolditalic.japanese-x0208=Kochi Gothic +-sansserif.bolditalic.korean=Baekmuk Dotum +- +- +-serif.plain.latin-1=DejaVu Serif +-serif.plain.japanese-x0208=Kochi Mincho +-serif.plain.korean=Baekmuk Batang +- +-serif.bold.latin-1=DejaVu Serif Bold +-serif.bold.japanese-x0208=Kochi Mincho +-serif.bold.korean=Baekmuk Batang +- +-serif.italic.latin-1=DejaVu Serif Oblique +-serif.italic.japanese-x0208=Kochi Mincho +-serif.italic.korean=Baekmuk Batang +- +-serif.bolditalic.latin-1=DejaVu Serif Bold Oblique +-serif.bolditalic.japanese-x0208=Kochi Mincho +-serif.bolditalic.korean=Baekmuk Batang +- ++#sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique ++sansserif.bolditalic.japanese-kochi=Kochi Gothic ++sansserif.bolditalic.japanese-sazanami=Sazanami Gothic ++sansserif.bolditalic.japanese-vlgothic=VL PGothic ++sansserif.bolditalic.korean-baekmuk=Baekmuk Gulim ++#sansserif.bolditalic.korean-baekmuk.motif=Baekmuk Gulim ++sansserif.bolditalic.korean-un=UnDotum Bold ++#sansserif.bolditalic.korean-un.motif=UnDotum Bold + + monospaced.plain.latin-1=DejaVu Sans Mono +-monospaced.plain.japanese-x0208=Kochi Gothic +-monospaced.plain.korean=Baekmuk Dotum ++#monospaced.plain.latin-1.motif=LuxiMono-Regular ++monospaced.plain.japanese-kochi=Kochi Gothic ++monospaced.plain.japanese-sazanami=Sazanami Gothic ++monospaced.plain.japanese-vlgothic=VL Gothic ++monospaced.plain.korean-baekmuk=Baekmuk Gulim ++#monospaced.plain.korean-baekmuk.motif=Baekmuk Gulim ++monospaced.plain.korean-un=UnDotum ++#monospaced.plain.korean-un.motif=UnDotum + + monospaced.bold.latin-1=DejaVu Sans Mono Bold +-monospaced.bold.japanese-x0208=Kochi Gothic +-monospaced.bold.korean=Baekmuk Dotum ++#monospaced.bold.latin-1.motif=LuxiMono-Bold ++monospaced.bold.japanese-kochi=Kochi Gothic ++monospaced.bold.japanese-sazanami=Sazanami Gothic ++monospaced.bold.japanese-vlgothic=VL Gothic ++monospaced.bold.korean-baekmuk=Baekmuk Gulim ++#monospaced.bold.korean-baekmuk.motif=Baekmuk Gulim ++monospaced.bold.korean-un=UnDotum Bold ++#monospaced.bold.korean-un.motif=UnDotum Bold + + monospaced.italic.latin-1=DejaVu Sans Mono Oblique +-monospaced.italic.japanese-x0208=Kochi Gothic +-monospaced.italic.korean=Baekmuk Dotum ++#monospaced.italic.latin-1.motif=LuxiMono-Oblique ++monospaced.italic.japanese-kochi=Kochi Gothic ++monospaced.italic.japanese-sazanami=Sazanami Gothic ++monospaced.italic.japanese-vlgothic=VL Gothic ++monospaced.italic.korean-baekmuk=Baekmuk Gulim ++#monospaced.italic.korean-baekmuk.motif=Baekmuk Gulim ++monospaced.italic.korean-un=UnDotum ++#monospaced.italic.korean-un.motif=UnDotum + + monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +-monospaced.bolditalic.japanese-x0208=Kochi Gothic +-monospaced.bolditalic.korean=Baekmuk Dotum ++#monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique ++monospaced.bolditalic.japanese-kochi=Kochi Gothic ++monospaced.bolditalic.japanese-sazanami=Sazanami Gothic ++monospaced.bolditalic.japanese-vlgothic=VL Gothic ++monospaced.bolditalic.korean-baekmuk=Baekmuk Gulim ++#monospaced.bolditalic.korean-baekmuk.motif=Baekmuk Gulim ++monospaced.bolditalic.korean-un=UnDotum Bold ++#monospaced.bolditalic.korean-un.motif=UnDotum Bold ++ ++dialog.plain.latin-1=DejaVu Sans ++#dialog.plain.latin-1.motif=LuxiSans-Regular ++dialog.plain.japanese-kochi=Kochi Gothic ++dialog.plain.japanese-sazanami=Sazanami Gothic ++dialog.plain.japanese-vlgothic=VL PGothic ++dialog.plain.korean-baekmuk=Baekmuk Gulim ++#dialog.plain.korean-baekmuk.motif=Baekmuk Gulim ++dialog.plain.korean-un=UnDotum ++#dialog.plain.korean-un.motif=UnDotum + ++dialog.bold.latin-1=DejaVu Sans Bold ++#dialog.bold.latin-1.motif=LuxiSans-Bold ++dialog.bold.japanese-kochi=Kochi Gothic ++dialog.bold.japanese-sazanami=Sazanami Gothic ++dialog.bold.japanese-vlgothic=VL PGothic ++dialog.bold.korean-baekmuk=Baekmuk Gulim ++#dialog.bold.korean-baekmuk.motif=Baekmuk Gulim ++dialog.bold.korean-un=UnDotum Bold ++#dialog.bold.korean-un.motif=UnDotum Bold ++ ++dialog.italic.latin-1=DejaVu Sans Oblique ++#dialog.italic.latin-1.motif=LuxiSans-Oblique ++dialog.italic.japanese-kochi=Kochi Gothic ++dialog.italic.japanese-sazanami=Sazanami Gothic ++dialog.italic.japanese-vlgothic=VL PGothic ++dialog.italic.korean-baekmuk=Baekmuk Gulim ++#dialog.italic.korean-baekmuk.motif=Baekmuk Gulim ++dialog.italic.korean-un=UnDotum ++#dialog.italic.korean-un.motif=UnDotum ++ ++dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique ++#dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique ++dialog.bolditalic.japanese-kochi=Kochi Gothic ++dialog.bolditalic.japanese-sazanami=Sazanami Gothic ++dialog.bolditalic.japanese-vlgothic=VL PGothic ++dialog.bolditalic.korean-baekmuk=Baekmuk Gulim ++#dialog.bolditalic.korean-baekmuk.motif=Baekmuk Gulim ++dialog.bolditalic.korean-un=UnDotum Bold ++#dialog.bolditalic.korean-un.motif=UnDotum Bold + + dialoginput.plain.latin-1=DejaVu Sans Mono +-dialoginput.plain.japanese-x0208=Kochi Gothic +-dialoginput.plain.korean=Baekmuk Dotum ++#dialoginput.plain.latin-1.motif=LuxiMono-Regular ++dialoginput.plain.japanese-kochi=Kochi Gothic ++dialoginput.plain.japanese-sazanami=Sazanami Gothic ++dialoginput.plain.japanese-vlgothic=VL Gothic ++dialoginput.plain.korean-baekmuk=Baekmuk Gulim ++#dialoginput.plain.korean-baekmuk.motif=Baekmuk Gulim ++dialoginput.plain.korean-un=UnDotum ++#dialoginput.plain.korean-un.motif=UnDotum + + dialoginput.bold.latin-1=DejaVu Sans Mono Bold +-dialoginput.bold.japanese-x0208=Kochi Gothic +-dialoginput.bold.korean=Baekmuk Dotum ++#dialoginput.bold.latin-1.motif=LuxiMono-Bold ++dialoginput.bold.japanese-kochi=Kochi Gothic ++dialoginput.bold.japanese-sazanami=Sazanami Gothic ++dialoginput.bold.japanese-vlgothic=VL Gothic ++dialoginput.bold.korean-baekmuk=Baekmuk Gulim ++#dialoginput.bold.korean-baekmuk.motif=Baekmuk Gulim ++dialoginput.bold.korean-un=UnDotum Bold ++#dialoginput.bold.korean-un.motif=UnDotum Bold + + dialoginput.italic.latin-1=DejaVu Sans Mono Oblique +-dialoginput.italic.japanese-x0208=Kochi Gothic +-dialoginput.italic.korean=Baekmuk Dotum ++#dialoginput.italic.latin-1.motif=LuxiMono-Oblique ++dialoginput.italic.japanese-kochi=Kochi Gothic ++dialoginput.italic.japanese-sazanami=Sazanami Gothic ++dialoginput.italic.japanese-vlgothic=VL Gothic ++dialoginput.italic.korean-baekmuk=Baekmuk Gulim ++#dialoginput.italic.korean-baekmuk.motif=Baekmuk Gulim ++dialoginput.italic.korean-un=UnDotum ++#dialoginput.italic.korean-un.motif=UnDotum + + dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +-dialoginput.bolditalic.japanese-x0208=Kochi Gothic +-dialoginput.bolditalic.korean=Baekmuk Dotum +- +-allfonts.chinese-big5=AR PL ZenKai Uni +-allfonts.chinese-gb18030=AR PL ZenKai Uni ++#dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique ++dialoginput.bolditalic.japanese-kochi=Kochi Gothic ++dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic ++dialoginput.bolditalic.japanese-vlgothic=VL Gothic ++dialoginput.bolditalic.korean-baekmuk=Baekmuk Gulim ++#dialoginput.bolditalic.korean-baekmuk.motif=Baekmuk Gulim ++dialoginput.bolditalic.korean-un=UnDotum Bold ++#dialoginput.bolditalic.korean-un.motif=UnDotum Bold + + # Search Sequences + + sequence.allfonts=latin-1 +-sequence.allfonts.Big5=chinese-big5,latin-1 +-sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1 +-sequence.allfonts.EUC-KR=korean,latin-1 +-sequence.allfonts.GB18030=chinese-gb18030,latin-1 +-sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean ++sequence.allfonts.UTF-8.ko=latin-1,korean-un,korean-baekmuk ++sequence.allfonts.UTF-8=latin-1,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu ++sequence.allfonts.UTF-8.ja=latin-1,japanese-vlgothic,japanese-kochi,japanese-sazanami ++sequence.allfonts.UTF-8.zh.CN=latin-1,umingcn,shanheisun,wqy-zenhei ++sequence.allfonts.UTF-8.zh.TW=latin-1,umingtw,shanheisun,wqy-zenhei ++sequence.allfonts.UTF-8.zh.HK=latin-1,uminghk,shanheisun,wqy-zenhei ++sequence.allfonts.UTF-8.zh.SG=latin-1,umingcn,shanheisun,wqy-zenhei ++sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei ++sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei ++sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei ++sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-kochi,japanese-sazanami ++sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk ++sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei ++sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei ++#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala ++sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu ++ ++# Exclusion Ranges ++ ++exclusion.japanese-kochi=0390-03d6,2200-22ef,2701-27be ++exclusion.japanese-sazanami=0390-03d6,2200-22ef,2701-27be ++exclusion.japanese-vlgothic=0390-03d6,2200-22ef,2701-27be + + # Font File Names + +@@ -143,8 +297,58 @@ + filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf + filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf + +-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf +-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf +-filename.AR_PL_ZenKai_Uni=/usr/share/fonts//truetype/arphic/ukai.ttf +-filename.Baekmuk_Dotum=/usr/share/fonts/truetype/baekmuk/dotum.ttf ++filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc ++filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc ++filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc ++filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf ++ ++filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf + filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf ++filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf ++filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf ++filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf ++filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf ++filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf ++filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf ++filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf ++filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf ++filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf ++filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf ++filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf ++ ++filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf ++filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf ++filename.Lohit_Hindi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_hi.ttf ++filename.Lohit_Kannda=/usr/share/fonts/truetype/ttf-kannada-fonts/lohit_kn.ttf ++#filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf ++filename.Lohit_Oriya=/usr/share/fonts/truetype/ttf-oriya-fonts/lohit_or.ttf ++filename.Lohit_Punjabi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_pa.ttf ++filename.Lohit_Tamil=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_ta.ttf ++filename.Lohit_Telugu=/usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf ++#filename.LKLUG=/usr/share/fonts/lklug/lklug.ttf ++ ++filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf ++filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf ++filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf ++filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf ++filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf ++filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf ++filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf ++filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf ++filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf ++filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf ++filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf ++filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf ++ ++# AWT X11 font paths ++awtfontpath.latin-1=/usr/share/fonts/X11/Type1 ++awtfontpath.umingcn=/usr/share/fonts/truetype/arphic ++awtfontpath.uminghk=/usr/share/fonts/truetype/arphic ++awtfontpath.umingtw=/usr/share/fonts/truetype/arphic ++awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic ++awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy ++awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi ++awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami ++awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic ++awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk ++awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts --- cacao-oj6-6b12.orig/debian/patches/jexec.diff +++ cacao-oj6-6b12/debian/patches/jexec.diff @@ -0,0 +1,15 @@ +diff -ru openjdk-6-6b08.bak/jdk/src/solaris/bin/jexec.c openjdk-6-6b08.orig/jdk/src/solaris/bin/jexec.c +--- openjdk/jdk/src/solaris/bin/jexec.c 2008-03-26 09:59:57.000000000 +0100 ++++ openjdk/jdk/src/solaris/bin/jexec.c 2008-04-03 17:14:10.000000000 +0200 +@@ -164,9 +164,10 @@ + + /* Get the path to the java binary, which is in a known position relative + * to our current position, which is in argv[0]. */ +- if (getJavaPath(argv[argi++], java, RELATIVE_DEPTH) != 0) { ++ if (getJavaPath("/usr/lib/jvm/java-6-openjdk/jre/lib/jexec", java, RELATIVE_DEPTH) != 0) { + errorExit(errno, MISSING_JAVA_MSG); + } ++ argi++; + + nargv = (const char **) malloc((argc + 2) * (sizeof (const char *))); + nargv[nargc++] = java; --- cacao-oj6-6b12.orig/debian/patches/gcc-jdk-opt-O2.diff +++ cacao-oj6-6b12/debian/patches/gcc-jdk-opt-O2.diff @@ -0,0 +1,13 @@ +--- openjdk/jdk/make/common/Defs-linux.gmk~ 2007-11-29 12:38:22.578339247 +0100 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2007-11-29 12:43:13.992735167 +0100 +@@ -86,8 +86,8 @@ + # + # Default optimization + # +-CC_HIGHEST_OPT = -O3 +-CC_HIGHER_OPT = -O3 ++CC_HIGHEST_OPT = -O2 ++CC_HIGHER_OPT = -O2 + CC_LOWER_OPT = -O2 + CC_NO_OPT = + --- cacao-oj6-6b12.orig/debian/patches/jdk-freetypeScaler-crash.diff +++ cacao-oj6-6b12/debian/patches/jdk-freetypeScaler-crash.diff @@ -0,0 +1,142 @@ +Description: + + Fixing the bad JNI code in the font manager code. Two issues: + + o The JNIEnv is unique to the thread. It cannot be saved by one thread and + reused by another. Use GetEnv instead. + + o The 'font2D' jobject needs to be converted into a global reference because + its lifetime exceeds the lifetime of a native method call. + +Evaluation: + +Appropriately register/free everything with the garbage collector. + +Fix: + +# HG changeset patch +# User martin +# Date 1224202830 25200 +# Node ID 3c9d6001d8a90698a3540a2a483717f26a98db78 +# Parent 68730f05449cd4f39ce1cb82adc6c4e57f87554f +Crash in freetypeScaler.c due to insufficient GC protection +Summary: NewGlobalRef/DeleteGlobalRef as needed. +Reviewed-by: +Contributed-by: yamauchi@google.com + +diff --git a/make/sun/font/mapfile-vers.openjdk b/jdk/make/sun/font/mapfile-vers.openjdk +--- openjdk/jdk/make/sun/font/mapfile-vers.openjdk ++++ openjdk/jdk/make/sun/font/mapfile-vers.openjdk +@@ -29,6 +29,7 @@ + + SUNWprivate_1.1 { + global: ++ JNI_OnLoad; + getSunFontIDs; + newLayoutTableCache; + freeLayoutTableCache; +diff --git a/src/share/native/sun/font/freetypeScaler.c b/src/share/native/sun/font/freetypeScaler.c +--- openjdk/jdk/src/share/native/sun/font/freetypeScaler.c ++++ openjdk/jdk/src/share/native/sun/font/freetypeScaler.c +@@ -48,16 +48,6 @@ + #define ROUND(x) ((int) (x+0.5)) + + typedef struct { +- /* Important note: +- JNI forbids sharing same env between different threads. +- We are safe, because pointer is overwritten every time we get into +- JNI call (see setupFTContext). +- +- Pointer is used by font data reading callbacks +- such as ReadTTFontFileFunc. +- +- NB: We may consider switching to JNI_GetEnv. */ +- JNIEnv* env; + FT_Library library; + FT_Face face; + jobject font2D; +@@ -90,6 +80,13 @@ + void z_error(char *s) {} + #endif + ++static JavaVM* jvm = NULL; ++ ++JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { ++ jvm = vm; ++ return JNI_VERSION_1_2; ++} ++ + /**************** Error handling utilities *****************/ + + static jmethodID invalidateScalerMID; +@@ -107,6 +104,10 @@ + + FT_Done_Face(scalerInfo->face); + FT_Done_FreeType(scalerInfo->library); ++ ++ if (scalerInfo->font2D != NULL) { ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); ++ } + + if (scalerInfo->directBuffer != NULL) { + (*env)->DeleteGlobalRef(env, scalerInfo->directBuffer); +@@ -131,10 +132,9 @@ + + #define FILEDATACACHESIZE 1024 + +-/* NB: is it ever called? */ + static void CloseTTFontFileFunc(FT_Stream stream) { ++ JNIEnv* env = (JNIEnv*) JNU_GetEnv(jvm, JNI_VERSION_1_2); + FTScalerInfo *scalerInfo = (FTScalerInfo *) stream->pathname.pointer; +- JNIEnv* env = scalerInfo->env; + jclass tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont"); + jfieldID platNameField = + (*env)->GetFieldID(env, tmpClass, "platName", "Ljava/lang/String;"); +@@ -150,8 +150,8 @@ + unsigned char* destBuffer, + unsigned long numBytes) + { ++ JNIEnv* env = (JNIEnv*) JNU_GetEnv(jvm, JNI_VERSION_1_2); + FTScalerInfo *scalerInfo = (FTScalerInfo *) stream->pathname.pointer; +- JNIEnv* env = scalerInfo->env; + jobject bBuffer; + int bread = 0; + +@@ -245,8 +245,7 @@ + if (scalerInfo == NULL) + return 0; + +- scalerInfo->env = env; +- scalerInfo->font2D = font2D; ++ scalerInfo->font2D = (*env)->NewGlobalRef(env, font2D); + scalerInfo->fontDataOffset = 0; + scalerInfo->fontDataLength = 0; + scalerInfo->fileSize = filesize; +@@ -263,6 +262,7 @@ + */ + error = FT_Init_FreeType(&scalerInfo->library); + if (error) { ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); + free(scalerInfo); + return 0; + } +@@ -331,6 +331,7 @@ + } + if (scalerInfo->fontData != NULL) + free(scalerInfo->fontData); ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); + free(scalerInfo); + return 0; + } +@@ -391,8 +392,10 @@ + FTScalerContext *context) { + int errCode = 0; + +- scalerInfo->env = env; +- scalerInfo->font2D = font2D; ++ if (scalerInfo->font2D != NULL) { ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); ++ } ++ scalerInfo->font2D = (*env)->NewGlobalRef(env, font2D); + + FT_Set_Transform(scalerInfo->face, &context->transform, NULL); --- cacao-oj6-6b12.orig/debian/patches/cacao-min-heapsize.diff +++ cacao-oj6-6b12/debian/patches/cacao-min-heapsize.diff @@ -0,0 +1,11 @@ +--- openjdk/jdk/make/common/shared/Platform.gmk.old 2008-08-04 09:36:53.000000000 +0200 ++++ openjdk/jdk/make/common/shared/Platform.gmk 2008-08-04 11:50:14.000000000 +0200 +@@ -309,7 +309,7 @@ + REQUIRED_ALSA_VERSION = ^((0[.]9[.][1-9])|(1[.]0[.][0-9]))[0-9]* + endif + # How much RAM does this machine have: +- MB_OF_MEMORY := $(shell free -m | fgrep Mem: | sed -e 's@\ \ *@ @g' | cut -d' ' -f2) ++ MB_OF_MEMORY := $(shell m=`free -m | fgrep Mem: | sed -e 's@\ \ *@ @g' | cut -d' ' -f2`; if [ "$$m" -lt 384 ]; then echo 384; else echo $$m; fi) + endif + + # Windows with and without CYGWIN will be slightly different --- cacao-oj6-6b12.orig/debian/patches/gcc-hotspot-opt-O2.diff +++ cacao-oj6-6b12/debian/patches/gcc-hotspot-opt-O2.diff @@ -0,0 +1,11 @@ +--- openjdk/hotspot/build/linux/makefiles/gcc.make~ 2007-11-29 12:38:22.578339247 +0100 ++++ openjdk/hotspot/build/linux/makefiles/gcc.make 2007-11-29 12:42:28.742052571 +0100 +@@ -103,7 +103,7 @@ + CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) + + # The flags to use for an Optimized g++ build +-OPT_CFLAGS += -O3 ++OPT_CFLAGS += -O2 + + # Hotspot uses very unstrict aliasing turn this optimization off + OPT_CFLAGS += -fno-strict-aliasing --- cacao-oj6-6b12.orig/debian/patches/cacao-no-mmap-first-page.diff +++ cacao-oj6-6b12/debian/patches/cacao-no-mmap-first-page.diff @@ -0,0 +1,23 @@ +--- cacao/cacao/src/vm/jit/trap.c.orig 2008-07-07 13:36:19.000000000 +0200 ++++ cacao/cacao/src/vm/jit/trap.c 2008-07-23 10:45:30.480113152 +0200 +@@ -59,20 +59,6 @@ + */ + void trap_init(void) + { +-#if !(defined(__ARM__) && defined(__LINUX__)) +- /* On arm-linux the first memory page can't be mmap'ed, as it +- contains the exception vectors. */ +- +- int pagesize; +- +- /* mmap a memory page at address 0x0, so our hardware-exceptions +- work. */ +- +- pagesize = system_getpagesize(); +- +- (void) system_mmap_anonymous(NULL, pagesize, PROT_NONE, MAP_PRIVATE | MAP_FIXED); +-#endif +- + TRACESUBSYSTEMINITIALIZATION("trap_init"); + + #if !defined(TRAP_INSTRUCTION_IS_LOAD) --- cacao-oj6-6b12.orig/debian/patches/gcc-no-stack-protector.diff +++ cacao-oj6-6b12/debian/patches/gcc-no-stack-protector.diff @@ -0,0 +1,32 @@ +--- openjdk/hotspot/build/linux/makefiles/gcc.make~ 2007-11-24 14:49:38.366274732 +0100 ++++ openjdk/hotspot/build/linux/makefiles/gcc.make 2007-11-24 15:00:51.616430558 +0100 +@@ -62,6 +62,7 @@ + CFLAGS += -fno-exceptions + CFLAGS += -D_REENTRANT + CFLAGS += -fcheck-new ++CFLAGS += -fno-stack-protector + + # Always generate full debuginfo on Linux. It'll be in a separate + # debuginfo package when building RPMs. +--- openjdk/corba/make/common/Defs-linux.gmk~ 2008-03-28 20:11:54.075568406 +0100 ++++ openjdk/corba/make/common/Defs-linux.gmk 2008-03-28 20:13:51.537340290 +0100 +@@ -107,6 +107,8 @@ + LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) + endif + ++CFLAGS_REQUIRED += -fno-stack-protector ++ + # Add in platform specific optimizations for all opt levels + CC_HIGHEST_OPT += $(_OPT_$(ARCH)) + CC_HIGHER_OPT += $(_OPT_$(ARCH)) +--- openjdk/jdk/make/common/Defs-linux.gmk~ 2008-03-28 20:11:54.095568707 +0100 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2008-03-28 20:14:15.037694787 +0100 +@@ -117,6 +117,8 @@ + LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) + endif + ++CFLAGS_REQUIRED += -fno-stack-protector ++ + # Add in platform specific optimizations for all opt levels + CC_HIGHEST_OPT += $(_OPT_$(ARCH)) + CC_HIGHER_OPT += $(_OPT_$(ARCH)) --- cacao-oj6-6b12.orig/debian/patches/shebang.diff +++ cacao-oj6-6b12/debian/patches/shebang.diff @@ -0,0 +1,8 @@ +diff -ru openjdk-6-6b08.bak/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh openjdk-6-6b08/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh +--- openjdk/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh 2008-03-26 09:59:56.000000000 +0100 ++++ openjdk/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh 2008-04-02 11:10:52.000000000 +0200 +@@ -1,3 +1,4 @@ ++#!/bin/sh + # + # Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + # --- cacao-oj6-6b12.orig/plugin/icedtea/netscape/javascript/JSRunnable.java +++ cacao-oj6-6b12/plugin/icedtea/netscape/javascript/JSRunnable.java @@ -39,6 +39,8 @@ package netscape.javascript; +import sun.applet.PluginDebug; + /** * Runs a JavaScript object with a run() method in a separate thread. */ @@ -63,7 +65,7 @@ notifyAll(); } } catch (Throwable t) { - System.err.println(t); + PluginDebug.debug(t.toString()); t.printStackTrace(System.err); } } --- cacao-oj6-6b12.orig/plugin/icedtea/netscape/javascript/JSObject.java +++ cacao-oj6-6b12/plugin/icedtea/netscape/javascript/JSObject.java @@ -47,8 +47,11 @@ package netscape.javascript; import java.applet.Applet; -import java.io.IOException; + import sun.applet.PluginAppletViewer; +import sun.applet.PluginDebug; + + /** * JSObject allows Java to manipulate objects that are @@ -90,11 +93,11 @@ * initialize */ private static void initClass() { - System.err.println ("JSObject.initClass"); + PluginDebug.debug ("JSObject.initClass"); } static { - System.err.println ("JSObject INITIALIZER"); + PluginDebug.debug ("JSObject INITIALIZER"); } /** @@ -102,12 +105,12 @@ */ // FIXME: make private! public JSObject(int jsobj_addr) { - System.err.println ("JSObject int CONSTRUCTOR"); + PluginDebug.debug ("JSObject int CONSTRUCTOR"); internal = jsobj_addr; } private JSObject(long jsobj_addr) { - System.err.println ("JSObject long CONSTRUCTOR"); + PluginDebug.debug ("JSObject long CONSTRUCTOR"); long_internal = jsobj_addr; } @@ -117,10 +120,10 @@ */ public Object getMember(String name) { - System.err.println ("JSObject.getMember " + name); + PluginDebug.debug ("JSObject.getMember " + name); Object o = PluginAppletViewer.getMember(internal, name); - System.out.println ("JSObject.getMember GOT " + o); + PluginDebug.debug ("JSObject.getMember GOT " + o); return o; } @@ -132,7 +135,7 @@ // public Object getMember(int index) { return getSlot(index); } public Object getSlot(int index) { - System.err.println ("JSObject.getSlot " + index); + PluginDebug.debug ("JSObject.getSlot " + index); return PluginAppletViewer.getSlot(internal, index); } @@ -144,7 +147,7 @@ */ public void setMember(String name, Object value) { - System.err.println ("JSObject.setMember " + name + " " + value); + PluginDebug.debug ("JSObject.setMember " + name + " " + value); PluginAppletViewer.setMember(internal, name, value); } @@ -158,7 +161,7 @@ // } public void setSlot(int index, Object value) { - System.err.println ("JSObject.setSlot " + index + " " + value); + PluginDebug.debug ("JSObject.setSlot " + index + " " + value); PluginAppletViewer.setSlot(internal, index, value); } @@ -171,7 +174,7 @@ */ public void removeMember(String name) { - System.err.println ("JSObject.removeMember " + name); + PluginDebug.debug ("JSObject.removeMember " + name); PluginAppletViewer.removeMember(internal, name); } @@ -183,10 +186,13 @@ */ public Object call(String methodName, Object args[]) { + if (args == null) + args = new Object[0]; + System.err.print ("JSObject.call " + methodName); for (int i = 0; i < args.length; i++) System.err.print (" " + args[i]); - System.err.println(""); + PluginDebug.debug(""); return PluginAppletViewer.call(internal, methodName, args); } @@ -198,7 +204,7 @@ */ public Object eval(String s) { - System.err.println("JSObject.eval " + s); + PluginDebug.debug("JSObject.eval " + s); return PluginAppletViewer.eval(internal, s); } @@ -208,7 +214,7 @@ */ public String toString() { - System.err.println("JSObject.toString"); + PluginDebug.debug("JSObject.toString"); return PluginAppletViewer.javascriptToString(internal); } @@ -223,12 +229,12 @@ */ public static JSObject getWindow(Applet applet) { - System.err.println("JSObject.getWindow"); + PluginDebug.debug("JSObject.getWindow"); // FIXME: handle long case as well. int internal = 0; internal = ((PluginAppletViewer) applet.getAppletContext()).getWindow(); - System.out.println ("GOT IT: " + internal); + PluginDebug.debug ("GOT IT: " + internal); return new JSObject(internal); } @@ -239,7 +245,7 @@ */ protected void finalize() { - System.err.println("JSObject.finalize "); + PluginDebug.debug("JSObject.finalize "); PluginAppletViewer.JavaScriptFinalize(internal); } @@ -250,7 +256,7 @@ */ public boolean equals(Object obj) { - System.err.println("JSObject.equals " + obj); + PluginDebug.debug("JSObject.equals " + obj); return false; } --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/VoidPluginCallRequest.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/VoidPluginCallRequest.java @@ -41,14 +41,13 @@ public class VoidPluginCallRequest extends PluginCallRequest { public VoidPluginCallRequest(String message, String returnString) { super(message, returnString); - System.out.println ("VoidPLUGINCAlL " + message + " " + returnString); + PluginDebug.debug ("VoidPLUGINCAlL " + message + " " + returnString); } public void parseReturn(String message) { setDone(true); } - /** * Returns whether the given message is serviceable by this object * --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginMain.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginMain.java @@ -26,23 +26,20 @@ package sun.applet; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.net.Socket; -import java.security.Policy; import java.util.Enumeration; import java.util.Properties; - -import net.sourceforge.jnlp.runtime.JNLPRuntime; - /** * The main entry point into PluginAppletViewer. */ public class PluginMain { - final boolean redirectStreams = true; + final boolean redirectStreams = System.getenv().containsKey("ICEDTEAPLUGIN_DEBUG"); static PluginStreamHandler streamHandler; // This is used in init(). Getting rid of this is desirable but depends @@ -57,25 +54,10 @@ public static void main(String args[]) throws IOException { - - if (args.length != 1) { - // Indicate to plugin that appletviewer is installed correctly. - System.exit(0); - } - - int port = 0; - try { - port = Integer.parseInt(args[0]); - } catch (NumberFormatException e) { - System.err.println("Failed to parse port number: " + e); - System.exit(1); - } - - PluginMain pm = new PluginMain(); - + PluginMain pm = new PluginMain(System.getProperty("user.home") + "/.icedteaplugin/icedtea-plugin-to-appletviewer", System.getProperty("user.home") + "/.icedteaplugin/icedtea-appletviewer-to-plugin"); } - public PluginMain() { + public PluginMain(String inPipe, String outPipe) { if (redirectStreams) { try { @@ -86,12 +68,12 @@ System.setOut(new PrintStream(new FileOutputStream(outFile))); } catch (Exception e) { - System.err.println("Unable to redirect streams"); + PluginDebug.debug("Unable to redirect streams"); e.printStackTrace(); } } - connect(50007); + connect(inPipe, outPipe); securityContext = new PluginAppletSecurityContext(0); securityContext.setStreamhandler(streamHandler); @@ -106,23 +88,10 @@ streamHandler.startProcessing(); } - public void connect(int port) { - /* - * Code for TCP/IP communication - */ - Socket socket = null; - - try { - socket = new Socket("localhost", port); - } catch (Exception e) { - e.printStackTrace(); - } - - System.err.println("Socket initialized. Proceeding with start()"); - + public void connect(String inPipe, String outPipe) { try { - streamHandler = new PluginStreamHandler(socket.getInputStream(), socket.getOutputStream()); - System.err.println("Streams initialized"); + streamHandler = new PluginStreamHandler(new FileInputStream(inPipe), new FileOutputStream(outPipe)); + PluginDebug.debug("Streams initialized"); } catch (IOException ioe) { ioe.printStackTrace(); } --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/GetMemberPluginCallRequest.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/GetMemberPluginCallRequest.java @@ -43,11 +43,11 @@ public GetMemberPluginCallRequest(String message, String returnString) { super(message, returnString); - System.out.println ("GetMEMBerPLUGINCAlL " + message + " " + returnString); + PluginDebug.debug ("GetMEMBerPLUGINCAlL " + message + " " + returnString); } public void parseReturn(String message) { - System.out.println ("GetMEMBerparseReturn GOT: " + message); + PluginDebug.debug ("GetMEMBerparseReturn GOT: " + message); String[] args = message.split(" "); // FIXME: add thread ID to messages to support multiple // threads using the netscape.javascript package. --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/GetWindowPluginCallRequest.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/GetWindowPluginCallRequest.java @@ -51,7 +51,7 @@ } public void parseReturn(String message) { - System.out.println ("GetWINDOWparseReturn GOT: " + message); + PluginDebug.debug ("GetWINDOWparseReturn GOT: " + message); String[] args = message.split(" "); // FIXME: add thread ID to messages to support multiple // threads using the netscape.javascript package. --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java @@ -188,7 +188,7 @@ c = Class.forName(name); } catch (ClassNotFoundException cnfe) { - System.err.println("Class " + name + " not found in primordial loader. Looking in " + cl); + PluginDebug.debug("Class " + name + " not found in primordial loader. Looking in " + cl); try { c = cl.loadClass(name); } catch (ClassNotFoundException e) { @@ -238,6 +238,8 @@ int identifier = 0; public static PluginStreamHandler streamhandler; + + long startTime = 0; public PluginAppletSecurityContext(int identifier) { this.identifier = identifier; @@ -289,7 +291,7 @@ } public void associateSrc(ClassLoader cl, String src) { - System.err.println("Associating " + cl + " with " + src); + PluginDebug.debug("Associating " + cl + " with " + src); this.classLoaders.put(cl, src); } @@ -299,6 +301,8 @@ public void handleMessage(int reference, String src, AccessControlContext callContext, String message) { + startTime = new java.util.Date().getTime(); + try { if (message.startsWith("FindClass")) { ClassLoader cl = null; @@ -503,7 +507,7 @@ String[] args = message.split(" "); Integer arrayID = parseCall(args[1], null, Integer.class); - System.out.println("ARRAYID: " + arrayID); + //System.out.println("ARRAYID: " + arrayID); Object o = (Object) store.getObject(arrayID); int len = 0; len = Array.getLength(o); @@ -568,9 +572,9 @@ Integer classID = parseCall(args[1], null, Integer.class); Integer methodID = parseCall(args[2], null, Integer.class); - System.out.println("GETTING: " + methodID); + PluginDebug.debug("GETTING: " + methodID); final Method m = (Method) store.getObject(methodID); - System.out.println("GOT: " + m); + PluginDebug.debug("GOT: " + m); Class[] argTypes = m.getParameterTypes(); Object[] arguments = new Object[argTypes.length]; @@ -796,8 +800,8 @@ + Integer .toString(((int) b[i]) & 0x0ff, 16)); - System.out.println("Java: GetStringChars: " + o); - System.out.println(" String BYTES: " + buf); + PluginDebug.debug("Java: GetStringChars: " + o); + PluginDebug.debug(" String BYTES: " + buf); write(reference, "GetStringChars " + buf); } else if (message.startsWith("NewArray")) { String[] args = message.split(" "); @@ -874,7 +878,7 @@ write(reference, "NewObject " + store.getIdentifier(ret)); } else if (message.startsWith("NewString")) { - System.out.println("MESSAGE: " + message); + PluginDebug.debug("MESSAGE: " + message); String[] args = message.split(" "); Integer strlength = parseCall(args[1], null, Integer.class); int bytelength = 2 * strlength; @@ -882,14 +886,14 @@ String ret = null; for (int i = 0; i < strlength; i++) { int c = parseCall(args[2 + i], null, Integer.class); - System.out.println("char " + i + " " + c); + PluginDebug.debug("char " + i + " " + c); // Low. byteArray[2 * i] = (byte) (c & 0x0ff); // High. byteArray[2 * i + 1] = (byte) ((c >> 8) & 0x0ff); } ret = new String(byteArray, 0, bytelength, "UTF-16LE"); - System.out.println("NEWSTRING: " + ret); + PluginDebug.debug("NEWSTRING: " + ret); // System.out.println ("NEWOBJ: CALLED: " + ret); // System.out.println ("NEWOBJ: CALLED: " + @@ -897,7 +901,7 @@ store.reference(ret); write(reference, "NewString " + store.getIdentifier(ret)); } else if (message.startsWith("NewStringUTF")) { - System.out.println("MESSAGE: " + message); + PluginDebug.debug("MESSAGE: " + message); String[] args = message.split(" "); byte[] byteArray = new byte[60]; String ret = null; @@ -916,12 +920,12 @@ } byteArray[i] = (byte) 0; ret = new String(byteArray, "UTF-8"); - System.out.println("NEWSTRINGUTF: " + ret); + PluginDebug.debug("NEWSTRINGUTF: " + ret); store.reference(ret); write(reference, "NewStringUTF " + store.getIdentifier(ret)); } else if (message.startsWith("ExceptionOccurred")) { - System.out.println("EXCEPTION: " + throwable); + PluginDebug.debug("EXCEPTION: " + throwable); if (throwable != null) store.reference(throwable); write(reference, "ExceptionOccurred " @@ -971,6 +975,7 @@ if (message.startsWith("CallMethod") || message.startsWith("CallStaticMethod")) throwable = t.getCause(); } + } /** @@ -991,7 +996,7 @@ String classSrc = this.classLoaders.get(target.getClassLoader()); - System.err.println("jsSrc=" + jsSrc + " classSrc=" + classSrc); + PluginDebug.debug("jsSrc=" + jsSrc + " classSrc=" + classSrc); // if src is not a file and class loader does not map to the same base, UniversalBrowserRead (BrowserReadPermission) must be set if (jsSrc != "file://" && !classSrc.equals(jsSrc)) { @@ -1027,10 +1032,10 @@ public AccessControlContext getClosedAccessControlContext() { // Deny everything Permissions p = new Permissions(); - ProtectionDomain pd = new ProtectionDomain(PluginAppletSecurityContext.class.getProtectionDomain().getCodeSource(), p); + ProtectionDomain pd = new ProtectionDomain(null, p); return new AccessControlContext(new ProtectionDomain[] {pd}); } - + public AccessControlContext getAccessControlContext(String[] nsPrivilegeList, String src) { /* @@ -1141,7 +1146,7 @@ if (privilege.equals("UniversalBrowserRead")) { BrowserReadPermission bp = new BrowserReadPermission(); grantedPermissions.add(bp); - } else if (privilege.equals("UniversalJavaPermissions")) { + } else if (privilege.equals("UniversalJavaPermission")) { AllPermission ap = new AllPermission(); grantedPermissions.add(ap); } --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginStreamHandler.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginStreamHandler.java @@ -2,6 +2,7 @@ import java.io.BufferedReader; import java.io.BufferedWriter; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -10,10 +11,8 @@ import java.io.StreamTokenizer; import java.net.MalformedURLException; import java.nio.charset.Charset; -import java.security.AccessController; -import java.security.PrivilegedAction; +import java.util.Date; import java.util.LinkedList; -import java.util.StringTokenizer; public class PluginStreamHandler { @@ -31,14 +30,18 @@ PluginAppletViewer pav; + static Date d = new Date(); + static long startTime = d.getTime(); + static long totalWait = 0; + public PluginStreamHandler(InputStream inputstream, OutputStream outputstream) throws MalformedURLException, IOException { - System.err.println("Current context CL=" + Thread.currentThread().getContextClassLoader()); + PluginDebug.debug("Current context CL=" + Thread.currentThread().getContextClassLoader()); try { pav = (PluginAppletViewer) ClassLoader.getSystemClassLoader().loadClass("sun.applet.PluginAppletViewer").newInstance(); - System.err.println("Loaded: " + pav + " CL=" + pav.getClass().getClassLoader()); + PluginDebug.debug("Loaded: " + pav + " CL=" + pav.getClass().getClassLoader()); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -50,17 +53,17 @@ e.printStackTrace(); } - System.err.println("Creating consumer..."); + PluginDebug.debug("Creating consumer..."); consumer = new PluginMessageConsumer(this); // Set up input and output pipes. Use UTF-8 encoding. pluginInputReader = new BufferedReader(new InputStreamReader(inputstream, Charset.forName("UTF-8"))); - pluginInputTokenizer = new StreamTokenizer(pluginInputReader); + /*pluginInputTokenizer = new StreamTokenizer(pluginInputReader); pluginInputTokenizer.resetSyntax(); pluginInputTokenizer.whitespaceChars('\u0000', '\u0000'); - pluginInputTokenizer.wordChars('\u0001', '\u00FF'); + pluginInputTokenizer.wordChars('\u0001', '\u00FF');*/ pluginOutputWriter = new BufferedWriter(new OutputStreamWriter (outputstream, Charset.forName("UTF-8"))); @@ -84,8 +87,34 @@ while (true) { - System.err.println("Waiting for data..."); + PluginDebug.debug("Waiting for data..."); + + long b4 = new Date().getTime(); + + String s = read(); + + long after = new Date().getTime(); + totalWait += (after - b4); + //System.err.println("Total wait time: " + totalWait); + + if (s != null) { + consumer.consume(s); + } else { + try { + // Close input/output channels to plugin. + pluginInputReader.close(); + pluginOutputWriter.close(); + } catch (IOException exception) { + // Deliberately ignore IOException caused by broken + // pipe since plugin may have already detached. + } + AppletSecurityContextManager.dumpStore(0); + PluginDebug.debug("APPLETVIEWER: exiting appletviewer"); + System.exit(0); + } + +/* int readChar = -1; // blocking read, discard first character try { @@ -97,7 +126,7 @@ // if not disconnected if (readChar != -1) { String s = read(); - System.err.println("Got data, consuming " + s); + PluginDebug.debug("Got data, consuming " + s); consumer.consume(s); } else { try { @@ -109,9 +138,10 @@ // pipe since plugin may have already detached. } AppletSecurityContextManager.dumpStore(0); - System.err.println("APPLETVIEWER: exiting appletviewer"); + PluginDebug.debug("APPLETVIEWER: exiting appletviewer"); System.exit(0); } +*/ } } }; @@ -131,14 +161,14 @@ // pipe since plugin may have already detached. } AppletSecurityContextManager.dumpStore(0); - System.err.println("APPLETVIEWER: exiting appletviewer"); + PluginDebug.debug("APPLETVIEWER: exiting appletviewer"); System.exit(0); } //PluginAppletSecurityContext.contexts.get(0).store.dump(); PluginDebug.debug("Plugin posted: " + s); - System.err.println("Consuming " + s); + PluginDebug.debug("Consuming " + s); consumer.consume(s); PluginDebug.debug("Added to queue"); @@ -191,7 +221,7 @@ try { - System.err.println("Breakdown -- type: " + type + " identifier: " + identifier + " reference: " + reference + " src: " + src + " privileges: " + privileges + " rest: \"" + rest + "\""); + PluginDebug.debug("Breakdown -- type: " + type + " identifier: " + identifier + " reference: " + reference + " src: " + src + " privileges: " + privileges + " rest: \"" + rest + "\""); if (rest.contains("JavaScriptGetWindow") || rest.contains("JavaScriptGetMember") @@ -286,29 +316,31 @@ */ private String read() { + String message = null; + try { - pluginInputTokenizer.nextToken(); + message = pluginInputReader.readLine(); + PluginDebug.debug(" PIPE: appletviewer read: " + message); } catch (IOException e) { - throw new RuntimeException(e); - } - String message = pluginInputTokenizer.sval; - PluginDebug.debug(" PIPE: appletviewer read: " + message); - if (message == null || message.equals("shutdown")) { - synchronized(shuttingDown) { - shuttingDown = true; - } - try { - // Close input/output channels to plugin. - pluginInputReader.close(); - pluginOutputWriter.close(); - } catch (IOException exception) { - // Deliberately ignore IOException caused by broken - // pipe since plugin may have already detached. + + if (message == null || message.equals("shutdown")) { + synchronized(shuttingDown) { + shuttingDown = true; + } + try { + // Close input/output channels to plugin. + pluginInputReader.close(); + pluginOutputWriter.close(); + } catch (IOException exception) { + // Deliberately ignore IOException caused by broken + // pipe since plugin may have already detached. + } + AppletSecurityContextManager.dumpStore(0); + PluginDebug.debug("APPLETVIEWER: exiting appletviewer"); + System.exit(0); } - AppletSecurityContextManager.dumpStore(0); - System.err.println("APPLETVIEWER: exiting appletviewer"); - System.exit(0); } + return message; } @@ -322,10 +354,10 @@ public void write(String message) { - System.err.println(" PIPE: appletviewer wrote: " + message); + PluginDebug.debug(" PIPE: appletviewer wrote: " + message); synchronized(pluginOutputWriter) { try { - pluginOutputWriter.write(message, 0, message.length()); + pluginOutputWriter.write(message + "\n", 0, message.length()); pluginOutputWriter.write(0); pluginOutputWriter.flush(); } catch (IOException e) { @@ -339,7 +371,7 @@ // either ways, if the pipe is broken, there is nothing // we can do anymore. Don't hang around. - System.err.println("Unable to write to PIPE. APPLETVIEWER exiting"); + PluginDebug.debug("Unable to write to PIPE. APPLETVIEWER exiting"); System.exit(1); } } @@ -348,7 +380,7 @@ /* synchronized(writeQueue) { writeQueue.add(message); - System.err.println(" PIPE: appletviewer wrote: " + message); + PluginDebug.debug(" PIPE: appletviewer wrote: " + message); } */ --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/RequestQueue.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/RequestQueue.java @@ -7,7 +7,7 @@ private int size = 0; public void post(PluginCallRequest request) { - System.err.println("Securitymanager=" + System.getSecurityManager()); + PluginDebug.debug("Securitymanager=" + System.getSecurityManager()); if (head == null) { head = tail = request; tail.setNext(null); --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginAppletViewer.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginAppletViewer.java @@ -133,6 +133,9 @@ private static PluginStreamHandler streamhandler; private static PluginCallRequestFactory requestFactory; + + private int proposedHeightFactor; + private int proposedWidthFactor; /** * Null constructor to allow instantiation via newInstance() @@ -153,6 +156,19 @@ // FIXME: when/where do we remove this? PluginDebug.debug ("PARSING: PUTTING " + identifier + " " + this); applets.put(identifier, this); + + + // we intercept height and width specifications here because + proposedHeightFactor = 1; + proposedWidthFactor = 1; + + if (atts.get("heightPercentage") != null) { + proposedHeightFactor = (Integer) atts.get("heightPercentage")/100; + } + + if (((String) atts.get("width")).endsWith("%")) { + proposedWidthFactor = (Integer) atts.get("widthPercentage")/100; + } AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -370,17 +386,20 @@ public void handleMessage(int reference, String message) { if (message.startsWith("width")) { - int width = - Integer.parseInt(message.substring("width".length() + 1)); - //panel.setAppletSizeIfNeeded(width, -1); - panel.setSize(width, getHeight()); - setSize(width, getHeight()); - } else if (message.startsWith("height")) { - int height = - Integer.parseInt(message.substring("height".length() + 1)); - //panel.setAppletSizeIfNeeded(-1, height); - panel.setSize(getWidth(), height); - setSize(getWidth(), height); + + String[] dimMsg = message.split(" "); + // 0 => width, 1=> width_value, 2 => height, 3=> height_value + + int height = proposedHeightFactor*Integer.parseInt(dimMsg[3]); + int width = proposedWidthFactor*Integer.parseInt(dimMsg[1]); + + if (panel instanceof NetxPanel) + ((NetxPanel) panel).updateSizeInAtts(height, width); + + panel.setSize(width, height); + setSize(width, height); + + panel.validate(); } else if (message.startsWith("destroy")) { dispose(); } else if (message.startsWith("GetJavaObject")) { @@ -402,16 +421,21 @@ } } - System.err.println ("Looking for object " + o + " panel is " + panel.getClass()); + PluginDebug.debug ("Looking for object " + o + " panel is " + panel.getClass()); AppletSecurityContextManager.getSecurityContext(0).store(o); - System.err.println ("WRITING 1: " + "context 0 reference " + reference + " GetJavaObject " + PluginDebug.debug ("WRITING 1: " + "context 0 reference " + reference + " GetJavaObject " + AppletSecurityContextManager.getSecurityContext(0).getIdentifier(o)); streamhandler.write("context 0 reference " + reference + " GetJavaObject " + AppletSecurityContextManager.getSecurityContext(0).getIdentifier(o)); - System.err.println ("WRITING 1 DONE"); + PluginDebug.debug ("WRITING 1 DONE"); } } - + + // FIXME: Kind of hackish way to ensure synchronized re-drawing + private synchronized void forceredraw() { + doLayout(); + } + /** * Send the initial set of events to the appletviewer event queue. * On start-up the current behaviour is to load the applet and call @@ -442,7 +466,7 @@ String [] events = splitSeparator(",", eventList); for (int i = 0; i < events.length; i++) { - System.out.println("Adding event to queue: " + events[i]); + PluginDebug.debug("Adding event to queue: " + events[i]); if (events[i].equals("dispose")) panel.sendEvent(AppletPanel.APPLET_DISPOSE); else if (events[i].equals("load")) @@ -461,7 +485,7 @@ panel.sendEvent(AppletPanel.APPLET_ERROR); else // non-fatal error if we get an unrecognized event - System.out.println("Unrecognized event name: " + events[i]); + PluginDebug.debug("Unrecognized event name: " + events[i]); } while (!panel.emptyEventQueue()) ; @@ -646,28 +670,28 @@ } public int getWindow() { - System.out.println ("STARTING getWindow"); + PluginDebug.debug ("STARTING getWindow"); PluginCallRequest request = requestFactory.getPluginCallRequest("window", "instance " + identifier + " " + "GetWindow", "JavaScriptGetWindow"); - System.out.println ("STARTING postCallRequest"); + PluginDebug.debug ("STARTING postCallRequest"); streamhandler.postCallRequest(request); - System.out.println ("STARTING postCallRequest done"); + PluginDebug.debug ("STARTING postCallRequest done"); streamhandler.write(request.getMessage()); try { - System.out.println ("wait request 1"); + PluginDebug.debug ("wait request 1"); synchronized(request) { - System.out.println ("wait request 2"); + PluginDebug.debug ("wait request 2"); while ((Integer) request.getObject() == 0) request.wait(); - System.out.println ("wait request 3"); + PluginDebug.debug ("wait request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println ("STARTING getWindow DONE"); + PluginDebug.debug ("STARTING getWindow DONE"); return (Integer) request.getObject(); } @@ -684,18 +708,18 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.err.println ("wait getMEM request 1"); + PluginDebug.debug ("wait getMEM request 1"); synchronized(request) { - System.err.println ("wait getMEM request 2"); + PluginDebug.debug ("wait getMEM request 2"); while (request.isDone() == false) request.wait(); - System.err.println ("wait getMEM request 3 GOT: " + request.getObject().getClass()); + PluginDebug.debug ("wait getMEM request 3 GOT: " + request.getObject().getClass()); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.err.println (" getMember DONE"); + PluginDebug.debug (" getMember DONE"); return request.getObject(); } @@ -712,19 +736,19 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait setMem request: " + request.getMessage()); - System.out.println ("wait setMem request 1"); + PluginDebug.debug ("wait setMem request: " + request.getMessage()); + PluginDebug.debug ("wait setMem request 1"); synchronized(request) { - System.out.println ("wait setMem request 2"); + PluginDebug.debug ("wait setMem request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait setMem request 3"); + PluginDebug.debug ("wait setMem request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" setMember DONE"); + PluginDebug.debug (" setMember DONE"); } // FIXME: handle long index as well. @@ -739,18 +763,18 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait setSlot request 1"); + PluginDebug.debug ("wait setSlot request 1"); synchronized(request) { - System.out.println ("wait setSlot request 2"); + PluginDebug.debug ("wait setSlot request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait setSlot request 3"); + PluginDebug.debug ("wait setSlot request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" setSlot DONE"); + PluginDebug.debug (" setSlot DONE"); } public static Object getSlot(int internal, int index) @@ -762,18 +786,18 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait getSlot request 1"); + PluginDebug.debug ("wait getSlot request 1"); synchronized(request) { - System.out.println ("wait getSlot request 2"); + PluginDebug.debug ("wait getSlot request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait getSlot request 3"); + PluginDebug.debug ("wait getSlot request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" getSlot DONE"); + PluginDebug.debug (" getSlot DONE"); return request.getObject(); } @@ -789,18 +813,18 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait eval request 1"); + PluginDebug.debug ("wait eval request 1"); synchronized(request) { - System.out.println ("wait eval request 2"); + PluginDebug.debug ("wait eval request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait eval request 3"); + PluginDebug.debug ("wait eval request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" getSlot DONE"); + PluginDebug.debug (" getSlot DONE"); return request.getObject(); } @@ -815,18 +839,18 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait removeMember request 1"); + PluginDebug.debug ("wait removeMember request 1"); synchronized(request) { - System.out.println ("wait removeMember request 2"); + PluginDebug.debug ("wait removeMember request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait removeMember request 3"); + PluginDebug.debug ("wait removeMember request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" RemoveMember DONE"); + PluginDebug.debug (" RemoveMember DONE"); } public static Object call(int internal, String name, Object args[]) @@ -846,18 +870,18 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait call request 1"); + PluginDebug.debug ("wait call request 1"); synchronized(request) { - System.out.println ("wait call request 2"); + PluginDebug.debug ("wait call request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait call request 3"); + PluginDebug.debug ("wait call request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" Call DONE"); + PluginDebug.debug (" Call DONE"); return request.getObject(); } @@ -870,18 +894,18 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait finalize request 1"); + PluginDebug.debug ("wait finalize request 1"); synchronized(request) { - System.out.println ("wait finalize request 2"); + PluginDebug.debug ("wait finalize request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait finalize request 3"); + PluginDebug.debug ("wait finalize request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" finalize DONE"); + PluginDebug.debug (" finalize DONE"); } public static String javascriptToString(int internal) @@ -893,27 +917,27 @@ streamhandler.postCallRequest(request); streamhandler.write(request.getMessage()); try { - System.out.println ("wait ToString request 1"); + PluginDebug.debug ("wait ToString request 1"); synchronized(request) { - System.out.println ("wait ToString request 2"); + PluginDebug.debug ("wait ToString request 2"); while (request.isDone() == false) request.wait(); - System.out.println ("wait ToString request 3"); + PluginDebug.debug ("wait ToString request 3"); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted waiting for call request.", e); } - System.out.println (" ToString DONE"); + PluginDebug.debug (" ToString DONE"); return (String) request.getObject(); } // FIXME: make this private and access it from JSObject using // reflection. private void write(String message) throws IOException { - System.err.println ("WRITING 2: " + "instance " + identifier + " " + message); + PluginDebug.debug ("WRITING 2: " + "instance " + identifier + " " + message); streamhandler.write("instance " + identifier + " " + message); - System.err.println ("WRITING 2 DONE"); + PluginDebug.debug ("WRITING 2 DONE"); } public void setStream(String key, InputStream stream)throws IOException{ @@ -1207,7 +1231,7 @@ skipSpace(in); val = buf.toString(); } - System.err.println("PUT " + att + " = '" + val + "'"); + PluginDebug.debug("PUT " + att + " = '" + val + "'"); if (! val.equals("")) { atts.put(att.toLowerCase(java.util.Locale.ENGLISH), val); } @@ -1366,6 +1390,11 @@ if (val == null) { statusMsgStream.println(requiresNameWarning); } else if (atts != null) { + // to prevent headaches, c++ side encodes &, < and > + // decode them back + val = val.replace(">", ">"); + val = val.replace("<", "<"); + val = val.replace("&", "&"); atts.put(att.toLowerCase(), val); } else { statusMsgStream.println(paramOutsideWarning); @@ -1389,11 +1418,21 @@ } if (atts.get("width") == null) { - atts.put("width", "100%"); - } + atts.put("width", "100"); + atts.put("widthPercentage", 100); + } else if (((String) atts.get("width")).endsWith("%")) { + String w = (String) atts.get("width"); + atts.put("width", "100"); + atts.put("widthPercentage", Integer.parseInt((w.substring(0, w.length() -1)))); + } if (atts.get("height") == null) { - atts.put("height", "100%"); + atts.put("height", "100"); + atts.put("heightPercentage", 100); + } else if (((String) atts.get("height")).endsWith("%")) { + String h = (String) atts.get("height"); + atts.put("height", "100"); + atts.put("heightPercentage", Integer.parseInt(h.substring(0, h.length() -1))); } } else if (nm.equalsIgnoreCase("object")) { @@ -1415,11 +1454,21 @@ } if (atts.get("width") == null) { - atts.put("width", "100%"); - } + atts.put("width", "100"); + atts.put("widthPercentage", 100); + } else if (((String) atts.get("width")).endsWith("%")) { + String w = (String) atts.get("width"); + atts.put("width", "100"); + atts.put("widthPercentage", Integer.parseInt(w.substring(0, w.length() -1))); + } if (atts.get("height") == null) { - atts.put("height", "100%"); + atts.put("height", "100"); + atts.put("heightPercentage", 100); + } else if (((String) atts.get("height")).endsWith("%")) { + String h = (String) atts.get("height"); + atts.put("height", "100"); + atts.put("heightPercentage", Integer.parseInt(h.substring(0, h.length() -1))); } } else if (nm.equalsIgnoreCase("embed")) { @@ -1439,11 +1488,21 @@ } if (atts.get("width") == null) { - atts.put("width", "100%"); - } + atts.put("width", "100"); + atts.put("widthPercentage", 100); + } else if (((String) atts.get("width")).endsWith("%")) { + String w = (String) atts.get("width"); + atts.put("width", "100"); + atts.put("widthPercentage", Integer.parseInt(w.substring(0, w.length() -1))); + } if (atts.get("height") == null) { - atts.put("height", "100%"); + atts.put("height", "100"); + atts.put("heightPercentage", 100); + } else if (((String) atts.get("height")).endsWith("%")) { + String h = (String) atts.get("height"); + atts.put("height", "100"); + atts.put("heightPercentage", Integer.parseInt(h.substring(0, h.length() -1))); } } else if (nm.equalsIgnoreCase("app")) { @@ -1460,11 +1519,23 @@ atts2.put("codebase", nm); } if (atts2.get("width") == null) { - atts2.put("width", "100%"); + atts2.put("width", "100"); + atts2.put("widthPercentage", 100); + } else if (((String) atts.get("width")).endsWith("%")) { + String w = (String) atts.get("width"); + atts2.put("width", "100"); + atts2.put("widthPercentage", Integer.parseInt(w.substring(0, w.length() -1))); } + if (atts2.get("height") == null) { - atts2.put("height", "100%"); + atts2.put("height", "100"); + atts2.put("heightPercentage", 100); + } else if (((String) atts.get("height")).endsWith("%")) { + String h = (String) atts.get("height"); + atts2.put("height", "100"); + atts2.put("heightPercentage", Integer.parseInt(h.substring(0, h.length() -1))); } + printTag(statusMsgStream, atts2); statusMsgStream.println(); } --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginMessageHandlerWorker.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginMessageHandlerWorker.java @@ -44,9 +44,9 @@ // Sleep when there is nothing to do try { Thread.sleep(Integer.MAX_VALUE); - System.err.println("Consumer thread " + id + " sleeping..."); + PluginDebug.debug("Consumer thread " + id + " sleeping..."); } catch (InterruptedException ie) { - System.err.println("Consumer thread " + id + " woken..."); + PluginDebug.debug("Consumer thread " + id + " woken..."); // nothing.. someone woke us up, see if there // is work to do } --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginObjectStore.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginObjectStore.java @@ -88,36 +88,36 @@ objects.put(nextUniqueIdentifier, object); counts.put(nextUniqueIdentifier, 1); identifiers.put(object, nextUniqueIdentifier); - System.out.println("JAVA ADDED: " + nextUniqueIdentifier); - System.out.println("JAVA REFERENCED: " + nextUniqueIdentifier - + " to: 1"); + //System.out.println("JAVA ADDED: " + nextUniqueIdentifier); + //System.out.println("JAVA REFERENCED: " + nextUniqueIdentifier + // + " to: 1"); nextUniqueIdentifier++; } else { counts.put(identifier, counts.get(identifier) + 1); - System.out.println("JAVA REFERENCED: " + identifier + - " to: " + counts.get(identifier)); + //System.out.println("JAVA REFERENCED: " + identifier + + // " to: " + counts.get(identifier)); } } public void unreference(int identifier) { Integer currentCount = counts.get(identifier); if (currentCount == null) { - System.out.println("ERROR UNREFERENCING: " + identifier); + //System.out.println("ERROR UNREFERENCING: " + identifier); return; } if (currentCount == 1) { - System.out.println("JAVA DEREFERENCED: " + identifier - + " to: 0"); + //System.out.println("JAVA DEREFERENCED: " + identifier + // + " to: 0"); Object object = objects.get(identifier); objects.remove(identifier); counts.remove(identifier); identifiers.remove(object); - System.out.println("JAVA REMOVED: " + identifier); + //System.out.println("JAVA REMOVED: " + identifier); } else { counts.put(identifier, currentCount - 1); - System.out.println("JAVA DEREFERENCED: " + - identifier + " to: " + - counts.get(identifier)); + //System.out.println("JAVA DEREFERENCED: " + + // identifier + " to: " + + // counts.get(identifier)); } } @@ -125,7 +125,7 @@ Iterator i = objects.keySet().iterator(); while (i.hasNext()) { Object key = i.next(); - System.err.println(key + "::" + objects.get(key)); + PluginDebug.debug(key + "::" + objects.get(key)); } } } --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/TestEnv.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/TestEnv.java @@ -46,66 +46,66 @@ public String complexStringField = "z\uD834\uDD1E\u6C34"; public static void TestIt() { - System.out.println("TestIt"); + PluginDebug.debug("TestIt"); } public static void TestItBool(boolean arg) { - System.out.println("TestItBool: " + arg); + PluginDebug.debug("TestItBool: " + arg); } public static void TestItByte(byte arg) { - System.out.println("TestItByte: " + arg); + PluginDebug.debug("TestItByte: " + arg); } public static void TestItChar(char arg) { - System.out.println("TestItChar: " + arg); + PluginDebug.debug("TestItChar: " + arg); } public static void TestItShort(short arg) { - System.out.println("TestItShort: " + arg); + PluginDebug.debug("TestItShort: " + arg); } public static void TestItInt(int arg) { - System.out.println("TestItInt: " + arg); + PluginDebug.debug("TestItInt: " + arg); } public static void TestItLong(long arg) { - System.out.println("TestItLong: " + arg); + PluginDebug.debug("TestItLong: " + arg); } public static void TestItFloat(float arg) { - System.out.println("TestItFloat: " + arg); + PluginDebug.debug("TestItFloat: " + arg); } public static void TestItDouble(double arg) { - System.out.println("TestItDouble: " + arg); + PluginDebug.debug("TestItDouble: " + arg); } public static void TestItObject(TestEnv arg) { - System.out.println("TestItObject: " + arg); + PluginDebug.debug("TestItObject: " + arg); } public static void TestItObjectString(String arg) { - System.out.println("TestItObjectString: " + arg); + PluginDebug.debug("TestItObjectString: " + arg); } public static void TestItIntArray(int[] arg) { - System.out.println("TestItIntArray: " + arg); + PluginDebug.debug("TestItIntArray: " + arg); for (int i = 0; i < arg.length; i++) - System.out.println ("ELEMENT: " + i + " " + arg[i]); + PluginDebug.debug ("ELEMENT: " + i + " " + arg[i]); } public static void TestItObjectArray(String[] arg) { - System.out.println("TestItObjectArray: " + arg); + PluginDebug.debug("TestItObjectArray: " + arg); for (int i = 0; i < arg.length; i++) - System.out.println ("ELEMENT: " + i + " " + arg[i]); + PluginDebug.debug ("ELEMENT: " + i + " " + arg[i]); } public static void TestItObjectArrayMulti(String[][] arg) { - System.out.println("TestItObjectArrayMulti: " + arg); + PluginDebug.debug("TestItObjectArrayMulti: " + arg); for (int i = 0; i < arg.length; i++) for (int j = 0; j < arg[i].length; j++) - System.out.println ("ELEMENT: " + i + " " + j + " " + arg[i][j]); + PluginDebug.debug ("ELEMENT: " + i + " " + j + " " + arg[i][j]); } public static boolean TestItBoolReturnTrue() { @@ -166,7 +166,7 @@ } public int TestItIntInstance(int arg) { - System.out.println("TestItIntInstance: " + this + " " + arg); + PluginDebug.debug("TestItIntInstance: " + this + " " + arg); return 899; } } --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/AppletSecurityContextManager.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/AppletSecurityContextManager.java @@ -22,7 +22,7 @@ } public static void handleMessage(int identifier, int reference, String src, String[] privileges, String message) { - System.err.println(identifier + " -- " + src + " -- " + reference + " -- " + message + " CONTEXT= " + contexts.get(identifier)); + PluginDebug.debug(identifier + " -- " + src + " -- " + reference + " -- " + message + " CONTEXT= " + contexts.get(identifier)); AccessControlContext callContext = null; privileges = privileges != null ? privileges : new String[0]; --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginDebug.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginDebug.java @@ -4,7 +4,7 @@ public class PluginDebug { - static final boolean DEBUG = true; + static final boolean DEBUG = System.getenv().containsKey("ICEDTEAPLUGIN_DEBUG"); public static void debug(String message) { if (DEBUG) --- cacao-oj6-6b12.orig/plugin/icedtea/sun/applet/PluginMessageConsumer.java +++ cacao-oj6-6b12/plugin/icedtea/sun/applet/PluginMessageConsumer.java @@ -18,7 +18,7 @@ this.streamHandler = streamHandler; for (int i=0; i < MAX_WORKERS; i++) { - System.err.println("Creating worker " + i); + PluginDebug.debug("Creating worker " + i); PluginMessageHandlerWorker worker = new PluginMessageHandlerWorker(streamHandler, i, as); worker.start(); workers.add(worker); --- cacao-oj6-6b12.orig/patches/icedtea-webstart.patch +++ cacao-oj6-6b12/patches/icedtea-webstart.patch @@ -1,6 +1,6 @@ -diff -ur openjdk.orig/jdk/make/launchers/Makefile openjdk/jdk/make/launchers/Makefile ---- openjdk.orig/jdk/make/launchers/Makefile 2008-07-10 15:54:41.000000000 -0400 -+++ openjdk/jdk/make/launchers/Makefile 2008-09-04 17:50:22.000000000 -0400 +diff -c openjdk.orig/jdk/make/launchers/Makefile openjdk/jdk/make/launchers/Makefile +--- openjdk.orig/jdk/make/launchers/Makefile 2008-06-29 09:45:56.000000000 -0400 ++++ openjdk/jdk/make/launchers/Makefile 2008-06-29 09:47:01.000000000 -0400 @@ -67,6 +67,7 @@ $(call make-launcher, javadoc, com.sun.tools.javadoc.Main, , ) $(call make-launcher, javah, com.sun.tools.javah.Main, , ) @@ -9,125 +9,10 @@ $(call make-launcher, jconsole, sun.tools.jconsole.JConsole, \ -J-Djconsole.showOutputViewer, ) $(call make-launcher, jdb, com.sun.tools.example.debug.tty.TTY, , ) -diff -ur openjdk.orig/jdk/src/share/classes/sun/applet/AppletPanel.java openjdk/jdk/src/share/classes/sun/applet/AppletPanel.java ---- openjdk.orig/jdk/src/share/classes/sun/applet/AppletPanel.java 2008-07-10 15:57:10.000000000 -0400 -+++ openjdk/jdk/src/share/classes/sun/applet/AppletPanel.java 2008-09-04 17:54:34.000000000 -0400 -@@ -42,9 +42,6 @@ - import java.net.UnknownHostException; - import java.security.*; - import java.util.*; --import java.util.Collections; --import java.util.Locale; --import java.util.WeakHashMap; - import javax.swing.SwingUtilities; - import sun.awt.AppContext; - import sun.awt.EmbeddedFrame; -@@ -68,7 +65,7 @@ - /** - * The applet (if loaded). - */ -- Applet applet; -+ protected Applet applet; - - /** - * Applet will allow initialization. Should be -@@ -117,7 +114,7 @@ - /** - * The thread for the applet. - */ -- Thread handler; -+ protected Thread handler; - - - /** -@@ -162,7 +159,8 @@ - * Creates a thread to run the applet. This method is called - * each time an applet is loaded and reloaded. - */ -- synchronized void createAppletThread() { -+ //Overridden by NetxPanel. -+ protected synchronized void createAppletThread() { - // Create a thread group for the applet, and start a new - // thread to load the applet. - String nm = "applet-" + getCode(); -@@ -306,7 +304,7 @@ - /** - * Get an event from the queue. - */ -- synchronized AppletEvent getNextEvent() throws InterruptedException { -+ protected synchronized AppletEvent getNextEvent() throws InterruptedException { - while (queue == null || queue.isEmpty()) { - wait(); - } -@@ -499,9 +497,25 @@ - - status = APPLET_START; - showAppletStatus("started"); -+ -+ // reset size to make up for applets that specify height in % -+ try { -+ javax.swing.SwingUtilities.invokeLater(new Runnable() { -+ public void run() { -+ int width = getWidth(); -+ int height = getHeight(); -+ -+ appletResize(width, height); -+ validate(); -+ } -+ }); -+ } catch (Exception e) { -+ System.err.println("Applet resize failed."); -+ e.printStackTrace(); -+ } -+ - break; - } -- - case APPLET_STOP: - if (status != APPLET_START) { - showAppletStatus("notstarted"); -@@ -695,7 +709,8 @@ - * applet event processing so that it can be gracefully interrupted from - * things like HotJava. - */ -- private void runLoader() { -+ //Overridden by NetxPanel. -+ protected void runLoader() { - if (status != APPLET_DISPOSE) { - showAppletStatus("notdisposed"); - return; -@@ -892,8 +907,8 @@ - return status == APPLET_START; - } - -- - private EventQueue appEvtQ = null; -+ - /** - * Is called when the applet wants to be resized. - */ -diff -ur openjdk.orig/jdk/src/share/classes/sun/applet/AppletViewerPanel.java openjdk/jdk/src/share/classes/sun/applet/AppletViewerPanel.java ---- openjdk.orig/jdk/src/share/classes/sun/applet/AppletViewerPanel.java 2008-07-10 15:57:10.000000000 -0400 -+++ openjdk/jdk/src/share/classes/sun/applet/AppletViewerPanel.java 2008-09-04 17:54:42.000000000 -0400 -@@ -25,13 +25,11 @@ - - package sun.applet; - --import java.util.*; --import java.io.*; --import java.net.URL; -+import java.applet.AppletContext; -+import java.awt.Dimension; - import java.net.MalformedURLException; --import java.awt.*; --import java.applet.*; --import sun.tools.jar.*; -+import java.net.URL; -+import java.util.Hashtable; - - - /** -@@ -42,35 +40,37 @@ +diff -urN openjdk.orig/jdk/src/share/classes/sun/applet/AppletViewerPanel.java openjdk/jdk/src/share/classes/sun/applet/AppletViewerPanel.java +--- openjdk.orig/jdk/src/share/classes/sun/applet/AppletViewerPanel.java 2008-01-12 15:53:45.000000000 -0500 ++++ openjdk/jdk/src/share/classes/sun/applet/AppletViewerPanel.java 2008-02-04 11:51:20.000000000 -0500 +@@ -42,25 +42,25 @@ * * @author Arthur van Hoff */ @@ -136,7 +21,7 @@ /* Are we debugging? */ - static boolean debug = false; -+ protected static boolean debug = true; ++ protected static boolean debug = false; /** * The document url. @@ -158,11 +43,7 @@ /* * JDK 1.1 serialVersionUID - */ - private static final long serialVersionUID = 8890989370785545619L; - -+ private Dimension windowSizeFactor = new Dimension(750, 350); -+ +@@ -70,7 +70,7 @@ /** * Construct an applet viewer and start the applet. */ @@ -171,75 +52,7 @@ this.documentURL = documentURL; this.atts = atts; -@@ -102,6 +102,7 @@ - - } - -+ - /** - * Get an applet parameter. - */ -@@ -125,12 +126,42 @@ - } - - /** -+ * Set applet size (as proportion of window size) if needed -+ */ -+ public synchronized void setAppletSizeIfNeeded(int width, int height) { -+ -+ Dimension newD = new Dimension(getWidth(), getHeight()); -+ -+ String h = getParameter("height"); -+ String w = getParameter("width"); -+ -+ if (width != -1 && w != null && w.endsWith("%")) { -+ newD.width = (Integer.valueOf(w.substring(0, w.length() - 1)).intValue()/100)*width; -+ } -+ -+ if (height != -1 && h != null && h.endsWith("%")) { -+ newD.height = (Integer.valueOf(h.substring(0, h.length() - 1)).intValue()/100)*height; -+ } -+ -+ synchronized(windowSizeFactor) { -+ windowSizeFactor = newD; -+ } -+ } -+ -+ /** - * Get the width. - */ - public int getWidth() { - String w = getParameter("width"); - if (w != null) { -- return Integer.valueOf(w).intValue(); -+ try { -+ return Integer.valueOf(w).intValue(); -+ } catch (NumberFormatException nfe) { -+ synchronized(windowSizeFactor) { -+ System.err.println("getWidth() returning " + windowSizeFactor.width); -+ return windowSizeFactor.width; -+ } -+ } - } - return 0; - } -@@ -142,7 +173,14 @@ - public int getHeight() { - String h = getParameter("height"); - if (h != null) { -- return Integer.valueOf(h).intValue(); -+ try { -+ return Integer.valueOf(h).intValue(); -+ } catch (NumberFormatException nfe) { -+ synchronized(windowSizeFactor) { -+ System.err.println("getHeight() returning " + windowSizeFactor.height); -+ return windowSizeFactor.height; -+ } -+ } - } - return 0; - } -@@ -202,12 +240,12 @@ +@@ -202,12 +202,12 @@ return (AppletContext)getParent(); } @@ -254,3 +67,53 @@ if(debug) { t.printStackTrace(); debug(s); +diff -urN openjdk.orig/jdk/src/share/classes/sun/applet/AppletPanel.java openjdk/jdk/src/share/classes/sun/applet/AppletPanel.java +--- openjdk.orig/jdk/src/share/classes/sun/applet/AppletPanel.java 2008-03-26 04:58:12.000000000 -0400 ++++ openjdk/jdk/src/share/classes/sun/applet/AppletPanel.java 2008-04-07 21:55:56.000000000 -0400 +@@ -68,7 +68,7 @@ + /** + * The applet (if loaded). + */ +- Applet applet; ++ protected Applet applet; + + /** + * Applet will allow initialization. Should be +@@ -117,7 +117,7 @@ + /** + * The thread for the applet. + */ +- Thread handler; ++ protected Thread handler; + + + /** +@@ -162,7 +162,8 @@ + * Creates a thread to run the applet. This method is called + * each time an applet is loaded and reloaded. + */ +- synchronized void createAppletThread() { ++ //Overridden by NetxPanel. ++ protected synchronized void createAppletThread() { + // Create a thread group for the applet, and start a new + // thread to load the applet. + String nm = "applet-" + getCode(); +@@ -306,7 +307,7 @@ + /** + * Get an event from the queue. + */ +- synchronized AppletEvent getNextEvent() throws InterruptedException { ++ protected synchronized AppletEvent getNextEvent() throws InterruptedException { + while (queue == null || queue.isEmpty()) { + wait(); + } +@@ -695,7 +696,8 @@ + * applet event processing so that it can be gracefully interrupted from + * things like HotJava. + */ +- private void runLoader() { ++ //Overridden by NetxPanel. ++ protected void runLoader() { + if (status != APPLET_DISPOSE) { + showAppletStatus("notdisposed"); + return; --- cacao-oj6-6b12.orig/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioPusher.java +++ cacao-oj6-6b12/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioPusher.java @@ -54,6 +54,7 @@ return; active = true; audiothread = new Thread(this); + audiothread.setDaemon(true); audiothread.setPriority(Thread.MAX_PRIORITY); audiothread.start(); } --- cacao-oj6-6b12.orig/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftJitterCorrector.java +++ cacao-oj6-6b12/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftJitterCorrector.java @@ -216,6 +216,7 @@ }; thread = new Thread(runnable); + thread.setDaemon(true); thread.setPriority(Thread.MAX_PRIORITY); thread.start(); } --- cacao-oj6-6b12.orig/ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp +++ cacao-oj6-6b12/ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp @@ -297,7 +297,6 @@ // Callbacks protected: - void start_stack(int num_slots, int max_slots); void process_stack_slot(int index, SharkValue** value, int offset); void process_method_slot(llvm::Value** value, int offset); --- cacao-oj6-6b12.orig/ports/hotspot/src/share/vm/shark/sharkFunction.cpp +++ cacao-oj6-6b12/ports/hotspot/src/share/vm/shark/sharkFunction.cpp @@ -213,7 +213,7 @@ CreateLoadZeroStackPointer(), LLVMValue::intptr_constant((frame_words + extra_locals) * wordSize)); CreateStackOverflowCheck(zero_stack_pointer); - CreateStoreZeroStackPointer(zero_stack_pointer); + NOT_PRODUCT(CreateStoreZeroStackPointer(zero_stack_pointer)); // Create the frame _frame = builder()->CreateIntToPtr( --- cacao-oj6-6b12.orig/ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp +++ cacao-oj6-6b12/ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp @@ -43,14 +43,12 @@ // Create the array we'll record our stack slots in _exparray = new GrowableArray(num_slots); - // Trim back the stack if necessary - if (num_slots != max_slots) { - function()->CreateStoreZeroStackPointer( - builder()->CreatePtrToInt( - function()->CreateAddressOfFrameEntry( - function()->stack_slots_offset() + max_slots - num_slots), - SharkType::intptr_type())); - } + // Set the stack pointer + function()->CreateStoreZeroStackPointer( + builder()->CreatePtrToInt( + function()->CreateAddressOfFrameEntry( + function()->stack_slots_offset() + max_slots - num_slots), + SharkType::intptr_type())); } void SharkDecacher::process_stack_slot(int index, @@ -169,18 +167,6 @@ debug_info()->end_safepoint(pc_offset()); } -void SharkCacher::start_stack(int num_slots, int max_slots) -{ - // Restore the stack if necessary - if (num_slots != max_slots) { - function()->CreateStoreZeroStackPointer( - builder()->CreatePtrToInt( - function()->CreateAddressOfFrameEntry( - function()->stack_slots_offset()), - SharkType::intptr_type())); - } -} - void SharkCacher::process_stack_slot(int index, SharkValue** addr, int offset) --- cacao-oj6-6b12.orig/rt/net/sourceforge/jnlp/NetxPanel.java +++ cacao-oj6-6b12/rt/net/sourceforge/jnlp/NetxPanel.java @@ -114,5 +114,10 @@ handler = new Thread(this); handler.start(); } - + + public void updateSizeInAtts(int height, int width) { + this.atts.put("height", Integer.toString(height)); + this.atts.put("width", Integer.toString(width)); + } } +