eclipses: 2022-12 -> 2023-03

* generalize the justj-stripping regex a tad, since it has grown a
trailing /java in some flavors of eclipse.

* resurrect .eclipseproduct workaround from 2012-12 /
8a7561ec09957e813048aba119f7459aa392f22d

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

+34 -32
+4 -5
pkgs/applications/editors/eclipse/build-eclipse.nix
··· 2 , zlib, jdk, glib, glib-networking, gtk, libXtst, libsecret, gsettings-desktop-schemas, webkitgtk 3 , makeWrapper, perl, ... }: 4 5 - { name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description }: 6 7 stdenv.mkDerivation rec { 8 inherit name src; ··· 17 categories = [ "Development" ]; 18 }; 19 20 - nativeBuildInputs = [ makeWrapper ]; 21 buildInputs = [ 22 fontconfig freetype glib gsettings-desktop-schemas gtk jdk libX11 23 libXrender libXtst libsecret zlib ··· 38 # settings in ~/.eclipse/org.eclipse.platform_<version> rather 39 # than ~/.eclipse/org.eclipse.platform_<version>_<number>. 40 productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct) 41 - productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct) 42 43 makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ 44 --prefix PATH : ${jdk}/bin \ 45 --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk libXtst libsecret ] ++ lib.optional (webkitgtk != null) webkitgtk)} \ 46 --prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \ 47 --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ 48 - --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration" 49 50 # Create desktop item. 51 mkdir -p $out/share/applications ··· 54 ln -s $out/eclipse/icon.xpm $out/share/pixmaps/eclipse.xpm 55 56 # ensure eclipse.ini does not try to use a justj jvm, as those aren't compatible with nix 57 - ${perl}/bin/perl -i -p0e 's|-vm\nplugins/org.eclipse.justj.*/jre/bin\n||' $out/eclipse/eclipse.ini 58 ''; # */ 59 60 meta = {
··· 2 , zlib, jdk, glib, glib-networking, gtk, libXtst, libsecret, gsettings-desktop-schemas, webkitgtk 3 , makeWrapper, perl, ... }: 4 5 + { name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description, productVersion }: 6 7 stdenv.mkDerivation rec { 8 inherit name src; ··· 17 categories = [ "Development" ]; 18 }; 19 20 + nativeBuildInputs = [ makeWrapper perl ]; 21 buildInputs = [ 22 fontconfig freetype glib gsettings-desktop-schemas gtk jdk libX11 23 libXrender libXtst libsecret zlib ··· 38 # settings in ~/.eclipse/org.eclipse.platform_<version> rather 39 # than ~/.eclipse/org.eclipse.platform_<version>_<number>. 40 productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct) 41 42 makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ 43 --prefix PATH : ${jdk}/bin \ 44 --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk libXtst libsecret ] ++ lib.optional (webkitgtk != null) webkitgtk)} \ 45 --prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \ 46 --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ 47 + --add-flags "-configuration \$HOME/.eclipse/''${productId}_${productVersion}/configuration" 48 49 # Create desktop item. 50 mkdir -p $out/share/applications ··· 53 ln -s $out/eclipse/icon.xpm $out/share/pixmaps/eclipse.xpm 54 55 # ensure eclipse.ini does not try to use a justj jvm, as those aren't compatible with nix 56 + perl -i -p0e 's|-vm\nplugins/org.eclipse.justj.*/jre/bin.*\n||' $out/eclipse/eclipse.ini 57 ''; # */ 58 59 meta = {
+27 -24
pkgs/applications/editors/eclipse/default.nix
··· 10 # find the downloads needed for new versions 11 # 12 # to test: 13 - # $ for e in cpp modeling platform sdk java jee committers rcp; do nix build -f default.nix pkgs.eclipses.eclipse-${e} -o eclipse-${e}; done 14 15 let 16 platform_major = "4"; 17 - platform_minor = "26"; 18 - year = "2022"; 19 - month = "12"; #release month 20 - buildmonth = "11"; #sometimes differs from release month 21 - timestamp = "${year}${buildmonth}231800"; 22 gtk = gtk3; 23 arch = if stdenv.hostPlatform.isx86_64 then 24 "x86_64" ··· 27 else throw "don't know what platform suffix for ${stdenv.hostPlatform.system} will be"; 28 in rec { 29 30 - buildEclipse = callPackage ./build-eclipse.nix { 31 inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib 32 jdk glib gtk libXtst gsettings-desktop-schemas webkitgtk 33 makeWrapper; 34 }; 35 36 ### Eclipse CPP 37 ··· 42 fetchurl { 43 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 44 hash = { 45 - x86_64 = "sha512-nqqY4dewq1bjeNoZdWvOez+cBti+f9qXshx1eqJ2lB7sGJva5mcR9e+CZTVD0+EtVJ/U+8viJ+E1Veht1ZnqOw=="; 46 - aarch64 = "sha512-kmeNH6F8oK72LtrYtiJVLKhy6Q1HwnU+Bh+mpXdXSrfj9KtqzHQkJ0kTnnJkGYLtpi+zyXDwsxzyjh6pPyDRJA=="; 47 }.${arch}; 48 }; 49 }; ··· 57 fetchurl { 58 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 59 hash = { 60 - x86_64 = "sha512-WU2BJt6GL3ug3yOUOd5y6/AbGLcr2MkCg+QJiNIMkSXvoU9TF6R6oimoGVc3kPZmazRy6WYoes55T3bWrHnO8Q=="; 61 - aarch64 = "sha512-F63f2o9u/p7hhrxI+Eu6NiL4sPccIYw876Nnj8mfSZ7bozs1OVNWftZj+xbdLLbr0bVz3WKnt4BHzcLUA6QG7g=="; 62 }.${arch}; 63 }; 64 }; ··· 72 fetchurl { 73 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; 74 hash = { 75 - x86_64 = "sha512-hmdWGteMDt4HhYq+k9twuftalpTzHtGnVVLphZcpJcw+6vJfersciDMaeLRqbCAeFbzJdgzjYo76bpP6FubySw=="; 76 - aarch64 = "sha512-BvUkOdCsjwtscPeuBXG7ZpitOr8EQK5JL8nSGpw/RhhBEFz46nsc7W18l0aYjdzRHh2ie55RylS2PEQELkS/hQ=="; 77 }.${arch}; 78 }; 79 }; ··· 81 ### Eclipse Scala SDK 82 83 eclipse-scala-sdk = 84 - (buildEclipse.override { jdk = jdk8; gtk = gtk2; } { 85 name = "eclipse-scala-sdk-4.7.0"; 86 description = "Eclipse IDE for Scala Developers"; 87 src = 88 fetchurl { 89 url = "https://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz"; ··· 103 fetchurl { 104 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; 105 hash = { 106 - x86_64 = "sha512-yH4/K9sBLCUc2EVYwPL0dLql/S3AfaV6fFh7ewAuIb7yHtcsOWMqy/h1hZUlFFg2ykfwDWDDHEK7qfTI0hM7BQ=="; 107 - aarch64 = "sha512-UYp8t7r2RrN3rKN180cWpJyhyO5LVXL8LrTRKJzttUgB7kM1nroTEI3DesBu+Hw4Ynl7eLiBK397rqcpOAfxJw=="; 108 }.${arch}; 109 }; 110 }; ··· 118 fetchurl { 119 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 120 hash = { 121 - x86_64 = "sha512-71mXYVLVnyDjYZbJGBKc0aDPq8sbTxlVZRQq7GlSUDv2fsoNYWYgqYfK7RSED5yoasCfs3HUYr7QowRAKJOnfQ=="; 122 - aarch64 = "sha512-KOQ6BZuQJeVpbMQVxF67M3F/KXMmDhmZQBNq0yWM+/8+d0DiBRkwJtqPYsnTqrax8FSunn2yy+CzlfyHSoNvpg=="; 123 }.${arch}; 124 }; 125 }; ··· 133 fetchurl { 134 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 135 hash = { 136 - x86_64 = "sha512-55i9YVOa+vKHt72vHIqy9BmKMkg1KaLqMStjTtfaLTH5yP0ei+NTP2XL8IBHOgu0hCEJqYXTq+3I3RQy476etQ=="; 137 - aarch64 = "sha512-iaoTB/Pinoj1weiGBBv0plQ4jGNdFs2JiBG7S/icUoAX5O6jTGAgJvOwh7Nzn+0N6YL6+HPWaV24a6lM43y8Og=="; 138 }.${arch}; 139 }; 140 }; ··· 148 fetchurl { 149 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 150 hash = { 151 - x86_64 = "sha512-zGeynifM0dn1214HEVS7OVtv7xa8asjLzOXh5riJK8c/DWvNrRduHn6o6PGnxYOYVIfC9BzNRAjG1STkWu9j+Q=="; 152 - aarch64 = "sha512-B866dFJcsTkq+h0RZ61CxXE83TWvCf8ZAbGeIC385PpPR3i/gZnRjN2oRrDP22CNR5XXA+PfXKxqvERhJB5ebA=="; 153 }.${arch}; 154 }; 155 }; ··· 163 fetchurl { 164 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 165 hash = { 166 - x86_64 = "sha256-ml76ix0fHuR0KqYWQuTftEBAgq7iaOIyvr8V6WhuzeU="; 167 - aarch64 = "sha256-sMB6a3f0fiL6ZentIjJTMi59ZOh7dizXrkMQuIRbds0="; 168 }.${arch}; 169 }; 170 };
··· 10 # find the downloads needed for new versions 11 # 12 # to test: 13 + # for e in cpp modeling platform sdk java jee committers rcp; do for s in pkgs pkgsCross.aarch64-multiplatform; do echo; echo $s $e; nix build -f default.nix ${s}.eclipses.eclipse-${e} -o eclipse-${s}-${e}; done; done 14 15 let 16 platform_major = "4"; 17 + platform_minor = "27"; 18 + year = "2023"; 19 + month = "03"; #release month 20 + buildmonth = "03"; #sometimes differs from release month 21 + timestamp = "${year}${buildmonth}020300"; 22 gtk = gtk3; 23 arch = if stdenv.hostPlatform.isx86_64 then 24 "x86_64" ··· 27 else throw "don't know what platform suffix for ${stdenv.hostPlatform.system} will be"; 28 in rec { 29 30 + # work around https://bugs.eclipse.org/bugs/show_bug.cgi?id=476075#c3 31 + buildEclipseUnversioned = callPackage ./build-eclipse.nix { 32 inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib 33 jdk glib gtk libXtst gsettings-desktop-schemas webkitgtk 34 makeWrapper; 35 }; 36 + buildEclipse = eclipseData: buildEclipseUnversioned (eclipseData // { productVersion = "${platform_major}.${platform_minor}"; }); 37 38 ### Eclipse CPP 39 ··· 44 fetchurl { 45 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 46 hash = { 47 + x86_64 = "sha256-MBng3ETarHMlUUPpVvMIZxVqpe9JW5xNHonnN6CHRcw="; 48 + aarch64 = "sha256-7FgpPzp5MY/fB6Q/wvrvi+Lpcm3tmH7bUTLh7q2Rjek="; 49 }.${arch}; 50 }; 51 }; ··· 59 fetchurl { 60 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 61 hash = { 62 + x86_64 = "sha256-BXofrKElgCG3+WUCanpX1sGLhirj2pLi+pi24Z+WjBk="; 63 + aarch64 = "sha256-CdePRa6jmWlt3Wismt3RahGzYOm1ZDwQRt82kRVXSdM="; 64 }.${arch}; 65 }; 66 }; ··· 74 fetchurl { 75 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; 76 hash = { 77 + x86_64 = "sha256-aprXjNv2NMoIDCNkFxwmMKcGUt2ssRonzTZ/hH57Mig="; 78 + aarch64 = "sha256-Aq9PDVo/9zTeQ2j6q5bf1aIKjKM7oonIr1mEQ7rX48Y="; 79 }.${arch}; 80 }; 81 }; ··· 83 ### Eclipse Scala SDK 84 85 eclipse-scala-sdk = 86 + (buildEclipseUnversioned.override { jdk = jdk8; gtk = gtk2; } { 87 name = "eclipse-scala-sdk-4.7.0"; 88 description = "Eclipse IDE for Scala Developers"; 89 + productVersion = "4.7"; 90 src = 91 fetchurl { 92 url = "https://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz"; ··· 106 fetchurl { 107 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; 108 hash = { 109 + x86_64 = "sha256-39DXU7wIsdxkUpNKnYPT7+qPJ2DrF7G7UJqPfhEDGGs="; 110 + aarch64 = "sha256-7GwKGNHWPZ3uOFyzQj1dftFFz/3oa2j8XWkRn0wnllY="; 111 }.${arch}; 112 }; 113 }; ··· 121 fetchurl { 122 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 123 hash = { 124 + x86_64 = "sha256-zNBzFHmNaxUutzMh/5pOglJiKh5NAvSVwvPYyA6RVr4="; 125 + aarch64 = "sha256-RtLXB9kgpLERfhpvDTaJG84qVyN1Puud1PTZtk/WIO0="; 126 }.${arch}; 127 }; 128 }; ··· 136 fetchurl { 137 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 138 hash = { 139 + x86_64 = "sha256-vpvmKZKVl6ubfq8QMDr0xprXYMWl576hu+ovvREN4ak="; 140 + aarch64 = "sha256-5Yqxgl4kkN3Bb7hsTnd9q5TsCpVBVkEVvqPbL5MYEyg="; 141 }.${arch}; 142 }; 143 }; ··· 151 fetchurl { 152 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 153 hash = { 154 + x86_64 = "sha256-4SAiEZWSUaiK8QO2Hg39FBcj1aYRtbOJkeF1W1AMQBo="; 155 + aarch64 = "sha256-+KGDlo6QK3o/n2vSiD0HpIkBwqwIiMXzdFUpfE48gps="; 156 }.${arch}; 157 }; 158 }; ··· 166 fetchurl { 167 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; 168 hash = { 169 + x86_64 = "sha256-bhcpzsS9cci3Y3Pk9DOrtPonKjRg/vzDqDr3Be/xfks="; 170 + aarch64 = "sha256-YCb4leFWRtx4VPwK/5vgwwDH3/f0/0OWEy4ueAS7sUw="; 171 }.${arch}; 172 }; 173 };
+3 -3
pkgs/applications/editors/eclipse/plugins.nix
··· 254 255 cdt = buildEclipseUpdateSite rec { 256 name = "cdt-${version}"; 257 - # find current version at https://www.eclipse.org/cdt/downloads.php 258 - version = "11.0.0"; 259 260 src = fetchzip { 261 stripRoot = false; 262 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip"; 263 - hash = "sha256-2rt9crMqNFevIHFIdOGWDq+j0ZJPVt1a9Z7P9HG58Ks="; 264 }; 265 266 meta = with lib; {
··· 254 255 cdt = buildEclipseUpdateSite rec { 256 name = "cdt-${version}"; 257 + # find current version at https://github.com/eclipse-cdt/cdt/releases 258 + version = "11.1.1"; 259 260 src = fetchzip { 261 stripRoot = false; 262 url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip"; 263 + hash = "sha256-k78QKPIb3Lr0Wcg2tTlX1abdpcvxspjaxJiP2Hrgb4A="; 264 }; 265 266 meta = with lib; {