summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/plugin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk6/files/plugin.patch')
-rw-r--r--java/openjdk6/files/plugin.patch401
1 files changed, 401 insertions, 0 deletions
diff --git a/java/openjdk6/files/plugin.patch b/java/openjdk6/files/plugin.patch
new file mode 100644
index 000000000000..025392082229
--- /dev/null
+++ b/java/openjdk6/files/plugin.patch
@@ -0,0 +1,401 @@
+$FreeBSD$
+
+Applied patches from IcedTea6-1.9:
+
+patches/icedtea-demo-swingapplet.patch
+patches/update-bootclasspath.patch
+patches/extensions/netx.patch
+patches/extensions/netx-umask.patch
+patches/extensions/liveconnect.patch
+
+Note: patches/update-bootclasspath.patch was applied without rhino support.
+
+--- hotspot/src/share/vm/runtime/os.cpp.orig 2010-06-21 17:12:21.000000000 -0400
++++ hotspot/src/share/vm/runtime/os.cpp 2010-09-09 16:24:52.000000000 -0400
+@@ -884,6 +884,8 @@
+ "%/lib/jsse.jar:"
+ "%/lib/jce.jar:"
+ "%/lib/charsets.jar:"
++ "%/lib/netx.jar:"
++ "%/lib/plugin.jar:"
+ "%/classes";
+ char* sysclasspath = format_boot_path(classpath_format, home, home_len, fileSep, pathSep);
+ if (sysclasspath == NULL) return false;
+--- jdk/make/docs/NON_CORE_PKGS.gmk.orig 2010-06-21 17:15:08.000000000 -0400
++++ jdk/make/docs/NON_CORE_PKGS.gmk 2010-09-09 16:26:01.000000000 -0400
+@@ -84,6 +84,10 @@
+
+ SMARTCARDIO_PKGS = javax.smartcardio
+
++JNLP_PKGS = javax.jnlp
++
++JAVASCRIPT_PKGS = netscape.javascript
++
+ # non-core packages in rt.jar
+ NON_CORE_PKGS = $(DOMAPI_PKGS) \
+ $(MGMT_PKGS) \
+@@ -91,4 +95,6 @@
+ $(JGSS_PKGS) \
+ $(OLD_JSSE_PKGS) \
+ $(HTTPSERVER_PKGS) \
+- $(SMARTCARDIO_PKGS)
++ $(SMARTCARDIO_PKGS) \
++ $(JNLP_PKGS) \
++ $(JAVASCRIPT_PKGS)
+--- jdk/make/launchers/Makefile.orig 2010-06-21 17:15:08.000000000 -0400
++++ jdk/make/launchers/Makefile 2010-09-09 16:25:05.000000000 -0400
+@@ -67,6 +67,7 @@
+ $(call make-launcher, javadoc, com.sun.tools.javadoc.Main, , )
+ $(call make-launcher, javah, com.sun.tools.javah.Main, , )
+ $(call make-launcher, javap, sun.tools.javap.Main, , )
++$(call make-launcher, javaws, net.sourceforge.jnlp.runtime.Boot, , )
+ $(call make-launcher, jconsole, sun.tools.jconsole.JConsole, \
+ -J-Djconsole.showOutputViewer, )
+ $(call make-launcher, jdb, com.sun.tools.example.debug.tty.TTY, , )
+--- jdk/make/launchers/Makefile.launcher.orig 2010-06-21 17:15:08.000000000 -0400
++++ jdk/make/launchers/Makefile.launcher 2010-09-09 16:25:12.000000000 -0400
+@@ -148,6 +148,16 @@
+ endif
+ endif
+
++# pluginappletviewer only
++ifeq ($(PROGRAM), pluginappletviewer)
++ OTHER_CPPFLAGS += -DUSE_UMASK=\"077\"
++endif
++
++# javaws only
++ifeq ($(PROGRAM), javaws)
++ OTHER_CPPFLAGS += -DUSE_UMASK=\"077\"
++endif
++
+ # GUI tools
+ ifeq ($(GUI_TOOL),true)
+ ifneq ($(PLATFORM), windows)
+--- jdk/make/mkdemo/jfc/SwingApplet/Makefile.orig 2010-06-21 17:15:08.000000000 -0400
++++ jdk/make/mkdemo/jfc/SwingApplet/Makefile 2010-09-09 16:24:23.000000000 -0400
+@@ -33,7 +33,7 @@
+ include $(BUILDDIR)/common/Defs.gmk
+
+ DEMO_ROOT = $(SHARE_SRC)/demo/jfc/$(DEMONAME)
+-DEMO_TOPFILES = ./README.txt
++DEMO_TOPFILES = ./README.txt ./SwingApplet.html
+ DEMO_MAINCLASS = $(DEMONAME)
+ DEMO_DESTDIR = $(DEMODIR)/jfc/$(DEMONAME)
+
+--- jdk/make/sun/Makefile.orig 2010-06-21 17:15:08.000000000 -0400
++++ jdk/make/sun/Makefile 2010-09-09 16:26:01.000000000 -0400
+@@ -66,6 +66,7 @@
+ $(HEADLESS_SUBDIR) $(DGA_SUBDIR) \
+ font jpeg cmm applet rmi beans $(JDBC_SUBDIR) \
+ jawt text nio launcher management $(ORG_SUBDIR) \
++ plugin \
+ native2ascii serialver tools jconsole
+
+ all build clean clobber::
+--- jdk/make/sun/plugin/Makefile.orig 2010-09-09 16:26:01.000000000 -0400
++++ jdk/make/sun/plugin/Makefile 2010-09-09 16:26:01.000000000 -0400
+@@ -0,0 +1,53 @@
++#
++# Copyright 1995-2005 Sun Microsystems, Inc. All Rights Reserved.
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# This code is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Sun designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Sun in the LICENSE file that accompanied this code.
++#
++# This code 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
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++# CA 95054 USA or visit www.sun.com if you need additional information or
++# have any questions.
++#
++
++#
++# Makefile for pluginappletviewer wrapper.
++#
++
++BUILDDIR = ../..
++PACKAGE = sun.applet
++PRODUCT = sun
++PROGRAM = pluginappletviewer
++include $(BUILDDIR)/common/Defs.gmk
++
++#
++# Files to compile.
++#
++AUTO_FILES_JAVA_DIRS = sun/applet
++
++ifneq ($(PLATFORM), windows)
++ #
++ # Anything with a GUI needs X11 to be linked in.
++ #
++ OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11
++endif # PLATFORM
++
++#
++# Rules
++#
++JAVA_ARGS = { "sun.applet.PluginMain" }
++include $(BUILDDIR)/common/Program.gmk
++
+--- jdk/src/share/bin/java.c.orig 2010-06-21 17:15:10.000000000 -0400
++++ jdk/src/share/bin/java.c 2010-09-09 16:25:12.000000000 -0400
+@@ -56,6 +56,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <sys/stat.h>
+
+ #include <jni.h>
+ #include <jvm.h>
+@@ -69,6 +70,8 @@
+ #define FULL_VERSION JDK_MAJOR_VERSION "." JDK_MINOR_VERSION
+ #endif
+
++#define MAXMASK 4095 /* Same as octal 07777 */
++
+ /*
+ * The following environment variable is used to influence the behavior
+ * of the jre exec'd through the SelectVersion routine. The command line
+@@ -184,6 +187,10 @@
+
+ int JNICALL JavaMain(void * args); /* entry point */
+
++/* umask things */
++static int FindUMask(int *, char ***, int *);
++static int VerifyMask(char *, int*);
++
+ struct JavaMainArgs {
+ int argc;
+ char ** argv;
+@@ -307,6 +314,26 @@
+ SetClassPath(s);
+ #endif
+
++#ifdef USE_UMASK
++ /* Set umask */
++ int mask;
++ // Check to see if we can find a umask on the command line.
++ if (FindUMask(&argc, &argv, &mask) < 0)
++ {
++ // We didn't find a umask, so fall back to the default one.
++ char * defaultMask = (char *) JLI_MemAlloc(5 * sizeof(char));
++ strcpy(defaultMask, USE_UMASK);
++ int converted;
++ VerifyMask(defaultMask, &converted);
++ JLI_MemFree(defaultMask);
++ umask(converted); /* from sys/stat.h */
++ }
++ else
++ {
++ umask(mask);
++ }
++#endif
++
+ /*
+ * Parse command line options; if the return value of
+ * ParseArguments is false, the program should exit.
+@@ -2017,3 +2044,87 @@
+ }
+ DoSplashSetFileJarName(file_name, jar_name);
+ }
++
++/**
++ * Searches argv to find any parameters that start with "-umask=".
++ * Sets maskToSet with the mask if a -umask is found, and if the mask
++ * supplied is valid. Returns 1 if a valid mask was found and set,
++ * -1 otherwise.
++ */
++int FindUMask(int *pargc, char *** pargv, int *maskToSet)
++{
++ int found_mask = -1;
++
++ // our handles to the original list
++ int argc = *pargc;
++ char **argv = *pargv;
++
++ // the new set
++ int nargc = argc;
++ char ** nargv = (char **) JLI_MemAlloc((nargc + 1) * sizeof(char *));
++
++ // set the original set to the new set
++ *pargv = nargv;
++ *pargc = nargc;
++
++ char *maskString = (char *) JLI_MemAlloc(6 * sizeof(char *));
++ int i;
++ for (i = 0; i < argc; i++)
++ {
++ char *arg = argv[i];
++ if (strncmp(arg, "-umask=",7) == 0)
++ {
++ strncpy(maskString, arg+7, 5);
++
++ if (VerifyMask(maskString, maskToSet) < 0)
++ {
++ printf("Invalid umask %s, application stopped.\n", maskString);
++ exit(1);
++ }
++
++ found_mask = 1;
++ nargc--;
++ (*pargc)--;
++ }
++ else
++ {
++ *nargv++ = arg;
++ }
++ }
++
++ JLI_MemFree(maskString);
++
++ return found_mask;
++}
++
++/**
++ * Takes an octal mask in string form, and converts it to
++ * decimal form in convertedMask. The decimal form can then be
++ * easily passed to umask(). Returns 1 if the mask is valid, -1 otherwise.
++ */
++int VerifyMask(char * maskString, int * convertedMask)
++{
++ // Borrowed from coreutils modechange.c
++ if ('0' <= *maskString && *maskString < '8')
++ {
++ unsigned int decimal_mode = 0;
++
++ do {
++ decimal_mode = 8 * decimal_mode + *maskString++ - '0';
++ } while ('0' <= *maskString && *maskString < '8');
++
++ if (decimal_mode > MAXMASK)
++ return -1;
++ else if (*maskString)
++ return -1;
++ else
++ *convertedMask = decimal_mode;
++
++ return 1;
++ }
++ else
++ {
++ return -1;
++ }
++
++}
+--- jdk/src/share/classes/sun/applet/AppletViewerPanel.java.orig 2010-06-21 17:15:27.000000000 -0400
++++ jdk/src/share/classes/sun/applet/AppletViewerPanel.java 2010-09-09 16:25:06.000000000 -0400
+@@ -42,25 +42,25 @@
+ *
+ * @author Arthur van Hoff
+ */
+-class AppletViewerPanel extends AppletPanel {
++public class AppletViewerPanel extends AppletPanel {
+
+ /* Are we debugging? */
+- static boolean debug = false;
++ protected static boolean debug = false;
+
+ /**
+ * The document url.
+ */
+- URL documentURL;
++ protected URL documentURL;
+
+ /**
+ * The base url.
+ */
+- URL baseURL;
++ protected URL baseURL;
+
+ /**
+ * The attributes of the applet.
+ */
+- Hashtable atts;
++ protected Hashtable atts;
+
+ /*
+ * JDK 1.1 serialVersionUID
+@@ -70,7 +70,7 @@
+ /**
+ * Construct an applet viewer and start the applet.
+ */
+- AppletViewerPanel(URL documentURL, Hashtable atts) {
++ protected AppletViewerPanel(URL documentURL, Hashtable atts) {
+ this.documentURL = documentURL;
+ this.atts = atts;
+
+@@ -202,12 +202,12 @@
+ return (AppletContext)getParent();
+ }
+
+- static void debug(String s) {
++ protected static void debug(String s) {
+ if(debug)
+ System.err.println("AppletViewerPanel:::" + s);
+ }
+
+- static void debug(String s, Throwable t) {
++ protected static void debug(String s, Throwable t) {
+ if(debug) {
+ t.printStackTrace();
+ debug(s);
+--- jdk/src/share/classes/sun/applet/AppletPanel.java.orig 2010-06-21 17:15:27.000000000 -0400
++++ jdk/src/share/classes/sun/applet/AppletPanel.java 2010-09-09 16:25:06.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;