From 340274bddbcf0e8ea78473f6becb4d4040573205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20=22Capypara=22=20K=C3=B6pcke?= Date: Mon, 29 Dec 2025 20:48:04 +0100 Subject: [PATCH] jetbrains: split IDEs into separate nix files This splits each IDE into its own `.nix` file and refactors all related build machinery to support this. Motivations (in order of priority): - Fixing reviews for update PRs: Currently update PRs get no maintainers assigned, since the `versions.json` was changed. Due to the way CI works, packages outside of `by-name` only have their maintainers added to PRs if the file that contains the derivation (`meta.position`) is changed. - Reducing the size of `default.nix` and making the differences & patches required for each IDE more clear and with that also actually cutting the code into separately maintainable chunks - Overall improving readability and code structure This commit was half-automatically generated by a script I wrote: https://gist.github.com/theCapypara/2939ff9f83a5f30f1d3dff74d725a9bf **Note that this commit itself does not cause any rebuilds. This is important. It is just a refactoring without any functional changes.** --- .../editors/jetbrains/bin/versions.json | 490 ------------------ .../jetbrains/{bin => builder}/darwin.nix | 16 +- .../editors/jetbrains/builder/default.nix | 85 +++ .../jetbrains/{bin => builder}/linux.nix | 21 +- .../editors/jetbrains/default.nix | 432 +++------------ pkgs/applications/editors/jetbrains/ides.json | 237 --------- .../editors/jetbrains/ides/aqua.nix | 61 +++ .../editors/jetbrains/ides/clion.nix | 97 ++++ .../editors/jetbrains/ides/datagrip.nix | 56 ++ .../editors/jetbrains/ides/dataspell.nix | 66 +++ .../editors/jetbrains/ides/gateway.nix | 61 +++ .../editors/jetbrains/ides/goland.nix | 74 +++ .../editors/jetbrains/ides/idea-community.nix | 64 +++ .../editors/jetbrains/ides/idea-oss.nix | 69 +++ .../editors/jetbrains/ides/idea.nix | 74 +++ .../editors/jetbrains/ides/mps.nix | 56 ++ .../editors/jetbrains/ides/phpstorm.nix | 63 +++ .../jetbrains/ides/pycharm-community.nix | 58 +++ .../editors/jetbrains/ides/pycharm-oss.nix | 63 +++ .../editors/jetbrains/ides/pycharm.nix | 66 +++ .../editors/jetbrains/ides/rider.nix | 101 ++++ .../editors/jetbrains/ides/ruby-mine.nix | 60 +++ .../editors/jetbrains/ides/rust-rover.nix | 80 +++ .../editors/jetbrains/ides/webstorm.nix | 63 +++ .../editors/jetbrains/ides/writerside.nix | 61 +++ .../editors/jetbrains/source/build.nix | 12 +- .../editors/jetbrains/source/default.nix | 9 - .../editors/jetbrains/source/sources.json | 56 -- 28 files changed, 1486 insertions(+), 1165 deletions(-) delete mode 100644 pkgs/applications/editors/jetbrains/bin/versions.json rename pkgs/applications/editors/jetbrains/{bin => builder}/darwin.nix (75%) create mode 100644 pkgs/applications/editors/jetbrains/builder/default.nix rename pkgs/applications/editors/jetbrains/{bin => builder}/linux.nix (95%) delete mode 100644 pkgs/applications/editors/jetbrains/ides.json create mode 100644 pkgs/applications/editors/jetbrains/ides/aqua.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/clion.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/datagrip.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/dataspell.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/gateway.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/goland.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/idea-community.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/idea-oss.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/idea.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/mps.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/phpstorm.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/pycharm-community.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/pycharm.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/rider.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/ruby-mine.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/rust-rover.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/webstorm.nix create mode 100644 pkgs/applications/editors/jetbrains/ides/writerside.nix delete mode 100644 pkgs/applications/editors/jetbrains/source/default.nix delete mode 100644 pkgs/applications/editors/jetbrains/source/sources.json diff --git a/pkgs/applications/editors/jetbrains/bin/versions.json b/pkgs/applications/editors/jetbrains/bin/versions.json deleted file mode 100644 index f5998c0c1457..000000000000 --- a/pkgs/applications/editors/jetbrains/bin/versions.json +++ /dev/null @@ -1,490 +0,0 @@ -{ - "x86_64-linux": { - "aqua": { - "url-template": "https://download.jetbrains.com/aqua/aqua-{version}.tar.gz", - "version": "2024.3.2", - "sha256": "de073e8a3734a2c4ef984b3e1bd68f5de72a6180e73400889510439ac3f419aa", - "url": "https://download.jetbrains.com/aqua/aqua-2024.3.2.tar.gz", - "build_number": "243.23654.154" - }, - "clion": { - "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "44ae3da5358ba010a62d55ab412b72f364c5dcd2c2dcd2004ae34b7463807bbd", - "url": "https://download.jetbrains.com/cpp/CLion-2025.3.1.tar.gz", - "build_number": "253.29346.141" - }, - "datagrip": { - "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.tar.gz", - "version": "2025.3.2", - "sha256": "cb6ed6475d21eb8d30754131bd24003c114096bfa84ffccf334dc11cf8ac60cc", - "url": "https://download.jetbrains.com/datagrip/datagrip-2025.3.2.tar.gz", - "build_number": "253.29346.170" - }, - "dataspell": { - "url-template": "https://download.jetbrains.com/python/dataspell-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "37f13426ce4f5d859d7db246f2328ccbad61adf361d43c784cb6932af6644c28", - "url": "https://download.jetbrains.com/python/dataspell-2025.3.1.tar.gz", - "build_number": "253.29346.157" - }, - "gateway": { - "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.tar.gz", - "version": "2025.3", - "sha256": "90c8a54f619245a5435c343f94f39595ab59cd3cbada569e2b1e28bcacdbcb4a", - "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3.tar.gz", - "build_number": "253.28294.342" - }, - "goland": { - "url-template": "https://download.jetbrains.com/go/goland-{version}.tar.gz", - "version": "2025.3", - "sha256": "6151856286ea546eb8af9aeb025772cee6bd57134f45494a818e8da20a8691c6", - "url": "https://download.jetbrains.com/go/goland-2025.3.tar.gz", - "build_number": "253.28294.337" - }, - "idea-community": { - "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.tar.gz", - "version": "2025.2.5", - "sha256": "995c334cc3e143f13467abafef07a1ccf7d06275512bb6f4c91123948786ab7c", - "url": "https://download.jetbrains.com/idea/ideaIC-2025.2.5.tar.gz", - "build_number": "252.28238.7" - }, - "idea": { - "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "21e1b90b5ec684767a03498ba424ef3f9acc5dbf759cceefd5edd474f043ad6c", - "url": "https://download.jetbrains.com/idea/ideaIU-2025.3.1.tar.gz", - "build_number": "253.29346.138" - }, - "mps": { - "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz", - "version": "2025.3", - "sha256": "c4023e52b4e17824d61d2768238619be14e5ae5735db533e3951647f377b6b79", - "url": "https://download.jetbrains.com/mps/2025.3/MPS-2025.3.tar.gz", - "build_number": "253.28294.432" - }, - "phpstorm": { - "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "fd8937ab6b79605cefc9917ffe6a08e05a6b7cc0256fa2178623d24ec322fa29", - "url": "https://download.jetbrains.com/webide/PhpStorm-2025.3.1.tar.gz", - "build_number": "253.29346.151", - "version-major-minor": "2022.3" - }, - "pycharm-community": { - "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.tar.gz", - "version": "2025.2.5", - "sha256": "7f49a014f53f0f6f7c46f6710b131f390302287f4046b606331d88081cdb551f", - "url": "https://download.jetbrains.com/python/pycharm-community-2025.2.5.tar.gz", - "build_number": "252.28238.29" - }, - "pycharm": { - "url-template": "https://download.jetbrains.com/python/pycharm-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "933fd42d7cc2a76ad4ba23f9112294e4df013fa4c3362435a1e3368051c07391", - "url": "https://download.jetbrains.com/python/pycharm-2025.3.1.tar.gz", - "build_number": "253.29346.142" - }, - "rider": { - "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "ba840f7c48da7f118cf57aa8c22df30120d16f175fbce3bec6a65590ed87f2e8", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1.tar.gz", - "build_number": "253.29346.144" - }, - "ruby-mine": { - "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "e9eb2011ca2d5694c58c011690bf544d026e3a7c1c0c8de9bb37a18fa0cf8118", - "url": "https://download.jetbrains.com/ruby/RubyMine-2025.3.1.tar.gz", - "build_number": "253.29346.140" - }, - "rust-rover": { - "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "5a1b34e10a1c59eee30694236baa8233c7787580769381be01b4ccb09618ec89", - "url": "https://download.jetbrains.com/rustrover/RustRover-2025.3.1.tar.gz", - "build_number": "253.29346.139" - }, - "webstorm": { - "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.tar.gz", - "version": "2025.3.1", - "sha256": "08a851d216b741c49ebb6846e178fb823d329fe7b9824a2134b68c8fd25ba2ae", - "url": "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1.tar.gz", - "build_number": "253.29346.143" - }, - "writerside": { - "url-template": "https://download.jetbrains.com/writerside/writerside-{version}.tar.gz", - "version": "2024.3 EAP", - "sha256": "d49e58020d51ec4ccdbdffea5d42b5a2d776a809fc00789cef5abda7b23bd3f6", - "url": "https://download.jetbrains.com/writerside/writerside-243.22562.371.tar.gz", - "build_number": "243.22562.371" - } - }, - "aarch64-linux": { - "aqua": { - "url-template": "https://download.jetbrains.com/aqua/aqua-{version}-aarch64.tar.gz", - "version": "2024.3.2", - "sha256": "d2a3c781756a83ccea63dc6d9aebf85f819de1edb5bcd4e5a1a161eaa0779c84", - "url": "https://download.jetbrains.com/aqua/aqua-2024.3.2-aarch64.tar.gz", - "build_number": "243.23654.154" - }, - "clion": { - "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "b96c38c3d2f7ff7b988d75c970fd0e90363e09b8273106defc9ae3defa868ed7", - "url": "https://download.jetbrains.com/cpp/CLion-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.141" - }, - "datagrip": { - "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.tar.gz", - "version": "2025.3.2", - "sha256": "1a6feb3aa255dace332cc18b868593181b6ea62c3d9f0d36f90032ca0517d068", - "url": "https://download.jetbrains.com/datagrip/datagrip-2025.3.2-aarch64.tar.gz", - "build_number": "253.29346.170" - }, - "dataspell": { - "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "40afd38cc704cdff2be89b9f0d67bdbcb1699d7b37b25d34d44d2d52ef6a46d3", - "url": "https://download.jetbrains.com/python/dataspell-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.157" - }, - "gateway": { - "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.tar.gz", - "version": "2025.3", - "sha256": "204ed3f7262877d0a46aaf30c5bafb7216b4e9736bebee71425c993c18486af8", - "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3-aarch64.tar.gz", - "build_number": "253.28294.342" - }, - "goland": { - "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.tar.gz", - "version": "2025.3", - "sha256": "c530dd4bcc7a075a040b64859ecb34142c8fc0399625c5a13ae2d7a8f5974340", - "url": "https://download.jetbrains.com/go/goland-2025.3-aarch64.tar.gz", - "build_number": "253.28294.337" - }, - "idea-community": { - "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.tar.gz", - "version": "2025.2.5", - "sha256": "4c57a783f31ee6f2c82d8c43bb5d0334a9afbc8bfb4542e732048c41f61e63a0", - "url": "https://download.jetbrains.com/idea/ideaIC-2025.2.5-aarch64.tar.gz", - "build_number": "252.28238.7" - }, - "idea": { - "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "095711329d1e9c14641ba426e652d4dbd3885b27c9a046e44725ae677491e8c3", - "url": "https://download.jetbrains.com/idea/ideaIU-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.138" - }, - "mps": { - "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz", - "version": "2025.3", - "sha256": "c4023e52b4e17824d61d2768238619be14e5ae5735db533e3951647f377b6b79", - "url": "https://download.jetbrains.com/mps/2025.3/MPS-2025.3.tar.gz", - "build_number": "253.28294.432" - }, - "phpstorm": { - "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "7648667f85b4c45928b04d4c26f22882a8aa65a787a64fa2f7affe51a1bc2a61", - "url": "https://download.jetbrains.com/webide/PhpStorm-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.151", - "version-major-minor": "2022.3" - }, - "pycharm-community": { - "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.tar.gz", - "version": "2025.2.5", - "sha256": "67b61a3e788b043d93b3cc3e0dd3cea350e6d170402fd94adaf792cfc57e5462", - "url": "https://download.jetbrains.com/python/pycharm-community-2025.2.5-aarch64.tar.gz", - "build_number": "252.28238.29" - }, - "pycharm": { - "url-template": "https://download.jetbrains.com/python/pycharm-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "2b6f5a430132773ea7caf3046f7763ea7a031dbfab6e1be72bdc86f3cc7a758b", - "url": "https://download.jetbrains.com/python/pycharm-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.142" - }, - "rider": { - "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "19080fcdc48fa0f743ed60927b71975a3c478b805296161cfd8a0aa2c04c8f52", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.144" - }, - "ruby-mine": { - "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "bf603c6a1ba1e618afdb70589648447cfce53b4daa7a0cc68073c1b77e727d55", - "url": "https://download.jetbrains.com/ruby/RubyMine-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.140" - }, - "rust-rover": { - "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "fb0f81c9d2a2a604718484954b261a642be9ed6f51de98fcdc6cedb32b0a4c9e", - "url": "https://download.jetbrains.com/rustrover/RustRover-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.139" - }, - "webstorm": { - "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.tar.gz", - "version": "2025.3.1", - "sha256": "fd8bb3ee70c549165d9102437bca03e857fc147281c1d7382249d4690c31dd87", - "url": "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1-aarch64.tar.gz", - "build_number": "253.29346.143" - }, - "writerside": { - "url-template": "https://download.jetbrains.com/writerside/writerside-{version}-aarch64.tar.gz", - "version": "2024.3 EAP", - "sha256": "6067f6f73c4a178e2d0ae42bd18669045d85b5b5ed2c9115c2488ba7aa2a3d88", - "url": "https://download.jetbrains.com/writerside/writerside-243.22562.371-aarch64.tar.gz", - "build_number": "243.22562.371" - } - }, - "x86_64-darwin": { - "aqua": { - "url-template": "https://download.jetbrains.com/aqua/aqua-{version}.dmg", - "version": "2024.3.2", - "sha256": "423d492e9849beb7edbbd1771650a04e8df9f469bf1789b41bc5878c84cee393", - "url": "https://download.jetbrains.com/aqua/aqua-2024.3.2.dmg", - "build_number": "243.23654.154" - }, - "clion": { - "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.dmg", - "version": "2025.3.1", - "sha256": "9a8174c9229f9c86f86da1a8e2bdab52ffb369ea0781b57eb245703ebc8307e2", - "url": "https://download.jetbrains.com/cpp/CLion-2025.3.1.dmg", - "build_number": "253.29346.141" - }, - "datagrip": { - "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.dmg", - "version": "2025.3.2", - "sha256": "0383a0a4f2fde583b62ea7d342e5718b0fa306fc8349541c75bec5ae841fb4fc", - "url": "https://download.jetbrains.com/datagrip/datagrip-2025.3.2.dmg", - "build_number": "253.29346.170" - }, - "dataspell": { - "url-template": "https://download.jetbrains.com/python/dataspell-{version}.dmg", - "version": "2025.3.1", - "sha256": "388d956dd6243697a162c062c76b2fee4098f4f3405badb07a69ce6df7de6017", - "url": "https://download.jetbrains.com/python/dataspell-2025.3.1.dmg", - "build_number": "253.29346.157" - }, - "gateway": { - "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.dmg", - "version": "2025.3", - "sha256": "282fd7f302d95adeed022f8d6c679d3292778f96205394af52dd090f6201f338", - "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3.dmg", - "build_number": "253.28294.342" - }, - "goland": { - "url-template": "https://download.jetbrains.com/go/goland-{version}.dmg", - "version": "2025.3", - "sha256": "e1df4f10b158c7788736559666244e994500a40db5b08661e2691357d269dbf4", - "url": "https://download.jetbrains.com/go/goland-2025.3.dmg", - "build_number": "253.28294.337" - }, - "idea-community": { - "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.dmg", - "version": "2025.2.5", - "sha256": "ff48a1e60869342a91db867fa482a49d4cdf38476496911c109f34a7e8d6523d", - "url": "https://download.jetbrains.com/idea/ideaIC-2025.2.5.dmg", - "build_number": "252.28238.7" - }, - "idea": { - "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.dmg", - "version": "2025.3.1", - "sha256": "adf5af3839e07ba6387bf0eca94df2f44c829023a1898170eacbc5cbafce0393", - "url": "https://download.jetbrains.com/idea/ideaIU-2025.3.1.dmg", - "build_number": "253.29346.138" - }, - "mps": { - "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos.dmg", - "version": "2025.3", - "sha256": "c216008ca905efd9ab9271df9599ef38ecb66cba2c61482e7a56434ae3eddee6", - "url": "https://download.jetbrains.com/mps/2025.3/MPS-2025.3-macos.dmg", - "build_number": "253.28294.432" - }, - "phpstorm": { - "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg", - "version": "2025.3.1", - "sha256": "11988bcee5d94b271ea67aeacd3e836029595a6cfebfec2659565fc18a4ad2d1", - "url": "https://download.jetbrains.com/webide/PhpStorm-2025.3.1.dmg", - "build_number": "253.29346.151", - "version-major-minor": "2022.3" - }, - "pycharm-community": { - "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.dmg", - "version": "2025.2.5", - "sha256": "08ba97a278031ff1942ddefb18d8acf7582f0bb4a28ccdf5d65721bfb80ca456", - "url": "https://download.jetbrains.com/python/pycharm-community-2025.2.5.dmg", - "build_number": "252.28238.29" - }, - "pycharm": { - "url-template": "https://download.jetbrains.com/python/pycharm-{version}.dmg", - "version": "2025.3.1", - "sha256": "586c9eed67da609fc1e565a8bfc36eb155b23e5483d5dc6e9dcf8b5540f47fa5", - "url": "https://download.jetbrains.com/python/pycharm-2025.3.1.dmg", - "build_number": "253.29346.142" - }, - "rider": { - "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.dmg", - "version": "2025.3.1", - "sha256": "addd816dbdf130e2ef5e7dc184d7a8087f8bfbf6eba4e32ead2452069a49607d", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1.dmg", - "build_number": "253.29346.144" - }, - "ruby-mine": { - "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.dmg", - "version": "2025.3.1", - "sha256": "4fce84983a6ace16d8479150b765280250a260b3d24fb37258d114000c6c1115", - "url": "https://download.jetbrains.com/ruby/RubyMine-2025.3.1.dmg", - "build_number": "253.29346.140" - }, - "rust-rover": { - "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.dmg", - "version": "2025.3.1", - "sha256": "3899875452a5182db93b132c00dbc84394ffb637430b97f2390be8abb0412537", - "url": "https://download.jetbrains.com/rustrover/RustRover-2025.3.1.dmg", - "build_number": "253.29346.139" - }, - "webstorm": { - "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.dmg", - "version": "2025.3.1", - "sha256": "a6cb906562f95b37e9c1e34c9bd9561dea653a726c95d02bfa957acbe909b88d", - "url": "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1.dmg", - "build_number": "253.29346.143" - }, - "writerside": { - "url-template": "https://download.jetbrains.com/writerside/writerside-{version}.dmg", - "version": "2024.3 EAP", - "sha256": "0c78b8035497c855aea5666256716778abd46dadf68f51e4f91c0db01f62b280", - "url": "https://download.jetbrains.com/writerside/writerside-243.22562.371.dmg", - "build_number": "243.22562.371" - } - }, - "aarch64-darwin": { - "aqua": { - "url-template": "https://download.jetbrains.com/aqua/aqua-{version}-aarch64.dmg", - "version": "2024.3.2", - "sha256": "43974cdbbb71aaf5bfcfaf2cfd0e69e9920dda3973e64671936c1d52b267494d", - "url": "https://download.jetbrains.com/aqua/aqua-2024.3.2-aarch64.dmg", - "build_number": "243.23654.154" - }, - "clion": { - "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "11cae8aeb43d1870d96980f1d927ff545fabed989f3bf4e7327911b441e149f1", - "url": "https://download.jetbrains.com/cpp/CLion-2025.3.1-aarch64.dmg", - "build_number": "253.29346.141" - }, - "datagrip": { - "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.dmg", - "version": "2025.3.2", - "sha256": "a7224548dc9da3863727b0c11cef9d613fd951d16baa016ca1407c56a9ec6964", - "url": "https://download.jetbrains.com/datagrip/datagrip-2025.3.2-aarch64.dmg", - "build_number": "253.29346.170" - }, - "dataspell": { - "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "fe0d8ef15e6e36af0ea4361bd474f204ee5c307ef90af8ec833976a1dae5a5a3", - "url": "https://download.jetbrains.com/python/dataspell-2025.3.1-aarch64.dmg", - "build_number": "253.29346.157" - }, - "gateway": { - "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.dmg", - "version": "2025.3", - "sha256": "b10cabda93c88d27bcc135a44a1fd98fe60fe8305606d6e75a0d5b736f0df274", - "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3-aarch64.dmg", - "build_number": "253.28294.342" - }, - "goland": { - "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.dmg", - "version": "2025.3", - "sha256": "d4ee20b5c3df6151d366d6cc9b06b915499ff0c1eb1184aab53a01078908ec89", - "url": "https://download.jetbrains.com/go/goland-2025.3-aarch64.dmg", - "build_number": "253.28294.337" - }, - "idea-community": { - "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.dmg", - "version": "2025.2.5", - "sha256": "52065492d433f0ea9df4debd5f0683154ab4dab5846394cabc8a49903d70e5bc", - "url": "https://download.jetbrains.com/idea/ideaIC-2025.2.5-aarch64.dmg", - "build_number": "252.28238.7" - }, - "idea": { - "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "2137863cc3a5f4acd25ba38a82e004e935d3a94fa566f8e3851d6b8a8ac12777", - "url": "https://download.jetbrains.com/idea/ideaIU-2025.3.1-aarch64.dmg", - "build_number": "253.29346.138" - }, - "mps": { - "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos-aarch64.dmg", - "version": "2025.3", - "url": "https://download.jetbrains.com/mps/2025.3/MPS-2025.3-macos-aarch64.dmg", - "sha256": "dc79c41ce851448f4862306173914eee1e63e230410ed65356498efd2d5f0444", - "build_number": "253.28294.432" - }, - "phpstorm": { - "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "0453e0a6ee86c3cbf97b8c48f2826751d8085bf8211b541a04752621c5af16bc", - "url": "https://download.jetbrains.com/webide/PhpStorm-2025.3.1-aarch64.dmg", - "build_number": "253.29346.151", - "version-major-minor": "2022.3" - }, - "pycharm-community": { - "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.dmg", - "version": "2025.2.5", - "sha256": "040a4ed6bb7563972d844c450f615d0d11385e524fbbfdbfc9fc68d78811e994", - "url": "https://download.jetbrains.com/python/pycharm-community-2025.2.5-aarch64.dmg", - "build_number": "252.28238.29" - }, - "pycharm": { - "url-template": "https://download.jetbrains.com/python/pycharm-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "ec8e97856f00da902020c72b0f079cc10983de6bb4438292ea5faa1e5b0cb935", - "url": "https://download.jetbrains.com/python/pycharm-2025.3.1-aarch64.dmg", - "build_number": "253.29346.142" - }, - "rider": { - "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "d7080323412900f5d37270233e5a4c773011c6853d6031ce1f5e635c77511426", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1-aarch64.dmg", - "build_number": "253.29346.144" - }, - "ruby-mine": { - "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "67f1aa674b90ec54ba21f3523ad940218f979befd7429e38ad822bc8146d16a4", - "url": "https://download.jetbrains.com/ruby/RubyMine-2025.3.1-aarch64.dmg", - "build_number": "253.29346.140" - }, - "rust-rover": { - "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "103a12ed1c37b6b38cff5d637e7dc7b8dcc78f5c576ba38b8f862c6ba3647d52", - "url": "https://download.jetbrains.com/rustrover/RustRover-2025.3.1-aarch64.dmg", - "build_number": "253.29346.139" - }, - "webstorm": { - "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.dmg", - "version": "2025.3.1", - "sha256": "1c21990cee2bbbffdd8f6c90e8071bc03ec7fe5a3662e51931c15222d4b7ccb2", - "url": "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1-aarch64.dmg", - "build_number": "253.29346.143" - }, - "writerside": { - "url-template": "https://download.jetbrains.com/writerside/writerside-{version}-aarch64.dmg", - "version": "2024.3 EAP", - "sha256": "9d86ef50b4c6d2a07d236219e9b05c0557241fb017d52ac395719bdb425130f5", - "url": "https://download.jetbrains.com/writerside/writerside-243.22562.371-aarch64.dmg", - "build_number": "243.22562.371" - } - } -} diff --git a/pkgs/applications/editors/jetbrains/bin/darwin.nix b/pkgs/applications/editors/jetbrains/builder/darwin.nix similarity index 75% rename from pkgs/applications/editors/jetbrains/bin/darwin.nix rename to pkgs/applications/editors/jetbrains/builder/darwin.nix index a698d9ab205a..d9250c686cbd 100644 --- a/pkgs/applications/editors/jetbrains/bin/darwin.nix +++ b/pkgs/applications/editors/jetbrains/builder/darwin.nix @@ -1,3 +1,8 @@ +# Darwin-specific base builder. +# TODO: +# This actually just ignores a lot of options passed to it... (e.g. buildInputs) +# - not entirely sure how this hasn't caused big problems yet. + { lib, stdenvNoCC, @@ -9,13 +14,14 @@ meta, pname, product, - productShort ? product, + productShort, src, version, + passthru, + plugins ? [ ], - buildNumber, ... -}@args: +}: let loname = lib.toLower productShort; @@ -26,10 +32,8 @@ stdenvNoCC.mkDerivation { src version plugins + passthru ; - passthru.buildNumber = buildNumber; - passthru.product = product; - passthru.tests = args.passthru.tests; meta = meta // { mainProgram = loname; }; diff --git a/pkgs/applications/editors/jetbrains/builder/default.nix b/pkgs/applications/editors/jetbrains/builder/default.nix new file mode 100644 index 000000000000..3699859599ff --- /dev/null +++ b/pkgs/applications/editors/jetbrains/builder/default.nix @@ -0,0 +1,85 @@ +# Builder for JetBrains IDEs (`mkJetBrainsProduct`) + +{ + lib, + stdenv, + callPackage, + + jdk, + fontconfig, + libGL, + libX11, + + vmopts ? null, + forceWayland ? false, +}: +let + baseBuilder = if stdenv.hostPlatform.isDarwin then ./darwin.nix else ./linux.nix; + mkJetBrainsProductCore = callPackage baseBuilder { inherit vmopts; }; +in +# Makes a JetBrains IDE +{ + pname, + src, + version, + buildNumber, + wmClass, + product, + productShort ? product, + meta, + + libdbm, + fsnotifier, + + extraWrapperArgs ? [ ], + extraLdPath ? [ ], + buildInputs ? [ ], + passthru ? { }, +}: +mkJetBrainsProductCore { + inherit + pname + extraLdPath + jdk + src + version + buildNumber + wmClass + product + productShort + libdbm + fsnotifier + ; + + buildInputs = + buildInputs + ++ [ stdenv.cc.cc ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + fontconfig + libGL + libX11 + ]; + + extraWrapperArgs = + extraWrapperArgs + ++ lib.optionals (stdenv.hostPlatform.isLinux && forceWayland) [ + ''--add-flags "\''${WAYLAND_DISPLAY:+-Dawt.toolkit.name=WLToolkit}"'' + ]; + + passthru = lib.recursiveUpdate passthru { + inherit + buildNumber + product + libdbm + fsnotifier + ; + + tests = { + plugins = callPackage ../plugins/tests.nix { ideName = pname; }; + }; + }; + + meta = meta // { + teams = [ lib.teams.jetbrains ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/bin/linux.nix b/pkgs/applications/editors/jetbrains/builder/linux.nix similarity index 95% rename from pkgs/applications/editors/jetbrains/bin/linux.nix rename to pkgs/applications/editors/jetbrains/builder/linux.nix index 14532161233b..522a621993e7 100644 --- a/pkgs/applications/editors/jetbrains/bin/linux.nix +++ b/pkgs/applications/editors/jetbrains/builder/linux.nix @@ -1,3 +1,5 @@ +# Linux-specific base builder. + { stdenv, lib, @@ -23,18 +25,20 @@ { pname, product, - productShort ? product, + productShort, version, src, wmClass, - buildNumber, jdk, meta, + passthru, + libdbm, fsnotifier, + extraLdPath ? [ ], extraWrapperArgs ? [ ], - extraBuildInputs ? [ ], + buildInputs ? [ ], ... }@args: @@ -47,9 +51,13 @@ in with stdenv; lib.makeOverridable mkDerivation ( rec { - inherit pname version src; - passthru.buildNumber = buildNumber; - passthru.tests = args.passthru.tests; + inherit + pname + version + src + buildInputs + passthru + ; meta = args.meta // { mainProgram = pname; }; @@ -74,7 +82,6 @@ lib.makeOverridable mkDerivation ( unzip autoPatchelfHook ]; - buildInputs = extraBuildInputs; postPatch = '' rm -rf jbr diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 2994e787f57c..f574d87cbd6d 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -1,165 +1,60 @@ -let - # `ides.json` is handwritten and contains information that doesn't change across updates, like maintainers and other metadata - # `versions.json` contains everything generated/needed by the update script version numbers, build numbers and tarball hashes - ideInfo = builtins.fromJSON (builtins.readFile ./ides.json); - versions = builtins.fromJSON (builtins.readFile ./bin/versions.json); -in - { - config, lib, + config, stdenv, callPackage, - fetchurl, + + python3, jdk, - zlib, - python3, - lldb, - dotnetCorePackages, - maven, - openssl, - expat, - libxcrypt, - libxcrypt-legacy, - fontconfig, - libxml2, - runCommand, - musl, - R, - libgcc, - lttng-ust_2_12, - xz, - xorg, - libGL, - - libICE, - libSM, - libX11, - vmopts ? null, forceWayland ? false, }: let - inherit (stdenv.hostPlatform) system; + mkJetBrainsProduct = callPackage ./builder/default.nix { inherit jdk forceWayland vmopts; }; + mkJetBrainsSource = callPackage ./source/build.nix { }; - products = versions.${system} or (throw "Unsupported system: ${system}"); + mkSrcIde = + path: extras: callPackage path ({ inherit mkJetBrainsProduct mkJetBrainsSource; } // extras); - dotnet-sdk = dotnetCorePackages.sdk_10_0-source; + _idea-oss = mkSrcIde ./ides/idea-oss.nix { }; - package = if stdenv.hostPlatform.isDarwin then ./bin/darwin.nix else ./bin/linux.nix; - mkJetBrainsProductCore = callPackage package { inherit vmopts; }; - mkMeta = meta: fromSource: { - inherit (meta) homepage longDescription; - description = - meta.description - + lib.optionalString meta.isOpenSource ( - if fromSource then " (built from source)" else " (patched binaries from jetbrains)" - ); - maintainers = map (x: lib.maintainers."${x}") meta.maintainers; - teams = [ lib.teams.jetbrains ]; - license = if meta.isOpenSource then lib.licenses.asl20 else lib.licenses.unfree; - sourceProvenance = - if fromSource then - [ lib.sourceTypes.fromSource ] - else - ( - if stdenv.hostPlatform.isDarwin then - [ lib.sourceTypes.binaryNativeCode ] - else - [ lib.sourceTypes.binaryBytecode ] - ); - }; + # The binary builds use the same libdbm and fsnotifier as the current idea-oss source build. + mkBinIde = + path: extras: + callPackage path ( + { + inherit mkJetBrainsProduct; + libdbm = _idea-oss.libdbm; + fsnotifier = _idea-oss.fsnotifier; + } + // extras + ); - mkJetBrainsProduct = - { - pname, - fromSource ? false, - extraWrapperArgs ? [ ], - extraLdPath ? [ ], - extraBuildInputs ? [ ], - extraTests ? { }, - }: - mkJetBrainsProductCore { - inherit - pname - extraLdPath - jdk - ; - extraBuildInputs = - extraBuildInputs - ++ [ stdenv.cc.cc ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ - fontconfig - libGL - libX11 + # Common build overrides, fixes, etc. + # TODO: These should eventually be moved outside of this file + pyCharmCommonOverrides = ( + finalAttrs: previousAttrs: + lib.optionalAttrs stdenv.hostPlatform.isLinux { + buildInputs = + with python3.pkgs; + (previousAttrs.buildInputs or [ ]) + ++ [ + python3 + setuptools ]; - extraWrapperArgs = - extraWrapperArgs - ++ lib.optionals (stdenv.hostPlatform.isLinux && forceWayland) [ - ''--add-flags "\''${WAYLAND_DISPLAY:+-Dawt.toolkit.name=WLToolkit}"'' - ]; - src = - if fromSource then - communitySources."${pname}" + preInstall = '' + echo "compiling cython debug speedups" + if [[ -d plugins/python-ce ]]; then + ${python3.interpreter} plugins/python-ce/helpers/pydev/setup_cython.py build_ext --inplace else - fetchurl { - url = products."${pname}".url; - sha256 = products."${pname}".sha256; - }; - version = if fromSource then communitySources."${pname}".version else products."${pname}".version; - buildNumber = - if fromSource then communitySources."${pname}".buildNumber else products."${pname}".build_number; - inherit (ideInfo."${pname}") wmClass product; - productShort = ideInfo."${pname}".productShort or ideInfo."${pname}".product; - meta = mkMeta ideInfo."${pname}".meta fromSource; - passthru.tests = extraTests // { - plugins = callPackage ./plugins/tests.nix { ideName = pname; }; - }; - libdbm = communitySources."${pname}".libdbm or communitySources.idea-oss.libdbm; - fsnotifier = communitySources."${pname}".fsnotifier or communitySources.idea-oss.fsnotifier; - }; - - communitySources = callPackage ./source { }; - - buildIdea = - args: - mkJetBrainsProduct ( - args - // { - extraLdPath = [ zlib ]; - extraWrapperArgs = [ - ''--set M2_HOME "${maven}/maven"'' - ''--set M2 "${maven}/maven/bin"'' - ]; - } - ); - - buildPycharm = - args: - (mkJetBrainsProduct args).overrideAttrs ( - finalAttrs: previousAttrs: - lib.optionalAttrs stdenv.hostPlatform.isLinux { - buildInputs = - with python3.pkgs; - (previousAttrs.buildInputs or [ ]) - ++ [ - python3 - setuptools - ]; - preInstall = '' - echo "compiling cython debug speedups" - if [[ -d plugins/python-ce ]]; then - ${python3.interpreter} plugins/python-ce/helpers/pydev/setup_cython.py build_ext --inplace - else - ${python3.interpreter} plugins/python/helpers/pydev/setup_cython.py build_ext --inplace - fi - ''; - # See https://www.jetbrains.com/help/pycharm/2022.1/cython-speedups.html - } - ); - + ${python3.interpreter} plugins/python/helpers/pydev/setup_cython.py build_ext --inplace + fi + ''; + # See https://www.jetbrains.com/help/pycharm/2022.1/cython-speedups.html + } + ); patchSharedLibs = lib.optionalString stdenv.hostPlatform.isLinux '' ls -d \ $out/*/bin/*/linux/*/lib/liblldb.so \ @@ -174,203 +69,27 @@ let --replace-needed libcrypt.so.1 libcrypt.so \ ${lib.optionalString stdenv.hostPlatform.isAarch "--replace-needed libxml2.so.2 libxml2.so"} ''; - - # TODO: These can be moved down again when we don't need the aliases anymore: - _idea = buildIdea { - pname = "idea"; - extraBuildInputs = [ - lldb - musl - ]; - }; - _idea-oss = buildIdea { - pname = "idea-oss"; - fromSource = true; - }; - _pycharm = buildPycharm { - pname = "pycharm"; - extraBuildInputs = [ musl ]; - }; - _pycharm-oss = buildPycharm { - pname = "pycharm-oss"; - fromSource = true; - }; in { # Sorted alphabetically. Deprecated products and aliases are at the very end. - - clion = - (mkJetBrainsProduct { - pname = "clion"; - extraBuildInputs = - lib.optionals stdenv.hostPlatform.isLinux [ - python3 - openssl - libxcrypt-legacy - lttng-ust_2_12 - musl - ] - ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ - expat - libxml2 - xz - ]; - }).overrideAttrs - (attrs: { - postInstall = - (attrs.postInstall or "") - + lib.optionalString stdenv.hostPlatform.isLinux '' - for dir in $out/clion/plugins/clion-radler/DotFiles/linux-*; do - rm -rf $dir/dotnet - ln -s ${dotnet-sdk}/share/dotnet $dir/dotnet - done - ''; - - postFixup = '' - ${attrs.postFixup or ""} - ${patchSharedLibs} - ''; - }); - - datagrip = mkJetBrainsProduct { - pname = "datagrip"; - }; - - dataspell = - let - libr = runCommand "libR" { } '' - mkdir -p $out/lib - ln -s ${R}/lib/R/lib/libR.so $out/lib/libR.so - ''; - in - mkJetBrainsProduct { - pname = "dataspell"; - extraBuildInputs = [ - libgcc - libr - ]; - }; - - gateway = mkJetBrainsProduct { - pname = "gateway"; - extraBuildInputs = [ libgcc ]; - }; - - goland = - (mkJetBrainsProduct { - pname = "goland"; - extraWrapperArgs = [ - # fortify source breaks build since delve compiles with -O0 - ''--prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"'' - ]; - extraBuildInputs = [ - libgcc - ]; - }).overrideAttrs - (attrs: { - postFixup = - (attrs.postFixup or "") - + lib.optionalString stdenv.hostPlatform.isLinux '' - interp="$(cat $NIX_CC/nix-support/dynamic-linker)" - patchelf --set-interpreter $interp $out/goland/plugins/go-plugin/lib/dlv/linux/dlv - chmod +x $out/goland/plugins/go-plugin/lib/dlv/linux/dlv - ''; - }); - - idea = _idea; - + clion = mkBinIde ./ides/clion.nix { inherit patchSharedLibs; }; + datagrip = mkBinIde ./ides/datagrip.nix { }; + dataspell = mkBinIde ./ides/dataspell.nix { }; + gateway = mkBinIde ./ides/gateway.nix { }; + goland = mkBinIde ./ides/goland.nix { }; + idea = mkBinIde ./ides/idea.nix { }; idea-oss = _idea-oss; - - mps = mkJetBrainsProduct { pname = "mps"; }; - - phpstorm = mkJetBrainsProduct { - pname = "phpstorm"; - extraBuildInputs = [ - musl - ]; - }; - - pycharm = _pycharm; - - pycharm-oss = _pycharm-oss; - - rider = - (mkJetBrainsProduct { - pname = "rider"; - extraBuildInputs = [ - openssl - libxcrypt - lttng-ust_2_12 - musl - ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ - xorg.xcbutilkeysyms - ] - ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ - expat - libxml2 - xz - ]; - extraLdPath = lib.optionals (stdenv.hostPlatform.isLinux) [ - # Avalonia dependencies needed for dotMemory - libICE - libSM - libX11 - ]; - }).overrideAttrs - (attrs: { - postInstall = - (attrs.postInstall or "") - + lib.optionalString stdenv.hostPlatform.isLinux '' - ${patchSharedLibs} - - for dir in $out/rider/lib/ReSharperHost/linux-*; do - rm -rf $dir/dotnet - ln -s ${dotnet-sdk}/share/dotnet $dir/dotnet - done - ''; - }); - - ruby-mine = mkJetBrainsProduct { - pname = "ruby-mine"; - extraBuildInputs = [ - musl - ]; - }; - - rust-rover = - (mkJetBrainsProduct { - pname = "rust-rover"; - extraBuildInputs = - lib.optionals stdenv.hostPlatform.isLinux [ - python3 - openssl - libxcrypt-legacy - ] - ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ - expat - libxml2 - xz - ]; - }).overrideAttrs - (attrs: { - postFixup = '' - ${attrs.postFixup or ""} - ${patchSharedLibs} - ''; - }); - - webstorm = mkJetBrainsProduct { - pname = "webstorm"; - extraBuildInputs = [ - musl - ]; - }; + mps = mkBinIde ./ides/mps.nix { }; + phpstorm = mkBinIde ./ides/phpstorm.nix { }; + pycharm = mkBinIde ./ides/pycharm.nix { inherit pyCharmCommonOverrides; }; + pycharm-oss = mkSrcIde ./ides/pycharm-oss.nix { inherit pyCharmCommonOverrides; }; + rider = mkBinIde ./ides/rider.nix { inherit patchSharedLibs; }; + ruby-mine = mkBinIde ./ides/ruby-mine.nix { }; + rust-rover = mkBinIde ./ides/rust-rover.nix { inherit patchSharedLibs; }; + webstorm = mkBinIde ./ides/webstorm.nix { }; # Plugins - plugins = callPackage ./plugins { }; - } // lib.optionalAttrs config.allowAliases rec { @@ -380,12 +99,7 @@ in aqua = lib.warnOnInstantiate "jetbrains.aqua: Aqua has been discontinued by Jetbrains and is not receiving updates. It will be removed in NixOS 26.05." - (mkJetBrainsProduct { - pname = "aqua"; - extraBuildInputs = [ - lldb - ]; - }); + (mkBinIde ./ides/aqua.nix { }); idea-community = lib.warnOnInstantiate @@ -400,37 +114,41 @@ in idea-community-bin = lib.warnOnInstantiate "jetbrains.idea-community-bin: IntelliJ IDEA Community has been discontinued by Jetbrains. This binary build is no longer updated. Switch to 'jetbrains.idea-oss' for open source builds (from source) or 'jetbrains.idea' for commercial builds (binary, unfree). See: https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/" - (buildIdea { - pname = "idea-community"; - }); + (mkBinIde ./ides/idea-community.nix { }); - idea-ultimate = lib.warnOnInstantiate "'jetbrains.idea-ultimate' has been renamed to/replaced by 'jetbrains.idea'" _idea; + idea-ultimate = + lib.warnOnInstantiate "'jetbrains.idea-ultimate' has been renamed to/replaced by 'jetbrains.idea'" + (mkBinIde ./ides/idea.nix { }); idea-community-src = lib.warnOnInstantiate "jetbrains.idea-community-src: IntelliJ IDEA Community has been discontinued by Jetbrains. This is now an alias for 'jetbrains.idea-oss', the Open Source build of IntelliJ. See: https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/" _idea-oss; pycharm-community = lib.warnOnInstantiate "pycharm-comminity: PyCharm Community has been discontinued by Jetbrains. This deprecated alias uses the, no longer updated, binary build on Darwin. On Linux it uses PyCharm Open Source, built from source. Either switch to 'jetbrains.pycharm-oss' or 'jetbrains.pycharm'. See: https://blog.jetbrains.com/pycharm/2025/04/pycharm-2025" - (if stdenv.hostPlatform.isDarwin then pycharm-community-bin else _pycharm-oss); + ( + if stdenv.hostPlatform.isDarwin then + pycharm-community-bin + else + (mkSrcIde ./ides/pycharm-oss.nix { inherit pyCharmCommonOverrides; }) + ); pycharm-community-bin = lib.warnOnInstantiate "pycharm-comminity-bin: PyCharm Community has been discontinued by Jetbrains. This binary build is no longer updated. Switch to 'jetbrains.pycharm-oss' for open source builds (from source) or 'jetbrains.pycharm' for commercial builds (binary, unfree). See: https://blog.jetbrains.com/pycharm/2025/04/pycharm-2025" - (buildPycharm { - pname = "pycharm-community"; - }); + (mkBinIde ./ides/pycharm-community.nix { inherit pyCharmCommonOverrides; }); - pycharm-community-src = lib.warnOnInstantiate "jetbrains.idea-community-src: PyCharm Community has been discontinued by Jetbrains. This is now an alias for 'jetbrains.pycharm-oss', the Open Source build of PyCharm. See: https://blog.jetbrains.com/pycharm/2025/04/pycharm-2025" _pycharm-oss; + pycharm-community-src = + lib.warnOnInstantiate + "jetbrains.idea-community-src: PyCharm Community has been discontinued by Jetbrains. This is now an alias for 'jetbrains.pycharm-oss', the Open Source build of PyCharm. See: https://blog.jetbrains.com/pycharm/2025/04/pycharm-2025" + (mkSrcIde ./ides/pycharm-oss.nix { inherit pyCharmCommonOverrides; }); - pycharm-professional = lib.warnOnInstantiate "'jetbrains.pycharm-professional' has been renamed to/replaced by 'jetbrains.pycharm'" _pycharm; + pycharm-professional = + lib.warnOnInstantiate + "'jetbrains.pycharm-professional' has been renamed to/replaced by 'jetbrains.pycharm'" + (mkBinIde ./ides/pycharm.nix { inherit pyCharmCommonOverrides; }); writerside = lib.warnOnInstantiate "jetbrains.writerside: Writerside has been discontinued by Jetbrains and is not receiving updates. It will be removed in NixOS 26.05." - (mkJetBrainsProduct { - pname = "writerside"; - extraBuildInputs = [ - musl - ]; - }); + (mkBinIde ./ides/writerside.nix { }); } diff --git a/pkgs/applications/editors/jetbrains/ides.json b/pkgs/applications/editors/jetbrains/ides.json deleted file mode 100644 index ffe3240f5c09..000000000000 --- a/pkgs/applications/editors/jetbrains/ides.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "aqua": { - "product": "Aqua", - "updateChannel": "Aqua RELEASE", - "wmClass": "jetbrains-aqua", - "meta": { - "isOpenSource": false, - "description": "Test automation IDE from JetBrains", - "maintainers": [ "remcoschrijver" ], - "longDescription": "Aqua is a test automation IDE from jetbrains that can deal with many languages and frameworks to improve your test workflows. Has support for popular testing frameworks like Selenium, Cypress, and Playwright.", - "homepage": "https://www.jetbrains.com/aqua/" - } - }, - "clion": { - "product": "CLion", - "updateChannel": "CLion RELEASE", - "wmClass": "jetbrains-clion", - "meta": { - "isOpenSource": false, - "description": "C/C++ IDE from JetBrains", - "maintainers": [ "mic92", "tymscar" ], - "longDescription": "Enhancing productivity for every C and C++ developer on Linux, macOS and Windows.", - "homepage": "https://www.jetbrains.com/clion/" - } - }, - "datagrip": { - "product": "DataGrip", - "updateChannel": "DataGrip RELEASE", - "wmClass": "jetbrains-datagrip", - "meta": { - "isOpenSource": false, - "description": "Database IDE from JetBrains", - "maintainers": [ ], - "longDescription": "DataGrip is a new IDE from JetBrains built for database admins. It allows you to quickly migrate and refactor relational databases, construct efficient, statically checked SQL queries and much more.", - "homepage": "https://www.jetbrains.com/datagrip/" - } - }, - "dataspell": { - "product": "DataSpell", - "updateChannel": "DataSpell RELEASE", - "wmClass": "jetbrains-dataspell", - "meta": { - "isOpenSource": false, - "description": "Data science IDE from JetBrains", - "maintainers": [ "leona" ], - "longDescription": "DataSpell is a new IDE from JetBrains built for Data Scientists. Mainly it integrates Jupyter notebooks in the IntelliJ platform.", - "homepage": "https://www.jetbrains.com/dataspell/" - } - }, - "gateway": { - "product": "JetBrains Gateway", - "updateChannel": "Gateway RELEASE", - "productShort": "Gateway", - "wmClass": "jetbrains-gateway", - "meta": { - "isOpenSource": false, - "description": "Remote development for JetBrains products", - "maintainers": [ ], - "longDescription": "JetBrains Gateway is a lightweight launcher that connects a remote server with your local machine, downloads necessary components on the backend, and opens your project in JetBrains Client.", - "homepage": "https://www.jetbrains.com/remote-development/gateway/" - } - }, - "goland": { - "product": "Goland", - "updateChannel": "GoLand RELEASE", - "wmClass": "jetbrains-goland", - "meta": { - "isOpenSource": false, - "description": "Go IDE from JetBrains", - "maintainers": [ "tymscar" ], - "longDescription": "Goland is the codename for a new commercial IDE by JetBrains aimed at providing an ergonomic environment for Go development.\n The new IDE extends the IntelliJ platform with the coding assistance and tool integrations specific for the Go language", - "homepage": "https://www.jetbrains.com/go/" - } - }, - "idea": { - "product": "IntelliJ IDEA", - "updateChannel": "IntelliJ IDEA RELEASE", - "productShort": "IDEA", - "wmClass": "jetbrains-idea", - "meta": { - "isOpenSource": false, - "description": "Java, Kotlin, Groovy and Scala IDE from Jetbrains", - "maintainers": [ "gytis-ivaskevicius", "tymscar" ], - "longDescription": "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ.", - "homepage": "https://www.jetbrains.com/idea/" - } - }, - "idea-community": { - "product": "IntelliJ IDEA CE", - "updateChannel": "IntelliJ IDEA RELEASE", - "productShort": "IDEA", - "wmClass": "jetbrains-idea-ce", - "meta": { - "isOpenSource": true, - "description": "Free Java, Kotlin, Groovy and Scala IDE from Jetbrains", - "maintainers": [ "gytis-ivaskevicius", "tymscar" ], - "longDescription": "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ.", - "homepage": "https://www.jetbrains.com/idea/" - } - }, - "idea-oss": { - "product": "IntelliJ IDEA Open Source", - "updateChannel": "IntelliJ IDEA RELEASE", - "productShort": "IDEA", - "wmClass": "jetbrains-idea-ce", - "meta": { - "isOpenSource": true, - "description": "Free Java, Kotlin, Groovy and Scala IDE from Jetbrains", - "maintainers": [ "gytis-ivaskevicius", "tymscar" ], - "longDescription": "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ.", - "homepage": "https://www.jetbrains.com/idea/" - } - }, - "mps": { - "product": "MPS", - "updateChannel": "MPS RELEASE", - "wmClass": "jetbrains-MPS", - "meta": { - "isOpenSource": false, - "description": "IDE for building domain-specific languages from JetBrains", - "maintainers": [ ], - "longDescription": "A metaprogramming system which uses projectional editing which allows users to overcome the limits of language parsers, and build DSL editors, such as ones with tables and diagrams.", - "homepage": "https://www.jetbrains.com/mps/" - } - }, - "phpstorm": { - "product": "PhpStorm", - "updateChannel": "PhpStorm RELEASE", - "wmClass": "jetbrains-phpstorm", - "meta": { - "isOpenSource": false, - "description": "PHP IDE from JetBrains", - "maintainers": [ "dritter", "tymscar" ], - "longDescription": "PhpStorm provides an editor for PHP, HTML and JavaScript with on-the-fly code analysis, error prevention and automated refactorings for PHP and JavaScript code. ", - "homepage": "https://www.jetbrains.com/phpstorm/" - } - }, - "pycharm": { - "product": "PyCharm", - "productShort": "PyCharm", - "updateChannel": "PyCharm RELEASE", - "wmClass": "jetbrains-pycharm", - "meta": { - "isOpenSource": false, - "description": "Python IDE from JetBrains", - "maintainers": [ "genericnerdyusername", "tymscar" ], - "longDescription": "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!", - "homepage": "https://www.jetbrains.com/pycharm/" - } - }, - "pycharm-community": { - "product": "PyCharm CE", - "productShort": "PyCharm", - "updateChannel": "PyCharm RELEASE", - "wmClass": "jetbrains-pycharm-ce", - "meta": { - "isOpenSource": true, - "description": "Free Python IDE from JetBrains", - "maintainers": [ "genericnerdyusername", "tymscar" ], - "longDescription": "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!", - "homepage": "https://www.jetbrains.com/pycharm/" - } - }, - "pycharm-oss": { - "product": "PyCharm Open Source", - "productShort": "PyCharm", - "updateChannel": "PyCharm RELEASE", - "wmClass": "jetbrains-pycharm-ce", - "meta": { - "isOpenSource": true, - "description": "Free Python IDE from JetBrains", - "maintainers": [ "genericnerdyusername", "tymscar" ], - "longDescription": "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!", - "homepage": "https://www.jetbrains.com/pycharm/" - } - }, - "rider": { - "product": "Rider", - "updateChannel": "Rider RELEASE", - "wmClass": "jetbrains-rider", - "meta": { - "isOpenSource": false, - "description": ".NET IDE from JetBrains", - "maintainers": [ "raphaelr" ], - "longDescription": "JetBrains Rider is a new .NET IDE based on the IntelliJ platform and ReSharper. Rider supports .NET Core, .NET Framework and Mono based projects. This lets you develop a wide array of applications including .NET desktop apps, services and libraries, Unity games, ASP.NET and ASP.NET Core web applications.", - "homepage": "https://www.jetbrains.com/rider/" - } - }, - "ruby-mine": { - "product": "RubyMine", - "updateChannel": "RubyMine RELEASE", - "wmClass": "jetbrains-rubymine", - "meta": { - "isOpenSource": false, - "description": "Ruby IDE from JetBrains", - "maintainers": [ "tymscar"], - "longDescription": "Ruby IDE from JetBrains", - "homepage": "https://www.jetbrains.com/ruby/" - } - }, - "rust-rover": { - "product": "RustRover", - "updateChannel": "RustRover RELEASE", - "wmClass": "jetbrains-rustrover", - "meta": { - "isOpenSource": false, - "description": "Rust IDE from JetBrains", - "maintainers": [ "genericnerdyusername"], - "longDescription": "Rust IDE from JetBrains", - "homepage": "https://www.jetbrains.com/rust/" - } - }, - "webstorm": { - "product": "WebStorm", - "updateChannel": "WebStorm RELEASE", - "wmClass": "jetbrains-webstorm", - "meta": { - "isOpenSource": false, - "description": "Web IDE from JetBrains", - "maintainers": [ "abaldeau", "tymscar"], - "longDescription": "WebStorm provides an editor for HTML, JavaScript (incl. Node.js), and CSS with on-the-fly code analysis, error prevention and automated refactorings for JavaScript code.", - "homepage": "https://www.jetbrains.com/webstorm/" - } - }, - "writerside": { - "product": "Writerside", - "updateChannel": "Writerside EAP", - "wmClass": "jetbrains-writerside", - "meta": { - "isOpenSource": false, - "description": "Documentation IDE from JetBrains", - "maintainers": [ "zlepper"], - "longDescription": "The most powerful development environment – now adapted for writing documentation.", - "homepage": "https://www.jetbrains.com/writerside/" - } - } -} diff --git a/pkgs/applications/editors/jetbrains/ides/aqua.nix b/pkgs/applications/editors/jetbrains/ides/aqua.nix new file mode 100644 index 000000000000..eb5eede14c11 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/aqua.nix @@ -0,0 +1,61 @@ +# TODO: This IDE is deprecated and scheduled for removal in 26.05 +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + lldb, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/aqua/aqua-2024.3.2.tar.gz"; + sha256 = "de073e8a3734a2c4ef984b3e1bd68f5de72a6180e73400889510439ac3f419aa"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/aqua/aqua-2024.3.2-aarch64.tar.gz"; + sha256 = "d2a3c781756a83ccea63dc6d9aebf85f819de1edb5bcd4e5a1a161eaa0779c84"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/aqua/aqua-2024.3.2.dmg"; + sha256 = "423d492e9849beb7edbbd1771650a04e8df9f469bf1789b41bc5878c84cee393"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/aqua/aqua-2024.3.2-aarch64.dmg"; + sha256 = "43974cdbbb71aaf5bfcfaf2cfd0e69e9920dda3973e64671936c1d52b267494d"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "aqua"; + + wmClass = "jetbrains-aqua"; + product = "Aqua"; + + version = "2024.3.2"; + buildNumber = "243.23654.154"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + lldb + ]; + + meta = { + homepage = "https://www.jetbrains.com/aqua/"; + description = "Test automation IDE from JetBrains"; + longDescription = "Aqua is a test automation IDE from jetbrains that can deal with many languages and frameworks to improve your test workflows. Has support for popular testing frameworks like Selenium, Cypress, and Playwright."; + maintainers = with lib.maintainers; [ remcoschrijver ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/clion.nix b/pkgs/applications/editors/jetbrains/ides/clion.nix new file mode 100644 index 000000000000..a4ed87b7a76d --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/clion.nix @@ -0,0 +1,97 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + patchSharedLibs, + dotnetCorePackages, + python3, + openssl, + libxcrypt-legacy, + lttng-ust_2_12, + musl, + expat, + libxml2, + xz, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/cpp/CLion-2025.3.1.tar.gz"; + sha256 = "44ae3da5358ba010a62d55ab412b72f364c5dcd2c2dcd2004ae34b7463807bbd"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/cpp/CLion-2025.3.1-aarch64.tar.gz"; + sha256 = "b96c38c3d2f7ff7b988d75c970fd0e90363e09b8273106defc9ae3defa868ed7"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/cpp/CLion-2025.3.1.dmg"; + sha256 = "9a8174c9229f9c86f86da1a8e2bdab52ffb369ea0781b57eb245703ebc8307e2"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/cpp/CLion-2025.3.1-aarch64.dmg"; + sha256 = "11cae8aeb43d1870d96980f1d927ff545fabed989f3bf4e7327911b441e149f1"; + }; + }; +in +(mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "clion"; + + wmClass = "jetbrains-clion"; + product = "CLion"; + + version = "2025.3.1"; + buildNumber = "253.29346.141"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = + lib.optionals stdenv.hostPlatform.isLinux [ + python3 + openssl + libxcrypt-legacy + lttng-ust_2_12 + musl + ] + ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ + expat + libxml2 + xz + ]; + + meta = { + homepage = "https://www.jetbrains.com/clion/"; + description = "C/C++ IDE from JetBrains"; + longDescription = "Enhancing productivity for every C and C++ developer on Linux, macOS and Windows."; + maintainers = with lib.maintainers; [ + mic92 + tymscar + ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +}).overrideAttrs + (attrs: { + postInstall = + (attrs.postInstall or "") + + lib.optionalString stdenv.hostPlatform.isLinux '' + for dir in $out/clion/plugins/clion-radler/DotFiles/linux-*; do + rm -rf $dir/dotnet + ln -s ${dotnetCorePackages.sdk_10_0-source}/share/dotnet $dir/dotnet + done + ''; + + postFixup = '' + ${attrs.postFixup or ""} + ${patchSharedLibs} + ''; + }) diff --git a/pkgs/applications/editors/jetbrains/ides/datagrip.nix b/pkgs/applications/editors/jetbrains/ides/datagrip.nix new file mode 100644 index 000000000000..b0f7ca0be1f4 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/datagrip.nix @@ -0,0 +1,56 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/datagrip/datagrip-2025.3.2.tar.gz"; + sha256 = "cb6ed6475d21eb8d30754131bd24003c114096bfa84ffccf334dc11cf8ac60cc"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/datagrip/datagrip-2025.3.2-aarch64.tar.gz"; + sha256 = "1a6feb3aa255dace332cc18b868593181b6ea62c3d9f0d36f90032ca0517d068"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/datagrip/datagrip-2025.3.2.dmg"; + sha256 = "0383a0a4f2fde583b62ea7d342e5718b0fa306fc8349541c75bec5ae841fb4fc"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/datagrip/datagrip-2025.3.2-aarch64.dmg"; + sha256 = "a7224548dc9da3863727b0c11cef9d613fd951d16baa016ca1407c56a9ec6964"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "datagrip"; + + wmClass = "jetbrains-datagrip"; + product = "DataGrip"; + + version = "2025.3.2"; + buildNumber = "253.29346.170"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + meta = { + homepage = "https://www.jetbrains.com/datagrip/"; + description = "Database IDE from JetBrains"; + longDescription = "DataGrip is a new IDE from JetBrains built for database admins. It allows you to quickly migrate and refactor relational databases, construct efficient, statically checked SQL queries and much more."; + maintainers = [ ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/dataspell.nix b/pkgs/applications/editors/jetbrains/ides/dataspell.nix new file mode 100644 index 000000000000..4cbbf1d35c11 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/dataspell.nix @@ -0,0 +1,66 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + libgcc, + runCommand, + R, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/python/dataspell-2025.3.1.tar.gz"; + sha256 = "37f13426ce4f5d859d7db246f2328ccbad61adf361d43c784cb6932af6644c28"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/python/dataspell-2025.3.1-aarch64.tar.gz"; + sha256 = "40afd38cc704cdff2be89b9f0d67bdbcb1699d7b37b25d34d44d2d52ef6a46d3"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/python/dataspell-2025.3.1.dmg"; + sha256 = "388d956dd6243697a162c062c76b2fee4098f4f3405badb07a69ce6df7de6017"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/python/dataspell-2025.3.1-aarch64.dmg"; + sha256 = "fe0d8ef15e6e36af0ea4361bd474f204ee5c307ef90af8ec833976a1dae5a5a3"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "dataspell"; + + wmClass = "jetbrains-dataspell"; + product = "DataSpell"; + + version = "2025.3.1"; + buildNumber = "253.29346.157"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + libgcc + (runCommand "libR" { } '' + mkdir -p $out/lib + ln -s ${R}/lib/R/lib/libR.so $out/lib/libR.so + '') + ]; + + meta = { + homepage = "https://www.jetbrains.com/dataspell/"; + description = "Data science IDE from JetBrains"; + longDescription = "DataSpell is a new IDE from JetBrains built for Data Scientists. Mainly it integrates Jupyter notebooks in the IntelliJ platform."; + maintainers = with lib.maintainers; [ leona ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/gateway.nix b/pkgs/applications/editors/jetbrains/ides/gateway.nix new file mode 100644 index 000000000000..93c90f2ada89 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/gateway.nix @@ -0,0 +1,61 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + libgcc, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3.tar.gz"; + sha256 = "90c8a54f619245a5435c343f94f39595ab59cd3cbada569e2b1e28bcacdbcb4a"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3-aarch64.tar.gz"; + sha256 = "204ed3f7262877d0a46aaf30c5bafb7216b4e9736bebee71425c993c18486af8"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3.dmg"; + sha256 = "282fd7f302d95adeed022f8d6c679d3292778f96205394af52dd090f6201f338"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2025.3-aarch64.dmg"; + sha256 = "b10cabda93c88d27bcc135a44a1fd98fe60fe8305606d6e75a0d5b736f0df274"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "gateway"; + + wmClass = "jetbrains-gateway"; + product = "JetBrains Gateway"; + productShort = "Gateway"; + + version = "2025.3"; + buildNumber = "253.28294.342"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + libgcc + ]; + + meta = { + homepage = "https://www.jetbrains.com/remote-development/gateway/"; + description = "Remote development for JetBrains products"; + longDescription = "JetBrains Gateway is a lightweight launcher that connects a remote server with your local machine, downloads necessary components on the backend, and opens your project in JetBrains Client."; + maintainers = [ ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/goland.nix b/pkgs/applications/editors/jetbrains/ides/goland.nix new file mode 100644 index 000000000000..41227662b9e3 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/goland.nix @@ -0,0 +1,74 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + libgcc, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/go/goland-2025.3.tar.gz"; + sha256 = "6151856286ea546eb8af9aeb025772cee6bd57134f45494a818e8da20a8691c6"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/go/goland-2025.3-aarch64.tar.gz"; + sha256 = "c530dd4bcc7a075a040b64859ecb34142c8fc0399625c5a13ae2d7a8f5974340"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/go/goland-2025.3.dmg"; + sha256 = "e1df4f10b158c7788736559666244e994500a40db5b08661e2691357d269dbf4"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/go/goland-2025.3-aarch64.dmg"; + sha256 = "d4ee20b5c3df6151d366d6cc9b06b915499ff0c1eb1184aab53a01078908ec89"; + }; + }; +in +(mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "goland"; + + wmClass = "jetbrains-goland"; + product = "Goland"; + + version = "2025.3"; + buildNumber = "253.28294.337"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + extraWrapperArgs = [ + # fortify source breaks build since delve compiles with -O0 + ''--prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"'' + ]; + buildInputs = [ + libgcc + ]; + + meta = { + homepage = "https://www.jetbrains.com/go/"; + description = "Go IDE from JetBrains"; + longDescription = "Goland is the codename for a new commercial IDE by JetBrains aimed at providing an ergonomic environment for Go development. + The new IDE extends the IntelliJ platform with the coding assistance and tool integrations specific for the Go language"; + maintainers = with lib.maintainers; [ tymscar ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +}).overrideAttrs + (attrs: { + postFixup = + (attrs.postFixup or "") + + lib.optionalString stdenv.hostPlatform.isLinux '' + interp="$(cat $NIX_CC/nix-support/dynamic-linker)" + patchelf --set-interpreter $interp $out/goland/plugins/go-plugin/lib/dlv/linux/dlv + chmod +x $out/goland/plugins/go-plugin/lib/dlv/linux/dlv + ''; + }) diff --git a/pkgs/applications/editors/jetbrains/ides/idea-community.nix b/pkgs/applications/editors/jetbrains/ides/idea-community.nix new file mode 100644 index 000000000000..41364d699f33 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/idea-community.nix @@ -0,0 +1,64 @@ +# TODO: This IDE is deprecated and scheduled for removal in 26.05 +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + maven, + zlib, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/idea/ideaIC-2025.2.5.tar.gz"; + sha256 = "995c334cc3e143f13467abafef07a1ccf7d06275512bb6f4c91123948786ab7c"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/idea/ideaIC-2025.2.5-aarch64.tar.gz"; + sha256 = "4c57a783f31ee6f2c82d8c43bb5d0334a9afbc8bfb4542e732048c41f61e63a0"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/idea/ideaIC-2025.2.5.dmg"; + sha256 = "ff48a1e60869342a91db867fa482a49d4cdf38476496911c109f34a7e8d6523d"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/idea/ideaIC-2025.2.5-aarch64.dmg"; + sha256 = "52065492d433f0ea9df4debd5f0683154ab4dab5846394cabc8a49903d70e5bc"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "idea-community"; + + wmClass = "jetbrains-idea-ce"; + product = "IntelliJ IDEA CE"; + productShort = "IDEA"; + + version = "2025.2.5"; + buildNumber = "252.28238.7"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + extraLdPath = [ zlib ]; + extraWrapperArgs = [ + ''--set M2_HOME "${maven}/maven"'' + ''--set M2 "${maven}/maven/bin"'' + ]; + + meta = { + homepage = "https://www.jetbrains.com/idea/"; + description = "Free Java, Kotlin, Groovy and Scala IDE from Jetbrains (built from source)"; + longDescription = "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ."; + maintainers = with lib.maintainers; [ + gytis-ivaskevicius + tymscar + ]; + license = lib.licenses.asl20; + sourceProvenance = [ lib.sourceTypes.fromSource ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix new file mode 100644 index 000000000000..e95d2004b22b --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix @@ -0,0 +1,69 @@ +{ + lib, + mkJetBrainsProduct, + mkJetBrainsSource, + maven, + zlib, +}: +let + src = mkJetBrainsSource { + version = "2025.3.1"; + buildNumber = "253.29346.138"; + buildType = "idea"; + ideaHash = "sha256-eAq/lgv6ZcN9SR2E1KYnnhDHe/rBQ3GqqbbF6GstDoU="; + androidHash = "sha256-quMCzrjCKIo1pkzw4PWewAs5tz7A2aq7TI5zd+QaaUY="; + jpsHash = "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk="; + restarterHash = "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag="; + mvnDeps = ../source/idea_maven_artefacts.json; + repositories = [ + "repo1.maven.org/maven2" + "packages.jetbrains.team/maven/p/ij/intellij-dependencies" + "dl.google.com/dl/android/maven2" + "download.jetbrains.com/teamcity-repository" + "maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies" + "packages.jetbrains.team/maven/p/grazi/grazie-platform-public" + "packages.jetbrains.team/maven/p/kpm/public" + "packages.jetbrains.team/maven/p/ki/maven" + "maven.pkg.jetbrains.space/public/p/compose/dev" + "packages.jetbrains.team/maven/p/amper/amper" + "packages.jetbrains.team/maven/p/kt/bootstrap" + ]; + kotlin-jps-plugin = { + version = "2.2.20"; + hash = "sha256-+jGghK2+yq+YFm5zT7ob+WTgTiJnHXAjDtlZjOzSISQ="; + }; + }; +in +mkJetBrainsProduct { + inherit src; + inherit (src) + version + buildNumber + libdbm + fsnotifier + ; + + pname = "idea-oss"; + + wmClass = "jetbrains-idea-ce"; + product = "IntelliJ IDEA Open Source"; + productShort = "IDEA"; + + extraLdPath = [ zlib ]; + extraWrapperArgs = [ + ''--set M2_HOME "${maven}/maven"'' + ''--set M2 "${maven}/maven/bin"'' + ]; + + meta = { + homepage = "https://www.jetbrains.com/idea/"; + description = "Free Java, Kotlin, Groovy and Scala IDE from Jetbrains (built from source)"; + longDescription = "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ."; + maintainers = with lib.maintainers; [ + gytis-ivaskevicius + tymscar + ]; + license = lib.licenses.asl20; + sourceProvenance = [ lib.sourceTypes.fromSource ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/idea.nix b/pkgs/applications/editors/jetbrains/ides/idea.nix new file mode 100644 index 000000000000..f8fe877221af --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/idea.nix @@ -0,0 +1,74 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + maven, + zlib, + lldb, + musl, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/idea/ideaIU-2025.3.1.tar.gz"; + sha256 = "21e1b90b5ec684767a03498ba424ef3f9acc5dbf759cceefd5edd474f043ad6c"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/idea/ideaIU-2025.3.1-aarch64.tar.gz"; + sha256 = "095711329d1e9c14641ba426e652d4dbd3885b27c9a046e44725ae677491e8c3"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/idea/ideaIU-2025.3.1.dmg"; + sha256 = "adf5af3839e07ba6387bf0eca94df2f44c829023a1898170eacbc5cbafce0393"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/idea/ideaIU-2025.3.1-aarch64.dmg"; + sha256 = "2137863cc3a5f4acd25ba38a82e004e935d3a94fa566f8e3851d6b8a8ac12777"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "idea"; + + wmClass = "jetbrains-idea"; + product = "IntelliJ IDEA"; + productShort = "IDEA"; + + version = "2025.3.1"; + buildNumber = "253.29346.138"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + extraLdPath = [ zlib ]; + extraWrapperArgs = [ + ''--set M2_HOME "${maven}/maven"'' + ''--set M2 "${maven}/maven/bin"'' + ]; + + buildInputs = [ + lldb + musl + ]; + + meta = { + homepage = "https://www.jetbrains.com/idea/"; + description = "Java, Kotlin, Groovy and Scala IDE from Jetbrains"; + longDescription = "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ."; + maintainers = with lib.maintainers; [ + gytis-ivaskevicius + tymscar + ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/mps.nix b/pkgs/applications/editors/jetbrains/ides/mps.nix new file mode 100644 index 000000000000..d8b99bd587a4 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/mps.nix @@ -0,0 +1,56 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/mps/2025.3/MPS-2025.3.tar.gz"; + sha256 = "c4023e52b4e17824d61d2768238619be14e5ae5735db533e3951647f377b6b79"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/mps/2025.3/MPS-2025.3.tar.gz"; + sha256 = "c4023e52b4e17824d61d2768238619be14e5ae5735db533e3951647f377b6b79"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/mps/2025.3/MPS-2025.3-macos.dmg"; + sha256 = "c216008ca905efd9ab9271df9599ef38ecb66cba2c61482e7a56434ae3eddee6"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/mps/2025.3/MPS-2025.3-macos-aarch64.dmg"; + sha256 = "dc79c41ce851448f4862306173914eee1e63e230410ed65356498efd2d5f0444"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "mps"; + + wmClass = "jetbrains-MPS"; + product = "MPS"; + + version = "2025.3"; + buildNumber = "253.28294.432"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + meta = { + homepage = "https://www.jetbrains.com/mps/"; + description = "IDE for building domain-specific languages from JetBrains"; + longDescription = "A metaprogramming system which uses projectional editing which allows users to overcome the limits of language parsers, and build DSL editors, such as ones with tables and diagrams."; + maintainers = [ ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix new file mode 100644 index 000000000000..95fe52bfe133 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix @@ -0,0 +1,63 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + musl, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.1.tar.gz"; + sha256 = "fd8937ab6b79605cefc9917ffe6a08e05a6b7cc0256fa2178623d24ec322fa29"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.1-aarch64.tar.gz"; + sha256 = "7648667f85b4c45928b04d4c26f22882a8aa65a787a64fa2f7affe51a1bc2a61"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.1.dmg"; + sha256 = "11988bcee5d94b271ea67aeacd3e836029595a6cfebfec2659565fc18a4ad2d1"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.1-aarch64.dmg"; + sha256 = "0453e0a6ee86c3cbf97b8c48f2826751d8085bf8211b541a04752621c5af16bc"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "phpstorm"; + + wmClass = "jetbrains-phpstorm"; + product = "PhpStorm"; + + version = "2025.3.1"; + buildNumber = "253.29346.151"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + musl + ]; + + meta = { + homepage = "https://www.jetbrains.com/phpstorm/"; + description = "PHP IDE from JetBrains"; + longDescription = "PhpStorm provides an editor for PHP, HTML and JavaScript with on-the-fly code analysis, error prevention and automated refactorings for PHP and JavaScript code. "; + maintainers = with lib.maintainers; [ + dritter + tymscar + ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-community.nix b/pkgs/applications/editors/jetbrains/ides/pycharm-community.nix new file mode 100644 index 000000000000..0aaaab19bfae --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/pycharm-community.nix @@ -0,0 +1,58 @@ +# TODO: This IDE is deprecated and scheduled for removal in 26.05 +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + pyCharmCommonOverrides, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/python/pycharm-community-2025.2.5.tar.gz"; + sha256 = "7f49a014f53f0f6f7c46f6710b131f390302287f4046b606331d88081cdb551f"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/python/pycharm-community-2025.2.5-aarch64.tar.gz"; + sha256 = "67b61a3e788b043d93b3cc3e0dd3cea350e6d170402fd94adaf792cfc57e5462"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/python/pycharm-community-2025.2.5.dmg"; + sha256 = "08ba97a278031ff1942ddefb18d8acf7582f0bb4a28ccdf5d65721bfb80ca456"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/python/pycharm-community-2025.2.5-aarch64.dmg"; + sha256 = "040a4ed6bb7563972d844c450f615d0d11385e524fbbfdbfc9fc68d78811e994"; + }; + }; +in +(mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "pycharm-community"; + + wmClass = "jetbrains-pycharm-ce"; + product = "PyCharm CE"; + productShort = "PyCharm"; + + version = "2025.2.5"; + buildNumber = "252.28238.29"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + meta = { + homepage = "https://www.jetbrains.com/pycharm/"; + description = "Free Python IDE from JetBrains (built from source)"; + longDescription = "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!"; + maintainers = with lib.maintainers; [ + genericnerdyusername + tymscar + ]; + license = lib.licenses.asl20; + sourceProvenance = [ lib.sourceTypes.fromSource ]; + }; +}).overrideAttrs + pyCharmCommonOverrides diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix new file mode 100644 index 000000000000..7fb26c93ba6a --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix @@ -0,0 +1,63 @@ +{ + lib, + mkJetBrainsProduct, + mkJetBrainsSource, + pyCharmCommonOverrides, +}: +let + src = mkJetBrainsSource { + version = "2025.3.1"; + buildNumber = "253.29346.142"; + buildType = "pycharm"; + ideaHash = "sha256-eAq/lgv6ZcN9SR2E1KYnnhDHe/rBQ3GqqbbF6GstDoU="; + androidHash = "sha256-quMCzrjCKIo1pkzw4PWewAs5tz7A2aq7TI5zd+QaaUY="; + jpsHash = "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk="; + restarterHash = "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag="; + mvnDeps = ../source/pycharm_maven_artefacts.json; + repositories = [ + "repo1.maven.org/maven2" + "packages.jetbrains.team/maven/p/ij/intellij-dependencies" + "dl.google.com/dl/android/maven2" + "download.jetbrains.com/teamcity-repository" + "maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies" + "packages.jetbrains.team/maven/p/grazi/grazie-platform-public" + "packages.jetbrains.team/maven/p/kpm/public" + "packages.jetbrains.team/maven/p/ki/maven" + "maven.pkg.jetbrains.space/public/p/compose/dev" + "packages.jetbrains.team/maven/p/amper/amper" + "packages.jetbrains.team/maven/p/kt/bootstrap" + ]; + kotlin-jps-plugin = { + version = "2.2.20"; + hash = "sha256-+jGghK2+yq+YFm5zT7ob+WTgTiJnHXAjDtlZjOzSISQ="; + }; + }; +in +(mkJetBrainsProduct { + inherit src; + inherit (src) + version + buildNumber + libdbm + fsnotifier + ; + + pname = "pycharm-oss"; + + wmClass = "jetbrains-pycharm-ce"; + product = "PyCharm Open Source"; + productShort = "PyCharm"; + + meta = { + homepage = "https://www.jetbrains.com/pycharm/"; + description = "Free Python IDE from JetBrains (built from source)"; + longDescription = "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!"; + maintainers = with lib.maintainers; [ + genericnerdyusername + tymscar + ]; + license = lib.licenses.asl20; + sourceProvenance = [ lib.sourceTypes.fromSource ]; + }; +}).overrideAttrs + pyCharmCommonOverrides diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm.nix b/pkgs/applications/editors/jetbrains/ides/pycharm.nix new file mode 100644 index 000000000000..385226f17fde --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/pycharm.nix @@ -0,0 +1,66 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + pyCharmCommonOverrides, + musl, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/python/pycharm-2025.3.1.tar.gz"; + sha256 = "933fd42d7cc2a76ad4ba23f9112294e4df013fa4c3362435a1e3368051c07391"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/python/pycharm-2025.3.1-aarch64.tar.gz"; + sha256 = "2b6f5a430132773ea7caf3046f7763ea7a031dbfab6e1be72bdc86f3cc7a758b"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/python/pycharm-2025.3.1.dmg"; + sha256 = "586c9eed67da609fc1e565a8bfc36eb155b23e5483d5dc6e9dcf8b5540f47fa5"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/python/pycharm-2025.3.1-aarch64.dmg"; + sha256 = "ec8e97856f00da902020c72b0f079cc10983de6bb4438292ea5faa1e5b0cb935"; + }; + }; +in +(mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "pycharm"; + + wmClass = "jetbrains-pycharm"; + product = "PyCharm"; + productShort = "PyCharm"; + + version = "2025.3.1"; + buildNumber = "253.29346.142"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + musl + ]; + + meta = { + homepage = "https://www.jetbrains.com/pycharm/"; + description = "Python IDE from JetBrains"; + longDescription = "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!"; + maintainers = with lib.maintainers; [ + genericnerdyusername + tymscar + ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +}).overrideAttrs + pyCharmCommonOverrides diff --git a/pkgs/applications/editors/jetbrains/ides/rider.nix b/pkgs/applications/editors/jetbrains/ides/rider.nix new file mode 100644 index 000000000000..f163c14b0039 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/rider.nix @@ -0,0 +1,101 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + patchSharedLibs, + openssl, + libxcrypt, + lttng-ust_2_12, + musl, + libICE, + libSM, + libX11, + dotnetCorePackages, + xorg, + expat, + libxml2, + xz, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1.tar.gz"; + sha256 = "ba840f7c48da7f118cf57aa8c22df30120d16f175fbce3bec6a65590ed87f2e8"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1-aarch64.tar.gz"; + sha256 = "19080fcdc48fa0f743ed60927b71975a3c478b805296161cfd8a0aa2c04c8f52"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1.dmg"; + sha256 = "addd816dbdf130e2ef5e7dc184d7a8087f8bfbf6eba4e32ead2452069a49607d"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1-aarch64.dmg"; + sha256 = "d7080323412900f5d37270233e5a4c773011c6853d6031ce1f5e635c77511426"; + }; + }; +in +(mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "rider"; + + wmClass = "jetbrains-rider"; + product = "Rider"; + + version = "2025.3.1"; + buildNumber = "253.29346.144"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + openssl + libxcrypt + lttng-ust_2_12 + musl + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + xorg.xcbutilkeysyms + ] + ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ + expat + libxml2 + xz + ]; + extraLdPath = lib.optionals (stdenv.hostPlatform.isLinux) [ + # Avalonia dependencies needed for dotMemory + libICE + libSM + libX11 + ]; + + meta = { + homepage = "https://www.jetbrains.com/rider/"; + description = ".NET IDE from JetBrains"; + longDescription = "JetBrains Rider is a new .NET IDE based on the IntelliJ platform and ReSharper. Rider supports .NET Core, .NET Framework and Mono based projects. This lets you develop a wide array of applications including .NET desktop apps, services and libraries, Unity games, ASP.NET and ASP.NET Core web applications."; + maintainers = with lib.maintainers; [ raphaelr ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +}).overrideAttrs + (attrs: { + postInstall = + (attrs.postInstall or "") + + lib.optionalString stdenv.hostPlatform.isLinux '' + ${patchSharedLibs} + + for dir in $out/rider/lib/ReSharperHost/linux-*; do + rm -rf $dir/dotnet + ln -s ${dotnetCorePackages.sdk_10_0-source}/share/dotnet $dir/dotnet + done + ''; + }) diff --git a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix new file mode 100644 index 000000000000..555d3c651ff4 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix @@ -0,0 +1,60 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + musl, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/ruby/RubyMine-2025.3.1.tar.gz"; + sha256 = "e9eb2011ca2d5694c58c011690bf544d026e3a7c1c0c8de9bb37a18fa0cf8118"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/ruby/RubyMine-2025.3.1-aarch64.tar.gz"; + sha256 = "bf603c6a1ba1e618afdb70589648447cfce53b4daa7a0cc68073c1b77e727d55"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/ruby/RubyMine-2025.3.1.dmg"; + sha256 = "4fce84983a6ace16d8479150b765280250a260b3d24fb37258d114000c6c1115"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/ruby/RubyMine-2025.3.1-aarch64.dmg"; + sha256 = "67f1aa674b90ec54ba21f3523ad940218f979befd7429e38ad822bc8146d16a4"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "ruby-mine"; + + wmClass = "jetbrains-rubymine"; + product = "RubyMine"; + + version = "2025.3.1"; + buildNumber = "253.29346.140"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + musl + ]; + + meta = { + homepage = "https://www.jetbrains.com/ruby/"; + description = "Ruby IDE from JetBrains"; + longDescription = "Ruby IDE from JetBrains"; + maintainers = with lib.maintainers; [ tymscar ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix new file mode 100644 index 000000000000..28cc83c5ed8d --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix @@ -0,0 +1,80 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + patchSharedLibs, + python3, + openssl, + libxcrypt-legacy, + expat, + libxml2, + xz, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/rustrover/RustRover-2025.3.1.tar.gz"; + sha256 = "5a1b34e10a1c59eee30694236baa8233c7787580769381be01b4ccb09618ec89"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/rustrover/RustRover-2025.3.1-aarch64.tar.gz"; + sha256 = "fb0f81c9d2a2a604718484954b261a642be9ed6f51de98fcdc6cedb32b0a4c9e"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/rustrover/RustRover-2025.3.1.dmg"; + sha256 = "3899875452a5182db93b132c00dbc84394ffb637430b97f2390be8abb0412537"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/rustrover/RustRover-2025.3.1-aarch64.dmg"; + sha256 = "103a12ed1c37b6b38cff5d637e7dc7b8dcc78f5c576ba38b8f862c6ba3647d52"; + }; + }; +in +(mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "rust-rover"; + + wmClass = "jetbrains-rustrover"; + product = "RustRover"; + + version = "2025.3.1"; + buildNumber = "253.29346.139"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = + lib.optionals stdenv.hostPlatform.isLinux [ + python3 + openssl + libxcrypt-legacy + ] + ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ + expat + libxml2 + xz + ]; + + meta = { + homepage = "https://www.jetbrains.com/rust/"; + description = "Rust IDE from JetBrains"; + longDescription = "Rust IDE from JetBrains"; + maintainers = with lib.maintainers; [ genericnerdyusername ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +}).overrideAttrs + (attrs: { + postFixup = '' + ${attrs.postFixup or ""} + ${patchSharedLibs} + ''; + }) diff --git a/pkgs/applications/editors/jetbrains/ides/webstorm.nix b/pkgs/applications/editors/jetbrains/ides/webstorm.nix new file mode 100644 index 000000000000..34642ff373a0 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/webstorm.nix @@ -0,0 +1,63 @@ +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + musl, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1.tar.gz"; + sha256 = "08a851d216b741c49ebb6846e178fb823d329fe7b9824a2134b68c8fd25ba2ae"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1-aarch64.tar.gz"; + sha256 = "fd8bb3ee70c549165d9102437bca03e857fc147281c1d7382249d4690c31dd87"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1.dmg"; + sha256 = "a6cb906562f95b37e9c1e34c9bd9561dea653a726c95d02bfa957acbe909b88d"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/webstorm/WebStorm-2025.3.1-aarch64.dmg"; + sha256 = "1c21990cee2bbbffdd8f6c90e8071bc03ec7fe5a3662e51931c15222d4b7ccb2"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "webstorm"; + + wmClass = "jetbrains-webstorm"; + product = "WebStorm"; + + version = "2025.3.1"; + buildNumber = "253.29346.143"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + musl + ]; + + meta = { + homepage = "https://www.jetbrains.com/webstorm/"; + description = "Web IDE from JetBrains"; + longDescription = "WebStorm provides an editor for HTML, JavaScript (incl. Node.js), and CSS with on-the-fly code analysis, error prevention and automated refactorings for JavaScript code."; + maintainers = with lib.maintainers; [ + abaldeau + tymscar + ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/ides/writerside.nix b/pkgs/applications/editors/jetbrains/ides/writerside.nix new file mode 100644 index 000000000000..5c48c64da658 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/ides/writerside.nix @@ -0,0 +1,61 @@ +# TODO: This IDE is deprecated and scheduled for removal in 26.05 +{ + stdenv, + lib, + fetchurl, + mkJetBrainsProduct, + libdbm, + fsnotifier, + musl, +}: +let + system = stdenv.hostPlatform.system; + urls = { + x86_64-linux = { + url = "https://download.jetbrains.com/writerside/writerside-243.22562.371.tar.gz"; + sha256 = "d49e58020d51ec4ccdbdffea5d42b5a2d776a809fc00789cef5abda7b23bd3f6"; + }; + aarch64-linux = { + url = "https://download.jetbrains.com/writerside/writerside-243.22562.371-aarch64.tar.gz"; + sha256 = "6067f6f73c4a178e2d0ae42bd18669045d85b5b5ed2c9115c2488ba7aa2a3d88"; + }; + x86_64-darwin = { + url = "https://download.jetbrains.com/writerside/writerside-243.22562.371.dmg"; + sha256 = "0c78b8035497c855aea5666256716778abd46dadf68f51e4f91c0db01f62b280"; + }; + aarch64-darwin = { + url = "https://download.jetbrains.com/writerside/writerside-243.22562.371-aarch64.dmg"; + sha256 = "9d86ef50b4c6d2a07d236219e9b05c0557241fb017d52ac395719bdb425130f5"; + }; + }; +in +mkJetBrainsProduct { + inherit libdbm fsnotifier; + + pname = "writerside"; + + wmClass = "jetbrains-writerside"; + product = "Writerside"; + + version = "2024.3 EAP"; + buildNumber = "243.22562.371"; + + src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + + buildInputs = [ + musl + ]; + + meta = { + homepage = "https://www.jetbrains.com/writerside/"; + description = "Documentation IDE from JetBrains"; + longDescription = "The most powerful development environment – now adapted for writing documentation."; + maintainers = with lib.maintainers; [ zlepper ]; + license = lib.licenses.unfree; + sourceProvenance = + if stdenv.hostPlatform.isDarwin then + [ lib.sourceTypes.binaryNativeCode ] + else + [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/source/build.nix b/pkgs/applications/editors/jetbrains/source/build.nix index 84ee92265ac4..2359ad1dc47b 100644 --- a/pkgs/applications/editors/jetbrains/source/build.nix +++ b/pkgs/applications/editors/jetbrains/source/build.nix @@ -23,7 +23,8 @@ p7zip, pkg-config, xorg, - +}: +{ version, buildNumber, buildType, @@ -35,7 +36,6 @@ repositories, kotlin-jps-plugin, }: - let kotlin' = kotlin.overrideAttrs (oldAttrs: { version = "2.2.20"; @@ -313,6 +313,12 @@ stdenvNoCC.mkDerivation rec { ''; passthru = { - inherit libdbm fsnotifier jps-bootstrap; + inherit + version + buildNumber + libdbm + fsnotifier + jps-bootstrap + ; }; } diff --git a/pkgs/applications/editors/jetbrains/source/default.nix b/pkgs/applications/editors/jetbrains/source/default.nix deleted file mode 100644 index 84a27ee60135..000000000000 --- a/pkgs/applications/editors/jetbrains/source/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -let - ides = builtins.fromJSON (builtins.readFile ./sources.json); -in -{ - callPackage, -}: -builtins.mapAttrs ( - _: info: callPackage ./build.nix (info // { mvnDeps = ./. + "/${info.mvnDeps}"; }) -) ides diff --git a/pkgs/applications/editors/jetbrains/source/sources.json b/pkgs/applications/editors/jetbrains/source/sources.json deleted file mode 100644 index d3bc51dd97c9..000000000000 --- a/pkgs/applications/editors/jetbrains/source/sources.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "idea-oss": { - "version": "2025.3.1", - "buildNumber": "253.29346.138", - "buildType": "idea", - "ideaHash": "sha256-eAq/lgv6ZcN9SR2E1KYnnhDHe/rBQ3GqqbbF6GstDoU=", - "androidHash": "sha256-quMCzrjCKIo1pkzw4PWewAs5tz7A2aq7TI5zd+QaaUY=", - "jpsHash": "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk=", - "restarterHash": "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag=", - "mvnDeps": "idea_maven_artefacts.json", - "repositories": [ - "repo1.maven.org/maven2", - "packages.jetbrains.team/maven/p/ij/intellij-dependencies", - "dl.google.com/dl/android/maven2", - "download.jetbrains.com/teamcity-repository", - "maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies", - "packages.jetbrains.team/maven/p/grazi/grazie-platform-public", - "packages.jetbrains.team/maven/p/kpm/public", - "packages.jetbrains.team/maven/p/ki/maven", - "maven.pkg.jetbrains.space/public/p/compose/dev", - "packages.jetbrains.team/maven/p/amper/amper", - "packages.jetbrains.team/maven/p/kt/bootstrap" - ], - "kotlin-jps-plugin": { - "version": "2.2.20", - "hash": "sha256-+jGghK2+yq+YFm5zT7ob+WTgTiJnHXAjDtlZjOzSISQ=" - } - }, - "pycharm-oss": { - "version": "2025.3.1", - "buildNumber": "253.29346.142", - "buildType": "pycharm", - "ideaHash": "sha256-eAq/lgv6ZcN9SR2E1KYnnhDHe/rBQ3GqqbbF6GstDoU=", - "androidHash": "sha256-quMCzrjCKIo1pkzw4PWewAs5tz7A2aq7TI5zd+QaaUY=", - "jpsHash": "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk=", - "restarterHash": "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag=", - "mvnDeps": "pycharm_maven_artefacts.json", - "repositories": [ - "repo1.maven.org/maven2", - "packages.jetbrains.team/maven/p/ij/intellij-dependencies", - "dl.google.com/dl/android/maven2", - "download.jetbrains.com/teamcity-repository", - "maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies", - "packages.jetbrains.team/maven/p/grazi/grazie-platform-public", - "packages.jetbrains.team/maven/p/kpm/public", - "packages.jetbrains.team/maven/p/ki/maven", - "maven.pkg.jetbrains.space/public/p/compose/dev", - "packages.jetbrains.team/maven/p/amper/amper", - "packages.jetbrains.team/maven/p/kt/bootstrap" - ], - "kotlin-jps-plugin": { - "version": "2.2.20", - "hash": "sha256-+jGghK2+yq+YFm5zT7ob+WTgTiJnHXAjDtlZjOzSISQ=" - } - } -}