diff options
Diffstat (limited to 'recipes/classpath/files')
-rw-r--r-- | recipes/classpath/files/SimpleName.diff | 66 | ||||
-rw-r--r-- | recipes/classpath/files/autotools.patch | 24 | ||||
-rw-r--r-- | recipes/classpath/files/cp-byte-loophelper.patch | 68 | ||||
-rw-r--r-- | recipes/classpath/files/decimalformat.patch | 31 | ||||
-rw-r--r-- | recipes/classpath/files/ecj_java_dir.patch | 34 | ||||
-rw-r--r-- | recipes/classpath/files/getopt-filelist.patch | 271 | ||||
-rw-r--r-- | recipes/classpath/files/gjar-prefix-patch.diff | 40 | ||||
-rw-r--r-- | recipes/classpath/files/javanet-local.patch | 37 | ||||
-rw-r--r-- | recipes/classpath/files/miscompilation-0.93.patch | 13 | ||||
-rw-r--r-- | recipes/classpath/files/miscompilation.patch | 13 | ||||
-rw-r--r-- | recipes/classpath/files/netif_16.patch | 269 | ||||
-rw-r--r-- | recipes/classpath/files/sun-security-getproperty_0.96.1.patch | 503 | ||||
-rw-r--r-- | recipes/classpath/files/xmlstream-fix.patch | 93 |
13 files changed, 1462 insertions, 0 deletions
diff --git a/recipes/classpath/files/SimpleName.diff b/recipes/classpath/files/SimpleName.diff new file mode 100644 index 0000000000..ff2bec0f1c --- /dev/null +++ b/recipes/classpath/files/SimpleName.diff @@ -0,0 +1,66 @@ +Index: vm/reference/java/lang/VMClass.java +=================================================================== +RCS file: /sources/classpath/classpath/vm/reference/java/lang/VMClass.java,v +retrieving revision 1.20 +diff -u -r1.20 VMClass.java +--- vm/reference/java/lang/VMClass.java 18 Sep 2007 21:52:38 -0000 1.20 ++++ vm/reference/java/lang/VMClass.java 19 Apr 2008 15:19:00 -0000 +@@ -296,27 +296,43 @@ + */ + static String getSimpleName(Class klass) + { ++ int arrayCount = 0; ++ while (klass.isArray()) ++ { ++ klass = klass.getComponentType(); ++ ++arrayCount; ++ } ++ // now klass is the component type ++ ++ String simpleComponentName = null; + if (isAnonymousClass(klass)) +- return ""; +- if (isArray(klass)) + { +- return getComponentType(klass).getSimpleName() + "[]"; ++ simpleComponentName = ""; + } +- String fullName = getName(klass); +- int pos = fullName.lastIndexOf("$"); +- if (pos == -1) +- pos = 0; + else + { +- ++pos; +- while (Character.isDigit(fullName.charAt(pos))) +- ++pos; ++ String fullName = getName(klass); ++ int pos = fullName.lastIndexOf("$"); ++ if (pos != -1) ++ { //inner class or local class ++ // skip digits of local classes ++ while (Character.isDigit(fullName.charAt(pos+1))) ++ pos++; ++ } ++ else ++ { ++ pos = fullName.lastIndexOf("."); ++ } ++ simpleComponentName = fullName.substring(pos+1); + } +- int packagePos = fullName.lastIndexOf(".", pos); +- if (packagePos == -1) +- return fullName.substring(pos); +- else +- return fullName.substring(packagePos + 1); ++ ++ if (arrayCount == 0) ++ return simpleComponentName; ++ ++ StringBuffer sb = new StringBuffer(simpleComponentName); ++ while (arrayCount-- > 0) ++ sb.append("[]"); ++ return sb.toString(); + } + + /** diff --git a/recipes/classpath/files/autotools.patch b/recipes/classpath/files/autotools.patch new file mode 100644 index 0000000000..663c0340cd --- /dev/null +++ b/recipes/classpath/files/autotools.patch @@ -0,0 +1,24 @@ +Index: classpath-0.93/configure.ac +=================================================================== +--- classpath-0.93.orig/configure.ac 2006-12-08 20:22:50.000000000 +0100 ++++ classpath-0.93/configure.ac 2008-08-25 22:07:40.711946598 +0200 +@@ -41,6 +41,11 @@ + AC_CONFIG_HEADERS([include/config.h]) + AC_PREFIX_DEFAULT(/usr/local/classpath) + ++AC_CONFIG_MACRO_DIR([m4]) ++ ++ ++AM_ICONV_LINK ++ + dnl ----------------------------------------------------------- + dnl Enable collections.jar (disabled by default) + dnl ----------------------------------------------------------- +@@ -312,6 +317,7 @@ + dnl AC_PROG_AWK + AC_PROG_CC + AC_PROG_CPP ++AM_PROG_CC_C_O + + # Handle -Werror default case. + if test "$ENABLE_WERROR" = default; then diff --git a/recipes/classpath/files/cp-byte-loophelper.patch b/recipes/classpath/files/cp-byte-loophelper.patch new file mode 100644 index 0000000000..4fac362cba --- /dev/null +++ b/recipes/classpath/files/cp-byte-loophelper.patch @@ -0,0 +1,68 @@ +Index: gnu/java/nio/charset/ByteDecodeLoopHelper.java +=================================================================== +RCS file: /sources/classpath/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java,v +retrieving revision 1.1 +diff -u -r1.1 ByteDecodeLoopHelper.java +--- gnu/java/nio/charset/ByteDecodeLoopHelper.java 23 Nov 2007 16:11:17 -0000 1.1 ++++ gnu/java/nio/charset/ByteDecodeLoopHelper.java 3 Sep 2008 23:11:29 -0000 +@@ -119,6 +119,8 @@ + int inRemaining = in.remaining(); + int outRemaining = out.remaining(); + CoderResult result; ++ ++ bailOut: + if (inRemaining <= outRemaining) + { + for (int i = 0; i < inRemaining; i++) +@@ -129,7 +131,7 @@ + { + inPos--; + result = CoderResult.unmappableForLength(1); +- break; ++ break bailOut; + } + char c = mapToChar(b); + outArray[outPos] = c; +@@ -147,7 +149,7 @@ + { + inPos--; + result = CoderResult.unmappableForLength(1); +- break; ++ break bailOut; + } + char c = mapToChar(b); + outArray[outPos] = c; +Index: gnu/java/nio/charset/ByteEncodeLoopHelper.java +=================================================================== +RCS file: /sources/classpath/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java,v +retrieving revision 1.1 +diff -u -r1.1 ByteEncodeLoopHelper.java +--- gnu/java/nio/charset/ByteEncodeLoopHelper.java 23 Nov 2007 16:11:17 -0000 1.1 ++++ gnu/java/nio/charset/ByteEncodeLoopHelper.java 3 Sep 2008 23:11:29 -0000 +@@ -120,6 +120,8 @@ + int inRemaining = in.remaining(); + int outRemaining = out.remaining(); + CoderResult result; ++ ++ bailOut: + if (inRemaining <= outRemaining) + { + for (int i = 0; i < inRemaining; i++) +@@ -130,7 +132,7 @@ + { + inPos--; + result = CoderResult.unmappableForLength(1); +- break; ++ break bailOut; + } + byte b = mapToByte(inChar); + outArray[outPos] = b; +@@ -148,7 +150,7 @@ + { + inPos--; + result = CoderResult.unmappableForLength(1); +- break; ++ break bailOut; + } + byte b = mapToByte(inChar); + outArray[outPos] = b; diff --git a/recipes/classpath/files/decimalformat.patch b/recipes/classpath/files/decimalformat.patch new file mode 100644 index 0000000000..4997523830 --- /dev/null +++ b/recipes/classpath/files/decimalformat.patch @@ -0,0 +1,31 @@ +Index: classpath-0.97.2/java/text/DecimalFormat.java +=================================================================== +--- classpath-0.97.2.orig/java/text/DecimalFormat.java ++++ classpath-0.97.2/java/text/DecimalFormat.java +@@ -1296,7 +1296,7 @@ public class DecimalFormat extends Numbe + currencySymbol = this.symbols.getCurrencySymbol(); + + // if \u00A4 is doubled, we use the international currency symbol +- if (i < len && pattern.charAt(i + 1) == '\u00A4') ++ if ((i + 1) < len && pattern.charAt(i + 1) == '\u00A4') + { + currencySymbol = this.symbols.getInternationalCurrencySymbol(); + i++; +@@ -1320,7 +1320,7 @@ public class DecimalFormat extends Numbe + else if (ch == '\'') + { + // QUOTE +- if (i < len && pattern.charAt(i + 1) == '\'') ++ if ((i + 1) < len && pattern.charAt(i + 1) == '\'') + { + // we need to add ' to the buffer + buffer.append(ch); +@@ -1692,7 +1692,7 @@ public class DecimalFormat extends Numbe + else if (ch == '\'') + { + // QUOTE +- if (i < len && pattern.charAt(i + 1) == '\'') ++ if ((i + 1) < len && pattern.charAt(i + 1) == '\'') + { + // we need to add ' to the buffer + buffer.append(ch); diff --git a/recipes/classpath/files/ecj_java_dir.patch b/recipes/classpath/files/ecj_java_dir.patch new file mode 100644 index 0000000000..e310567516 --- /dev/null +++ b/recipes/classpath/files/ecj_java_dir.patch @@ -0,0 +1,34 @@ +Index: classpath-0.97.2/lib/gen-classlist.sh.in +=================================================================== +--- classpath-0.97.2.orig/lib/gen-classlist.sh.in 2008-06-02 03:37:29.000000000 +0200 ++++ classpath-0.97.2/lib/gen-classlist.sh.in 2008-08-01 00:00:58.055208770 +0200 +@@ -148,4 +148,7 @@ + done + fi + ++# hack for javac that uses -d and do not make the directories ++awk -F " " '{print $1}' classes.1 | uniq | awk -F " " '{system("mkdir -p " $0)}' ++ + exit 0 +Index: classpath-0.97.2/tools/Makefile.am +=================================================================== +--- classpath-0.97.2.orig/tools/Makefile.am 2008-06-02 04:01:47.000000000 +0200 ++++ classpath-0.97.2/tools/Makefile.am 2008-08-01 00:11:18.531985989 +0200 +@@ -180,6 +180,8 @@ + mkdir classes asm + ## Compile ASM separately as it is latin-1 encoded. + find $(srcdir)/external/asm -name '*.java' -print > asm.lst ++ awk -F "/" '{OFS=FS;gsub("/"$$2"/"$$3,"",$$0);gsub("/"$$NF,"",$$0); print $$0}' asm.lst | \ ++ sort | uniq | awk -F " " '{system("mkdir -p asm/" $$0)}' + AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \ + $$AC -g -d asm @asm.lst + find $(srcdir)/gnu/classpath/tools \ +@@ -189,6 +191,8 @@ + $(srcdir)/com/sun/tools/javah \ + $(srcdir)/sun/rmi/rmic \ + -name '*.java' -print > classes.lst ++ awk -F "/" '{OFS=FS;gsub("/"$$NF,"",$$0); print $$0}' classes.lst | \ ++ sort | uniq | awk -F " " '{system("mkdir -p classes/" $$0)}' + $(JCOMPILER) -g -d classes @classes.lst + cat classes.lst asm.lst > all-classes.lst + ## Copy over tools resource files. diff --git a/recipes/classpath/files/getopt-filelist.patch b/recipes/classpath/files/getopt-filelist.patch new file mode 100644 index 0000000000..7b5e2740bf --- /dev/null +++ b/recipes/classpath/files/getopt-filelist.patch @@ -0,0 +1,271 @@ +? tools/generated +Index: tools/gnu/classpath/tools/common/ClasspathToolParser.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java,v +retrieving revision 1.1 +diff -u -r1.1 ClasspathToolParser.java +--- tools/gnu/classpath/tools/common/ClasspathToolParser.java 22 Sep 2006 01:01:26 -0000 1.1 ++++ tools/gnu/classpath/tools/common/ClasspathToolParser.java 3 Jun 2008 16:34:45 -0000 +@@ -38,9 +38,16 @@ + + package gnu.classpath.tools.common; + ++import java.io.BufferedReader; ++import java.io.IOException; ++import java.io.FileNotFoundException; ++import java.io.FileReader; ++import java.io.Reader; + import java.text.MessageFormat; ++import java.util.ArrayList; + + import gnu.classpath.Configuration; ++import gnu.classpath.tools.getopt.FileArgumentCallback; + import gnu.classpath.tools.getopt.Option; + import gnu.classpath.tools.getopt.OptionException; + import gnu.classpath.tools.getopt.Parser; +@@ -84,4 +91,137 @@ + } + }); + } ++ ++ public void parse(String[] inArgs, FileArgumentCallback files, ++ boolean handleFileLists) ++ { ++ FileArgumentCallback cb; ++ ++ if (handleFileLists) ++ cb = new AtFileArgumentCallback(files); ++ else ++ cb = files; ++ ++ parse(inArgs, cb); ++ } ++ ++ public String[] parse(String[] inArgs, boolean handleFileLists) ++ { ++ final ArrayList fileResult = new ArrayList(); ++ ++ final FileArgumentCallback cb = new FileArgumentCallback() ++ { ++ public void notifyFile(String fileArgument) ++ { ++ fileResult.add(fileArgument); ++ } ++ }; ++ ++ if (handleFileLists) ++ parse(inArgs, new AtFileArgumentCallback(cb)); ++ else ++ parse(inArgs, cb); ++ ++ return (String[]) fileResult.toArray(new String[0]); ++ } ++ ++ ++ /** Simple function that takes the given {@link Reader}, treats it like ++ * a textfile and reads all the whitespace separated entries from it ++ * and adds them to the @{link FileArgumentCallback} instance. ++ */ ++ public void parseFileList(Reader reader, FileArgumentCallback cb) ++ throws OptionException ++ { ++ BufferedReader breader = new BufferedReader(reader); ++ String line = null; ++ ++ try ++ { ++ while ((line = breader.readLine()) != null) ++ parseLine(line, cb); ++ ++ reader.close(); ++ } ++ catch (IOException ioe) ++ { ++ System.err.println(programName + ": IO error while reading from inputstream"); ++ System.exit(1); ++ } ++ ++ } ++ ++ /** Parses whitespace separated file entries. ++ * ++ * Note: This is not coping with whitespace in files or quoting. ++ */ ++ private void parseLine(String line, FileArgumentCallback cb) ++ throws IOException, OptionException ++ { ++ final int length = line.length(); ++ int start = 0; ++ int end = 0; ++ ++ // While not reached end of line ... ++ while (start < length) ++ { ++ // Search for first non-whitespace character for the start of a word. ++ while (Character.isWhitespace(line.codePointAt(start))) ++ { ++ start++; ++ ++ if (start == length) ++ return; ++ } ++ ++ end = start + 1; ++ ++ // Search for first whitespace character for the end of a word. ++ while (end < length && !Character.isWhitespace(line.codePointAt(end))) ++ end++; ++ ++ cb.notifyFile(line.substring(start, end)); ++ ++ start = end + 1; ++ } ++ } ++ ++ /** Implementation of {@link FileArgumentCallback} that handles ++ * file arguments in {@link #notifyFile} starting with a <code>@</code> ++ * through {@link ClasspathToolParser#parseFileList}. ++ */ ++ class AtFileArgumentCallback extends FileArgumentCallback ++ { ++ FileArgumentCallback cb; ++ ++ AtFileArgumentCallback(FileArgumentCallback cb) ++ { ++ this.cb = cb; ++ } ++ ++ public void notifyFile(String fileArgument) ++ throws OptionException ++ { ++ if (fileArgument.codePointAt(0) == '@') ++ { ++ FileReader fr = null; ++ ++ try ++ { ++ fr = new FileReader(fileArgument.substring(1)); ++ } ++ catch (FileNotFoundException fnfe) ++ { ++ System.err.println(programName + ": file not found " + fileArgument.substring(1)); ++ System.exit(1); ++ } ++ ++ ClasspathToolParser.this.parseFileList(fr, cb); ++ } ++ else ++ cb.notifyFile(fileArgument); ++ } ++ ++ } ++ + } +Index: tools/gnu/classpath/tools/getopt/Parser.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/getopt/Parser.java,v +retrieving revision 1.10 +diff -u -r1.10 Parser.java +--- tools/gnu/classpath/tools/getopt/Parser.java 20 Mar 2008 18:04:44 -0000 1.10 ++++ tools/gnu/classpath/tools/getopt/Parser.java 3 Jun 2008 16:34:45 -0000 +@@ -58,7 +58,7 @@ + /** The maximum right column position. */ + public static final int MAX_LINE_LENGTH = 80; + +- private String programName; ++ protected String programName; + + private String headerText; + +Index: tools/gnu/classpath/tools/jar/Main.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/jar/Main.java,v +retrieving revision 1.11 +diff -u -r1.11 Main.java +--- tools/gnu/classpath/tools/jar/Main.java 3 Jun 2008 14:02:13 -0000 1.11 ++++ tools/gnu/classpath/tools/jar/Main.java 3 Jun 2008 16:34:45 -0000 +@@ -172,9 +172,9 @@ + } + } + +- private Parser initializeParser() ++ private ClasspathToolParser initializeParser() + { +- Parser p = new JarParser("jar"); //$NON-NLS-1$ ++ ClasspathToolParser p = new JarParser("jar"); //$NON-NLS-1$ + p.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$ + + OptionGroup grp = new OptionGroup(Messages.getString("Main.OpMode")); //$NON-NLS-1$ +@@ -265,11 +265,11 @@ + private void run(String[] args) + throws InstantiationException, IllegalAccessException, IOException + { +- Parser p = initializeParser(); ++ ClasspathToolParser p = initializeParser(); + // Special hack to emulate old tar-style commands. + if (args.length > 0 && args[0].charAt(0) != '-') + args[0] = '-' + args[0]; +- p.parse(args, new HandleFile()); ++ p.parse(args, new HandleFile(), true); + if (readNamesFromStdin) + readNames(); + Action t = (Action) operationMode.newInstance(); +Index: tools/gnu/classpath/tools/javah/GcjhMain.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java,v +retrieving revision 1.1 +diff -u -r1.1 GcjhMain.java +--- tools/gnu/classpath/tools/javah/GcjhMain.java 6 Mar 2007 18:52:34 -0000 1.1 ++++ tools/gnu/classpath/tools/javah/GcjhMain.java 3 Jun 2008 16:34:46 -0000 +@@ -38,10 +38,11 @@ + + package gnu.classpath.tools.javah; + ++import gnu.classpath.tools.common.ClasspathToolParser; ++ + import gnu.classpath.tools.getopt.Option; + import gnu.classpath.tools.getopt.OptionException; + import gnu.classpath.tools.getopt.OptionGroup; +-import gnu.classpath.tools.getopt.Parser; + + import java.io.IOException; + import java.util.ArrayList; +@@ -60,9 +61,9 @@ + return "gcjh"; + } + +- protected Parser getParser() ++ protected ClasspathToolParser getParser() + { +- Parser result = super.getParser(); ++ ClasspathToolParser result = super.getParser(); + + result.setHeader("usage: gcjh [OPTION]... CLASS..."); + +Index: tools/gnu/classpath/tools/javah/Main.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/javah/Main.java,v +retrieving revision 1.10 +diff -u -r1.10 Main.java +--- tools/gnu/classpath/tools/javah/Main.java 31 Jul 2007 16:15:53 -0000 1.10 ++++ tools/gnu/classpath/tools/javah/Main.java 3 Jun 2008 16:34:46 -0000 +@@ -188,7 +188,7 @@ + return "javah"; + } + +- protected Parser getParser() ++ protected ClasspathToolParser getParser() + { + ClasspathToolParser result = new ClasspathToolParser(getName(), true); + result.setHeader("usage: javah [OPTIONS] CLASS..."); +@@ -339,8 +339,8 @@ + + protected void run(String[] args) throws IOException + { +- Parser p = getParser(); +- String[] classNames = p.parse(args); ++ ClasspathToolParser p = getParser(); ++ String[] classNames = p.parse(args, true); + postParse(classNames); + loader = classpath.getLoader(); + diff --git a/recipes/classpath/files/gjar-prefix-patch.diff b/recipes/classpath/files/gjar-prefix-patch.diff new file mode 100644 index 0000000000..64b262cb41 --- /dev/null +++ b/recipes/classpath/files/gjar-prefix-patch.diff @@ -0,0 +1,40 @@ +Index: tools/gnu/classpath/tools/jar/Entry.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/jar/Entry.java,v +retrieving revision 1.1 +diff -u -r1.1 Entry.java +--- tools/gnu/classpath/tools/jar/Entry.java 8 May 2006 18:38:20 -0000 1.1 ++++ tools/gnu/classpath/tools/jar/Entry.java 10 Dec 2007 22:20:05 -0000 +@@ -1,5 +1,5 @@ + /* Entry.java - represent a single file to write to a jar +- Copyright (C) 2006 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2007 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -49,12 +49,22 @@ + public Entry(File file, String name) + { + this.file = file; +- this.name = name; ++ ++ /* Removes any './' prefixes automatically. Those caused trouble ++ * in (boot) classpath use-cases. See #32516. ++ */ ++ int start = 0; ++ while (name.length() > start + 2 ++ && name.codePointAt(start) == '.' ++ && name.codePointAt(start + 1) == File.separatorChar) ++ start += 2; ++ ++ this.name = name.substring(start); + } + + public Entry(File file) + { +- this.file = file; +- this.name = file.toString(); ++ this(file, file.toString()); + } ++ + } diff --git a/recipes/classpath/files/javanet-local.patch b/recipes/classpath/files/javanet-local.patch new file mode 100644 index 0000000000..b8d1584e7c --- /dev/null +++ b/recipes/classpath/files/javanet-local.patch @@ -0,0 +1,37 @@ +Index: native/jni/java-net/local.c +=================================================================== +RCS file: /sources/classpath/classpath/native/jni/java-net/local.c,v +retrieving revision 1.4 +diff -u -r1.4 local.c +--- native/jni/java-net/local.c 17 Apr 2007 21:46:27 -0000 1.4 ++++ native/jni/java-net/local.c 27 Jun 2008 13:14:40 -0000 +@@ -73,27 +73,18 @@ + return socket (PF_UNIX, stream ? SOCK_STREAM : SOCK_DGRAM, 0); + } + +-static int gcc_sucks = 0; +- + int + local_bind (int fd, const char *addr) + { + struct sockaddr_un saddr; + +- /* For some reason, GCC 4.0.1 on Darwin/x86 MODIFIES the `addr' +- pointer in the CALLER's STACK FRAME after calling this function, +- but if we add this statement below, it doesn't! */ +- if (gcc_sucks) +- fprintf (stderr, "bind %p\n", addr); +- +- if (strlen (addr) > sizeof (saddr.sun_path)) ++ if (strlen (addr) >= sizeof (saddr.sun_path)) + { + errno = ENAMETOOLONG; + return -1; + } + +- strncpy (saddr.sun_path, addr, sizeof (saddr.sun_path)); +- saddr.sun_path[sizeof (saddr.sun_path)] = '\0'; ++ strcpy (saddr.sun_path, addr); + saddr.sun_family = AF_LOCAL; + + return bind (fd, (struct sockaddr *) &saddr, SUN_LEN (&saddr)); diff --git a/recipes/classpath/files/miscompilation-0.93.patch b/recipes/classpath/files/miscompilation-0.93.patch new file mode 100644 index 0000000000..99db6f3003 --- /dev/null +++ b/recipes/classpath/files/miscompilation-0.93.patch @@ -0,0 +1,13 @@ +Index: classpath-0.93/native/jni/java-io/java_io_VMFile.c +=================================================================== +--- classpath-0.93.orig/native/jni/java-io/java_io_VMFile.c 2006-09-23 07:17:45.000000000 +0200 ++++ classpath-0.93/native/jni/java-io/java_io_VMFile.c 2008-11-14 13:41:27.000000000 +0100 +@@ -239,7 +239,7 @@ + { + #ifndef WITHOUT_FILESYSTEM + const char *filename; +- int result; ++ volatile int result; + + /* Don't use the JCL convert function because it throws an exception + on failure */ diff --git a/recipes/classpath/files/miscompilation.patch b/recipes/classpath/files/miscompilation.patch new file mode 100644 index 0000000000..c61b214f44 --- /dev/null +++ b/recipes/classpath/files/miscompilation.patch @@ -0,0 +1,13 @@ +Index: classpath-0.97.2/native/jni/java-io/java_io_VMFile.c +=================================================================== +--- classpath-0.97.2.orig/native/jni/java-io/java_io_VMFile.c 2008-10-10 15:24:54.000000000 +0200 ++++ classpath-0.97.2/native/jni/java-io/java_io_VMFile.c 2008-10-10 15:25:36.000000000 +0200 +@@ -439,7 +439,7 @@ + { + #ifndef WITHOUT_FILESYSTEM + const char *filename; +- int result; ++ volatile int result; + + /* Don't use the JCL convert function because it throws an exception + on failure */ diff --git a/recipes/classpath/files/netif_16.patch b/recipes/classpath/files/netif_16.patch new file mode 100644 index 0000000000..f9dbe6c4cd --- /dev/null +++ b/recipes/classpath/files/netif_16.patch @@ -0,0 +1,269 @@ +Index: java/net/NetworkInterface.java +=================================================================== +--- java/net/NetworkInterface.java.orig 2006-12-18 22:37:39.000000000 +0100 ++++ java/net/NetworkInterface.java 2008-06-06 14:00:44.000000000 +0200 +@@ -1,5 +1,5 @@ + /* NetworkInterface.java -- +- Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -265,4 +265,50 @@ + + return result.toString(); + } ++ ++ /** ++ * Determines whether this interface is ready to transfer data. ++ * ++ * @return whether the interface is up ++ */ ++ public boolean isUp() ++ throws SocketException ++ { ++ return VMNetworkInterface.isUp(netif.name); ++ } ++ ++ /** ++ * Determines whether this interface does point to point ++ * transmission. ++ * ++ * @return whether the interface does point to point transmission ++ */ ++ public boolean isPointToPoint() ++ throws SocketException ++ { ++ return VMNetworkInterface.isPointToPoint(netif.name); ++ } ++ ++ /** ++ * Determines whether this interface is the loopback interface. ++ * ++ * @return whether the interface is the loopback interface ++ */ ++ public boolean isLoopback() ++ throws SocketException ++ { ++ return VMNetworkInterface.isLoopback(netif.name); ++ } ++ ++ /** ++ * Determines whether this interface supports multicast transmission. ++ * ++ * @return whether the interface supports multicast transmission. ++ */ ++ public boolean supportsMulticast() ++ throws SocketException ++ { ++ return VMNetworkInterface.supportsMulticast(netif.name); ++ } ++ + } +Index: vm/reference/java/net/VMNetworkInterface.java +=================================================================== +--- vm/reference/java/net/VMNetworkInterface.java.orig 2006-12-18 22:37:39.000000000 +0100 ++++ vm/reference/java/net/VMNetworkInterface.java 2008-06-06 14:00:44.000000000 +0200 +@@ -1,5 +1,5 @@ + /* VMNetworkInterface.java -- +- Copyright (C) 2005 Free Software Foundation, Inc. ++ Copyright (C) 2005, 2008 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -119,4 +119,13 @@ + else + throw new SocketException("invalid interface address"); + } ++ ++ static native boolean isUp(String name) throws SocketException; ++ ++ static native boolean isLoopback(String name) throws SocketException; ++ ++ static native boolean isPointToPoint(String name) throws SocketException; ++ ++ static native boolean supportsMulticast(String name) throws SocketException; ++ + } +Index: native/jni/java-net/java_net_VMNetworkInterface.c +=================================================================== +--- native/jni/java-net/java_net_VMNetworkInterface.c.orig 2007-04-05 14:34:19.000000000 +0200 ++++ native/jni/java-net/java_net_VMNetworkInterface.c 2008-06-06 14:00:44.000000000 +0200 +@@ -1,5 +1,5 @@ + /* VMNetworkInterface.c - Native methods for NetworkInterface class +- Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2005, 2006, 2008 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -50,11 +50,18 @@ + #include <stdio.h> + #include <string.h> + ++#include <net/if.h> ++#include <sys/ioctl.h> ++ + #include <jni.h> + #include <jcl.h> + ++#include <cpnative.h> ++#include <cpnet.h> ++ + #include "java_net_VMNetworkInterface.h" + ++int iff_flags(JNIEnv *, jstring, jint *); + + static jmethodID java_net_VMNetworkInterface_init; + static jmethodID java_net_VMNetworkInterface_addAddress; +@@ -251,4 +258,136 @@ + #endif /* HAVE_IFADDRS_H && HAVE_GETIFADDRS */ + } + ++int iff_flags(JNIEnv *env, jstring name, jint *flags) ++{ ++ struct ifreq iff; ++ const char *iff_name; ++ jint socket; ++ int error, retval; ++ ++ if ((error = cpnet_openSocketDatagram(env, &socket, AF_INET))) ++ { ++ return error; ++ } ++ ++ iff_name = JCL_jstring_to_cstring(env, name); ++ memset(&iff, 0, sizeof(iff)); ++ strcpy(iff.ifr_name, iff_name); ++ ++ if (ioctl(socket, SIOCGIFFLAGS, &iff) >= 0) ++ { ++ *flags = (jint) iff.ifr_flags; ++ ++ retval = 0; ++ } ++ else ++ { ++ retval = errno; ++ } ++ ++ cpnet_close(env, socket); ++ ++ JCL_free_cstring(env, name, iff_name); ++ ++ return retval; ++} ++ ++JNIEXPORT jboolean JNICALL ++Java_java_net_VMNetworkInterface_isUp (JNIEnv *env, jclass class UNUSED, ++ jstring name) ++{ ++ jint flags; ++ int error; ++ jboolean retval; ++ ++ if ((error = iff_flags(env, name, &flags))) ++ { ++ JCL_ThrowException(env, "java/net/SocketException", ++ cpnative_getErrorString(error)); ++ ++ retval = JNI_FALSE; ++ } ++ else ++ { ++ retval = (flags & (IFF_UP | IFF_RUNNING)) ++ ? JNI_TRUE ++ : JNI_FALSE; ++ } ++ ++ return retval; ++} ++ ++JNIEXPORT jboolean JNICALL ++Java_java_net_VMNetworkInterface_isPointToPoint (JNIEnv *env, ++ jclass class UNUSED, ++ jstring name) ++{ ++ jint flags; ++ int error; ++ jboolean retval; ++ ++ if ((error = iff_flags(env, name, &flags))) ++ { ++ JCL_ThrowException(env, "java/net/SocketException", ++ cpnative_getErrorString(error)); ++ ++ retval = JNI_FALSE; ++ } ++ else ++ { ++ retval = (flags & IFF_POINTOPOINT) ? JNI_TRUE ++ : JNI_FALSE; ++ } ++ ++ return retval; ++} ++ ++JNIEXPORT jboolean JNICALL ++Java_java_net_VMNetworkInterface_isLoopback (JNIEnv *env, ++ jclass class UNUSED, ++ jstring name) ++{ ++ jint flags; ++ int error; ++ jboolean retval; ++ ++ if ((error = iff_flags(env, name, &flags))) ++ { ++ JCL_ThrowException(env, "java/net/SocketException", ++ cpnative_getErrorString(error)); ++ ++ retval = JNI_FALSE; ++ } ++ else ++ { ++ retval = (flags & IFF_LOOPBACK) ? JNI_TRUE : JNI_FALSE; ++ } ++ ++ return retval; ++} ++ ++JNIEXPORT jboolean JNICALL ++Java_java_net_VMNetworkInterface_supportsMulticast (JNIEnv *env, ++ jclass class UNUSED, ++ jstring name) ++{ ++ jint flags; ++ int error; ++ jboolean retval; ++ ++ if ((error = iff_flags(env, name, &flags))) ++ { ++ JCL_ThrowException(env, "java/net/SocketException", ++ cpnative_getErrorString(error)); ++ ++ retval = JNI_FALSE; ++ } ++ else ++ { ++ retval = (flags & IFF_MULTICAST) ? JNI_TRUE : JNI_FALSE; ++ } ++ ++ return retval; ++} ++ + /* end of file */ +Index: include/java_net_VMNetworkInterface.h +=================================================================== +--- include/java_net_VMNetworkInterface.h.orig 2008-06-06 14:21:27.000000000 +0200 ++++ include/java_net_VMNetworkInterface.h 2008-06-06 14:22:12.000000000 +0200 +@@ -12,6 +12,10 @@ + + JNIEXPORT void JNICALL Java_java_net_VMNetworkInterface_initIds (JNIEnv *env, jclass); + JNIEXPORT jobjectArray JNICALL Java_java_net_VMNetworkInterface_getVMInterfaces (JNIEnv *env, jclass); ++JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isUp (JNIEnv *env, jclass, jstring); ++JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isLoopback (JNIEnv *env, jclass, jstring); ++JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isPointToPoint (JNIEnv *env, jclass, jstring); ++JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_supportsMulticast (JNIEnv *env, jclass, jstring); + + #ifdef __cplusplus + } diff --git a/recipes/classpath/files/sun-security-getproperty_0.96.1.patch b/recipes/classpath/files/sun-security-getproperty_0.96.1.patch new file mode 100644 index 0000000000..6af03e75ea --- /dev/null +++ b/recipes/classpath/files/sun-security-getproperty_0.96.1.patch @@ -0,0 +1,503 @@ +Index: gnu/classpath/debug/Simple1LineFormatter.java +=================================================================== +--- gnu/classpath/debug/Simple1LineFormatter.java.orig 2006-07-11 18:03:59.000000000 +0200 ++++ gnu/classpath/debug/Simple1LineFormatter.java 2008-06-04 11:14:14.000000000 +0200 +@@ -38,8 +38,6 @@ + + package gnu.classpath.debug; + +-import gnu.java.security.action.GetPropertyAction; +- + import java.io.PrintWriter; + import java.io.StringWriter; + import java.security.AccessController; +@@ -51,6 +49,8 @@ + import java.util.logging.Formatter; + import java.util.logging.LogRecord; + ++import sun.security.action.GetPropertyAction; ++ + /** + * A simple 1-line formatter to use instead of the 2-line SimpleFormatter used + * by default in the JDK logging handlers. +Index: gnu/classpath/debug/SystemLogger.java +=================================================================== +--- gnu/classpath/debug/SystemLogger.java.orig 2006-12-10 21:25:41.000000000 +0100 ++++ gnu/classpath/debug/SystemLogger.java 2008-06-04 11:14:14.000000000 +0200 +@@ -38,13 +38,13 @@ + + package gnu.classpath.debug; + +-import gnu.java.security.action.GetPropertyAction; +- + import java.security.AccessController; + import java.util.StringTokenizer; + import java.util.logging.Level; + import java.util.logging.Logger; + ++import sun.security.action.GetPropertyAction; ++ + public final class SystemLogger extends Logger + { + public static final SystemLogger SYSTEM = new SystemLogger(); +Index: gnu/java/security/PolicyFile.java +=================================================================== +--- gnu/java/security/PolicyFile.java.orig 2006-07-11 18:03:59.000000000 +0200 ++++ gnu/java/security/PolicyFile.java 2008-06-04 11:14:50.000000000 +0200 +@@ -39,7 +39,6 @@ + + import gnu.classpath.debug.Component; + import gnu.classpath.debug.SystemLogger; +-import gnu.java.security.action.GetPropertyAction; + + import java.io.File; + import java.io.IOException; +@@ -72,6 +71,8 @@ + import java.util.StringTokenizer; + import java.util.logging.Logger; + ++import sun.security.action.GetPropertyAction; ++ + /** + * An implementation of a {@link java.security.Policy} object whose + * permissions are specified by a <em>policy file</em>. +Index: gnu/java/security/action/GetPropertyAction.java +=================================================================== +--- gnu/java/security/action/GetPropertyAction.java 2006-12-10 21:25:42.000000000 +0100 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 +@@ -1,89 +0,0 @@ +-/* GetPropertyAction.java +- Copyright (C) 2004 Free Software Foundation, Inc. +- +-This file is part of GNU Classpath. +- +-GNU Classpath is free software; you can redistribute it and/or modify +-it under the terms of the GNU General Public License as published by +-the Free Software Foundation; either version 2, or (at your option) +-any later version. +- +-GNU Classpath is distributed in the hope that it will be useful, but +-WITHOUT ANY WARRANTY; without even the implied warranty of +-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-General Public License for more details. +- +-You should have received a copy of the GNU General Public License +-along with GNU Classpath; see the file COPYING. If not, write to the +-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +-02110-1301 USA. +- +-Linking this library statically or dynamically with other modules is +-making a combined work based on this library. Thus, the terms and +-conditions of the GNU General Public License cover the whole +-combination. +- +-As a special exception, the copyright holders of this library give you +-permission to link this library with independent modules to produce an +-executable, regardless of the license terms of these independent +-modules, and to copy and distribute the resulting executable under +-terms of your choice, provided that you also meet, for each linked +-independent module, the terms and conditions of the license of that +-module. An independent module is a module which is not derived from +-or based on this library. If you modify this library, you may extend +-this exception to your version of the library, but you are not +-obligated to do so. If you do not wish to do so, delete this +-exception statement from your version. */ +- +-package gnu.java.security.action; +- +-import java.security.PrivilegedAction; +- +-/** +- * PrivilegedAction implementation that calls System.getProperty() with +- * the property name passed to its constructor. +- * +- * Example of use: +- * <code> +- * GetPropertyAction action = new GetPropertyAction("http.proxyPort"); +- * String port = AccessController.doPrivileged(action); +- * </code> +- */ +-public class GetPropertyAction implements PrivilegedAction<String> +-{ +- String name; +- String value = null; +- +- public GetPropertyAction() +- { +- } +- +- public GetPropertyAction(String propName) +- { +- setParameters(propName); +- } +- +- public GetPropertyAction(String propName, String defaultValue) +- { +- setParameters(propName, defaultValue); +- } +- +- public String run() +- { +- return System.getProperty(name, value); +- } +- +- public GetPropertyAction setParameters(String propName) +- { +- this.name = propName; +- this.value = null; +- return this; +- } +- +- public GetPropertyAction setParameters(String propName, String defaultValue) +- { +- this.name = propName; +- this.value = defaultValue; +- return this; +- } +-} +Index: gnu/java/security/key/dss/DSSKey.java +=================================================================== +--- gnu/java/security/key/dss/DSSKey.java.orig 2006-08-05 05:23:27.000000000 +0200 ++++ gnu/java/security/key/dss/DSSKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -39,7 +39,6 @@ + package gnu.java.security.key.dss; + + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.util.FormatUtil; + + import java.math.BigInteger; +@@ -49,6 +48,8 @@ + import java.security.interfaces.DSAParams; + import java.security.spec.DSAParameterSpec; + ++import sun.security.action.GetPropertyAction; ++ + /** + * A base asbtract class for both public and private DSS (Digital Signature + * Standard) keys. It encapsulates the three DSS numbers: <code>p</code>, +Index: gnu/java/security/key/dss/DSSPrivateKey.java +=================================================================== +--- gnu/java/security/key/dss/DSSPrivateKey.java.orig 2006-07-11 18:04:00.000000000 +0200 ++++ gnu/java/security/key/dss/DSSPrivateKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -40,7 +40,6 @@ + + import gnu.java.security.Configuration; + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.key.IKeyPairCodec; + + import java.math.BigInteger; +@@ -48,6 +47,8 @@ + import java.security.PrivateKey; + import java.security.interfaces.DSAPrivateKey; + ++import sun.security.action.GetPropertyAction; ++ + /** + * An object that embodies a DSS (Digital Signature Standard) private key. + * +Index: gnu/java/security/key/dss/DSSPublicKey.java +=================================================================== +--- gnu/java/security/key/dss/DSSPublicKey.java.orig 2006-07-11 18:04:00.000000000 +0200 ++++ gnu/java/security/key/dss/DSSPublicKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -39,7 +39,6 @@ + package gnu.java.security.key.dss; + + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.key.IKeyPairCodec; + + import java.math.BigInteger; +@@ -47,6 +46,8 @@ + import java.security.PublicKey; + import java.security.interfaces.DSAPublicKey; + ++import sun.security.action.GetPropertyAction; ++ + /** + * An object that embodies a DSS (Digital Signature Standard) public key. + * +Index: gnu/java/security/key/rsa/GnuRSAKey.java +=================================================================== +--- gnu/java/security/key/rsa/GnuRSAKey.java.orig 2006-07-11 18:04:00.000000000 +0200 ++++ gnu/java/security/key/rsa/GnuRSAKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -39,7 +39,6 @@ + package gnu.java.security.key.rsa; + + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.util.FormatUtil; + + import java.math.BigInteger; +@@ -47,6 +46,8 @@ + import java.security.Key; + import java.security.interfaces.RSAKey; + ++import sun.security.action.GetPropertyAction; ++ + /** + * A base asbtract class for both public and private RSA keys. + */ +Index: gnu/java/security/key/rsa/GnuRSAPrivateKey.java +=================================================================== +--- gnu/java/security/key/rsa/GnuRSAPrivateKey.java.orig 2006-07-11 18:04:00.000000000 +0200 ++++ gnu/java/security/key/rsa/GnuRSAPrivateKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -39,7 +39,6 @@ + package gnu.java.security.key.rsa; + + import gnu.java.security.Configuration; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.Registry; + import gnu.java.security.key.IKeyPairCodec; + +@@ -49,6 +48,8 @@ + import java.security.interfaces.RSAPrivateCrtKey; + import java.security.interfaces.RSAPrivateKey; + ++import sun.security.action.GetPropertyAction; ++ + /** + * An object that embodies an RSA private key. + * <p> +Index: gnu/java/security/key/rsa/GnuRSAPublicKey.java +=================================================================== +--- gnu/java/security/key/rsa/GnuRSAPublicKey.java.orig 2006-07-11 18:04:00.000000000 +0200 ++++ gnu/java/security/key/rsa/GnuRSAPublicKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -39,7 +39,6 @@ + package gnu.java.security.key.rsa; + + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.key.IKeyPairCodec; + + import java.math.BigInteger; +@@ -47,6 +46,8 @@ + import java.security.PublicKey; + import java.security.interfaces.RSAPublicKey; + ++import sun.security.action.GetPropertyAction; ++ + /** + * An object that encapsulates an RSA public key. + * <p> +Index: gnu/javax/crypto/key/dh/GnuDHKey.java +=================================================================== +--- gnu/javax/crypto/key/dh/GnuDHKey.java.orig 2006-07-11 18:03:59.000000000 +0200 ++++ gnu/javax/crypto/key/dh/GnuDHKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -39,7 +39,6 @@ + package gnu.javax.crypto.key.dh; + + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.util.FormatUtil; + + import java.math.BigInteger; +@@ -49,6 +48,8 @@ + import javax.crypto.interfaces.DHKey; + import javax.crypto.spec.DHParameterSpec; + ++import sun.security.action.GetPropertyAction; ++ + /** + * A base asbtract class for both public and private Diffie-Hellman keys. It + * encapsulates the two DH numbers: <code>p</code>, and <code>g</code>. +Index: gnu/javax/crypto/key/dh/GnuDHPrivateKey.java +=================================================================== +--- gnu/javax/crypto/key/dh/GnuDHPrivateKey.java.orig 2006-07-11 18:03:59.000000000 +0200 ++++ gnu/javax/crypto/key/dh/GnuDHPrivateKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -40,7 +40,6 @@ + + import gnu.java.security.Configuration; + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.key.IKeyPairCodec; + + import java.math.BigInteger; +@@ -48,6 +47,8 @@ + + import javax.crypto.interfaces.DHPrivateKey; + ++import sun.security.action.GetPropertyAction; ++ + /** + * An implementation of the Diffie-Hellman private key. + * <p> +Index: gnu/javax/crypto/key/dh/GnuDHPublicKey.java +=================================================================== +--- gnu/javax/crypto/key/dh/GnuDHPublicKey.java.orig 2006-07-11 18:03:59.000000000 +0200 ++++ gnu/javax/crypto/key/dh/GnuDHPublicKey.java 2008-06-04 11:14:14.000000000 +0200 +@@ -39,7 +39,6 @@ + package gnu.javax.crypto.key.dh; + + import gnu.java.security.Registry; +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.key.IKeyPairCodec; + + import java.math.BigInteger; +@@ -47,6 +46,8 @@ + + import javax.crypto.interfaces.DHPublicKey; + ++import sun.security.action.GetPropertyAction; ++ + /** + * An implementation of the Diffie-Hellman public key. + * <p> +Index: gnu/javax/crypto/sasl/plain/PasswordFile.java +=================================================================== +--- gnu/javax/crypto/sasl/plain/PasswordFile.java.orig 2006-07-11 18:03:59.000000000 +0200 ++++ gnu/javax/crypto/sasl/plain/PasswordFile.java 2008-06-04 11:14:14.000000000 +0200 +@@ -38,7 +38,6 @@ + + package gnu.javax.crypto.sasl.plain; + +-import gnu.java.security.action.GetPropertyAction; + import gnu.javax.crypto.sasl.NoSuchUserException; + import gnu.javax.crypto.sasl.UserAlreadyExistsException; + +@@ -56,6 +55,8 @@ + import java.util.NoSuchElementException; + import java.util.StringTokenizer; + ++import sun.security.action.GetPropertyAction; ++ + /** + * A representation of a Plain password file. + */ +Index: gnu/javax/net/ssl/provider/X509TrustManagerFactory.java +=================================================================== +--- gnu/javax/net/ssl/provider/X509TrustManagerFactory.java.orig 2006-12-10 21:25:43.000000000 +0100 ++++ gnu/javax/net/ssl/provider/X509TrustManagerFactory.java 2008-06-04 11:14:14.000000000 +0200 +@@ -66,11 +66,12 @@ + import javax.net.ssl.TrustManagerFactorySpi; + import javax.net.ssl.X509TrustManager; + +-import gnu.java.security.action.GetPropertyAction; + import gnu.java.security.x509.X509CertPath; + import gnu.javax.net.ssl.NullManagerParameters; + import gnu.javax.net.ssl.StaticTrustAnchors; + ++import sun.security.action.GetPropertyAction; ++ + /** + * This class implements a {@link javax.net.ssl.TrustManagerFactory} engine + * for the ``JessieX509'' algorithm. +Index: gnu/xml/aelfred2/XmlParser.java +=================================================================== +--- gnu/xml/aelfred2/XmlParser.java.orig 2007-09-21 20:05:21.000000000 +0200 ++++ gnu/xml/aelfred2/XmlParser.java 2008-06-04 11:14:14.000000000 +0200 +@@ -53,8 +53,6 @@ + + package gnu.xml.aelfred2; + +-import gnu.java.security.action.GetPropertyAction; +- + import java.io.BufferedInputStream; + import java.io.CharConversionException; + import java.io.EOFException; +@@ -74,6 +72,7 @@ + import org.xml.sax.InputSource; + import org.xml.sax.SAXException; + ++import sun.security.action.GetPropertyAction; + + /** + * Parse XML documents and return parse events through call-backs. +Index: sun/security/action/GetPropertyAction.java +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sun/security/action/GetPropertyAction.java 2008-06-04 11:14:14.000000000 +0200 +@@ -0,0 +1,92 @@ ++/* GetPropertyAction.java ++ Copyright (C) 2004, 2008 Free Software Foundation, Inc. ++ ++This file is part of GNU Classpath. ++ ++GNU Classpath is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU Classpath is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU Classpath; see the file COPYING. If not, write to the ++Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++02110-1301 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package sun.security.action; ++ ++import java.security.PrivilegedAction; ++ ++/** ++ * PrivilegedAction implementation that calls System.getProperty() with ++ * the property name passed to its constructor. ++ * ++ * Example of use: ++ * <code> ++ * GetPropertyAction action = new GetPropertyAction("http.proxyPort"); ++ * String port = AccessController.doPrivileged(action); ++ * </code> ++ * ++ * Note: Usage of this class is discouraged as it is not a part of the ++ * J2SE API. ++ */ ++public class GetPropertyAction implements PrivilegedAction<String> ++{ ++ String name; ++ String value = null; ++ ++ public GetPropertyAction() ++ { ++ } ++ ++ public GetPropertyAction(String propName) ++ { ++ setParameters(propName); ++ } ++ ++ public GetPropertyAction(String propName, String defaultValue) ++ { ++ setParameters(propName, defaultValue); ++ } ++ ++ public String run() ++ { ++ return System.getProperty(name, value); ++ } ++ ++ public GetPropertyAction setParameters(String propName) ++ { ++ this.name = propName; ++ this.value = null; ++ return this; ++ } ++ ++ public GetPropertyAction setParameters(String propName, String defaultValue) ++ { ++ this.name = propName; ++ this.value = defaultValue; ++ return this; ++ } ++} diff --git a/recipes/classpath/files/xmlstream-fix.patch b/recipes/classpath/files/xmlstream-fix.patch new file mode 100644 index 0000000000..30b44178d7 --- /dev/null +++ b/recipes/classpath/files/xmlstream-fix.patch @@ -0,0 +1,93 @@ +Index: gnu/xml/stream/AttributeImpl.java +=================================================================== +RCS file: /sources/classpath/classpath/gnu/xml/stream/AttributeImpl.java,v +retrieving revision 1.1 +diff -u -r1.1 AttributeImpl.java +--- gnu/xml/stream/AttributeImpl.java 4 Sep 2005 09:52:10 -0000 1.1 ++++ gnu/xml/stream/AttributeImpl.java 4 Mar 2008 16:02:43 -0000 +@@ -56,11 +56,11 @@ + + protected final QName name; + protected final String value; +- protected final QName type; ++ protected final String type; + protected final boolean specified; + + protected AttributeImpl(Location location, +- QName name, String value, QName type, ++ QName name, String value, String type, + boolean specified) + { + super(location); +@@ -85,7 +85,7 @@ + return value; + } + +- public QName getDTDType() ++ public String getDTDType() + { + return type; + } +Index: gnu/xml/stream/XMLEventAllocatorImpl.java +=================================================================== +RCS file: /sources/classpath/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java,v +retrieving revision 1.3 +diff -u -r1.3 XMLEventAllocatorImpl.java +--- gnu/xml/stream/XMLEventAllocatorImpl.java 3 Mar 2006 12:30:59 -0000 1.3 ++++ gnu/xml/stream/XMLEventAllocatorImpl.java 4 Mar 2008 16:02:44 -0000 +@@ -165,7 +165,7 @@ + attributes.add(new AttributeImpl(location, + reader.getAttributeName(i), + reader.getAttributeValue(i), +- QName.valueOf(reader.getAttributeType(i)), ++ reader.getAttributeType(i), + reader.isAttributeSpecified(i))); + return new StartElementImpl(location, + reader.getName(), +Index: gnu/xml/stream/XMLEventFactoryImpl.java +=================================================================== +RCS file: /sources/classpath/classpath/gnu/xml/stream/XMLEventFactoryImpl.java,v +retrieving revision 1.2 +diff -u -r1.2 XMLEventFactoryImpl.java +--- gnu/xml/stream/XMLEventFactoryImpl.java 3 Mar 2006 12:30:59 -0000 1.2 ++++ gnu/xml/stream/XMLEventFactoryImpl.java 4 Mar 2008 16:02:44 -0000 +@@ -79,20 +79,20 @@ + { + return new AttributeImpl(location, + new QName(namespaceURI, localName, prefix), +- value, QName.valueOf("CDATA"), true); ++ value, "CDATA", true); + } + + public Attribute createAttribute(String localName, String value) + { + return new AttributeImpl(location, + new QName(localName), +- value, QName.valueOf("CDATA"), true); ++ value, "CDATA", true); + } + + public Attribute createAttribute(QName name, String value) + { + return new AttributeImpl(location, name, value, +- QName.valueOf("CDATA"), true); ++ "CDATA", true); + } + + public Namespace createNamespace(String namespaceURI) +Index: javax/xml/stream/events/Attribute.java +=================================================================== +RCS file: /sources/classpath/classpath/javax/xml/stream/events/Attribute.java,v +retrieving revision 1.2 +diff -u -r1.2 Attribute.java +--- javax/xml/stream/events/Attribute.java 4 Sep 2005 09:44:30 -0000 1.2 ++++ javax/xml/stream/events/Attribute.java 4 Mar 2008 16:02:48 -0000 +@@ -59,7 +59,7 @@ + /** + * Returns the type of this attribute. + */ +- QName getDTDType(); ++ String getDTDType(); + + /** + * Indicates whether this attribute was specified in the input source, or |