summaryrefslogtreecommitdiffstats
path: root/recipes-core/classpath
diff options
context:
space:
mode:
authorHenning Heinold <heinold@inf.fu-berlin.de>2011-11-12 20:58:34 +0100
committerHenning Heinold <heinold@inf.fu-berlin.de>2011-11-26 23:41:44 +0100
commit57e069cde6617f00ca8834a82c6f360af43d5067 (patch)
tree48cbe15e96d217c45acfa64b0c13aad8c6424980 /recipes-core/classpath
downloadmeta-java-57e069cde6617f00ca8834a82c6f360af43d5067.tar.gz
meta-java: initial commit
* taken over mostly stuff from oe classic * cleaned up recipes * added license checksums * bump icedtea6-native to 1.8.11 * use jamvm from git as native
Diffstat (limited to 'recipes-core/classpath')
-rw-r--r--recipes-core/classpath/classpath-0.98/SimpleName.diff66
-rw-r--r--recipes-core/classpath/classpath-0.98/ecj_java_dir.patch37
-rw-r--r--recipes-core/classpath/classpath-0.98/fix-gmp.patch19
-rw-r--r--recipes-core/classpath/classpath-0.98/javanet-local.patch37
-rw-r--r--recipes-core/classpath/classpath-0.98/miscompilation.patch13
-rw-r--r--recipes-core/classpath/classpath-0.98/sun-security-getproperty.patch503
-rw-r--r--recipes-core/classpath/classpath-0.98/toolwrapper-exithook.patch46
-rw-r--r--recipes-core/classpath/classpath-initial-0.93/miscompilation.patch13
-rw-r--r--recipes-core/classpath/classpath-initial_0.93.bb37
-rw-r--r--recipes-core/classpath/classpath-native.inc34
-rw-r--r--recipes-core/classpath/classpath-native_0.98.bb29
-rw-r--r--recipes-core/classpath/classpath.inc86
-rw-r--r--recipes-core/classpath/classpath_0.98.bb13
-rw-r--r--recipes-core/classpath/files/autotools.patch24
14 files changed, 957 insertions, 0 deletions
diff --git a/recipes-core/classpath/classpath-0.98/SimpleName.diff b/recipes-core/classpath/classpath-0.98/SimpleName.diff
new file mode 100644
index 0000000..ff2bec0
--- /dev/null
+++ b/recipes-core/classpath/classpath-0.98/SimpleName.diff
@@ -0,0 +1,66 @@
1Index: vm/reference/java/lang/VMClass.java
2===================================================================
3RCS file: /sources/classpath/classpath/vm/reference/java/lang/VMClass.java,v
4retrieving revision 1.20
5diff -u -r1.20 VMClass.java
6--- vm/reference/java/lang/VMClass.java 18 Sep 2007 21:52:38 -0000 1.20
7+++ vm/reference/java/lang/VMClass.java 19 Apr 2008 15:19:00 -0000
8@@ -296,27 +296,43 @@
9 */
10 static String getSimpleName(Class klass)
11 {
12+ int arrayCount = 0;
13+ while (klass.isArray())
14+ {
15+ klass = klass.getComponentType();
16+ ++arrayCount;
17+ }
18+ // now klass is the component type
19+
20+ String simpleComponentName = null;
21 if (isAnonymousClass(klass))
22- return "";
23- if (isArray(klass))
24 {
25- return getComponentType(klass).getSimpleName() + "[]";
26+ simpleComponentName = "";
27 }
28- String fullName = getName(klass);
29- int pos = fullName.lastIndexOf("$");
30- if (pos == -1)
31- pos = 0;
32 else
33 {
34- ++pos;
35- while (Character.isDigit(fullName.charAt(pos)))
36- ++pos;
37+ String fullName = getName(klass);
38+ int pos = fullName.lastIndexOf("$");
39+ if (pos != -1)
40+ { //inner class or local class
41+ // skip digits of local classes
42+ while (Character.isDigit(fullName.charAt(pos+1)))
43+ pos++;
44+ }
45+ else
46+ {
47+ pos = fullName.lastIndexOf(".");
48+ }
49+ simpleComponentName = fullName.substring(pos+1);
50 }
51- int packagePos = fullName.lastIndexOf(".", pos);
52- if (packagePos == -1)
53- return fullName.substring(pos);
54- else
55- return fullName.substring(packagePos + 1);
56+
57+ if (arrayCount == 0)
58+ return simpleComponentName;
59+
60+ StringBuffer sb = new StringBuffer(simpleComponentName);
61+ while (arrayCount-- > 0)
62+ sb.append("[]");
63+ return sb.toString();
64 }
65
66 /**
diff --git a/recipes-core/classpath/classpath-0.98/ecj_java_dir.patch b/recipes-core/classpath/classpath-0.98/ecj_java_dir.patch
new file mode 100644
index 0000000..1455a24
--- /dev/null
+++ b/recipes-core/classpath/classpath-0.98/ecj_java_dir.patch
@@ -0,0 +1,37 @@
1Index: classpath-0.98/lib/gen-classlist.sh.in
2===================================================================
3--- classpath-0.98.orig/lib/gen-classlist.sh.in 2010-06-24 21:18:02.776819217 +0200
4+++ classpath-0.98/lib/gen-classlist.sh.in 2010-06-24 21:18:35.625566191 +0200
5@@ -148,4 +148,7 @@
6 done
7 fi
8
9+# hack for javac that uses -d and do not make the directories
10+@AWK@ -F " " '{print $1}' classes.1 | uniq | awk -F " " '{system("mkdir -p " $0)}'
11+
12 exit 0
13Index: classpath-0.98/tools/Makefile.am
14===================================================================
15--- classpath-0.98.orig/tools/Makefile.am 2010-06-24 21:18:02.783479881 +0200
16+++ classpath-0.98/tools/Makefile.am 2010-06-24 21:20:04.925557253 +0200
17@@ -323,6 +323,8 @@
18 endif
19 ## Compile ASM separately as it is latin-1 encoded.
20 find $(srcdir)/external/asm -name '*.java' -print > asm.lst
21+ @AWK@ -F "/" '{OFS=FS;gsub("/"$$2"/"$$3,"",$$0);gsub("/"$$NF,"",$$0); print $$0}' asm.lst | \
22+ sort | uniq | @AWK@ -F " " '{system("mkdir -p asm/" $$0)}'
23 AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
24 $$AC -g -d asm @asm.lst
25 find $(srcdir)/gnu/classpath/tools \
26@@ -334,7 +336,10 @@
27 $(srcdir)/sun/rmi/rmic \
28 $(GJDOC_EX) \
29 -name '*.java' -print > classes.lst
30- $(JCOMPILER) -g -d classes @classes.lst
31+ @AWK@ -F "/" '{OFS=FS;gsub("/"$$NF,"",$$0); print $$0}' classes.lst | \
32+ sort | uniq | @AWK@ -F " " '{system("mkdir -p classes/" $$0)}'
33+ BC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
34+ $$BC -g -d classes @classes.lst
35 cat classes.lst asm.lst > all-classes.lst
36 ## Copy over tools resource files.
37 @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
diff --git a/recipes-core/classpath/classpath-0.98/fix-gmp.patch b/recipes-core/classpath/classpath-0.98/fix-gmp.patch
new file mode 100644
index 0000000..3f0dfbe
--- /dev/null
+++ b/recipes-core/classpath/classpath-0.98/fix-gmp.patch
@@ -0,0 +1,19 @@
1---
2 configure.ac | 2 +-
3 1 file changed, 1 insertion(+), 1 deletion(-)
4
5--- classpath-0.98.orig/configure.ac
6+++ classpath-0.98/configure.ac
7@@ -766,11 +766,11 @@ if test "x${COMPILE_JNI}" = xyes; then
8 dnl __gmpz_mul_si for earlier versions (>= 3.1).
9 dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to
10 dnl change the name of the corresponding ac_ variable on lines 860...
11 if test "x${COMPILE_GMP}" = xyes; then
12 AC_CHECK_LIB(gmp, __gmpz_mul_si,
13- [GMP_CFLAGS=-I/usr/include
14+ [GMP_CFLAGS=
15 GMP_LIBS=-lgmp ],
16 [GMP_CFLAGS=
17 GMP_LIBS= ])
18 AC_SUBST(GMP_CFLAGS)
19 AC_SUBST(GMP_LIBS)
diff --git a/recipes-core/classpath/classpath-0.98/javanet-local.patch b/recipes-core/classpath/classpath-0.98/javanet-local.patch
new file mode 100644
index 0000000..b8d1584
--- /dev/null
+++ b/recipes-core/classpath/classpath-0.98/javanet-local.patch
@@ -0,0 +1,37 @@
1Index: native/jni/java-net/local.c
2===================================================================
3RCS file: /sources/classpath/classpath/native/jni/java-net/local.c,v
4retrieving revision 1.4
5diff -u -r1.4 local.c
6--- native/jni/java-net/local.c 17 Apr 2007 21:46:27 -0000 1.4
7+++ native/jni/java-net/local.c 27 Jun 2008 13:14:40 -0000
8@@ -73,27 +73,18 @@
9 return socket (PF_UNIX, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
10 }
11
12-static int gcc_sucks = 0;
13-
14 int
15 local_bind (int fd, const char *addr)
16 {
17 struct sockaddr_un saddr;
18
19- /* For some reason, GCC 4.0.1 on Darwin/x86 MODIFIES the `addr'
20- pointer in the CALLER's STACK FRAME after calling this function,
21- but if we add this statement below, it doesn't! */
22- if (gcc_sucks)
23- fprintf (stderr, "bind %p\n", addr);
24-
25- if (strlen (addr) > sizeof (saddr.sun_path))
26+ if (strlen (addr) >= sizeof (saddr.sun_path))
27 {
28 errno = ENAMETOOLONG;
29 return -1;
30 }
31
32- strncpy (saddr.sun_path, addr, sizeof (saddr.sun_path));
33- saddr.sun_path[sizeof (saddr.sun_path)] = '\0';
34+ strcpy (saddr.sun_path, addr);
35 saddr.sun_family = AF_LOCAL;
36
37 return bind (fd, (struct sockaddr *) &saddr, SUN_LEN (&saddr));
diff --git a/recipes-core/classpath/classpath-0.98/miscompilation.patch b/recipes-core/classpath/classpath-0.98/miscompilation.patch
new file mode 100644
index 0000000..c61b214
--- /dev/null
+++ b/recipes-core/classpath/classpath-0.98/miscompilation.patch
@@ -0,0 +1,13 @@
1Index: classpath-0.97.2/native/jni/java-io/java_io_VMFile.c
2===================================================================
3--- classpath-0.97.2.orig/native/jni/java-io/java_io_VMFile.c 2008-10-10 15:24:54.000000000 +0200
4+++ classpath-0.97.2/native/jni/java-io/java_io_VMFile.c 2008-10-10 15:25:36.000000000 +0200
5@@ -439,7 +439,7 @@
6 {
7 #ifndef WITHOUT_FILESYSTEM
8 const char *filename;
9- int result;
10+ volatile int result;
11
12 /* Don't use the JCL convert function because it throws an exception
13 on failure */
diff --git a/recipes-core/classpath/classpath-0.98/sun-security-getproperty.patch b/recipes-core/classpath/classpath-0.98/sun-security-getproperty.patch
new file mode 100644
index 0000000..fb9cd9d
--- /dev/null
+++ b/recipes-core/classpath/classpath-0.98/sun-security-getproperty.patch
@@ -0,0 +1,503 @@
1Index: gnu/classpath/debug/Simple1LineFormatter.java
2===================================================================
3--- gnu/classpath/debug/Simple1LineFormatter.java.orig 2006-07-11 18:03:59.000000000 +0200
4+++ gnu/classpath/debug/Simple1LineFormatter.java 2009-03-19 19:00:47.000000000 +0100
5@@ -38,8 +38,6 @@
6
7 package gnu.classpath.debug;
8
9-import gnu.java.security.action.GetPropertyAction;
10-
11 import java.io.PrintWriter;
12 import java.io.StringWriter;
13 import java.security.AccessController;
14@@ -51,6 +49,8 @@
15 import java.util.logging.Formatter;
16 import java.util.logging.LogRecord;
17
18+import sun.security.action.GetPropertyAction;
19+
20 /**
21 * A simple 1-line formatter to use instead of the 2-line SimpleFormatter used
22 * by default in the JDK logging handlers.
23Index: gnu/classpath/debug/SystemLogger.java
24===================================================================
25--- gnu/classpath/debug/SystemLogger.java.orig 2006-12-10 21:25:41.000000000 +0100
26+++ gnu/classpath/debug/SystemLogger.java 2009-03-19 19:00:47.000000000 +0100
27@@ -38,13 +38,13 @@
28
29 package gnu.classpath.debug;
30
31-import gnu.java.security.action.GetPropertyAction;
32-
33 import java.security.AccessController;
34 import java.util.StringTokenizer;
35 import java.util.logging.Level;
36 import java.util.logging.Logger;
37
38+import sun.security.action.GetPropertyAction;
39+
40 public final class SystemLogger extends Logger
41 {
42 public static final SystemLogger SYSTEM = new SystemLogger();
43Index: gnu/java/security/PolicyFile.java
44===================================================================
45--- gnu/java/security/PolicyFile.java.orig 2008-06-16 00:07:30.000000000 +0200
46+++ gnu/java/security/PolicyFile.java 2009-03-19 19:01:31.000000000 +0100
47@@ -41,7 +41,6 @@
48 import gnu.classpath.debug.SystemLogger;
49
50 import gnu.java.lang.CPStringBuilder;
51-import gnu.java.security.action.GetPropertyAction;
52
53 import java.io.File;
54 import java.io.IOException;
55@@ -74,6 +73,8 @@
56 import java.util.StringTokenizer;
57 import java.util.logging.Logger;
58
59+import sun.security.action.GetPropertyAction;
60+
61 /**
62 * An implementation of a {@link java.security.Policy} object whose
63 * permissions are specified by a <em>policy file</em>.
64Index: gnu/java/security/action/GetPropertyAction.java
65===================================================================
66--- gnu/java/security/action/GetPropertyAction.java 2006-12-10 21:25:42.000000000 +0100
67+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
68@@ -1,89 +0,0 @@
69-/* GetPropertyAction.java
70- Copyright (C) 2004 Free Software Foundation, Inc.
71-
72-This file is part of GNU Classpath.
73-
74-GNU Classpath is free software; you can redistribute it and/or modify
75-it under the terms of the GNU General Public License as published by
76-the Free Software Foundation; either version 2, or (at your option)
77-any later version.
78-
79-GNU Classpath is distributed in the hope that it will be useful, but
80-WITHOUT ANY WARRANTY; without even the implied warranty of
81-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
82-General Public License for more details.
83-
84-You should have received a copy of the GNU General Public License
85-along with GNU Classpath; see the file COPYING. If not, write to the
86-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
87-02110-1301 USA.
88-
89-Linking this library statically or dynamically with other modules is
90-making a combined work based on this library. Thus, the terms and
91-conditions of the GNU General Public License cover the whole
92-combination.
93-
94-As a special exception, the copyright holders of this library give you
95-permission to link this library with independent modules to produce an
96-executable, regardless of the license terms of these independent
97-modules, and to copy and distribute the resulting executable under
98-terms of your choice, provided that you also meet, for each linked
99-independent module, the terms and conditions of the license of that
100-module. An independent module is a module which is not derived from
101-or based on this library. If you modify this library, you may extend
102-this exception to your version of the library, but you are not
103-obligated to do so. If you do not wish to do so, delete this
104-exception statement from your version. */
105-
106-package gnu.java.security.action;
107-
108-import java.security.PrivilegedAction;
109-
110-/**
111- * PrivilegedAction implementation that calls System.getProperty() with
112- * the property name passed to its constructor.
113- *
114- * Example of use:
115- * <code>
116- * GetPropertyAction action = new GetPropertyAction("http.proxyPort");
117- * String port = AccessController.doPrivileged(action);
118- * </code>
119- */
120-public class GetPropertyAction implements PrivilegedAction<String>
121-{
122- String name;
123- String value = null;
124-
125- public GetPropertyAction()
126- {
127- }
128-
129- public GetPropertyAction(String propName)
130- {
131- setParameters(propName);
132- }
133-
134- public GetPropertyAction(String propName, String defaultValue)
135- {
136- setParameters(propName, defaultValue);
137- }
138-
139- public String run()
140- {
141- return System.getProperty(name, value);
142- }
143-
144- public GetPropertyAction setParameters(String propName)
145- {
146- this.name = propName;
147- this.value = null;
148- return this;
149- }
150-
151- public GetPropertyAction setParameters(String propName, String defaultValue)
152- {
153- this.name = propName;
154- this.value = defaultValue;
155- return this;
156- }
157-}
158Index: gnu/java/security/key/dss/DSSKey.java
159===================================================================
160--- gnu/java/security/key/dss/DSSKey.java.orig 2008-03-16 23:04:49.000000000 +0100
161+++ gnu/java/security/key/dss/DSSKey.java 2009-03-19 19:00:47.000000000 +0100
162@@ -41,7 +41,6 @@
163 import gnu.java.lang.CPStringBuilder;
164
165 import gnu.java.security.Registry;
166-import gnu.java.security.action.GetPropertyAction;
167 import gnu.java.security.util.FormatUtil;
168
169 import java.math.BigInteger;
170@@ -51,6 +50,8 @@
171 import java.security.interfaces.DSAParams;
172 import java.security.spec.DSAParameterSpec;
173
174+import sun.security.action.GetPropertyAction;
175+
176 /**
177 * A base asbtract class for both public and private DSS (Digital Signature
178 * Standard) keys. It encapsulates the three DSS numbers: <code>p</code>,
179Index: gnu/java/security/key/dss/DSSPrivateKey.java
180===================================================================
181--- gnu/java/security/key/dss/DSSPrivateKey.java.orig 2008-03-16 23:04:49.000000000 +0100
182+++ gnu/java/security/key/dss/DSSPrivateKey.java 2009-03-19 19:00:47.000000000 +0100
183@@ -42,7 +42,6 @@
184
185 import gnu.java.security.Configuration;
186 import gnu.java.security.Registry;
187-import gnu.java.security.action.GetPropertyAction;
188 import gnu.java.security.key.IKeyPairCodec;
189
190 import java.math.BigInteger;
191@@ -50,6 +49,8 @@
192 import java.security.PrivateKey;
193 import java.security.interfaces.DSAPrivateKey;
194
195+import sun.security.action.GetPropertyAction;
196+
197 /**
198 * An object that embodies a DSS (Digital Signature Standard) private key.
199 *
200Index: gnu/java/security/key/dss/DSSPublicKey.java
201===================================================================
202--- gnu/java/security/key/dss/DSSPublicKey.java.orig 2008-03-16 23:04:49.000000000 +0100
203+++ gnu/java/security/key/dss/DSSPublicKey.java 2009-03-19 19:00:47.000000000 +0100
204@@ -41,7 +41,6 @@
205 import gnu.java.lang.CPStringBuilder;
206
207 import gnu.java.security.Registry;
208-import gnu.java.security.action.GetPropertyAction;
209 import gnu.java.security.key.IKeyPairCodec;
210
211 import java.math.BigInteger;
212@@ -49,6 +48,8 @@
213 import java.security.PublicKey;
214 import java.security.interfaces.DSAPublicKey;
215
216+import sun.security.action.GetPropertyAction;
217+
218 /**
219 * An object that embodies a DSS (Digital Signature Standard) public key.
220 *
221Index: gnu/java/security/key/rsa/GnuRSAKey.java
222===================================================================
223--- gnu/java/security/key/rsa/GnuRSAKey.java.orig 2008-03-16 23:04:49.000000000 +0100
224+++ gnu/java/security/key/rsa/GnuRSAKey.java 2009-03-19 19:00:47.000000000 +0100
225@@ -41,7 +41,6 @@
226 import gnu.java.lang.CPStringBuilder;
227
228 import gnu.java.security.Registry;
229-import gnu.java.security.action.GetPropertyAction;
230 import gnu.java.security.util.FormatUtil;
231
232 import java.math.BigInteger;
233@@ -49,6 +48,8 @@
234 import java.security.Key;
235 import java.security.interfaces.RSAKey;
236
237+import sun.security.action.GetPropertyAction;
238+
239 /**
240 * A base asbtract class for both public and private RSA keys.
241 */
242Index: gnu/java/security/key/rsa/GnuRSAPrivateKey.java
243===================================================================
244--- gnu/java/security/key/rsa/GnuRSAPrivateKey.java.orig 2008-03-16 23:04:50.000000000 +0100
245+++ gnu/java/security/key/rsa/GnuRSAPrivateKey.java 2009-03-19 19:00:47.000000000 +0100
246@@ -41,7 +41,6 @@
247 import gnu.java.lang.CPStringBuilder;
248
249 import gnu.java.security.Configuration;
250-import gnu.java.security.action.GetPropertyAction;
251 import gnu.java.security.Registry;
252 import gnu.java.security.key.IKeyPairCodec;
253
254@@ -51,6 +50,8 @@
255 import java.security.interfaces.RSAPrivateCrtKey;
256 import java.security.interfaces.RSAPrivateKey;
257
258+import sun.security.action.GetPropertyAction;
259+
260 /**
261 * An object that embodies an RSA private key.
262 * <p>
263Index: gnu/java/security/key/rsa/GnuRSAPublicKey.java
264===================================================================
265--- gnu/java/security/key/rsa/GnuRSAPublicKey.java.orig 2008-03-16 23:04:50.000000000 +0100
266+++ gnu/java/security/key/rsa/GnuRSAPublicKey.java 2009-03-19 19:00:47.000000000 +0100
267@@ -41,7 +41,6 @@
268 import gnu.java.lang.CPStringBuilder;
269
270 import gnu.java.security.Registry;
271-import gnu.java.security.action.GetPropertyAction;
272 import gnu.java.security.key.IKeyPairCodec;
273
274 import java.math.BigInteger;
275@@ -49,6 +48,8 @@
276 import java.security.PublicKey;
277 import java.security.interfaces.RSAPublicKey;
278
279+import sun.security.action.GetPropertyAction;
280+
281 /**
282 * An object that encapsulates an RSA public key.
283 * <p>
284Index: gnu/javax/crypto/key/dh/GnuDHKey.java
285===================================================================
286--- gnu/javax/crypto/key/dh/GnuDHKey.java.orig 2006-07-11 18:03:59.000000000 +0200
287+++ gnu/javax/crypto/key/dh/GnuDHKey.java 2009-03-19 19:00:47.000000000 +0100
288@@ -39,7 +39,6 @@
289 package gnu.javax.crypto.key.dh;
290
291 import gnu.java.security.Registry;
292-import gnu.java.security.action.GetPropertyAction;
293 import gnu.java.security.util.FormatUtil;
294
295 import java.math.BigInteger;
296@@ -49,6 +48,8 @@
297 import javax.crypto.interfaces.DHKey;
298 import javax.crypto.spec.DHParameterSpec;
299
300+import sun.security.action.GetPropertyAction;
301+
302 /**
303 * A base asbtract class for both public and private Diffie-Hellman keys. It
304 * encapsulates the two DH numbers: <code>p</code>, and <code>g</code>.
305Index: gnu/javax/crypto/key/dh/GnuDHPrivateKey.java
306===================================================================
307--- gnu/javax/crypto/key/dh/GnuDHPrivateKey.java.orig 2006-07-11 18:03:59.000000000 +0200
308+++ gnu/javax/crypto/key/dh/GnuDHPrivateKey.java 2009-03-19 19:00:47.000000000 +0100
309@@ -40,7 +40,6 @@
310
311 import gnu.java.security.Configuration;
312 import gnu.java.security.Registry;
313-import gnu.java.security.action.GetPropertyAction;
314 import gnu.java.security.key.IKeyPairCodec;
315
316 import java.math.BigInteger;
317@@ -48,6 +47,8 @@
318
319 import javax.crypto.interfaces.DHPrivateKey;
320
321+import sun.security.action.GetPropertyAction;
322+
323 /**
324 * An implementation of the Diffie-Hellman private key.
325 * <p>
326Index: gnu/javax/crypto/key/dh/GnuDHPublicKey.java
327===================================================================
328--- gnu/javax/crypto/key/dh/GnuDHPublicKey.java.orig 2006-07-11 18:03:59.000000000 +0200
329+++ gnu/javax/crypto/key/dh/GnuDHPublicKey.java 2009-03-19 19:00:47.000000000 +0100
330@@ -39,7 +39,6 @@
331 package gnu.javax.crypto.key.dh;
332
333 import gnu.java.security.Registry;
334-import gnu.java.security.action.GetPropertyAction;
335 import gnu.java.security.key.IKeyPairCodec;
336
337 import java.math.BigInteger;
338@@ -47,6 +46,8 @@
339
340 import javax.crypto.interfaces.DHPublicKey;
341
342+import sun.security.action.GetPropertyAction;
343+
344 /**
345 * An implementation of the Diffie-Hellman public key.
346 * <p>
347Index: gnu/javax/crypto/sasl/plain/PasswordFile.java
348===================================================================
349--- gnu/javax/crypto/sasl/plain/PasswordFile.java.orig 2008-05-05 23:29:46.000000000 +0200
350+++ gnu/javax/crypto/sasl/plain/PasswordFile.java 2009-03-19 19:00:47.000000000 +0100
351@@ -40,7 +40,6 @@
352
353 import gnu.java.lang.CPStringBuilder;
354
355-import gnu.java.security.action.GetPropertyAction;
356 import gnu.javax.crypto.sasl.NoSuchUserException;
357 import gnu.javax.crypto.sasl.UserAlreadyExistsException;
358
359@@ -58,6 +57,8 @@
360 import java.util.NoSuchElementException;
361 import java.util.StringTokenizer;
362
363+import sun.security.action.GetPropertyAction;
364+
365 /**
366 * A representation of a Plain password file.
367 */
368Index: gnu/javax/net/ssl/provider/X509TrustManagerFactory.java
369===================================================================
370--- gnu/javax/net/ssl/provider/X509TrustManagerFactory.java.orig 2006-12-10 21:25:43.000000000 +0100
371+++ gnu/javax/net/ssl/provider/X509TrustManagerFactory.java 2009-03-19 19:00:47.000000000 +0100
372@@ -66,11 +66,12 @@
373 import javax.net.ssl.TrustManagerFactorySpi;
374 import javax.net.ssl.X509TrustManager;
375
376-import gnu.java.security.action.GetPropertyAction;
377 import gnu.java.security.x509.X509CertPath;
378 import gnu.javax.net.ssl.NullManagerParameters;
379 import gnu.javax.net.ssl.StaticTrustAnchors;
380
381+import sun.security.action.GetPropertyAction;
382+
383 /**
384 * This class implements a {@link javax.net.ssl.TrustManagerFactory} engine
385 * for the ``JessieX509'' algorithm.
386Index: gnu/xml/aelfred2/XmlParser.java
387===================================================================
388--- gnu/xml/aelfred2/XmlParser.java.orig 2008-01-11 22:22:59.000000000 +0100
389+++ gnu/xml/aelfred2/XmlParser.java 2009-03-19 19:00:47.000000000 +0100
390@@ -53,8 +53,6 @@
391
392 package gnu.xml.aelfred2;
393
394-import gnu.java.security.action.GetPropertyAction;
395-
396 import java.io.BufferedInputStream;
397 import java.io.CharConversionException;
398 import java.io.EOFException;
399@@ -74,6 +72,7 @@
400 import org.xml.sax.InputSource;
401 import org.xml.sax.SAXException;
402
403+import sun.security.action.GetPropertyAction;
404
405 /**
406 * Parse XML documents and return parse events through call-backs.
407Index: sun/security/action/GetPropertyAction.java
408===================================================================
409--- /dev/null 1970-01-01 00:00:00.000000000 +0000
410+++ sun/security/action/GetPropertyAction.java 2009-03-19 19:00:47.000000000 +0100
411@@ -0,0 +1,92 @@
412+/* GetPropertyAction.java
413+ Copyright (C) 2004, 2008 Free Software Foundation, Inc.
414+
415+This file is part of GNU Classpath.
416+
417+GNU Classpath is free software; you can redistribute it and/or modify
418+it under the terms of the GNU General Public License as published by
419+the Free Software Foundation; either version 2, or (at your option)
420+any later version.
421+
422+GNU Classpath is distributed in the hope that it will be useful, but
423+WITHOUT ANY WARRANTY; without even the implied warranty of
424+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
425+General Public License for more details.
426+
427+You should have received a copy of the GNU General Public License
428+along with GNU Classpath; see the file COPYING. If not, write to the
429+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
430+02110-1301 USA.
431+
432+Linking this library statically or dynamically with other modules is
433+making a combined work based on this library. Thus, the terms and
434+conditions of the GNU General Public License cover the whole
435+combination.
436+
437+As a special exception, the copyright holders of this library give you
438+permission to link this library with independent modules to produce an
439+executable, regardless of the license terms of these independent
440+modules, and to copy and distribute the resulting executable under
441+terms of your choice, provided that you also meet, for each linked
442+independent module, the terms and conditions of the license of that
443+module. An independent module is a module which is not derived from
444+or based on this library. If you modify this library, you may extend
445+this exception to your version of the library, but you are not
446+obligated to do so. If you do not wish to do so, delete this
447+exception statement from your version. */
448+
449+package sun.security.action;
450+
451+import java.security.PrivilegedAction;
452+
453+/**
454+ * PrivilegedAction implementation that calls System.getProperty() with
455+ * the property name passed to its constructor.
456+ *
457+ * Example of use:
458+ * <code>
459+ * GetPropertyAction action = new GetPropertyAction("http.proxyPort");
460+ * String port = AccessController.doPrivileged(action);
461+ * </code>
462+ *
463+ * Note: Usage of this class is discouraged as it is not a part of the
464+ * J2SE API.
465+ */
466+public class GetPropertyAction implements PrivilegedAction<String>
467+{
468+ String name;
469+ String value = null;
470+
471+ public GetPropertyAction()
472+ {
473+ }
474+
475+ public GetPropertyAction(String propName)
476+ {
477+ setParameters(propName);
478+ }
479+
480+ public GetPropertyAction(String propName, String defaultValue)
481+ {
482+ setParameters(propName, defaultValue);
483+ }
484+
485+ public String run()
486+ {
487+ return System.getProperty(name, value);
488+ }
489+
490+ public GetPropertyAction setParameters(String propName)
491+ {
492+ this.name = propName;
493+ this.value = null;
494+ return this;
495+ }
496+
497+ public GetPropertyAction setParameters(String propName, String defaultValue)
498+ {
499+ this.name = propName;
500+ this.value = defaultValue;
501+ return this;
502+ }
503+}
diff --git a/recipes-core/classpath/classpath-0.98/toolwrapper-exithook.patch b/recipes-core/classpath/classpath-0.98/toolwrapper-exithook.patch
new file mode 100644
index 0000000..49b6631
--- /dev/null
+++ b/recipes-core/classpath/classpath-0.98/toolwrapper-exithook.patch
@@ -0,0 +1,46 @@
1Index: classpath-0.97.2/tools/toolwrapper.c
2===================================================================
3--- classpath-0.97.2.orig/tools/toolwrapper.c 2006-12-13 18:56:44.000000000 +0100
4+++ classpath-0.97.2/tools/toolwrapper.c 2009-12-24 13:16:44.295000627 +0100
5@@ -59,6 +59,10 @@
6 /* Typedef for JNI_CreateJavaVM dlopen call. */
7 typedef jint createVM (JavaVM **, void **, void *);
8
9+void exit_hook(jint);
10+
11+int return_code = 1;
12+
13 int
14 main (int argc, const char** argv)
15 {
16@@ -143,6 +147,17 @@
17 vm_args.options[vm_args.nOptions++].optionString = "-Xbootclasspath/p:" TOOLS_ZIP;
18 }
19
20+ /* Set the exit hook */
21+ vm_args.options = (JavaVMOption*) realloc (vm_args.options, (vm_args.nOptions + 1) * sizeof (JavaVMOption));
22+
23+ if (vm_args.options == NULL)
24+ {
25+ fprintf (stderr, TOOLNAME ": realloc failed.\n");
26+ goto destroy;
27+ }
28+ vm_args.options[vm_args.nOptions].optionString = "exit";
29+ vm_args.options[vm_args.nOptions++].extraInfo = (void *) exit_hook;
30+
31 /* Terminate vm_args.options with a NULL element. */
32 vm_args.options = (JavaVMOption*) realloc (vm_args.options, (vm_args.nOptions + 1) * sizeof (JavaVMOption));
33 if (vm_args.options == NULL)
34@@ -260,5 +275,11 @@
35 if (lt_dlexit () != 0)
36 fprintf (stderr, TOOLNAME ": lt_dlexit failed.\n");
37
38- return 1;
39+ return return_code;
40+}
41+
42+void exit_hook(jint code)
43+{
44+ return_code = code;
45 }
46+
diff --git a/recipes-core/classpath/classpath-initial-0.93/miscompilation.patch b/recipes-core/classpath/classpath-initial-0.93/miscompilation.patch
new file mode 100644
index 0000000..99db6f3
--- /dev/null
+++ b/recipes-core/classpath/classpath-initial-0.93/miscompilation.patch
@@ -0,0 +1,13 @@
1Index: classpath-0.93/native/jni/java-io/java_io_VMFile.c
2===================================================================
3--- classpath-0.93.orig/native/jni/java-io/java_io_VMFile.c 2006-09-23 07:17:45.000000000 +0200
4+++ classpath-0.93/native/jni/java-io/java_io_VMFile.c 2008-11-14 13:41:27.000000000 +0100
5@@ -239,7 +239,7 @@
6 {
7 #ifndef WITHOUT_FILESYSTEM
8 const char *filename;
9- int result;
10+ volatile int result;
11
12 /* Don't use the JCL convert function because it throws an exception
13 on failure */
diff --git a/recipes-core/classpath/classpath-initial_0.93.bb b/recipes-core/classpath/classpath-initial_0.93.bb
new file mode 100644
index 0000000..77831c1
--- /dev/null
+++ b/recipes-core/classpath/classpath-initial_0.93.bb
@@ -0,0 +1,37 @@
1# No later version of Classpath may be used because this is the latest that can be compiled
2# by jikes!
3
4require classpath-native.inc
5
6DESCRIPTION="Java1.4-compatible GNU Classpath variant that is used as bootclasspath for jikes-native."
7LIC_FILES_CHKSUM = "file://COPYING;md5=af0004801732bc4b20d90f351cf80510"
8
9DEPENDS = "zip-native fastjar-native jikes-native gettext-native"
10
11SRC_URI += " \
12 file://autotools.patch \
13 file://miscompilation.patch \
14 "
15
16EXTRA_OECONF = " \
17 --with-jikes=jikes \
18 --with-fastjar=fastjar \
19 --with-glibj \
20 --disable-Werror \
21 --disable-local-sockets \
22 --disable-alsa \
23 --disable-gconf-peer \
24 --disable-gtk-peer \
25 --disable-plugin \
26 --disable-dssi \
27 --disable-examples \
28 --disable-tools \
29 --with-glibj-dir=${STAGING_DATADIR_NATIVE}/classpath-initial \
30 --with-native-libdir=${STAGING_LIBDIR_NATIVE}/classpath-initial \
31 --includedir=${STAGING_INCDIR_NATIVE}/classpath-initial \
32 --with-vm=java \
33 "
34
35SRC_URI[md5sum] = "ffa9e9cac31c5acbf0ea9eff9efa923d"
36SRC_URI[sha256sum] = "df2d093612abd23fe67e9409d89bb2a8e79b1664fe2b2da40e1c8ed693e32945"
37
diff --git a/recipes-core/classpath/classpath-native.inc b/recipes-core/classpath/classpath-native.inc
new file mode 100644
index 0000000..aefbf6d
--- /dev/null
+++ b/recipes-core/classpath/classpath-native.inc
@@ -0,0 +1,34 @@
1DESCRIPTION = "GNU Classpath standard Java libraries - For native Java-dependent programs"
2HOMEPAGE = "http://www.gnu.org/software/classpath/"
3LICENSE = "Classpath"
4
5DEPENDS = "ecj-initial fastjar-native zip-native gettext-native"
6
7inherit autotools native
8
9SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz"
10
11do_configure_prepend () {
12
13 cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}
14}
15
16export JAVA="${STAGING_BINDIR_NATIVE}/java-initial"
17export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial"
18export JAVACFLAGS="-nowarn"
19
20EXTRA_OECONF = " \
21 --with-glibj \
22 --enable-local-sockets \
23 --disable-Werror \
24 --disable-alsa \
25 --disable-gconf-peer \
26 --disable-gtk-peer \
27 --disable-plugin \
28 --disable-dssi \
29 --disable-gjdoc \
30 --disable-examples \
31 --enable-tools \
32 --includedir=${STAGING_INCDIR}/classpath \
33 "
34
diff --git a/recipes-core/classpath/classpath-native_0.98.bb b/recipes-core/classpath/classpath-native_0.98.bb
new file mode 100644
index 0000000..55022fb
--- /dev/null
+++ b/recipes-core/classpath/classpath-native_0.98.bb
@@ -0,0 +1,29 @@
1require classpath-native.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=af0004801732bc4b20d90f351cf80510"
4
5SRC_URI += " \
6 file://SimpleName.diff;striplevel=0 \
7 file://sun-security-getproperty.patch;striplevel=0 \
8 file://ecj_java_dir.patch \
9 file://autotools.patch \
10 file://miscompilation.patch \
11 file://toolwrapper-exithook.patch \
12 "
13
14do_unpackpost() {
15 # Kind of patch: Moves package "org.w3c.dom.html2" to "org.w3c.dom.html"
16 mv external/w3c_dom/org/w3c/dom/html2 \
17 external/w3c_dom/org/w3c/dom/html
18
19 find examples/gnu/classpath/examples/html gnu/xml/dom/html2 external/w3c_dom/org/w3c/dom/html -name "*.java" \
20 -exec sed -i -e"s|org.w3c.dom.html2|org.w3c.dom.html|" {} \;
21
22 sed -i -e"s|org/w3c/dom/html2|org/w3c/dom/html|" external/w3c_dom/Makefile.am
23}
24
25addtask unpackpost after do_unpack before do_patch
26
27SRC_URI[md5sum] = "90c6571b8b0309e372faa0f9f6255ea9"
28SRC_URI[sha256sum] = "501b5acd4dff79b6100da22cef15080f31071821ce3cea6f1b739bc1b56fac3f"
29
diff --git a/recipes-core/classpath/classpath.inc b/recipes-core/classpath/classpath.inc
new file mode 100644
index 0000000..dfe4a68
--- /dev/null
+++ b/recipes-core/classpath/classpath.inc
@@ -0,0 +1,86 @@
1DESCRIPTION = "GNU Classpath standard Java libraries"
2HOMEPAGE = "http://www.gnu.org/software/classpath/"
3SECTION = "libs"
4PRIORITY = "optional"
5LICENSE = "Classpath"
6PBN = "classpath"
7
8
9inherit autotools java
10
11DEPENDS = "virtual/javac-native fastjar-native zip-native gettext-native gmp antlr-native gtk+ gconf libxtst"
12
13RPROVIDES_${PN} = ""
14
15RDEPENDS_${PN} = "${PBN}-common (>= ${PV})"
16RDEPENDS_${PN}-examples = "java2-runtime ${PN}-awt"
17RDEPENDS_${PN}-tools = "java2-runtime"
18
19RPROVIDES_${PN} = "${PBN}"
20RPROVIDES_${PN}-common = "${PBN}-common"
21RPROVIDES_${PN}-gtk = "${PBN}-awt"
22
23SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz"
24
25S = "${WORKDIR}/${PBN}-${PV}"
26
27export JAVA = "java"
28
29EXTRA_OECONF = "\
30 --with-glibj \
31 --with-ecj=javac \
32 --with-fastjar=fastjar \
33 --includedir=${includedir}/classpath \
34 --with-vm=java \
35 --disable-Werror \
36 --with-antlr-jar=${STAGING_DATADIR_JAVA_NATIVE}/antlr.jar \
37 --disable-alsa \
38 --disable-dssi \
39 --disable-qt4-peer \
40 --disable-plugin \
41 --enable-gconf-peer \
42 --enable-gtk-peer \
43 --enable-local-sockets \
44 --with-vm=java \
45 "
46
47
48EXTRA_OECONF += "\
49 "
50
51do_configure_prepend () {
52 cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}
53}
54
55
56do_install() {
57 autotools_do_install
58 mv ${D}${libdir}/security ${D}${libdir}/${PBN}
59}
60
61# Defines the packages that this classpath recipe creates.
62# This allows the classpath-minimal variants to override this
63# again.
64CPPACKAGES = "${PBN}-common ${PN}-examples \
65 ${PN}-tools ${PN}-tools-doc \
66 ${PN}-gtk ${PN}-gconf"
67
68PACKAGES =+ "${CPPACKAGES}"
69
70FILES_${PN}-dev += "${libdir}/${PBN}/*.la ${incdir}/${PBN}"
71
72FILES_${PBN}-common = "${datadir}/${PBN}/glibj.zip ${libdir}/logging.properties ${libdir}/${PBN}/security"
73FILES_${PN}-examples = "${datadir}/${PBN}/examples"
74
75FILES_${PN}-tools = "${datadir}/${PBN}/tools.zip ${bindir}"
76FILES_${PN}-tools-doc = "${mandir}"
77
78FILES_${PN}-dbg += "${libdir}/${PBN}/.debug"
79FILES_${PN}-doc = "${infodir}"
80
81# gcjwebplugin - not built yet
82#FILES_${PN}-gcjwebplugin = "${libdir}/${PBN}/libgcjwebplugin.so"
83FILES_${PN}-gtk = "${libdir}/${PBN}/libgtkpeer.so ${libdir}/${PBN}/libjawt.so"
84FILES_${PN}-gconf = "${libdir}/${PBN}/libgconfpeer.so"
85FILES_${PN} = "${libdir}/${PBN}/lib*so*"
86
diff --git a/recipes-core/classpath/classpath_0.98.bb b/recipes-core/classpath/classpath_0.98.bb
new file mode 100644
index 0000000..21223c9
--- /dev/null
+++ b/recipes-core/classpath/classpath_0.98.bb
@@ -0,0 +1,13 @@
1require classpath.inc
2
3SRC_URI += " \
4 file://SimpleName.diff;striplevel=0 \
5 file://ecj_java_dir.patch \
6 file://autotools.patch \
7 file://fix-gmp.patch \
8 file://toolwrapper-exithook.patch \
9 "
10
11SRC_URI[md5sum] = "90c6571b8b0309e372faa0f9f6255ea9"
12SRC_URI[sha256sum] = "501b5acd4dff79b6100da22cef15080f31071821ce3cea6f1b739bc1b56fac3f"
13
diff --git a/recipes-core/classpath/files/autotools.patch b/recipes-core/classpath/files/autotools.patch
new file mode 100644
index 0000000..663c034
--- /dev/null
+++ b/recipes-core/classpath/files/autotools.patch
@@ -0,0 +1,24 @@
1Index: classpath-0.93/configure.ac
2===================================================================
3--- classpath-0.93.orig/configure.ac 2006-12-08 20:22:50.000000000 +0100
4+++ classpath-0.93/configure.ac 2008-08-25 22:07:40.711946598 +0200
5@@ -41,6 +41,11 @@
6 AC_CONFIG_HEADERS([include/config.h])
7 AC_PREFIX_DEFAULT(/usr/local/classpath)
8
9+AC_CONFIG_MACRO_DIR([m4])
10+
11+
12+AM_ICONV_LINK
13+
14 dnl -----------------------------------------------------------
15 dnl Enable collections.jar (disabled by default)
16 dnl -----------------------------------------------------------
17@@ -312,6 +317,7 @@
18 dnl AC_PROG_AWK
19 AC_PROG_CC
20 AC_PROG_CPP
21+AM_PROG_CC_C_O
22
23 # Handle -Werror default case.
24 if test "$ENABLE_WERROR" = default; then