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.**
This commit is contained in:
Marco "Capypara" Köpcke
2025-12-29 20:48:04 +01:00
parent 9bf13c9c35
commit 340274bddb
28 changed files with 1486 additions and 1165 deletions

View File

@@ -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"
}
}
}

View File

@@ -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;
};

View File

@@ -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 ];
};
}

View File

@@ -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

View File

@@ -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 { });
}

View File

@@ -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/"
}
}
}

View File

@@ -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 ];
};
}

View File

@@ -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}
'';
})

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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
'';
})

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
'';
})

View File

@@ -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 ];
};
}

View File

@@ -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}
'';
})

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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
;
};
}

View File

@@ -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

View File

@@ -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="
}
}
}