diff options
Diffstat (limited to 'pkgs/applications/editors/eclipse')
-rw-r--r-- | pkgs/applications/editors/eclipse/build-eclipse.nix | 13 | ||||
-rw-r--r-- | pkgs/applications/editors/eclipse/default.nix | 57 | ||||
-rw-r--r-- | pkgs/applications/editors/eclipse/plugins.nix | 111 |
3 files changed, 94 insertions, 87 deletions
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix index 218fbe8fc1f..1ddb6707110 100644 --- a/pkgs/applications/editors/eclipse/build-eclipse.nix +++ b/pkgs/applications/editors/eclipse/build-eclipse.nix @@ -1,6 +1,6 @@ -{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender +{ lib, stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender , zlib, jdk, glib, gtk, libXtst, gsettings-desktop-schemas, webkitgtk -, makeWrapper, ... }: +, makeWrapper, perl, ... }: { name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description }: @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { buildInputs = [ fontconfig freetype glib gsettings-desktop-schemas gtk jdk libX11 libXrender libXtst makeWrapper zlib - ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk; + ] ++ lib.optional (webkitgtk != null) webkitgtk; buildCommand = '' # Unpack tarball. @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { 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 + [ -f $libCairo ] && patchelf --set-rpath ${lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]} $libCairo # Create wrapper script. Pass -configuration to store # settings in ~/.eclipse/org.eclipse.platform_<version> rather @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ --prefix PATH : ${jdk}/bin \ - --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk libXtst ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk)} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk libXtst ] ++ lib.optional (webkitgtk != null) webkitgtk)} \ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration" @@ -50,6 +50,9 @@ stdenv.mkDerivation rec { cp ${desktopItem}/share/applications/* $out/share/applications mkdir -p $out/share/pixmaps ln -s $out/eclipse/icon.xpm $out/share/pixmaps/eclipse.xpm + + # ensure eclipse.ini does not try to use a justj jvm, as those aren't compatible with nix + ${perl}/bin/perl -i -p0e 's|-vm\nplugins/org.eclipse.justj.*/jre/bin\n||' $out/eclipse/eclipse.ini ''; # */ meta = { diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix index 87ac29b58e9..000726dd81a 100644 --- a/pkgs/applications/editors/eclipse/default.nix +++ b/pkgs/applications/editors/eclipse/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, makeDesktopItem, makeWrapper +{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper , freetype, fontconfig, libX11, libXrender, zlib , glib, gtk3, gtk2, libXtst, jdk, jdk8, gsettings-desktop-schemas , webkitgtk ? null # for internal web browser @@ -10,13 +10,16 @@ assert stdenv ? glibc; # https://download.eclipse.org/eclipse/downloads/ is the main place to # find the downloads needed for new versions +# +# to test: +# $ 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 let platform_major = "4"; - platform_minor = "16"; - year = "2020"; - month = "06"; - timestamp = "${year}${month}040540"; + platform_minor = "19"; + year = "2021"; + month = "03"; + timestamp = "${year}${month}031800"; gtk = gtk3; in rec { @@ -34,7 +37,7 @@ in rec { src = fetchurl { 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-x86_64.tar.gz"; - sha512 = "0vfxzsvfv9zmd0ckrdpziijzskh13g8kgk8ibkwmhmqmj14a3visk6yvn5q2s0knkswl1zy9arinw0mxvqh72dfj63vwc01vhp06lyr"; + sha512 = "3j0lmll0glcr9p0hf49jiaq9xr8hadsy0y58wbbkdpldj3rclxr056dkswmiw2bkypfiwrjygbli5qxyp6mz380562hc2kjwijqq476"; }; }; @@ -46,7 +49,7 @@ in rec { src = fetchurl { 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-x86_64.tar.gz"; - sha512 = "29nr1x3fgdw5ygrppfma6yi1iaqvad24jyb58sag735z1nz4ymajcwakg52mlv3s19d4w8cxpskh1r459mwz7j769qplymspqifvlkd"; + sha512 = "0iqz9a3ixcbmaci6lnspdnzwd2h1fcygi54hmsl89pq3d1k5scyhcl123ixi24csi782w847bn0lq00n0zwras9akmnhsflra4mw5pz"; }; }; @@ -58,7 +61,7 @@ in rec { src = fetchurl { 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-x86_64.tar.gz"; - sha512 = "2pm4xam0jn9x34k1hr5rn67fpvc6snlkpcfn4bzdcf2xjv9f3dr2039mkcrhri5nv2bj6fkbai6aga6fmmrb3na33b7ir7sqlqqn61b"; + sha512 = "03v1ly7j9d9qnl3d9rl5a9kp483dz8i8v3cfnh55ksm9fk8iy2fzg6wq178ggnx2z5x9k88a4wk6n647yilh2hgc2l7926imkh2j1ly"; }; }; @@ -83,7 +86,7 @@ in rec { src = fetchurl { 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-x86_64.tar.gz"; - sha512 = "195c07yabmi2a42qxfmpbv6ychpj15bbpgyp40s1pcdb3p875vcqjinq9dqy2sixzwjhfdrggpvwihav87rkih9arzmk2s4cm31mjqd"; + sha512 = "37m91my121pch12bwpwk5svfqkm7vl07wjx4fkhpy947v5kjf36hm6x0i45swdg7f0hk72y2qz5ka15ki5jv890qy5psj6z7ax9sys7"; }; }; @@ -95,7 +98,19 @@ in rec { src = fetchurl { 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-x86_64.tar.gz"; - sha512 = "3n8jllgxarrxgz16n7zb4bgaqxk0m9frcxrgdxvy25ar2iw8js4q4ir3cc20y4ri3ii74rf3jy6n4ndhm57miwqh4p2wqzhfjlinirb"; + sha512 = "3qrnj6krhrqc9rfwlim3v7kshwfhsi050pszw6xdfbj56mzr9whr7l76isbpxd5j0zipgfw3qrzrx379pdp899d35fv284ilvllzl4k"; + }; + }; + + ### Eclipse Java EE + + eclipse-jee = buildEclipse { + name = "eclipse-jee-${platform_major}.${platform_minor}"; + description = "Eclipse IDE for Enterprise Java and Web Developers"; + src = + fetchurl { + 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-x86_64.tar.gz"; + sha512 = "04k4x9imabxddqlrgajn33ak8i58wcap40ll09xz23d1sxn9a8prh01s06ymgwg6ldg939srphvbz4112p8p0b1hl7m25a02qll91zv"; }; }; @@ -107,7 +122,19 @@ in rec { src = fetchurl { 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-x86_64.tar.gz"; - sha512 = "1l0gc7srpvn3r0yrbrp1pjv1a3n1y7q5fqww5fmzyw1d6j3hjkqj74c9bff16579cpf7z6d4wmj6kr7z89p0ignrx319gc8p0hivi1y"; + sha512 = "2yksl3w7yr1a3h4zdpa9zf394r5c185zqxhigdv858ldg46kmr9h0l2c7shbgb16kkybcnrk4x44dhjvh60x8xw6ma05klp4lp9v5va"; + }; + }; + + ### Eclipse IDE for RCP and RAP Developers + + eclipse-rcp = buildEclipse { + name = "eclipse-rcp-${platform_major}.${platform_minor}"; + description = "Eclipse IDE for RCP and RAP Developers"; + src = + fetchurl { + 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-x86_64.tar.gz"; + sha512 = "3fhrhwbyqcys56c93s1vl9rbvn269nn5y3cb9f3n1qwgw6i97mim2zy98jl3r8cksf97jwsmqmsqclsgz9v799wcckv81dj1l628382"; }; }; @@ -121,7 +148,7 @@ in rec { pluginEnv = buildEnv { name = "eclipse-plugins"; paths = - with stdenv.lib; + with lib; filter (x: x ? isEclipsePlugin) (closePropagation plugins); }; @@ -129,13 +156,13 @@ in rec { # 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]); + jvmArgsText = 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; + name = (lib.meta.appendToName "with-plugins" eclipse).name; in - runCommand name { buildInputs = [ makeWrapper ]; } '' + runCommand name { nativeBuildInputs = [ makeWrapper ]; } '' mkdir -p $out/bin $out/etc # Prepare an eclipse.ini with the plugin directory. diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix index 4edb7a7ebc4..5937311b5c9 100644 --- a/pkgs/applications/editors/eclipse/plugins.nix +++ b/pkgs/applications/editors/eclipse/plugins.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchzip, unzip }: +{ lib, stdenv, fetchurl, fetchzip, unzip }: rec { @@ -105,12 +105,11 @@ rec { sha256 = "1cn64xj2bm69vnn9db2xxh6kq148v83w5nx3183mrqb59ym3v9kf"; }; - meta = with stdenv.lib; { + meta = with 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 ]; }; }; @@ -128,12 +127,11 @@ rec { sha256 = "1j42l0xxzs89shqkyn91lb0gia10mifzy0i73c3n7gj7sv2ddbjq"; }; - meta = with stdenv.lib; { + meta = with 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 ]; }; }; @@ -151,12 +149,11 @@ rec { cp -v $src $dropinDir/${name}.jar ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A powerful parser generator for processing structured text or binary files"; homepage = "https://www.antlr.org/"; license = licenses.bsd3; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -174,12 +171,11 @@ rec { cp -v $src $dropinDir/${name}.jar ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A powerful parser generator for processing structured text or binary files"; homepage = "https://www.antlr.org/"; license = licenses.bsd3; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -197,12 +193,11 @@ rec { sha256 = "03iyb6j2srq74iigmg7dk098c2svyv0ygdfql5jqr44a32n07k8q"; }; - meta = with stdenv.lib; { + meta = with 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 ]; }; }; @@ -220,12 +215,11 @@ rec { sha256 = "1n2rzybfcwp3ss2qi0fhd8vm38vdwav8j837lqiqlfcnvzwsk86m"; }; - meta = with stdenv.lib; { + meta = with 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 ]; }; }; @@ -243,27 +237,26 @@ rec { sha256 = "1vmsqv32jfl7anvdkw0vir342miv5sr9df7vd1w44lf1yf97vxlw"; }; - meta = with stdenv.lib; { + meta = with 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}"; # find current version at https://www.eclipse.org/cdt/downloads.php - version = "9.11.1"; + version = "10.2.0"; src = fetchzip { stripRoot = false; - url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.11/${name}/${name}.zip"; - sha256 = "00cpaal6jm9xb4nbkljrf381r3lf1rb1p06vrbn4l0lxnbckb9df"; + url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/10.2/${name}/${name}.zip"; + sha256 = "1r30cbpbzw3dfcsn54p6sqip86dqhydhsppjgaz60b6z138vzx49"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://eclipse.org/cdt/"; description = "C/C++ development tooling"; license = licenses.epl10; @@ -282,12 +275,11 @@ rec { sha256 = "07fymk705x4mwq7vh2i6frsf67jql4bzrkdzhb4n74zb0g1dib60"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://eclipse-cs.sourceforge.net/"; description = "Checkstyle integration into the Eclipse IDE"; license = licenses.lgpl21; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -306,12 +298,11 @@ rec { sha256 = "0wz61909bhqwzpqwll27ia0cn3anyp81haqx3rj1iq42cbl42h0y"; }; - meta = with stdenv.lib; { + meta = with 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 ]; }; }; @@ -339,7 +330,7 @@ rec { propagatedBuildInputs = [ zest ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www2.cs.tum.edu/projects/cup/eclipse.php"; description = "IDE for developing CUP based parsers"; platforms = platforms.all; @@ -355,9 +346,6 @@ rec { url = "https://download.jboss.org/drools/release/${version}/droolsjbpm-tools-distribution-${version}.zip"; sha512 = "2qzc1iszqfrfnw8xip78n3kp6hlwrvrr708vlmdk7nv525xhs0ssjaxriqdhcr0s6jripmmazxivv3763rnk2bfkh31hmbnckpx4r3m"; extraPostFetch = '' - # work around https://github.com/NixOS/nixpkgs/issues/38649 - chmod go-w $out; - # update site is a couple levels deep, alongside some other irrelevant stuff cd $out; find . -type f -not -path ./binaries/org.drools.updatesite/\* -exec rm {} \; @@ -367,7 +355,7 @@ rec { ''; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.drools.org/"; description = "Drools is a Business Rules Management System (BRMS) solution"; license = licenses.asl20; @@ -384,12 +372,11 @@ rec { sha256 = "0w1kwcjh45p7msv5vpc8i6dsqwrnfmjama6vavpnxlji56jd3c43"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.eclemma.org/"; description = "EclEmma is a free Java code coverage tool for Eclipse"; license = licenses.epl10; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -407,12 +394,27 @@ rec { sha256 = "10p3mrbp9wi6jhlmmc23qv7frh605a23pqsc7w96569bsfb5wa8q"; }; - meta = with stdenv.lib; { + meta = with 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 ]; + }; + }; + + freemarker = buildEclipseUpdateSite rec { + name = "freemarker-${version}"; + version = "1.5.305"; + + src = fetchzip { + url = "https://github.com/ddekany/jbosstools-freemarker/releases/download/v${version}/freemarker.site-${version}.zip"; + sha256 = "1qrhi300vk07gi14r445wvy0bvghbjd6c4k7q09pqpaxv6raiczn"; + stripRoot = false; + }; + + meta = with lib; { + homepage = "https://github.com/ddekany/jbosstools-freemarker"; + description = "Plugin that provides an editor for Apache FreeMarker files"; }; }; @@ -426,7 +428,7 @@ rec { sha256 = "1g77jlhfa3csaxxps1z5lasrd9l2p5ajnddnq9ra5syw8ggkdc2h"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://gnuarmeclipse.livius.net/"; description = "GNU ARM Eclipse Plug-ins"; license = licenses.epl10; @@ -464,31 +466,11 @@ rec { propagatedBuildInputs = [ antlr-runtime_4_7 ]; - meta = with stdenv.lib; { + meta = with 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.16"; - - src = fetchzip { - stripRoot = false; - url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202006040540/org.eclipse.jdt-${version}.zip"; - sha256 = "0g349hg2nv1y628daxf84396wpf33z52wxv0gawlgrirbbizaznd"; - }; - - meta = with stdenv.lib; { - homepage = "https://www.eclipse.org/jdt/"; - description = "Eclipse Java development tools"; - license = licenses.epl10; - platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -506,12 +488,11 @@ rec { sha256 = "0qdzlqcjcm2i4mwhmcdml0am83z1dayrcmf37ji7vmw6iwdk1xmp"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/angelozerr/jdt-codemining"; description = "Provides JDT Java CodeMining"; license = licenses.epl10; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -532,7 +513,7 @@ rec { ''; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/RustDT"; description = "Rust development tooling"; license = licenses.epl10; @@ -549,12 +530,11 @@ rec { sha256 = "13xgx2rwlll0l4bs0g6gyvrx5gcc0125vzn501fdj0wv2fqxn5lw"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://scala-ide.org/"; description = "The Scala IDE for Eclipse"; license = licenses.bsd3; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -568,12 +548,11 @@ rec { sha256 = "0aanqwx3gy1arpbkqd846381hiy6272lzwhfjl94x8jhfykpqqbj"; }; - meta = with stdenv.lib; { + meta = with 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 ]; }; }; @@ -591,12 +570,11 @@ rec { sha256 = "1j4zw6392q3q6z3pcy803k3g0p220gk1x19fs99p0rmmdz83lc8d"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://testng.org/doc/"; description = "Eclipse plugin for the TestNG testing framework"; license = licenses.asl20; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -613,7 +591,7 @@ rec { sha256 = "0nyirf6km97q211cxfy01kidxac20m8ba3kk9xj73ykrhsk3cxjp"; }; - meta = with stdenv.lib; { + meta = with 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; @@ -636,12 +614,11 @@ rec { sha256 = "1wpyw4z28ka60z36f8m71kz1giajcm26wb9bpv18sjiqwdgx9v0z"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/oyse/yedit"; description = "A YAML editor plugin for Eclipse"; license = licenses.epl10; platforms = platforms.all; - maintainers = [ maintainers.rycee ]; }; }; @@ -654,7 +631,7 @@ rec { sha256 = "01scn7cmcrjcp387spjm8ifgwrwwi77ypildandbisfvhj3qqs7m"; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.eclipse.org/gef/zest/"; description = "The Eclipse Visualization Toolkit"; platforms = platforms.all; |