diff options
Diffstat (limited to 'java/openjdk6/files/plugin.patch')
| -rw-r--r-- | java/openjdk6/files/plugin.patch | 401 |
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; |
