# Note, if you want to install plugins using the update manager you should # copy the store path to a local directory and chown -R $USER yourcopy # Then start your local copy 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.3.1.1"; unpackPhase = "unzip \$src; set -x "; buildInputs = [ unzip jdk gtk glib libXtst ant makeWrapper]; patches=./build-with-jdk-compiler.patch; 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\" sed -e 's=exec.*=exec \$(dirname $0)/../eclipse/eclipse $@=' -i \$out/bin/eclipse "; # using dirname so that eclipse still runs after copying the whole store # directory somewhere else (so that you can use the update manager src = args.fetchurl { url = http://mawercer.de/~nix/iyyx4hs1mgh1b1wa78j07pgq9k882m2k-eclipse-sourceBuild-srcIncluded-3.3.1.1.zip; sha256 = "0n56i7ml816f839704qlkgs5ahl0iqgwc80kjq7n7g5rl9a4vhp4"; }; }