diff --git a/pkgs/applications/editors/eclipse/build_with_jdk_compiler b/pkgs/applications/editors/eclipse/build_with_jdk_compiler
new file mode 100644
index 00000000000..bac6fc035f1
--- /dev/null
+++ b/pkgs/applications/editors/eclipse/build_with_jdk_compiler
@@ -0,0 +1,22 @@
+--- a/build.xml 2008-03-02 14:34:05.000000000 +0100
++++ b/build.xml 2008-03-02 14:34:57.000000000 +0100
+@@ -291,19 +291,6 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+
+
diff --git a/pkgs/applications/editors/eclipse/eclipse_classic.nix b/pkgs/applications/editors/eclipse/eclipse_classic.nix
new file mode 100644
index 00000000000..9dba9e6a791
--- /dev/null
+++ b/pkgs/applications/editors/eclipse/eclipse_classic.nix
@@ -0,0 +1,50 @@
+args: with args;
+let arch = if stdenv.system == "x86_64-linux" then "x86_64"
+ else if stdenv.system == "i686-linux" then "x86"
+ else throw "not supported system";
+in
+args.stdenv.mkDerivation rec {
+ #name = "eclipse-classic-3.4M5";
+ name = "eclipse-classic-3.3.1.1";
+
+ unpackPhase = "unzip \$src; set -x ";
+ buildInputs = [ unzip jdk gtk glib libXtst ant makeWrapper];
+
+
+ patches=./build_with_jdk_compiler;
+
+ buildPhase = "./build -os linux -ws gtk -arch ${arch}";
+
+ libraries = [gtk glib libXtst];
+
+ installPhase = "
+ t=\$out/share/${name}
+ ensureDir \$t \$out/bin
+ cd result
+ tar xfz linux-gtk-*.tar.gz
+ mv eclipse \$out
+ "
+ #copied from other eclipse expressions
+ +" rpath=
+ for i in \$libraries; do
+ rpath=\$rpath\${rpath:+:}\$i/lib
+ done
+ find \$out \\( -type f -a -perm +0100 \\) \\
+ -print \\
+ -exec patchelf --interpreter \"$(cat \$NIX_GCC/nix-support/dynamic-linker)\" \\
+ --set-rpath \"\$rpath\" {} \\;
+
+ # Make a wrapper script so that the proper JDK is found.
+ makeWrapper \$out/eclipse/eclipse \$out/bin/eclipse \\
+ --prefix PATH \":\" \"\$jdk/bin\" \\
+ --prefix LD_LIBRARY_PATH \":\" \"\$rpath\"
+ ";
+
+ src = args.fetchurl {
+ #url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops/S-3.4M5-200802071530/eclipse-sourceBuild-srcIncluded-3.4M5.zip;
+ #sha256 = "1w6fbpwkys65whygc045556772asggj24x8assnaba6nl70z00az";
+
+ url = http://download.micromata.de/eclipse/eclipse/downloads/drops/R-3.3.1.1-200710231652/eclipse-sourceBuild-srcIncluded-3.3.1.1.zip;
+ sha256 = "0n56i7ml816f839704qlkgs5ahl0iqgwc80kjq7n7g5rl9a4vhp4";
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4e8ef444163..c822a7d9cb9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4761,6 +4761,14 @@ rec {
dvdplusrwtools = dvdplusrwtoolsFun null;
+ # building eclipise from source
+ # experimental tested on x86_64-linux only
+ eclipse_classic_src = import ../applications/editors/eclipse/eclipse_classic.nix {
+ inherit fetchurl stdenv makeWrapper jdk unzip ant;
+ inherit (gtkLibs) gtk glib;
+ inherit (xlibs) libXtst;
+ };
+
eclipse = plugins:
import ../applications/editors/eclipse {
inherit fetchurl stdenv makeWrapper jdk;