diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/java/rhino | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/java/rhino')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/java/rhino/default.nix | 59 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/java/rhino/gcj-type-mismatch.patch | 103 |
2 files changed, 162 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/java/rhino/default.nix b/nixpkgs/pkgs/development/libraries/java/rhino/default.nix new file mode 100644 index 000000000000..544f0f4c4e91 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/java/rhino/default.nix @@ -0,0 +1,59 @@ +{ fetchurl, stdenv, unzip, ant, javac, jvm }: + +let + version = "1.7R2"; + + xbeans = fetchurl { + url = "http://archive.apache.org/dist/xmlbeans/binaries/xmlbeans-2.2.0.zip"; + sha256 = "1pb08d9j81d0wz5wj31idz198iwhqb7mch872n08jh1354rjlqwk"; + }; +in + +stdenv.mkDerivation { + name = "rhino-${version}"; + + src = fetchurl { + url = "mirror://mozilla/js/rhino1_7R2.zip"; + sha256 = "1p32hkghi6bkc3cf2dcqyaw5cjj7403mykcp0fy8f5bsnv0pszv7"; + }; + + patches = [ ./gcj-type-mismatch.patch ]; + + hardeningDisable = [ "fortify" "format" ]; + + preConfigure = + '' + find -name \*.jar -or -name \*.class -exec rm -v {} \; + + # The build process tries to download it by itself. + mkdir -p "build/tmp-xbean" + ln -sv "${xbeans}" "build/tmp-xbean/xbean.zip" + ''; + + buildInputs = [ unzip ant javac jvm ]; + + buildPhase = "ant jar"; + doCheck = false; + + # FIXME: Install javadoc as well. + installPhase = + '' + mkdir -p "$out/share/java" + cp -v *.jar "$out/share/java" + ''; + + meta = with stdenv.lib; { + description = "An implementation of JavaScript written in Java"; + + longDescription = + '' Rhino is an open-source implementation of JavaScript written + entirely in Java. It is typically embedded into Java applications + to provide scripting to end users. + ''; + + homepage = http://www.mozilla.org/rhino/; + + license = with licenses; [ mpl11 /* or */ gpl2Plus ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/java/rhino/gcj-type-mismatch.patch b/nixpkgs/pkgs/development/libraries/java/rhino/gcj-type-mismatch.patch new file mode 100644 index 000000000000..dac7b209069a --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/java/rhino/gcj-type-mismatch.patch @@ -0,0 +1,103 @@ +Work around GCJ bug #35410: +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35410 . + +diff --git a/src/org/mozilla/javascript/Arguments.java b/src/org/mozilla/javascript/Arguments.java +index d914294..d658f12 100644 +--- a/src/org/mozilla/javascript/Arguments.java ++++ b/src/org/mozilla/javascript/Arguments.java +@@ -144,7 +144,7 @@ final class Arguments extends IdScriptableObject + synchronized (this) { + if (args[index] != NOT_FOUND) { + if (args == activation.originalArgs) { +- args = args.clone(); ++ args = (Object[]) args.clone(); + } + args[index] = value; + return; +@@ -162,7 +162,7 @@ final class Arguments extends IdScriptableObject + synchronized (this) { + if (args[index] != NOT_FOUND) { + if (args == activation.originalArgs) { +- args = args.clone(); ++ args = (Object[]) args.clone(); + } + args[index] = NOT_FOUND; + return; +diff --git a/src/org/mozilla/javascript/FunctionObject.java b/src/org/mozilla/javascript/FunctionObject.java +index 1d6c752..3adc100 100644 +--- a/src/org/mozilla/javascript/FunctionObject.java ++++ b/src/org/mozilla/javascript/FunctionObject.java +@@ -455,7 +455,7 @@ public class FunctionObject extends BaseFunction + Object converted = convertArg(cx, scope, arg, typeTags[i]); + if (arg != converted) { + if (invokeArgs == args) { +- invokeArgs = args.clone(); ++ invokeArgs = (Object[]) args.clone(); + } + invokeArgs[i] = converted; + } +diff --git a/src/org/mozilla/javascript/Interpreter.java b/src/org/mozilla/javascript/Interpreter.java +index f7f544d..e125e2f 100644 +--- a/src/org/mozilla/javascript/Interpreter.java ++++ b/src/org/mozilla/javascript/Interpreter.java +@@ -285,9 +285,9 @@ public class Interpreter implements Evaluator + // clone stack but keep varSource to point to values + // from this frame to share variables. + +- copy.stack = stack.clone(); +- copy.stackAttributes = stackAttributes.clone(); +- copy.sDbl = sDbl.clone(); ++ copy.stack = (Object[]) stack.clone(); ++ copy.stackAttributes = (int[]) stackAttributes.clone(); ++ copy.sDbl = (double[]) sDbl.clone(); + + copy.frozen = false; + return copy; +diff --git a/src/org/mozilla/javascript/NativeJavaClass.java b/src/org/mozilla/javascript/NativeJavaClass.java +index f72f9e7..25c6757 100644 +--- a/src/org/mozilla/javascript/NativeJavaClass.java ++++ b/src/org/mozilla/javascript/NativeJavaClass.java +@@ -271,7 +271,7 @@ public class NativeJavaClass extends NativeJavaObject implements Function + Object x = Context.jsToJava(arg, argTypes[i]); + if (x != arg) { + if (args == origArgs) { +- args = origArgs.clone(); ++ args = (Object[]) origArgs.clone(); + } + args[i] = x; + } +diff --git a/src/org/mozilla/javascript/NativeJavaMethod.java b/src/org/mozilla/javascript/NativeJavaMethod.java +index b6eaf8b..dc699a0 100644 +--- a/src/org/mozilla/javascript/NativeJavaMethod.java ++++ b/src/org/mozilla/javascript/NativeJavaMethod.java +@@ -213,7 +213,7 @@ public class NativeJavaMethod extends BaseFunction + Object coerced = Context.jsToJava(arg, argTypes[i]); + if (coerced != arg) { + if (origArgs == args) { +- args = args.clone(); ++ args = (Object[]) args.clone(); + } + args[i] = coerced; + } +diff --git a/src/org/mozilla/javascript/regexp/NativeRegExp.java b/src/org/mozilla/javascript/regexp/NativeRegExp.java +index 0bae489..f7124bf 100644 +--- a/src/org/mozilla/javascript/regexp/NativeRegExp.java ++++ b/src/org/mozilla/javascript/regexp/NativeRegExp.java +@@ -2168,7 +2168,7 @@ System.out.println("Testing at " + gData.cp + ", op = " + op); + // XXX: If backTrackData will no longer be used, then + // there is no need to clone backTrackData.parens + if (backTrackData.parens != null) { +- gData.parens = backTrackData.parens.clone(); ++ gData.parens = (long[]) backTrackData.parens.clone(); + } + + gData.cp = backTrackData.cp; +@@ -2708,7 +2708,7 @@ class REBackTrackData { + continuation_pc = pc; + lastParen = gData.lastParen; + if (gData.parens != null) { +- parens = gData.parens.clone(); ++ parens = (long[]) gData.parens.clone(); + } + cp = gData.cp; + stateStackTop = gData.stateStackTop; |