adding Eclipse note,

readding older version.
adding eclipseLatest top level name

svn path=/nixpkgs/trunk/; revision=21684
This commit is contained in:
Marc Weber 2010-05-09 14:17:21 +00:00
parent 6c21d81ae1
commit d86dace29b
2 changed files with 92 additions and 11 deletions

View file

@ -1,24 +1,104 @@
{ stdenv, fetchurl, patchelf, makeDesktopItem, makeWrapper
, freetype, fontconfig, libX11, libXext, libXrender, zlib
, glib, gtk, libXtst, jre
# defaulting to this version because not all installable plugins work with 3.5.2 yet
# can also be set to "latest"
, version ? "3.5.1"
}:
/*
Note: Eclipse stores various Eclipse instance specific data in ~/.eclipse/*-instance/...
The '*' depends on the executable location of Eclipse.
So if an Eclipse dependency such as gtk changes a different Eclipse setup directory will be used and
the plugins and update site list and more global settings seem to be gone.
Staring Eclipse from ~/.nix-profile/bin/eclipse doesn't help.
So I suggest copying the store path to ~/eclipse and run ~/eclipse/bin/eclipse instead.
However this still has some drawbacks: If you run nix-collect-garbage the gtk
libs the wrapper refers to might be gone. It should be easy for you to
replace the imortant lines in the wrapper.
You can also put this eclipse wrapper script (which was removed from
all-packages.nix -r 18458)
to your packageOverrides section and use that to run eclipse/eclipse.
Its parameterized by system because you may want to run both: i686 and x86_64 systems.
eclipseRunner =
pkgs.stdenv.mkDerivation {
name = "nix-eclipse-runner-script-${stdenv.system}";
phases = "installPhase";
installPhase = ''
ensureDir $out/bin
target=$out/bin/nix-run-eclipse-${stdenv.system}
cat > $target << EOF
#!/bin/sh
export PATH=${pkgs.jre}/bin:\$PATH
export LD_LIBRARY_PATH=${pkgs.gtkLibs216.glib}/lib:${pkgs.gtkLibs216.gtk}/lib:${pkgs.xlibs.libXtst}/lib
# If you run out of XX space try these? -vmargs -Xms512m -Xmx2048m -XX:MaxPermSize=256m
eclipse="\$1"; shift
exec \$eclipse -vmargs -Xms512m -Xmx2048m -XX:MaxPermSize=256m "\$@"
EOF
chmod +x $target
'';
meta = {
description = "provide environment to run Eclipse";
longDescription = ''
Is there one distribution providing support for up to date Eclipse installations?
There are various reasons why not.
Installing binaries just works. Get Eclipse binaries form eclipse.org/downloads
install this wrapper then run Eclipse like this:
nix-run-eclipse $PATH_TO_ECLIPSE/eclipse/eclipse
and be happy. Everything works including update sites.
'';
maintainers = [pkgs.lib.maintainers.marcweber];
platforms = pkgs.lib.platforms.linux;
};
};
*/
let
v = if version == "latest" then "3.5.2" else version;
in
assert stdenv ? glibc;
stdenv.mkDerivation rec {
name = "eclipse-3.5.2";
name = "eclipse-${v}";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk-x86_64.tar.gz;
md5 = "54e2ce0660b2b1b0eb4267acf70ea66d";
if v == "3.5.2" then
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk-x86_64.tar.gz;
md5 = "54e2ce0660b2b1b0eb4267acf70ea66d";
}
else
fetchurl {
url = http://mirror.selfnet.de/eclipse/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk.tar.gz;
md5 = "bde55a2354dc224cf5f26e5320e72dac";
}
else if v == "3.5.1" then
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://ftp.ing.umu.se/mirror/eclipse/eclipse/downloads/drops/R-3.5.1-200909170800/eclipse-SDK-3.5.1-linux-gtk-x86_64.tar.gz;
sha256 = "132zd7q9q29h978wnlsfbrlszc85r1wj30yqs2aqbv3l5xgny1kk";
}
else
fetchurl {
url = http://mirrors.linux-bg.org/eclipse/eclipse/downloads/drops/R-3.5.1-200909170800/eclipse-SDK-3.5.1-linux-gtk.tar.gz;
sha256 = "0a0lpa7gxg91zswpahi6fvg3csl4csvlym4z2ad5cc1d4yvicp56";
}
else
fetchurl {
url = http://mirror.selfnet.de/eclipse/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk.tar.gz;
md5 = "bde55a2354dc224cf5f26e5320e72dac";
};
else throw "no source for eclipse version ${v} known";
desktopItem = makeDesktopItem {
name = "Eclipse";

View file

@ -7358,13 +7358,14 @@ let
inherit (xlibs) libX11;
};
eclipse = import ../applications/editors/eclipse {
eclipse = makeOverridable (import ../applications/editors/eclipse) {
inherit stdenv fetchurl patchelf makeDesktopItem makeWrapper freetype fontconfig jre zlib;
# GTK 2.18 gives glitches such as mouse clicks on buttons not
# working correctly.
inherit (gtkLibs216) glib gtk;
inherit (xlibs) libX11 libXext libXrender libXtst;
};
eclipseLatest = eclipse.override { version = "latest"; };
ed = import ../applications/editors/ed {
inherit fetchurl stdenv;