about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/java
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/java
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-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')
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/bcel/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/bsf/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/fileupload/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/io/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/math/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/java/cup/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/java/cup/javacup-0.11b_beta20160615-build-xml-git.patch38
-rw-r--r--nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/builder.sh4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/java/gwt-widgets/builder.sh6
-rw-r--r--nixpkgs/pkgs/development/libraries/java/gwt-widgets/default.nix16
-rwxr-xr-xnixpkgs/pkgs/development/libraries/java/hsqldb/builder.sh6
-rw-r--r--nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix20
-rwxr-xr-xnixpkgs/pkgs/development/libraries/java/httpunit/builder.sh5
-rw-r--r--nixpkgs/pkgs/development/libraries/java/httpunit/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix25
-rwxr-xr-xnixpkgs/pkgs/development/libraries/java/jdom/builder.sh6
-rw-r--r--nixpkgs/pkgs/development/libraries/java/jdom/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/java/jflex/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/java/junit/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/java/junixsocket/darwin.patch20
-rw-r--r--nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/java/jzmq/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/java/libmatthew-java/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/java/lombok/default.nix23
-rwxr-xr-xnixpkgs/pkgs/development/libraries/java/lucene/builder.sh6
-rw-r--r--nixpkgs/pkgs/development/libraries/java/lucene/default.nix19
-rwxr-xr-xnixpkgs/pkgs/development/libraries/java/mockobjects/builder.sh6
-rw-r--r--nixpkgs/pkgs/development/libraries/java/mockobjects/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/java/rhino/default.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/java/rhino/gcj-type-mismatch.patch103
-rw-r--r--nixpkgs/pkgs/development/libraries/java/saxon/default.nix83
-rw-r--r--nixpkgs/pkgs/development/libraries/java/smack/builder.sh7
-rw-r--r--nixpkgs/pkgs/development/libraries/java/smack/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/java/swt/default.nix73
40 files changed, 1052 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/bcel/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/bcel/default.nix
new file mode 100644
index 000000000000..8d9b4e54fe8d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/bcel/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  version = "5.2";
+  name    = "commons-bcel-${version}";
+
+  src = fetchurl {
+    url    = "mirror://apache/commons/bcel/binaries/bcel-${version}.tar.gz";
+    sha256 = "13ppnd6afljdjq21jpn4ik2h1yxq8k2kg21ghi0lyb1yap1rd7k6";
+  };
+
+  installPhase = ''
+    tar xf ${src}
+    mkdir -p $out/share/java
+    cp bcel-5.2.jar $out/share/java/
+  '';
+
+  meta = {
+    homepage    = "http://commons.apache.org/proper/commons-bcel/";
+    description = "Gives users a convenient way to analyze, create, and manipulate (binary) Java class files";
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    license     = stdenv.lib.licenses.asl20;
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/bsf/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/bsf/default.nix
new file mode 100644
index 000000000000..e3c464482c7e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/bsf/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "commons-bsf-1.2";
+
+  src = fetchurl {
+    url = mirror://apache/commons/bsf/binaries/bsf-bin-2.4.0.tar.gz;
+    sha256 = "1my3hv4y8cvrd1kr315wvbjqsamzlzswnbqcmsa2m4hqcafddfr8";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp lib/bsf.jar $out/share/java/
+  '';
+
+  meta = {
+    description = "Interface to scripting languages, including JSR-223";
+    homepage = http://commons.apache.org/proper/commons-bsf/;
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
new file mode 100644
index 000000000000..3c729f42320a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "1.18";
+  name    = "commons-compress-${version}";
+
+  src = fetchurl {
+    url    = "mirror://apache/commons/compress/binaries/${name}-bin.tar.gz";
+    sha256 = "0ciwzq134rqh1fp7qba091rajf2pdagfb665rarni7glb2x4lha1";
+  };
+
+  installPhase = ''
+    tar xf ${src}
+    mkdir -p $out/share/java
+    cp *.jar $out/share/java/
+  '';
+
+  meta = {
+    homepage    = http://commons.apache.org/proper/commons-compress;
+    description = "Allows manipulation of ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE and Z files";
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    license     = stdenv.lib.licenses.asl20;
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/fileupload/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/fileupload/default.nix
new file mode 100644
index 000000000000..6fddc3cfe0c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/fileupload/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.1";
+  name    = "commons-fileupload-${version}";
+
+  src = fetchurl {
+    url    = "mirror://apache/commons/fileupload/binaries/${name}-bin.tar.gz";
+    sha256 = "1jy7w2j2ay56mpq4ij3331cf9zgpkm832ydr63svb35j0ymnky72";
+  };
+  installPhase = ''
+    tar xf ${src}
+    mkdir -p $out/share/java
+    cp lib/*.jar $out/share/java/
+  '';
+
+  meta = {
+    homepage    = http://commons.apache.org/proper/commons-fileupload;
+    description = "Makes it easy to add robust, high-performance, file upload capability to your servlets and web applications";
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    license     = stdenv.lib.licenses.asl20;
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/io/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/io/default.nix
new file mode 100644
index 000000000000..03b083328da4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/io/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "2.6";
+  name    = "commons-io-${version}";
+
+  src = fetchurl {
+    url    = "mirror://apache/commons/io/binaries/${name}-bin.tar.gz";
+    sha256 = "1nzkv8gi56l1m4h7s8bcvqm0naq3bhh7fazcmgdhcr2zkjs5zfmn";
+  };
+
+  installPhase = ''
+    tar xf ${src}
+    mkdir -p $out/share/java
+    cp *.jar $out/share/java/
+  '';
+
+  meta = {
+    homepage    = "http://commons.apache.org/proper/commons-io";
+    description = "A library of utilities to assist with developing IO functionality";
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    license     = stdenv.lib.licenses.asl20;
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
new file mode 100644
index 000000000000..a336ab503646
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "3.3.2";
+  name    = "commons-lang-${version}";
+
+  src = fetchurl {
+    url    = "mirror://apache/commons/lang/binaries/commons-lang3-${version}-bin.tar.gz";
+    sha256 = "1fmcx52h4cd2b7bplm7wy3725vh8bix64j3ykkxcn357y4j8ddzr";
+  };
+
+  installPhase = ''
+    tar xf ${src}
+    mkdir -p $out/share/java
+    cp *.jar $out/share/java/
+  '';
+
+  meta = {
+    homepage    = "http://commons.apache.org/proper/commons-lang";
+    description = "Provides additional methods to manipulate standard Java library classes";
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    license     = stdenv.lib.licenses.asl20;
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix
new file mode 100644
index 000000000000..4e3fa2655020
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "commons-logging-1.2";
+
+  src = fetchurl {
+    url    = mirror://apache/commons/logging/binaries/commons-logging-1.2-bin.tar.gz;
+    sha256 = "1gc70pmcv0x6ibl89jglmr22f8zpr63iaifi49nrq399qw2qhx9z";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp commons-logging-*.jar $out/share/java/
+  '';
+
+  meta = {
+    description = "Wrapper around a variety of logging API implementations";
+    homepage = http://commons.apache.org/proper/commons-logging;
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/math/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/math/default.nix
new file mode 100644
index 000000000000..10c39f037890
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/commons/math/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "3.6.1";
+  name    = "commons-math-${version}";
+
+  src = fetchurl {
+    url    = "mirror://apache/commons/math/binaries/commons-math3-${version}-bin.tar.gz";
+    sha256 = "0x4nx5pngv2n4ga11c1s4w2mf6cwydwkgs7da6wwvcjraw57bhkz";
+  };
+
+  installPhase = ''
+    tar xf ${src}
+    mkdir -p $out/share/java
+    cp *.jar $out/share/java/
+  '';
+
+  meta = {
+    homepage    = "http://commons.apache.org/proper/commons-math/";
+    description = "A library of lightweight, self-contained mathematics and statistics components";
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    license     = stdenv.lib.licenses.asl20;
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/cup/default.nix b/nixpkgs/pkgs/development/libraries/java/cup/default.nix
new file mode 100644
index 000000000000..de031a08fe8c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/cup/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, jdk, ant } :
+
+stdenv.mkDerivation rec {
+  name = "java-cup-${version}";
+  version = "11b-20160615";
+
+  src = fetchurl {
+    url = "http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-${version}.tar.gz";
+    sha256 = "1ymz3plngxclh7x3xr31537rvvak7lwyd0qkmnl1mkj5drh77rz0";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ jdk ant ];
+
+  patches = [ ./javacup-0.11b_beta20160615-build-xml-git.patch ];
+
+  buildPhase = "ant";
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/{java,java-cup}}
+    cp dist/java-cup-11b.jar $out/share/java-cup/
+    cp dist/java-cup-11b-runtime.jar $out/share/java/
+    cat > $out/bin/javacup <<EOF
+    #! $shell
+    exec ${jdk.jre}/bin/java -jar $out/share/java-cup/java-cup-11b.jar "\$@"
+    EOF
+    chmod a+x $out/bin/javacup
+  '';
+
+  meta = {
+    homepage = http://www2.cs.tum.edu/projects/cup/;
+    description = "LALR parser generator for Java";
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/cup/javacup-0.11b_beta20160615-build-xml-git.patch b/nixpkgs/pkgs/development/libraries/java/cup/javacup-0.11b_beta20160615-build-xml-git.patch
new file mode 100644
index 000000000000..f2054ee9d4d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/cup/javacup-0.11b_beta20160615-build-xml-git.patch
@@ -0,0 +1,38 @@
+--- javacup/build.xml.orig	2016-06-15 07:10:15.000000000 -0300
++++ javacup/build.xml	2016-07-17 08:46:46.632722844 -0300
+@@ -21,26 +21,6 @@
+     <mkdir dir="${dist}" />
+     <loadfile property="cupversion" srcFile="version.txt" failonerror="false" />
+     <property name="cupversion" value="custombuild" unless:set="cupversion"/>
+-    <exec executable="git" outputproperty="gitversion">
+-      <arg value="log"/>
+-      <arg value="-1"/>
+-      <arg value="--format=%h"/>
+-    </exec>
+-    <exec executable="git" outputproperty="changed">
+-      <arg value="status"/>
+-      <arg value="--porcelain"/>
+-      <redirector>
+-	<outputfilterchain>
+-	<linecontainsregexp>
+-	  <regexp pattern='^M.*'/>
+-	</linecontainsregexp>
+-	<tokenfilter>
+-	  <replaceregex pattern=".*" replace="modifications based on "/>
+-	</tokenfilter>
+-	</outputfilterchain>
+-	</redirector>
+-    </exec>
+-    <property name="svnversion">${changed}${gitversion}</property>
+   </target>
+ 
+   <property environment="env" />
+@@ -79,7 +59,7 @@
+     <copy todir="${java}"><fileset dir="${src}"></fileset></copy>
+     <replace file="${java}/java_cup/version.java"
+        token="+ version_str"
+-       value='+ "v0.11b ${cupversion} (GIT ${svnversion})"'>
++       value='+ "v0.11b ${cupversion}"'>
+     </replace>
+     <javac srcdir="${java}" destdir="${classes}" verbose="off" listfiles="off" debug="on" source="1.8" target="1.8">
+       <classpath refid="libraries"/>
diff --git a/nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix b/nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix
new file mode 100644
index 000000000000..5ec10cc7e0df
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, gettext, jdk, libmatthew_java}:
+
+stdenv.mkDerivation {
+  name = "dbus-java-2.7";
+  src = fetchurl {
+    url = https://dbus.freedesktop.org/releases/dbus-java/dbus-java-2.7.tar.gz;
+    sha256 = "0cyaxd8x6sxmi6pklkkx45j311a6w51fxl4jc5j3inc4cailwh5y";
+  };
+  JAVA_HOME=jdk;
+  JAVA="${jdk}/bin/java";
+  PREFIX=''''${out}'';
+  JAVAUNIXLIBDIR="${libmatthew_java}/lib/jni";
+  JAVAUNIXJARDIR="${libmatthew_java}/share/java";
+  buildInputs = [ gettext jdk ];
+  # I'm too lazy to build the documentation
+  preBuild = ''
+    sed -i -e "s|all: bin doc man|all: bin|" \
+           -e "s|install: install-bin install-man install-doc|install: install-bin|" Makefile
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sander ];
+    license = licenses.afl21;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix b/nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix
new file mode 100644
index 000000000000..6af8885464a3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, jdk, unzip}:
+
+stdenv.mkDerivation {
+  name = "GeoIPJava-1.2.5";
+  src = fetchurl {
+    url = https://geolite.maxmind.com/download/geoip/api/java/GeoIPJava-1.2.5.zip;
+    sha256 = "1gb2d0qvvq7xankz7l7ymbr3qprwk9bifpy4hlgw0sq4i6a55ypd";
+  };
+  buildInputs = [ jdk unzip ];
+  buildPhase = 
+    ''
+      cd source
+      javac $(find . -name \*.java)
+      jar cfv maxmindgeoip.jar $(find . -name \*.class)
+    '';
+  installPhase =
+    ''
+      mkdir -p $out/share/java
+      cp maxmindgeoip.jar $out/share/java
+    '';
+  meta = {
+    description = "GeoIP Java API";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    maintainers = [ stdenv.lib.maintainers.sander ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/builder.sh b/nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/builder.sh
new file mode 100644
index 000000000000..d37e110011e8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/builder.sh
@@ -0,0 +1,4 @@
+source $stdenv/setup
+
+mkdir -p $out/share/java
+cp $src $out/share/java/$name.jar
diff --git a/nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/default.nix b/nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/default.nix
new file mode 100644
index 000000000000..e34699d7740e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/gwt-dragdrop/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "gwt-dnd-2.6.5";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = http://gwt-dnd.googlecode.com/files/gwt-dnd-2.6.5.jar;
+    sha256 = "07zdlr8afs499asnw0dcjmw1cnjc646v91lflx5dv4qj374c97fw";
+  };
+
+  meta = with stdenv.lib; {
+    platforms = platforms.unix;
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/gwt-widgets/builder.sh b/nixpkgs/pkgs/development/libraries/java/gwt-widgets/builder.sh
new file mode 100644
index 000000000000..8c2502385f2b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/gwt-widgets/builder.sh
@@ -0,0 +1,6 @@
+source $stdenv/setup
+
+tar xfvz $src
+cd gwt-widgets-*
+mkdir -p $out/share/java
+cp gwt-widgets-*.jar $out/share/java
diff --git a/nixpkgs/pkgs/development/libraries/java/gwt-widgets/default.nix b/nixpkgs/pkgs/development/libraries/java/gwt-widgets/default.nix
new file mode 100644
index 000000000000..ec407076906d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/gwt-widgets/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "gwt-widgets-0.2.0";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = mirror://sourceforge/gwt-widget/gwt-widgets-0.2.0-bin.tar.gz;
+    sha256 = "09isj4j6842rj13nv8264irkjjhvmgihmi170ciabc98911bakxb";
+  };
+
+  meta = with stdenv.lib; {
+    platforms = platforms.unix;
+    license = with licenses; [ afl21 lgpl2 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/hsqldb/builder.sh b/nixpkgs/pkgs/development/libraries/java/hsqldb/builder.sh
new file mode 100755
index 000000000000..d7de23ab95eb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/hsqldb/builder.sh
@@ -0,0 +1,6 @@
+source $stdenv/setup
+
+unzip $src
+cd hsqldb*
+mkdir -p $out
+cp -R * $out/
diff --git a/nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix b/nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix
new file mode 100644
index 000000000000..a478ab0fc502
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, unzip
+}:
+
+stdenv.mkDerivation {
+  name = "hsqldb-2.4.0";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = mirror://sourceforge/hsqldb/hsqldb_1_8_0_9.zip;
+    sha256 = "1v5dslwsqb7csjmi5g78pghsay2pszidvlzhyi79y18mra5iv3g9";
+  };
+
+  buildInputs = [ unzip
+  ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.unix;
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/httpunit/builder.sh b/nixpkgs/pkgs/development/libraries/java/httpunit/builder.sh
new file mode 100755
index 000000000000..273850082958
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/httpunit/builder.sh
@@ -0,0 +1,5 @@
+source $stdenv/setup
+
+$unzip/bin/unzip $src
+mkdir $out
+mv $name/* $out/
diff --git a/nixpkgs/pkgs/development/libraries/java/httpunit/default.nix b/nixpkgs/pkgs/development/libraries/java/httpunit/default.nix
new file mode 100644
index 000000000000..500c575f73aa
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/httpunit/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, unzip} :
+
+stdenv.mkDerivation {
+  name = "httpunit-1.7";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = mirror://sourceforge/httpunit/httpunit-1.7.zip;
+    sha256 = "09gnayqgizd8cjqayvdpkxrc69ipyxawc96aznfrgdhdiwv8l5zf";
+  };
+
+  inherit unzip;
+
+  meta = with stdenv.lib; {
+    homepage = http://httpunit.sourceforge.net;
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix b/nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix
new file mode 100644
index 000000000000..7d1fac39b1cb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix
@@ -0,0 +1,25 @@
+{ fetchgit, stdenv, ant, jdk }:
+
+stdenv.mkDerivation rec {
+  name = "hydra-ant-logger-${version}";
+  version = "2010.2";
+
+  src = fetchgit {
+    url = https://github.com/NixOS/hydra-ant-logger.git;
+    rev = "dae3224f4ed42418d3492bdf5bee4f825819006f";
+    sha256 = "01s7m6007rn9107rw5wcgna7i20x6p6kfzl4f79jrvpkjy6kz176";
+  };
+
+  buildInputs = [ ant jdk ];
+
+  buildPhase = "mkdir lib; ant";
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp -v *.jar $out/share/java
+  '';
+
+  meta = {
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/jdom/builder.sh b/nixpkgs/pkgs/development/libraries/java/jdom/builder.sh
new file mode 100755
index 000000000000..dbec4b6f3e0e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/jdom/builder.sh
@@ -0,0 +1,6 @@
+set -e
+source $stdenv/setup
+
+tar zxvf $src
+mkdir -p $out
+mv * $out
diff --git a/nixpkgs/pkgs/development/libraries/java/jdom/default.nix b/nixpkgs/pkgs/development/libraries/java/jdom/default.nix
new file mode 100644
index 000000000000..16755471acd7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/jdom/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl} :
+
+stdenv.mkDerivation {
+  name = "jdom-1.0";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = http://www.jdom.org/dist/binary/jdom-1.0.tar.gz;
+    sha256 = "1igmxzcy0s25zcy9vmcw0kd13lh60r0b4qg8lnp1jic33f427pxf";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Java-based solution for accessing, manipulating, and outputting XML data from Java code";
+    homepage = http://www.jdom.org;
+    platforms = platforms.unix;
+    license = licenses.bsdOriginal;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/jflex/default.nix b/nixpkgs/pkgs/development/libraries/java/jflex/default.nix
new file mode 100644
index 000000000000..1bc918af8352
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/jflex/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, jre} :
+
+stdenv.mkDerivation rec {
+  name = "jflex-1.7.0";
+
+  src = fetchurl {
+    url = "http://jflex.de/release/${name}.tar.gz";
+    sha256 = "1k7bqw1mn569g9dxc0ia3yz1bzgzs5w52lh1xn3hgj7k5ymh54kk";
+  };
+
+  sourceRoot = name;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -a * $out
+    rm -f $out/bin/jflex.bat
+
+    patchShebangs $out
+    sed -i -e '/^JAVA=java/ s#java#${jre}/bin/java#' $out/bin/jflex
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/jflex --version
+    runHook postInstallCheck
+  '';
+
+  meta = {
+    homepage = http://www.jflex.de/;
+    description = "Lexical analyzer generator for Java, written in Java";
+    license = stdenv.lib.licenses.bsd3;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/junit/default.nix b/nixpkgs/pkgs/development/libraries/java/junit/default.nix
new file mode 100644
index 000000000000..0879f0a69260
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/junit/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, antBuild, fetchgit, perl }:
+
+let
+  version = "4.11";
+in antBuild {
+  name = "junit-${version}";
+
+  # I think this is only used to generate the docs, and will likely disappear
+  # with the next release of junit since its build system completely changes.
+  buildInputs = [perl];
+
+  src = fetchgit {
+    url = "https://github.com/junit-team/junit.git";
+    sha256 = "1cn5dhs6vpbfbcmnm2vb1212n0kblv8cxrvnwmksjxd6bzlkac1k";
+    rev = "c2e4d911fadfbd64444fb285342a8f1b72336169";
+  };
+
+  antProperties = [
+    { name = "version"; value = version; }
+  ];
+
+  meta = {
+    homepage = http://www.junit.org/;
+    description = "A framework for repeatable tests in Java";
+    license = stdenv.lib.licenses.epl10;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/junixsocket/darwin.patch b/nixpkgs/pkgs/development/libraries/java/junixsocket/darwin.patch
new file mode 100644
index 000000000000..97fd42d0b81b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/junixsocket/darwin.patch
@@ -0,0 +1,20 @@
+diff -rc junixsocket-1.3/src/main/org/newsclub/net/unix/NativeUnixSocket.java junixsocket-1.3-new/src/main/org/newsclub/net/unix/NativeUnixSocket.java
+*** junixsocket-1.3/src/main/org/newsclub/net/unix/NativeUnixSocket.java        Tue Jul 20 14:59:41 2010
+--- junixsocket-1.3-new/src/main/org/newsclub/net/unix/NativeUnixSocket.java    Sun May 27 22:26:15 2012
+***************
+*** 43,49 ****
+              String prefix = "lib";
+              String suffix = ".so";
+              String os = osName.replaceAll("[^A-Za-z0-9]", "").toLowerCase();
+!             if ("macosx".equals(os)) {
+                  suffix = ".dylib";
+              } else if ("linux".equals(os) || "freebsd".equals(os)
+                      || "sunos".equals(os)) {
+--- 43,49 ----
+              String prefix = "lib";
+              String suffix = ".so";
+              String os = osName.replaceAll("[^A-Za-z0-9]", "").toLowerCase();
+!             if ("macosx".equals(os) || "darwin".equals(os)) {
+                  suffix = ".dylib";
+              } else if ("linux".equals(os) || "freebsd".equals(os)
+                      || "sunos".equals(os)) {
diff --git a/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix b/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
new file mode 100644
index 000000000000..bc34957b9c3e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, ant, jdk, junit }:
+
+stdenv.mkDerivation rec {
+  name = "junixsocket-1.3";
+
+  src = fetchurl {
+    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/junixsocket/${name}-src.tar.bz2";
+    sha256 = "0c6p8vmiv5nk8i6g1hgivnl3mpb2k3lhjjz0ss9dlirisfrxf1ym";
+  };
+
+  patches = [ ./darwin.patch ];
+
+  buildInputs = [ ant jdk junit ];
+
+  preConfigure =
+    ''
+      substituteInPlace src/main/org/newsclub/net/unix/NativeUnixSocketConfig.java \
+        --replace /opt/newsclub/lib-native $out/lib
+    '';
+
+  buildPhase = "ant";
+
+  ANT_ARGS =
+    # Note that our OpenJDK on Darwin is currently 32-bit, so we have to build a 32-bit dylib.
+    (if stdenv.is64bit then [ "-Dskip32=true" ] else [ "-Dskip64=true" ])
+    ++ [ "-Dgcc=cc" "-Dant.build.javac.source=1.6" ]
+    ++ stdenv.lib.optional stdenv.isDarwin "-DisMac=true";
+
+  installPhase =
+    ''
+      mkdir -p $out/share/java $out/lib
+      cp -v dist/*.jar $out/share/java
+      cp -v lib-native/*.so lib-native/*.dylib $out/lib/
+    '';
+
+  meta = {
+    description = "A Java/JNI library for using Unix Domain Sockets from Java";
+    homepage = https://github.com/kohlschutter/junixsocket;
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/jzmq/default.nix b/nixpkgs/pkgs/development/libraries/java/jzmq/default.nix
new file mode 100644
index 000000000000..402f893034b6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/jzmq/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, zeromq3, jdk }:
+
+stdenv.mkDerivation rec {
+  name = "jzmq-${version}";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "zeromq";
+    repo = "jzmq";
+    rev = "v${version}";
+    sha256 = "1wlzs604mgmqmrgpk4pljx2nrlxzdfi3r8k59qlm90fx8qkqkc63";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ zeromq3 jdk ];
+
+  preConfigure = ''
+    ${if stdenv.hostPlatform.system == "x86_64-darwin" then
+      '' sed -i -e 's~/Headers~/include~' -e 's~_JNI_INC_SUBDIRS=\".*\"~_JNI_INC_SUBDIRS=\"darwin\"~' configure
+      '' else ""}
+  '';
+
+  meta = {
+    homepage = http://www.zeromq.org;
+    description = "Java bindings for ZeroMQ";
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.lgpl3;
+    maintainers = [ stdenv.lib.maintainers.vizanto ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/libmatthew-java/default.nix b/nixpkgs/pkgs/development/libraries/java/libmatthew-java/default.nix
new file mode 100644
index 000000000000..98291a7763ca
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/libmatthew-java/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, jdk}:
+
+stdenv.mkDerivation {
+  name = "libmatthew-java-0.8";
+  src = fetchurl {
+    url = https://src.fedoraproject.org/repo/pkgs/libmatthew-java/libmatthew-java-0.8.tar.gz/8455b8751083ce25c99c2840609271f5/libmatthew-java-0.8.tar.gz;
+    sha256 = "1yldkhsdzm0a41a0i881bin2jklhp85y3ah245jd6fz3npcx7l85";
+  };
+  JAVA_HOME=jdk;
+  PREFIX=''''${out}'';
+  buildInputs = [ jdk ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sander ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/lombok/default.nix b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
new file mode 100644
index 000000000000..7f932d52dc41
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "lombok-1.18.4";
+
+  src = fetchurl {
+    url = "https://projectlombok.org/downloads/${name}.jar";
+    sha256 = "0hlpycnmzd71ihn59hzf445dvwky2lkv57jimx91i6v7xcnr5wrr";
+  };
+
+  buildCommand = ''
+    mkdir -p $out/share/java
+    cp $src $out/share/java/lombok.jar
+  '';
+
+  meta = {
+    description = "A library that can write a lot of boilerplate for your Java project";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.mit;
+    homepage = https://projectlombok.org/;
+    maintainers = [ stdenv.lib.maintainers.CrystalGamma ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/lucene/builder.sh b/nixpkgs/pkgs/development/libraries/java/lucene/builder.sh
new file mode 100755
index 000000000000..d95feb5eeb44
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/lucene/builder.sh
@@ -0,0 +1,6 @@
+set -e
+source $stdenv/setup
+
+tar zxvf $src
+mkdir -p $out
+mv $name/* $out
diff --git a/nixpkgs/pkgs/development/libraries/java/lucene/default.nix b/nixpkgs/pkgs/development/libraries/java/lucene/default.nix
new file mode 100644
index 000000000000..691b9905b04f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/lucene/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl} :
+
+stdenv.mkDerivation rec {
+  name = "lucene-${version}";
+  version = "1.4.3";
+
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = "https://archive.apache.org/dist/jakarta/lucene/${name}.tar.gz";
+    sha256 = "1mxaxg65f7v8n60irjwm24v7hcisbl0srmpvcy1l4scs6rjj1awh";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Java full-text search engine";
+    platforms = platforms.unix;
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/mockobjects/builder.sh b/nixpkgs/pkgs/development/libraries/java/mockobjects/builder.sh
new file mode 100755
index 000000000000..fd5d1a20869c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/mockobjects/builder.sh
@@ -0,0 +1,6 @@
+set -e
+source $stdenv/setup
+
+tar xvf $src
+mkdir -p $out
+mv * $out
diff --git a/nixpkgs/pkgs/development/libraries/java/mockobjects/default.nix b/nixpkgs/pkgs/development/libraries/java/mockobjects/default.nix
new file mode 100644
index 000000000000..ae93765ff981
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/mockobjects/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl} :
+
+stdenv.mkDerivation {
+  name = "mockobjects-0.09";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = mirror://sourceforge/mockobjects/mockobjects-bin-0.09.tar;
+    sha256 = "18rnyqfcyh0s3dwkkaszdd50ssyjx5fa1y3ii309ldqg693lfgnz";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Generic unit testing framework and methodology for testing any kind of code";
+    platforms = platforms.unix;
+    license = licenses.asl20;
+  };
+}
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;
diff --git a/nixpkgs/pkgs/development/libraries/java/saxon/default.nix b/nixpkgs/pkgs/development/libraries/java/saxon/default.nix
new file mode 100644
index 000000000000..687e1e8a1deb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/saxon/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchurl, unzip, jre }:
+
+let
+  common = { pname, version, src, description
+           , prog ? null, jar ? null, license ? stdenv.lib.licenses.mpl20 }:
+    stdenv.mkDerivation {
+      name = "${pname}-${version}";
+      inherit pname version src;
+
+      nativeBuildInputs = [ unzip ];
+
+      buildCommand = let
+        prog' = if prog == null then pname else prog;
+        jar' = if jar == null then pname else jar;
+      in ''
+        unzip $src -d $out
+        mkdir -p $out/bin $out/share $out/share/java
+        cp -s "$out"/*.jar "$out/share/java/"  # */
+        rm -rf $out/notices
+        mv $out/doc $out/share
+        cat > $out/bin/${prog'} <<EOF
+        #! $shell
+        export JAVA_HOME=${jre}
+        exec ${jre}/bin/java -jar $out/${jar'}.jar "\$@"
+        EOF
+        chmod a+x $out/bin/${prog'}
+      '';
+
+      meta = with stdenv.lib; {
+        inherit description license;
+        homepage = http://saxon.sourceforge.net/;
+        maintainers = with maintainers; [ rvl ];
+        platforms = platforms.all;
+      };
+    };
+
+in {
+  saxon = common {
+    pname = "saxon";
+    version = "6.5.3";
+    src = fetchurl {
+      url = mirror://sourceforge/saxon/saxon6_5_3.zip;
+      sha256 = "0l5y3y2z4wqgh80f26dwwxwncs8v3nkz3nidv14z024lmk730vs3";
+    };
+    description = "XSLT 1.0 processor";
+    # http://saxon.sourceforge.net/saxon6.5.3/conditions.html
+    license = stdenv.lib.licenses.mpl10;
+  };
+
+  saxonb_8_8 = common {
+    pname = "saxonb";
+    version = "8.8";
+    jar = "saxon8";
+    src = fetchurl {
+      url = mirror://sourceforge/saxon/saxonb8-8j.zip;
+      sha256 = "15bzrfyd2f1045rsp9dp4znyhmizh1pm97q8ji2bc0b43q23xsb8";
+    };
+    description = "Complete and conformant processor of XSLT 2.0, XQuery 1.0, and XPath 2.0";
+  };
+
+  saxonb_9_1 = common {
+    pname = "saxonb";
+    version = "9.1.0.8";
+    jar = "saxon9";
+    src = fetchurl {
+      url = mirror://sourceforge/saxon/Saxon-B/9.1.0.8/saxonb9-1-0-8j.zip;
+      sha256 = "1d39jdnwr3v3pzswm81zry6yikqlqy9dp2l2wmpqdiw00r5drg4j";
+    };
+    description = "Complete and conformant processor of XSLT 2.0, XQuery 1.0, and XPath 2.0";
+  };
+
+  saxon-he = common {
+    pname = "saxon-he";
+    version = "9.9.0.1";
+    prog = "saxon-he";
+    jar = "saxon9he";
+    src = fetchurl {
+      url = mirror://sourceforge/saxon/Saxon-HE/9.9/SaxonHE9-9-0-1J.zip;
+      sha256 = "1inxd7ia7rl9fxfrw8dy9sb7rqv76ipblaki5262688wf2dscs60";
+    };
+    description = "Processor for XSLT 3.0, XPath 2.0 and 3.1, and XQuery 3.1";
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/smack/builder.sh b/nixpkgs/pkgs/development/libraries/java/smack/builder.sh
new file mode 100644
index 000000000000..c97259e6a17e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/smack/builder.sh
@@ -0,0 +1,7 @@
+source $stdenv/setup
+
+mkdir smack
+cd smack
+tar xfvz $src
+mkdir -p $out/share/java
+cp libs/smack-*.jar $out/share/java
diff --git a/nixpkgs/pkgs/development/libraries/java/smack/default.nix b/nixpkgs/pkgs/development/libraries/java/smack/default.nix
new file mode 100644
index 000000000000..e28925c65bb2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/smack/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "smack-4.1.9";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = http://www.igniterealtime.org/downloadServlet?filename=smack/smack_4_1_9.tar.gz;
+    sha256 = "009x0qcxd4dkvwcjz2nla470pwbabwvg37wc21pslpw42ldi0bzp";
+  };
+
+  meta = {
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/swt/default.nix b/nixpkgs/pkgs/development/libraries/java/swt/default.nix
new file mode 100644
index 000000000000..0aa20f8b014f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/swt/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, lib, fetchurl, unzip, jdk, pkgconfig, gtk2
+, libXt, libXtst, libXi, libGLU_combined, webkit, libsoup, xorg
+, pango, gdk_pixbuf, glib
+}:
+
+let
+  platformMap = {
+    "x86_64-linux" =
+      { platform = "gtk-linux-x86_64";
+        sha256 = "1qq0pjll6030v4ml0hifcaaik7sx3fl7ghybfdw95vsvxafwp2ff"; };
+    "i686-linux" =
+      { platform = "gtk-linux-x86";
+        sha256 = "03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q"; };
+    "x86_64-darwin" =
+      { platform = "cocoa-macosx-x86_64";
+        sha256 = "00k1mfbncvyh8klgmk0891w8jwnd5niqb16j1j8yacrm2smmlb05"; };
+  };
+
+  metadata = assert platformMap ? ${stdenv.hostPlatform.system}; platformMap.${stdenv.hostPlatform.system};
+
+in stdenv.mkDerivation rec {
+  version = "4.5";
+  fullVersion = "${version}-201506032000";
+  name = "swt-${version}";
+
+  hardeningDisable = [ "format" ];
+
+  # Alas, the Eclipse Project apparently doesn't produce source-only
+  # releases of SWT.  So we just grab a binary release and extract
+  # "src.zip" from that.
+  src = fetchurl {
+    url = "http://archive.eclipse.org/eclipse/downloads/drops4/R-${fullVersion}/${name}-${metadata.platform}.zip";
+    sha256 = metadata.sha256;
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ unzip pkgconfig ];
+  buildInputs = [ jdk gtk2 libXt libXtst libXi libGLU_combined webkit libsoup ];
+
+  NIX_LFLAGS = (map (x: "-L${lib.getLib x}/lib") [ xorg.libX11 pango gdk_pixbuf glib ]) ++
+    [ "-lX11" "-lpango-1.0" "-lgdk_pixbuf-2.0" "-lglib-2.0" ];
+
+  buildPhase = ''
+    unzip src.zip -d src
+
+    cd src
+    sed -i "s#^LFLAGS =#LFLAGS = $NIX_LFLAGS #g"  *.mak
+    export JAVA_HOME=${jdk}
+
+    sh ./build.sh
+
+    mkdir out
+    javac -d out/ $(find org/ -name "*.java")
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp *.so $out/lib
+
+    mkdir -p $out/jars
+    cp version.txt out/
+    cd out && jar -c * > $out/jars/swt.jar
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.eclipse.org/swt/;
+    description = "An widget toolkit for Java to access the user-interface facilities of the operating systems on which it is implemented";
+    license = licenses.epl10;
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; linux;
+  };
+}