classpath-native: Add patch allowing PhoneME builds with Classpath tools.
authorRobert Schuster <thebohemian@gmx.net>
Fri, 6 Jun 2008 12:50:58 +0000 (12:50 +0000)
committerRobert Schuster <thebohemian@gmx.net>
Fri, 6 Jun 2008 12:50:58 +0000 (12:50 +0000)
classpath-minimal: Move to bugfix release 0.97.2.
classpath: Move to bugfix release 0.97.2.
chinook-compat.conf: Set classpath preference to 0.97.2.
preferred-om-2008-versions.inc: Set classpath preference to 0.97.2.
classpath 0.97.2:
 * Updated NetworkInterface patch to include header file changes.

conf/distro/chinook-compat.conf
conf/distro/include/preferred-om-2008-versions.inc
packages/classpath/classpath-minimal_0.97.2.bb [moved from packages/classpath/classpath-minimal_0.97.1.bb with 98% similarity]
packages/classpath/classpath-native_0.96.1.bb
packages/classpath/classpath_0.97.2.bb [moved from packages/classpath/classpath_0.97.1.bb with 97% similarity]
packages/classpath/files/getopt-filelist.patch [new file with mode: 0644]
packages/classpath/files/netif_16.patch
packages/classpath/files/sun-security-getproperty_0.96.1.patch [new file with mode: 0644]

index e834c8c..1503a6f 100644 (file)
@@ -169,7 +169,7 @@ PREFERRED_PROVIDER_midpath-backend-gtk = "midpath-backend-gtk-hildon"
 PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native"
 
 PREFERRED_PROVIDER_classpath = "classpath"
-PREFERRED_VERSION_classpath = "0.97.1"
+PREFERRED_VERSION_classpath = "0.97.2"
 
 PREFERRED_PROVIDER_swt3.4-gtk = "swt3.4-gtk-hildon"
 PREFERRED_VERSION_swt3.4-gtk-hildon = "3.3+3.4M5"
index 1fc3031..0c6b63e 100644 (file)
@@ -162,9 +162,9 @@ PREFERRED_VERSION_chrpath-native ?= "0.13"
 PREFERRED_VERSION_ckermit ?= "211"
 PREFERRED_VERSION_clamav ?= "0.91.1"
 PREFERRED_VERSION_clamsmtp ?= "1.8"
-PREFERRED_VERSION_classpath ?= "0.97.1"
-PREFERRED_VERSION_classpath-gtk ?= "0.97.1"
-PREFERRED_VERSION_classpath-minimal ?= "0.97.1"
+PREFERRED_VERSION_classpath ?= "0.97.2"
+PREFERRED_VERSION_classpath-gtk ?= "0.97.2"
+PREFERRED_VERSION_classpath-minimal ?= "0.97.2"
 PREFERRED_VERSION_classpath-native ?= "0.96.1"
 PREFERRED_VERSION_clearsilver ?= "0.10.3"
 PREFERRED_VERSION_clish ?= "0.7.1"
@@ -5,7 +5,7 @@ SRC_URI += "\
   file://SimpleName.diff;patch=1;pnum=0 \
   "
 
-PR = "r1"
+PR = "r0"
 
 PROVIDES = "${PN} classpath"
 
index b9c3b3a..a354b6b 100644 (file)
@@ -1,9 +1,11 @@
 require classpath-native.inc
 
-PR = "r2"
+PR = "r3"
 
 SRC_URI += "\
   file://gjar-prefix-patch.diff;patch=1;pnum=0 \
   file://xmlstream-fix.patch;patch=1;pnum=0 \
+  file://getopt-filelist.patch;patch=1;pnum=0 \
+  file://sun-security-getproperty_0.96.1.patch;patch=1;pnum=0 \
   "
 
similarity index 97%
rename from packages/classpath/classpath_0.97.1.bb
rename to packages/classpath/classpath_0.97.2.bb
index 1d67768..338ebcf 100644 (file)
@@ -5,7 +5,7 @@ SRC_URI += "\
   file://SimpleName.diff;patch=1;pnum=0 \
   "
 
-PR = "r1"
+PR = "r0"
 
 DEPENDS += "gtk+ gconf libxtst"
 
diff --git a/packages/classpath/files/getopt-filelist.patch b/packages/classpath/files/getopt-filelist.patch
new file mode 100644 (file)
index 0000000..7b5e274
--- /dev/null
@@ -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();
index 9b5e425..f9dbe6c 100644 (file)
@@ -1,10 +1,7 @@
 Index: java/net/NetworkInterface.java
 ===================================================================
-RCS file: /sources/classpath/classpath/java/net/NetworkInterface.java,v
-retrieving revision 1.23
-diff -u -r1.23 NetworkInterface.java
---- java/net/NetworkInterface.java     18 Dec 2006 21:37:39 -0000      1.23
-+++ java/net/NetworkInterface.java     21 Apr 2008 10:38:25 -0000
+--- 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.
@@ -65,11 +62,8 @@ diff -u -r1.23 NetworkInterface.java
  }
 Index: vm/reference/java/net/VMNetworkInterface.java
 ===================================================================
-RCS file: /sources/classpath/classpath/vm/reference/java/net/VMNetworkInterface.java,v
-retrieving revision 1.7
-diff -u -r1.7 VMNetworkInterface.java
---- vm/reference/java/net/VMNetworkInterface.java      18 Dec 2006 21:37:39 -0000      1.7
-+++ vm/reference/java/net/VMNetworkInterface.java      21 Apr 2008 10:38:25 -0000
+--- 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.
@@ -93,11 +87,8 @@ diff -u -r1.7 VMNetworkInterface.java
  }
 Index: native/jni/java-net/java_net_VMNetworkInterface.c
 ===================================================================
-RCS file: /sources/classpath/classpath/native/jni/java-net/java_net_VMNetworkInterface.c,v
-retrieving revision 1.6
-diff -u -r1.6 java_net_VMNetworkInterface.c
---- native/jni/java-net/java_net_VMNetworkInterface.c  5 Apr 2007 12:34:19 -0000       1.6
-+++ native/jni/java-net/java_net_VMNetworkInterface.c  21 Apr 2008 10:38:25 -0000
+--- 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.
@@ -261,3 +252,18 @@ diff -u -r1.6 java_net_VMNetworkInterface.c
 +}
 +
  /* 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/packages/classpath/files/sun-security-getproperty_0.96.1.patch b/packages/classpath/files/sun-security-getproperty_0.96.1.patch
new file mode 100644 (file)
index 0000000..6af03e7
--- /dev/null
@@ -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;
++  }
++}