diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/applications/editors/eclipse | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-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/applications/editors/eclipse')
3 files changed, 1014 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix b/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix new file mode 100644 index 000000000000..389608ad8249 --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix @@ -0,0 +1,60 @@ +{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender +, zlib, jdk, glib, gtk3, libXtst, gsettings-desktop-schemas, webkitgtk +, makeWrapper, ... }: + +{ name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description }: + +stdenv.mkDerivation rec { + inherit name src; + + desktopItem = makeDesktopItem { + name = "Eclipse"; + exec = "eclipse"; + icon = "eclipse"; + comment = "Integrated Development Environment"; + desktopName = "Eclipse IDE"; + genericName = "Integrated Development Environment"; + categories = "Application;Development;"; + }; + + buildInputs = [ + fontconfig freetype glib gsettings-desktop-schemas gtk3 jdk libX11 + libXrender libXtst makeWrapper zlib + ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk; + + buildCommand = '' + # Unpack tarball. + mkdir -p $out + tar xfvz $src -C $out + + # Patch binaries. + interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2) + libCairo=$out/eclipse/libcairo-swt.so + patchelf --set-interpreter $interpreter $out/eclipse/eclipse + [ -f $libCairo ] && patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]} $libCairo + + # Create wrapper script. Pass -configuration to store + # settings in ~/.eclipse/org.eclipse.platform_<version> rather + # than ~/.eclipse/org.eclipse.platform_<version>_<number>. + productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct) + productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct) + + makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ + --prefix PATH : ${jdk}/bin \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk)} \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration" + + # Create desktop item. + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications + mkdir -p $out/share/pixmaps + ln -s $out/eclipse/icon.xpm $out/share/pixmaps/eclipse.xpm + ''; # */ + + meta = { + homepage = http://www.eclipse.org/; + inherit description; + }; + +} diff --git a/nixpkgs/pkgs/applications/editors/eclipse/default.nix b/nixpkgs/pkgs/applications/editors/eclipse/default.nix new file mode 100644 index 000000000000..55bbc778e3ae --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/eclipse/default.nix @@ -0,0 +1,294 @@ +{ stdenv, fetchurl, makeDesktopItem, makeWrapper +, freetype, fontconfig, libX11, libXrender, zlib +, glib, gtk3, libXtst, jdk, gsettings-desktop-schemas +, webkitgtk ? null # for internal web browser +, buildEnv, runCommand +, callPackage +}: + +assert stdenv ? glibc; + +# http://download.eclipse.org/eclipse/downloads/ is the main place to +# find the downloads needed for new versions + +rec { + + buildEclipse = import ./build-eclipse.nix { + inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib + jdk glib gtk3 libXtst gsettings-desktop-schemas webkitgtk + makeWrapper; + }; + + ### Eclipse CPP + + eclipse-cpp = eclipse-cpp-47; # always point to latest + + eclipse-cpp-47 = buildEclipse { + name = "eclipse-cpp-4.7.0"; + description = "Eclipse IDE for C/C++ Developers, Oxygen release"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-cpp-oxygen-R-linux-gtk-x86_64.tar.gz; + sha512 = "813c791e739d7d0e2ab242a5bacadca135bbeee20ef97aa830353cd90f63fa6e9c89cfcc6aadf635c742befe035bd6e3f15103013f63c419f6144e86ebde3ed1"; + } + else if stdenv.hostPlatform.system == "i686-linux" then + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-cpp-oxygen-R-linux-gtk.tar.gz; + sha512 = "2b50f4a00306a89cda1aaaa606e62285cacbf93464a9dd3f3319dca3e2c578b802e685de6f78e5e617d269e21271188effe73d41f491a6de946e28795d82db8a"; + } + else throw "Unsupported system: ${stdenv.hostPlatform.system}"; + }; + + eclipse-cpp-37 = buildEclipse { + name = "eclipse-cpp-3.7"; + description = "Eclipse IDE for C/C++ Developers"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk-x86_64.tar.gz; + sha256 = "14ppc9g9igzvj1pq7jl01vwhzb66nmzbl9wsdl1sf3xnwa9wnqk3"; + } + else + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk.tar.gz; + sha256 = "1cvg1vgyazrkinwzlvlf0dpl197p4784752srqybqylyj5psdi3b"; + }; + }; + eclipse_cpp_37 = eclipse-cpp-37; # backward compatibility, added 2016-01-30 + + ### Eclipse Modeling + + eclipse-modeling = eclipse-modeling-47; # always point to latest + + eclipse-modeling-47 = buildEclipse { + name = "eclipse-modeling-4.7"; + description = "Eclipse Modeling Tools"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-modeling-oxygen-R-linux-gtk-x86_64.tar.gz; + sha512 = "3b9a7ad4b5d6b77fbdd64e8d323e0adb6c2904763ad042b374b4d87cef8607408cb407e395870fc755d58c0c800e20818adcf456ebe193d76cede16c5fe12271"; + } + else + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-modeling-oxygen-R-linux-gtk.tar.gz; + sha512 = "b8597c1dec117e69c72a5e1a53e09b1f81a7c9de86ed7e71a9d007664603202df301745f186ded02b2e76410345863e80a2ba40867d6848e5375601289999206"; + }; + }; + + eclipse-modeling-36 = buildEclipse { + name = "eclipse-modeling-3.6.2"; + description = "Eclipse Modeling Tools (includes Incubating components)"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk-x86_64.tar.gz; + sha1 = "e96f5f006298f68476f4a15a2be8589158d5cc61"; + } + else + fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk.tar.gz; + sha1 = "696377895bb26445de39d82a916b7e69edb1d939"; + }; + }; + eclipse_modeling_36 = eclipse-modeling-36; # backward compatibility, added 2016-01-30 + + ### Eclipse Platform + + eclipse-platform = eclipse-platform-49; # always point to latest + + eclipse-platform-47 = buildEclipse { + name = "eclipse-platform-4.7.3a"; + description = "Eclipse Platform Oxygen"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-platform-4.7.3a-linux-gtk-x86_64.tar.gz; + sha512 = "caf86cd6efaf66258c75434f1adf552587a7395d57dba4cfd20f86196308cf942866d931f4b352f9d39a6fbf14444fcd2167e6bfd146a28c96c229bb9988156a"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-platform-4.7.3a-linux-gtk.tar.gz; + sha512 = "c633da467774e4ab40f8d51d07b8e7d8403f26f23365c3c3ceeaeec1039b8c23c7508cee1f786bf52db64c7b84e0f91cb31a2848a74ac8271f8504934407bd5c"; + }; + }; + }; + + eclipse-platform-48 = buildEclipse { + name = "eclipse-platform-4.8"; + description = "Eclipse Platform Photon"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-platform-4.8-linux-gtk-x86_64.tar.gz; + sha512 = "ccce2b954938479e42ef3f9b78f74b24ae4cae7499546fa4f9a55ec1849e1acfd06315d4529b11474a8b3d1142c9409c581edfa571baaf1342ab062f02467af2"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-platform-4.8-linux-gtk.tar.gz; + sha512 = "f5f407727e22b848931cf38f71b1a0c30a9778aa227c3df137dcceec2fba2ecc309cbfa8b4a660b814d2edb60f65110381497b4325781cab4d6402784139e32b"; + }; + }; + }; + + eclipse-platform-49 = buildEclipse { + name = "eclipse-platform-4.9"; + description = "Eclipse Platform 2018-09"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-platform-4.9-linux-gtk-x86_64.tar.gz; + sha512 = "875714bb411145c917fccedf2f7c4fd2757640b2debf4a18f775604233abd6f0da893b350cc03da44413d7ec6fae3f773ef08634e632058e4b705e6cda2893eb"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-platform-4.9-linux-gtk.tar.gz; + sha512 = "758bc0de30fa5c4b76b343ea0325611d87b6928ef5002244f2f1ba2a9fa937de89b2a94ce2c8d33d79344fd574d6e8a72c5d127fe416d785f48600e9e85fce86"; + }; + }; + }; + + ### Eclipse Scala SDK + + eclipse-scala-sdk = eclipse-scala-sdk-441; # always point to latest + + eclipse-scala-sdk-441 = buildEclipse { + name = "eclipse-scala-sdk-4.4.1"; + description = "Eclipse IDE for Scala Developers"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { # tested + url = https://downloads.typesafe.com/scalaide-pack/4.4.1-vfinal-luna-211-20160504/scala-SDK-4.4.1-vfinal-2.11-linux.gtk.x86_64.tar.gz; + sha256 = "4c2d1ac68384e12a11a851cf0fc7757aea087eba69329b21d539382a65340d27"; + } + else + fetchurl { # untested + url = https://downloads.typesafe.com/scalaide-pack/4.4.1-vfinal-luna-211-20160504/scala-SDK-4.4.1-vfinal-2.11-linux.gtk.x86.tar.gz; + sha256 = "35383cb09567187e14a30c15de9fd9aa0eef99e4bbb342396ce3acd11fb5cbac"; + }; + }; + + ### Eclipse SDK + + eclipse-sdk = eclipse-sdk-49; # always point to latest + + eclipse-sdk-47 = buildEclipse { + name = "eclipse-sdk-4.7.3a"; + description = "Eclipse Oxygen Classic"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-SDK-4.7.3a-linux-gtk-x86_64.tar.gz; + sha512 = "d77e42aca16d26526cef32e363d038258bb8a4616d9dbe6e76dd3656dc2217369436390a82555bde4566bbbdb631813bbaca08602f7bb885cb30e8a26a14873f"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-SDK-4.7.3a-linux-gtk.tar.gz; + sha512 = "b0b936fd4142ae86ec5c30535cd5e4caf6fe313d814ae5b16f300635e4163a79b748b1eee11792a135114f2265678a74821ec80c2bfd69872769b6d0ccbcde3a"; + }; + }; + }; + + eclipse-sdk-48 = buildEclipse { + name = "eclipse-sdk-4.8"; + description = "Eclipse Photon Classic"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-SDK-4.8-linux-gtk-x86_64.tar.gz; + sha512 = "357ea9e7f426c68ced693f1c7b76eae23f9e3c7893de1f12d17994ec17b447896b5daa7292d5fbf6d9c4e5b7fd637ca5b2a6ba8ce40a2a7c2fe06f2124d31b75"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-SDK-4.8-linux-gtk.tar.gz; + sha512 = "c7cae7baa3978d48477090bb9941e85b4c7484021ece9c5c77a7e859e57e5c1f13556262f92b561cfb11f828b934bad7a6018be7b8fd9454e3991e8d5cae9917"; + }; + }; + }; + + eclipse-sdk-49 = buildEclipse { + name = "eclipse-sdk-4.9"; + description = "Eclipse 2018-09 Classic"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-SDK-4.9-linux-gtk-x86_64.tar.gz; + sha512 = "5e74a0411f56b3973b7c6d8c3727392297d55ad458a814b4cc3f2f6a57dbeebc64852d1a6a958db5c3b08c620093bfb5bcc0d2c6a400f5594b82c2ef5d5fa9fb"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-SDK-4.9-linux-gtk.tar.gz; + sha512 = "b1861bd99c8e43f1d04247226584246aa7844af5e2da820fe98a51018dbe8ff4c25dbb9fa655f56e103f95c0696f40a65dcce13430c63aa080f786738e70eb8b"; + }; + }; + }; + + eclipse-sdk-37 = buildEclipse { + name = "eclipse-sdk-3.7"; + description = "Eclipse Classic"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz; + sha256 = "0nf4nv7awhp1k8b1hjb7chpjyjrqnyszsjbc4dlk9phpjv3j4wg5"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk.tar.gz; + sha256 = "1isn7i45l9kyn2yx6vm88jl1gnxph8ynank0aaa218cg8kdygk7j"; + }; + }; + }; + eclipse_sdk_37 = eclipse-sdk-37; # backward compatibility, added 2016-01-30 + + ### Eclipse Java + + eclipse-java = eclipse-java-49; + + eclipse-java-49 = buildEclipse { + name = "eclipse-java-4.9.0"; + description = "Eclipse IDE for Java Developers"; + src = + if stdenv.system == "x86_64-linux" then + fetchurl { + url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/2018-09/R/eclipse-java-2018-09-linux-gtk-x86_64.tar.gz; + sha512 = "9dac5d040cdabf779de3996de87290e352130c7e860c1d0a98772f41da828ad45f90748b68e0a8a4f8d1ebbbbe5fdfe6401b7d871b93af34103d4a81a041c6a5"; + } + else if stdenv.system == "i686-linux" then + fetchurl { + url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/2018-09/R/eclipse-java-2018-09-linux-gtk.tar.gz; + sha512 = "24208e95b972e848d6b65ed8108d9e81584cf051397f2f43fb6269f5a625b8d7552ad77c7980a1a5653c87f06776e2926fd85607aae44e44657b4f6cc9b3e2e3"; + } + else throw "Unsupported system: ${stdenv.system}"; + }; + + ### Environments + + # Function that assembles a complete Eclipse environment from an + # Eclipse package and list of Eclipse plugins. + eclipseWithPlugins = { eclipse, plugins ? [], jvmArgs ? [] }: + let + # Gather up the desired plugins. + pluginEnv = buildEnv { + name = "eclipse-plugins"; + paths = + with stdenv.lib; + filter (x: x ? isEclipsePlugin) (closePropagation plugins); + }; + + # Prepare the JVM arguments to add to the ini file. We here also + # add the property indicating the plugin directory. + dropinPropName = "org.eclipse.equinox.p2.reconciler.dropins.directory"; + dropinProp = "-D${dropinPropName}=${pluginEnv}/eclipse/dropins"; + jvmArgsText = stdenv.lib.concatStringsSep "\n" (jvmArgs ++ [dropinProp]); + + # Base the derivation name on the name of the underlying + # Eclipse. + name = (stdenv.lib.meta.appendToName "with-plugins" eclipse).name; + in + runCommand name { buildInputs = [ makeWrapper ]; } '' + mkdir -p $out/bin $out/etc + + # Prepare an eclipse.ini with the plugin directory. + cat ${eclipse}/eclipse/eclipse.ini - > $out/etc/eclipse.ini <<EOF + ${jvmArgsText} + EOF + + makeWrapper ${eclipse}/bin/eclipse $out/bin/eclipse \ + --add-flags "--launcher.ini $out/etc/eclipse.ini" + + ln -s ${eclipse}/share $out/ + ''; + + ### Plugins + + plugins = callPackage ./plugins.nix { }; + +} diff --git a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix new file mode 100644 index 000000000000..30f381644ac1 --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix @@ -0,0 +1,660 @@ +{ stdenv, fetchurl, fetchzip, unzip }: + +rec { + + # A primitive builder of Eclipse plugins. This function is intended + # to be used when building more advanced builders. + buildEclipsePluginBase = { name + , buildInputs ? [] + , passthru ? {} + , ... } @ attrs: + stdenv.mkDerivation (attrs // { + name = "eclipse-plugin-" + name; + + buildInputs = buildInputs ++ [ unzip ]; + + passthru = { + isEclipsePlugin = true; + } // passthru; + }); + + # Helper for the common case where we have separate feature and + # plugin JARs. + buildEclipsePlugin = + { name, srcFeature, srcPlugin ? null, srcPlugins ? [], ... } @ attrs: + assert srcPlugin == null -> srcPlugins != []; + assert srcPlugin != null -> srcPlugins == []; + + let + + pSrcs = if (srcPlugin != null) then [ srcPlugin ] else srcPlugins; + + in + + buildEclipsePluginBase (attrs // { + srcs = [ srcFeature ] ++ pSrcs; + + buildCommand = '' + dropinDir="$out/eclipse/dropins/${name}" + + mkdir -p $dropinDir/features + unzip ${srcFeature} -d $dropinDir/features/ + + mkdir -p $dropinDir/plugins + for plugin in ${toString pSrcs}; do + cp -v $plugin $dropinDir/plugins/$(stripHash $plugin) + done + ''; + }); + + # Helper for the case where the build directory has the layout of an + # Eclipse update site, that is, it contains the directories + # `features` and `plugins`. All features and plugins inside these + # directories will be installed. + buildEclipseUpdateSite = { name, ... } @ attrs: + buildEclipsePluginBase (attrs // { + dontBuild = true; + doCheck = false; + + installPhase = '' + dropinDir="$out/eclipse/dropins/${name}" + + # Install features. + cd features + for feature in *.jar; do + featureName=''${feature%.jar} + mkdir -p $dropinDir/features/$featureName + unzip $feature -d $dropinDir/features/$featureName + done + cd .. + + # Install plugins. + mkdir -p $dropinDir/plugins + + # A bundle should be unpacked if the manifest matches this + # pattern. + unpackPat="Eclipse-BundleShape:\\s*dir" + + cd plugins + for plugin in *.jar ; do + pluginName=''${plugin%.jar} + manifest=$(unzip -p $plugin META-INF/MANIFEST.MF) + + if [[ $manifest =~ $unpackPat ]] ; then + mkdir $dropinDir/plugins/$pluginName + unzip $plugin -d $dropinDir/plugins/$pluginName + else + cp -v $plugin $dropinDir/plugins/ + fi + done + cd .. + ''; + }); + + acejump = buildEclipsePlugin rec { + name = "acejump-${version}"; + version = "1.0.0.201610261941"; + + srcFeature = fetchurl { + url = "https://tobiasmelcher.github.io/acejumpeclipse/features/acejump.feature_${version}.jar"; + sha256 = "1szswjxp9g70ibfbv3p8dlq1bngq7nc22kp657z9i9kp8309md2d"; + }; + + srcPlugin = fetchurl { + url = "https://tobiasmelcher.github.io/acejumpeclipse/plugins/acejump_${version}.jar"; + sha256 = "1cn64xj2bm69vnn9db2xxh6kq148v83w5nx3183mrqb59ym3v9kf"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/tobiasmelcher/EclipseAceJump; + description = "Provides fast jumps to text based on initial letter"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + ansi-econsole = buildEclipsePlugin rec { + name = "ansi-econsole-${version}"; + version = "1.3.5.201612301822"; + + srcFeature = fetchurl { + url = "https://mihnita.github.io/ansi-econsole/install/features/net.mihai-nita.ansicon_${version}.jar"; + sha256 = "086ylxpsrlpbvwv5mw7v6b44j63cwzgi8apg2mq058ydr5ak6hxs"; + }; + + srcPlugin = fetchurl { + url = "https://mihnita.github.io/ansi-econsole/install/plugins/net.mihai-nita.ansicon.plugin_${version}.jar"; + sha256 = "1j42l0xxzs89shqkyn91lb0gia10mifzy0i73c3n7gj7sv2ddbjq"; + }; + + meta = with stdenv.lib; { + homepage = "https://mihai-nita.net/java/#ePluginAEC"; + description = "Adds support for ANSI escape sequences in the Eclipse console"; + license = licenses.asl20; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + antlr-runtime_4_5 = buildEclipsePluginBase rec { + name = "antlr-runtime-4.5.3"; + + src = fetchurl { + url = "http://www.antlr.org/download/${name}.jar"; + sha256 = "0lm78i2annlczlc2cg5xvby0g1dyl0sh1y5xc2pymjlmr67a1g4k"; + }; + + buildCommand = '' + dropinDir="$out/eclipse/dropins/" + mkdir -p $dropinDir + cp -v $src $dropinDir/${name}.jar + ''; + + meta = with stdenv.lib; { + description = "A powerful parser generator for processing structured text or binary files"; + homepage = http://www.antlr.org/; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + antlr-runtime_4_7 = buildEclipsePluginBase rec { + name = "antlr-runtime-4.7.1"; + + src = fetchurl { + url = "http://www.antlr.org/download/${name}.jar"; + sha256 = "07f91mjclacrvkl8a307w2abq5wcqp0gcsnh0jg90ddfpqcnsla3"; + }; + + buildCommand = '' + dropinDir="$out/eclipse/dropins/" + mkdir -p $dropinDir + cp -v $src $dropinDir/${name}.jar + ''; + + meta = with stdenv.lib; { + description = "A powerful parser generator for processing structured text or binary files"; + homepage = http://www.antlr.org/; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + anyedittools = buildEclipsePlugin rec { + name = "anyedit-${version}"; + version = "2.7.1.201709201439"; + + srcFeature = fetchurl { + url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar"; + sha256 = "1wqzl7wq85m9gil8rnvly45ps0a2m0svw613pg6djs5i7amhnayh"; + }; + + srcPlugin = fetchurl { + url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.1/de.loskutov.anyedit.AnyEditTools_${version}.jar"; + sha256 = "03iyb6j2srq74iigmg7dk098c2svyv0ygdfql5jqr44a32n07k8q"; + }; + + meta = with stdenv.lib; { + homepage = http://andrei.gmxhome.de/anyedit/; + description = "Adds new tools to the context menu of text-based editors"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + autodetect-encoding = buildEclipsePlugin rec { + name = "autodetect-encoding-${version}"; + version = "1.8.5.201801191359"; + + srcFeature = fetchurl { + url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/features/eclipse.encoding.plugin.feature_${version}.jar"; + sha256 = "1m8ypsc1dwz0y6yhjgxsdi9813d38jllv7javgwvcd30g042a3kx"; + }; + + srcPlugin = fetchurl { + url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/plugins/mergedoc.encoding_${version}.jar"; + sha256 = "1n2rzybfcwp3ss2qi0fhd8vm38vdwav8j837lqiqlfcnvzwsk86m"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/cypher256/eclipse-encoding-plugin; + description = "Show file encoding and line ending for the active editor in the eclipse status bar"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + bytecode-outline = buildEclipsePlugin rec { + name = "bytecode-outline-${version}"; + version = "2.5.0.201711011753-5a57fdf"; + + srcFeature = fetchurl { + url = "http://andrei.gmxhome.de/eclipse/features/de.loskutov.BytecodeOutline.feature_${version}.jar"; + sha256 = "0yciqhcq0n5i326mwy57r4ywmkz2c2jky7r4pcmznmhvks3z65ps"; + }; + + srcPlugin = fetchurl { + url = "http://dl.bintray.com/iloveeclipse/plugins/de.loskutov.BytecodeOutline_${version}.jar"; + sha256 = "1vmsqv32jfl7anvdkw0vir342miv5sr9df7vd1w44lf1yf97vxlw"; + }; + + meta = with stdenv.lib; { + homepage = http://andrei.gmxhome.de/bytecode/; + description = "Shows disassembled bytecode of current java editor or class file"; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + cdt = buildEclipseUpdateSite rec { + name = "cdt-${version}"; + version = "9.0.1"; + + src = fetchzip { + stripRoot = false; + url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.0/${name}.zip"; + sha256 = "0vdx0j9ci533wnk7y17qjvjyqx38hlrdw67z6pi05vfv3r6ys39x"; + }; + + meta = with stdenv.lib; { + homepage = https://eclipse.org/cdt/; + description = "C/C++ development tooling"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.bjornfor ]; + }; + }; + + checkstyle = buildEclipseUpdateSite rec { + name = "checkstyle-${version}"; + version = "8.7.0.201801131309"; + + src = fetchzip { + stripRoot = false; + url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/8.7.0/net.sf.eclipsecs-updatesite_${version}.zip"; + sha256 = "07fymk705x4mwq7vh2i6frsf67jql4bzrkdzhb4n74zb0g1dib60"; + }; + + meta = with stdenv.lib; { + homepage = http://eclipse-cs.sourceforge.net/; + description = "Checkstyle integration into the Eclipse IDE"; + license = licenses.lgpl21; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + + }; + + color-theme = buildEclipsePlugin rec { + name = "color-theme-${version}"; + version = "1.0.0.201410260308"; + + srcFeature = fetchurl { + url = "https://eclipse-color-theme.github.io/update/features/com.github.eclipsecolortheme.feature_${version}.jar"; + sha256 = "128b9b1cib5ff0w1114ns5mrbrhj2kcm358l4dpnma1s8gklm8g2"; + }; + + srcPlugin = fetchurl { + url = "https://eclipse-color-theme.github.io/update/plugins/com.github.eclipsecolortheme_${version}.jar"; + sha256 = "0wz61909bhqwzpqwll27ia0cn3anyp81haqx3rj1iq42cbl42h0y"; + }; + + meta = with stdenv.lib; { + homepage = http://eclipsecolorthemes.org/; + description = "Plugin to switch color themes conveniently and without side effects"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + cup = buildEclipsePlugin rec { + name = "cup-${version}"; + version = "1.1.0.201604221613"; + version_ = "1.0.0.201604221613"; + + srcFeature = fetchurl { + url = "http://www2.in.tum.de/projects/cup/eclipse/features/CupEclipsePluginFeature_${version}.jar"; + sha256 = "13nnsf0cqg02z3af6xg45rhcgiffsibxbx6h1zahjv7igvqgkyna"; + }; + + srcPlugins = [ + (fetchurl { + url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/CupReferencedLibraries_${version_}.jar"; + sha256 = "0kif8kivrysprva1pxzajm88gi967qf7idhb6ga2xpvsdcris91j"; + }) + + (fetchurl { + url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/de.tum.in.www2.CupPlugin_${version}.jar"; + sha256 = "022phbrsny3gb8npb6sxyqqxacx138q5bd7dq3gqxh3kprx5chbl"; + }) + ]; + + propagatedBuildInputs = [ zest ]; + + meta = with stdenv.lib; { + homepage = http://www2.cs.tum.edu/projects/cup/eclipse.php; + description = "IDE for developing CUP based parsers"; + platforms = platforms.all; + maintainers = [ maintainers.romildo ]; + }; + }; + + eclemma = buildEclipseUpdateSite rec { + name = "eclemma-${version}"; + version = "2.3.2.201409141915"; + + src = fetchzip { + stripRoot = false; + url = "mirror://sourceforge/project/eclemma/01_EclEmma_Releases/2.3.2/eclemma-2.3.2.zip"; + sha256 = "0w1kwcjh45p7msv5vpc8i6dsqwrnfmjama6vavpnxlji56jd3c43"; + }; + + meta = with stdenv.lib; { + homepage = http://www.eclemma.org/; + description = "EclEmma is a free Java code coverage tool for Eclipse"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + emacsplus = buildEclipsePlugin rec { + name = "emacsplus-${version}"; + version = "4.2.0"; + + srcFeature = fetchurl { + url = "http://www.mulgasoft.com/emacsplus/e4/update-site/features/com.mulgasoft.emacsplus.feature_${version}.jar"; + sha256 = "0wja3cd7gq8w25797fxnafvcncjnmlv8qkl5iwqj7zja2f45vka8"; + }; + + srcPlugin = fetchurl { + url = "http://www.mulgasoft.com/emacsplus/e4/update-site/plugins/com.mulgasoft.emacsplus_${version}.jar"; + sha256 = "08yw45nr90mlpdzim74vsvdaxj41sgpxcrqk5ia6l2dzvrqlsjs1"; + }; + + meta = with stdenv.lib; { + homepage = http://www.mulgasoft.com/emacsplus/; + description = "Provides a more Emacs-like experience in the Eclipse text editors"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + findbugs = buildEclipsePlugin rec { + name = "findbugs-${version}"; + version = "3.0.1.20150306-5afe4d1"; + + srcFeature = fetchurl { + url = "http://findbugs.cs.umd.edu/eclipse/features/edu.umd.cs.findbugs.plugin.eclipse_${version}.jar"; + sha256 = "1m9fav2xlb9wrx2d00lpnh2sy0w5yzawynxm6xhhbfdzd0vpfr9v"; + }; + + srcPlugin = fetchurl { + url = "http://findbugs.cs.umd.edu/eclipse/plugins/edu.umd.cs.findbugs.plugin.eclipse_${version}.jar"; + sha256 = "10p3mrbp9wi6jhlmmc23qv7frh605a23pqsc7w96569bsfb5wa8q"; + }; + + meta = with stdenv.lib; { + homepage = http://findbugs.sourceforge.net/; + description = "Plugin that uses static analysis to look for bugs in Java code"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + gnuarmeclipse = buildEclipseUpdateSite rec { + name = "gnuarmeclipse-${version}"; + version = "3.1.1-201606210758"; + + src = fetchzip { + stripRoot = false; + url = "https://github.com/gnuarmeclipse/plug-ins/releases/download/v${version}/ilg.gnuarmeclipse.repository-${version}.zip"; + sha256 = "1g77jlhfa3csaxxps1z5lasrd9l2p5ajnddnq9ra5syw8ggkdc2h"; + }; + + meta = with stdenv.lib; { + homepage = http://gnuarmeclipse.livius.net/; + description = "GNU ARM Eclipse Plug-ins"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.bjornfor ]; + }; + }; + + jsonedit = buildEclipsePlugin rec { + name = "jsonedit-${version}"; + version = "1.1.1"; + + srcFeature = fetchurl { + url = "https://boothen.github.io/Json-Eclipse-Plugin/features/jsonedit-feature_${version}.jar"; + sha256 = "0zkg8d8x3l5jpfxi0mz9dn62wmy4fjgpwdikj280fvsklmcw5b86"; + }; + + srcPlugins = + let + fetch = { n, h }: + fetchurl { + url = "https://boothen.github.io/Json-Eclipse-Plugin/plugins/jsonedit-${n}_${version}.jar"; + sha256 = h; + }; + in + map fetch [ + { n = "core"; h = "0svs0aswnhl26cqw6bmw30cisx4cr50kc5njg272sy5c1dqjm1zq"; } + { n = "editor"; h = "1q62dinrbb18aywbvii4mlr7rxa20rdsxxd6grix9y8h9776q4l5"; } + { n = "folding"; h = "1qh4ijfb1gl9xza5ydi87v1kyima3a9sh7lncwdy1way3pdhln1y"; } + { n = "model"; h = "1pr6k2pdfdwx8jqs7gx7wzn3gxsql3sk6lnjha8m15lv4al6d4kj"; } + { n = "outline"; h = "1jgr2g16j3id8v367jbgd6kx6g2w636fbzmd8jvkvkh7y1jgjqxm"; } + { n = "preferences"; h = "027fhaqa5xbil6dmhvkbpha3pgw6dpmc2im3nlliyds57mdmdb1h"; } + { n = "text"; h = "0clywylyidrxlqs0n816nhgjmk1c3xl7sn904ki4q050amfy0wb2"; } + ]; + + propagatedBuildInputs = [ antlr-runtime_4_7 ]; + + meta = with stdenv.lib; { + description = "Adds support for JSON files to Eclipse"; + homepage = https://github.com/boothen/Json-Eclipse-Plugin; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + jdt = buildEclipseUpdateSite rec { + name = "jdt-${version}"; + version = "4.9"; + + src = fetchzip { + stripRoot = false; + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/org.eclipse.jdt-4.9.zip; + sha256 = "144rqrw0crxd2v862dqxm2p5y60n4pbzdryv709xnhcw54rycm7n"; + }; + + meta = with stdenv.lib; { + homepage = https://www.eclipse.org/jdt/; + description = "Eclipse Java development tools"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + jdt-codemining = buildEclipsePlugin rec { + name = "jdt-codemining-${version}"; + version = "1.0.0.201806221018"; + + srcFeature = fetchurl { + url = "http://oss.opensagres.fr/jdt-codemining/snapshot/features/jdt-codemining-feature_${version}.jar"; + sha256 = "1vy30rsb9xifn4r1r2n84d48g6riadzli1xvhfs1mf5pkm5ljwl6"; + }; + + srcPlugin = fetchurl { + url = "http://oss.opensagres.fr/jdt-codemining/snapshot/plugins/org.eclipse.jdt.codemining_${version}.jar"; + sha256 = "0qdzlqcjcm2i4mwhmcdml0am83z1dayrcmf37ji7vmw6iwdk1xmp"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/angelozerr/jdt-codemining; + description = "Provides JDT Java CodeMining"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + rustdt = buildEclipseUpdateSite rec { + name = "rustdt-${version}"; + version = "0.6.2"; + owner = "RustDT"; + repo = "rustdt.github.io"; + rev = "5cbe753008c40555c493092a6f4ae1ffbff0b3ce"; + + src = fetchzip { + stripRoot = false; + url = "https://github.com/${owner}/${repo}/archive/${rev}.zip"; + sha256 = "1xfj4j27d1h4bdf2v7f78zi8lz4zkkj7s9kskmsqx5jcs2d459yp"; + extraPostFetch = + '' + mv "$out/${repo}-${rev}/releases/local-repo/"* "$out/" + ''; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/RustDT; + description = "Rust development tooling"; + license = licenses.epl10; + platforms = platforms.all; + }; + }; + + scala = buildEclipseUpdateSite rec { + name = "scala-${version}"; + version = "4.4.1.201605041056"; + + src = fetchzip { + url = "http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/base-20160504-1321.zip"; + sha256 = "13xgx2rwlll0l4bs0g6gyvrx5gcc0125vzn501fdj0wv2fqxn5lw"; + }; + + meta = with stdenv.lib; { + homepage = http://scala-ide.org/; + description = "The Scala IDE for Eclipse"; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + spotbugs = buildEclipseUpdateSite rec { + name = "spotbugs-${version}"; + version = "3.1.10"; + + src = fetchzip { + stripRoot = false; + url = "https://github.com/spotbugs/spotbugs/releases/download/${version}/eclipsePlugin.zip"; + sha256 = "0xrflgw0h05z3za784ach2fx6dh04lgmfr426m1q235vv2ibds5y"; + }; + + meta = with stdenv.lib; { + homepage = https://spotbugs.github.io/; + description = "Plugin that uses static analysis to look for bugs in Java code"; + license = licenses.lgpl21; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + testng = buildEclipsePlugin rec { + name = "testng-${version}"; + version = "6.9.13.201609291640"; + + srcFeature = fetchurl { + url = "http://beust.com/eclipse-old/eclipse_${version}/features/org.testng.eclipse_${version}.jar"; + sha256 = "02wzcysl7ga3wnvnwp6asl8d77wgc547c5qqawixw94lw6fn1a15"; + }; + + srcPlugin = fetchurl { + url = "http://beust.com/eclipse-old/eclipse_${version}/plugins/org.testng.eclipse_${version}.jar"; + sha256 = "1j4zw6392q3q6z3pcy803k3g0p220gk1x19fs99p0rmmdz83lc8d"; + }; + + meta = with stdenv.lib; { + homepage = http://testng.org/; + description = "Eclipse plugin for the TestNG testing framework"; + license = licenses.asl20; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + vrapper = buildEclipseUpdateSite rec { + name = "vrapper-${version}"; + version = "0.72.0"; + owner = "vrapper"; + repo = "vrapper"; + date = "20170311"; + + src = fetchzip { + stripRoot = false; + url = "https://github.com/${owner}/${repo}/releases/download/${version}/vrapper_${version}_${date}.zip"; + sha256 = "0nyirf6km97q211cxfy01kidxac20m8ba3kk9xj73ykrhsk3cxjp"; + }; + + meta = with stdenv.lib; { + homepage = "https://github.com/vrapper/vrapper"; + description = "A wrapper to provide a Vim-like input scheme for moving around and editing text"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = [ maintainers.stumoss ]; + }; + }; + + yedit = buildEclipsePlugin rec { + name = "yedit-${version}"; + version = "1.0.20.201509041456"; + + srcFeature = fetchurl { + url = "http://dadacoalition.org/yedit/features/org.dadacoalition.yedit.feature_${version}-RELEASE.jar"; + sha256 = "0rps73y19gwlrdr8jjrg3rhcaaagghnmri8297inxc5q2dvg0mlk"; + }; + + srcPlugin = fetchurl { + url = "http://dadacoalition.org/yedit/plugins/org.dadacoalition.yedit_${version}-RELEASE.jar"; + sha256 = "1wpyw4z28ka60z36f8m71kz1giajcm26wb9bpv18sjiqwdgx9v0z"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/oyse/yedit; + description = "A YAML editor plugin for Eclipse"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + + zest = buildEclipseUpdateSite rec { + name = "zest-${version}"; + version = "3.9.101"; + + src = fetchurl { + url = "http://archive.eclipse.org/tools/gef/downloads/drops/${version}/R201408150207/GEF-${name}.zip"; + sha256 = "01scn7cmcrjcp387spjm8ifgwrwwi77ypildandbisfvhj3qqs7m"; + }; + + meta = with stdenv.lib; { + homepage = https://www.eclipse.org/gef/zest/; + description = "The Eclipse Visualization Toolkit"; + platforms = platforms.all; + maintainers = [ maintainers.romildo ]; + }; + }; + +} |