diff --git a/pkgs/development/libraries/java/cup/builder.sh b/pkgs/development/libraries/java/cup/builder.sh
deleted file mode 100755
index 3cd75dd396c0..000000000000
--- a/pkgs/development/libraries/java/cup/builder.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-set -e
-source $stdenv/setup
-
-tar zxvf $src
-
-$jdk/bin/javac java_cup/*.java
-$jdk/bin/javac java_cup/runtime/*.java
-
-mkdir -p $out/java_cup/runtime
-
-cp java_cup/*.class $out/java_cup
-cp java_cup/runtime/*.class $out/java_cup/runtime/
-
diff --git a/pkgs/development/libraries/java/cup/default.nix b/pkgs/development/libraries/java/cup/default.nix
index 1181cef074ec..de031a08fe8c 100644
--- a/pkgs/development/libraries/java/cup/default.nix
+++ b/pkgs/development/libraries/java/cup/default.nix
@@ -1,13 +1,38 @@
-{stdenv, fetchurl, jdk} :
+{ stdenv, fetchurl, jdk, ant } :
-stdenv.mkDerivation {
- name = "java-cup-10k";
- builder = ./builder.sh;
+stdenv.mkDerivation rec {
+ name = "java-cup-${version}";
+ version = "11b-20160615";
src = fetchurl {
- url = http://www.cs.princeton.edu/~appel/modern/java/CUP/java_cup_v10k.tar.gz;
- md5 = "8b11edfec13c590ea443d0f0ae0da479";
+ url = "http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-${version}.tar.gz";
+ sha256 = "1ymz3plngxclh7x3xr31537rvvak7lwyd0qkmnl1mkj5drh77rz0";
};
- inherit jdk;
+ 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 <
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- ${changed}${gitversion}
+
+
+
+@@ -79,7 +59,7 @@
+
+
++ value='+ "v0.11b ${cupversion}"'>
+
+
+