Add GNU Classpath.
svn path=/nixpkgs/trunk/; revision=16527
This commit is contained in:
parent
69c23d6432
commit
4f591cb803
|
@ -0,0 +1,59 @@
|
|||
{ fetchurl, stdenv, javac, jvm, antlr, pkgconfig, gtk, gconf }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "classpath-0.98";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/classpath/${name}.tar.gz";
|
||||
sha256 = "0gxcdysw36vk3dpylg6f44c0fc8g10ayyb521l8bcygz9p6ml6sh";
|
||||
};
|
||||
|
||||
patches = [ ./missing-casts.patch ];
|
||||
|
||||
buildInputs = [ javac jvm antlr pkgconfig gtk gconf ];
|
||||
|
||||
configurePhase = ''
|
||||
# GCJ tries to compile all of Classpath during the `configure' run when
|
||||
# trying to build in the source tree (see
|
||||
# http://www.mail-archive.com/classpath@gnu.org/msg15079.html), thus we
|
||||
# build out-of-tree.
|
||||
mkdir ../build
|
||||
cd ../build
|
||||
echo "building in \`$PWD'"
|
||||
|
||||
../${name}/configure --prefix="$out" \
|
||||
--enable-fast-install --disable-dependency-tracking \
|
||||
${configureFlags}
|
||||
'';
|
||||
|
||||
/* Plug-in support requires Xulrunner and all that. Maybe someday,
|
||||
optionally.
|
||||
|
||||
Compilation with `-Werror' is disabled because of this:
|
||||
|
||||
native/jni/native-lib/cpnet.c: In function 'cpnet_addMembership':
|
||||
native/jni/native-lib/cpnet.c:583: error: dereferencing type-punned pointer will break strict-aliasing rules
|
||||
native/jni/native-lib/cpnet.c: In function 'cpnet_dropMembership':
|
||||
native/jni/native-lib/cpnet.c:598: error: dereferencing type-punned pointer will break strict-aliasing rules
|
||||
|
||||
*/
|
||||
|
||||
configureFlags = "--disable-Werror --disable-plugin --with-antlr-jar=${antlr}/lib/antlr.jar";
|
||||
|
||||
meta = {
|
||||
description = "GNU Classpath, essential libraries for Java";
|
||||
|
||||
longDescription = ''
|
||||
GNU Classpath, Essential Libraries for Java, is a GNU project to create
|
||||
free core class libraries for use with virtual machines and compilers
|
||||
for the Java programming language.
|
||||
'';
|
||||
|
||||
homepage = http://www.gnu.org/software/classpath/;
|
||||
|
||||
# The exception makes it similar to LGPLv2+ AFAICS.
|
||||
license = "GPLv2+ + exception";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
Add missing casts. The GCC folks applied a similar patch in
|
||||
GCC's own copy of Classpath:
|
||||
http://gcc.gnu.org/ml/java/2007-05/msg00039.html .
|
||||
|
||||
--- classpath-0.98/javax/management/NotificationBroadcasterSupport.java 2009-07-30 16:52:08.000000000 +0200
|
||||
+++ classpath-0.98/javax/management/NotificationBroadcasterSupport.java 2009-07-30 16:51:58.000000000 +0200
|
||||
@@ -218,7 +218,7 @@
|
||||
{
|
||||
if (info == null || info.length == 0)
|
||||
return new MBeanNotificationInfo[0];
|
||||
- return info.clone();
|
||||
+ return (MBeanNotificationInfo[]) info.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
--- classpath-0.98/java/util/concurrent/CopyOnWriteArrayList.java 2008-03-27 18:39:25.000000000 +0100
|
||||
+++ classpath-0.98/java/util/concurrent/CopyOnWriteArrayList.java 2009-07-30 17:08:30.000000000 +0200
|
||||
@@ -147,7 +148,7 @@ public class CopyOnWriteArrayList<E>
|
||||
*/
|
||||
public CopyOnWriteArrayList(E[] array)
|
||||
{
|
||||
- data = array.clone();
|
||||
+ data = (E[]) array.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -364,7 +365,7 @@ public class CopyOnWriteArrayList<E>
|
||||
public synchronized E set(int index, E e)
|
||||
{
|
||||
E result = data[index];
|
||||
- E[] newData = data.clone();
|
||||
+ E[] newData = (E[]) data.clone();
|
||||
newData[index] = e;
|
||||
data = newData;
|
||||
return result;
|
||||
|
||||
--- classpath-0.98/java/util/EnumMap.java 2007-07-24 17:26:36.000000000 +0200
|
||||
+++ classpath-0.98/java/util/EnumMap.java 2009-07-30 17:12:19.000000000 +0200
|
||||
@@ -398,7 +398,7 @@ public class EnumMap<K extends Enum<K>,
|
||||
// Can't happen.
|
||||
result = null;
|
||||
}
|
||||
- result.store = store.clone();
|
||||
+ result.store = (V[]) store.clone();
|
||||
return result;
|
||||
}
|
||||
|
||||
--- classpath-0.98/gnu/java/lang/reflect/GenericSignatureParser.java 2008-03-01 11:13:31.000000000 +0100
|
||||
+++ classpath-0.98/gnu/java/lang/reflect/GenericSignatureParser.java 2009-07-30 17:14:24.000000000 +0200
|
||||
@@ -75,7 +75,7 @@ final class TypeVariableImpl extends Typ
|
||||
public Type[] getBounds()
|
||||
{
|
||||
resolve(bounds);
|
||||
- return bounds.clone();
|
||||
+ return (Type[]) bounds.clone();
|
||||
}
|
||||
|
||||
public GenericDeclaration getGenericDeclaration()
|
||||
@@ -154,7 +154,7 @@ final class ParameterizedTypeImpl extend
|
||||
|
||||
public Type[] getActualTypeArguments()
|
||||
{
|
||||
- return typeArgs.clone();
|
||||
+ return (Type[]) typeArgs.clone();
|
||||
}
|
||||
|
||||
public Type getRawType()
|
||||
|
||||
--- classpath-0.98/external/jsr166/java/util/ArrayDeque.java 2006-12-10 21:25:40.000000000 +0100
|
||||
+++ classpath-0.98/external/jsr166/java/util/ArrayDeque.java 2009-07-30 17:15:35.000000000 +0200
|
||||
@@ -787,7 +790,7 @@ public class ArrayDeque<E> extends Abstr
|
||||
ArrayDeque<E> result = (ArrayDeque<E>) super.clone();
|
||||
// Classpath local: we don't have Arrays.copyOf yet.
|
||||
// result.elements = Arrays.copyOf(elements, elements.length);
|
||||
- result.elements = elements.clone();
|
||||
+ result.elements = (E[]) elements.clone();
|
||||
return result;
|
||||
|
||||
} catch (CloneNotSupportedException e) {
|
|
@ -2831,6 +2831,14 @@ let
|
|||
inherit (xlibs) libX11 xf86vidmodeproto libXmu libXxf86vm;
|
||||
};
|
||||
|
||||
classpath = import ../development/libraries/java/classpath {
|
||||
javac = gcj;
|
||||
jvm = gcj;
|
||||
inherit fetchurl stdenv pkgconfig antlr;
|
||||
inherit (gtkLibs) gtk;
|
||||
gconf = gnome.GConf;
|
||||
};
|
||||
|
||||
clearsilver = import ../development/libraries/clearsilver {
|
||||
inherit fetchurl stdenv python;
|
||||
};
|
||||
|
|
|
@ -88,6 +88,7 @@ in {
|
|||
cdrkit = linux;
|
||||
chatzilla = linux;
|
||||
cksfv = all;
|
||||
classpath = linux;
|
||||
clisp = linux;
|
||||
cmake = all;
|
||||
compiz = linux;
|
||||
|
|
Loading…
Reference in New Issue