From d31d4cc946cc22f490abb983e264dbc258883f84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=B6pcke?= Date: Tue, 11 Aug 2026 08:31:44 +0200 Subject: [PATCH 1/9] jetbrains.*: move libdbm to new top-level pkg jetbrains-libdbm Additionally removes the passthrough of fsnotifier and libdbm from the binary IDEs. This means the binary IDEs now no longer depend on the source IDE build files. --- .../editors/jetbrains/builder/default.nix | 6 +- .../editors/jetbrains/builder/linux.nix | 4 +- .../editors/jetbrains/default.nix | 3 - .../editors/jetbrains/ides/clion.nix | 4 +- .../editors/jetbrains/ides/datagrip.nix | 4 +- .../editors/jetbrains/ides/dataspell.nix | 4 +- .../editors/jetbrains/ides/gateway.nix | 4 +- .../editors/jetbrains/ides/goland.nix | 4 +- .../editors/jetbrains/ides/idea-oss.nix | 7 +- .../editors/jetbrains/ides/idea.nix | 4 +- .../editors/jetbrains/ides/mps.nix | 4 +- .../editors/jetbrains/ides/phpstorm.nix | 4 +- .../editors/jetbrains/ides/pycharm-oss.nix | 7 +- .../editors/jetbrains/ides/pycharm.nix | 4 +- .../editors/jetbrains/ides/rider.nix | 4 +- .../editors/jetbrains/ides/ruby-mine.nix | 4 +- .../editors/jetbrains/ides/rust-rover.nix | 4 +- .../editors/jetbrains/ides/webstorm.nix | 4 +- .../editors/jetbrains/source/build.nix | 63 +----------- .../je/jetbrains-libdbm/headers.patch} | 0 .../je/jetbrains-libdbm/libdbusmenu.nix | 96 +++++++++++++++++++ pkgs/by-name/je/jetbrains-libdbm/package.nix | 68 +++++++++++++ .../je/jetbrains-libdbm/requires-glib.patch | 11 +++ 23 files changed, 219 insertions(+), 98 deletions(-) rename pkgs/{applications/editors/jetbrains/patches/libdbm-headers.patch => by-name/je/jetbrains-libdbm/headers.patch} (100%) create mode 100644 pkgs/by-name/je/jetbrains-libdbm/libdbusmenu.nix create mode 100644 pkgs/by-name/je/jetbrains-libdbm/package.nix create mode 100644 pkgs/by-name/je/jetbrains-libdbm/requires-glib.patch diff --git a/pkgs/applications/editors/jetbrains/builder/default.nix b/pkgs/applications/editors/jetbrains/builder/default.nix index b710bb9cc0d9..b177af488630 100644 --- a/pkgs/applications/editors/jetbrains/builder/default.nix +++ b/pkgs/applications/editors/jetbrains/builder/default.nix @@ -25,7 +25,7 @@ lib.extendMkDerivation { "productShort" "buildNumber" "wmClass" - "libdbm" + "jetbrains-libdbm" "fsnotifier" "extraLdPath" "extraWrapperArgs" @@ -39,7 +39,7 @@ lib.extendMkDerivation { buildNumber, product, - libdbm, + jetbrains-libdbm, fsnotifier, meta ? { }, @@ -51,7 +51,7 @@ lib.extendMkDerivation { inherit buildNumber product - libdbm + jetbrains-libdbm fsnotifier ; diff --git a/pkgs/applications/editors/jetbrains/builder/linux.nix b/pkgs/applications/editors/jetbrains/builder/linux.nix index cf744d729c4c..51e9eacf0ec0 100644 --- a/pkgs/applications/editors/jetbrains/builder/linux.nix +++ b/pkgs/applications/editors/jetbrains/builder/linux.nix @@ -62,7 +62,7 @@ lib.extendMkDerivation { productShort ? product, wmClass, - libdbm, + jetbrains-libdbm, fsnotifier, extraLdPath ? [ ], @@ -185,7 +185,7 @@ lib.extendMkDerivation { cp -a . $out/$pname [[ -f $out/$pname/bin/${loName}.png ]] && ln -s $out/$pname/bin/${loName}.png $out/share/icons/hicolor/128x128/apps/${pname}.png [[ -f $out/$pname/bin/${loName}.svg ]] && ln -s $out/$pname/bin/${loName}.svg $out/share/icons/hicolor/scalable/apps/${pname}.svg - cp ${libdbm}/lib/libdbm.so $out/$pname/bin/libdbm.so + cp ${jetbrains-libdbm}/lib/libdbm.so $out/$pname/bin/libdbm.so cp ${fsnotifier}/bin/fsnotifier $out/$pname/bin/fsnotifier jdk=${jdk.home} diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 0d004327ea5b..ef72555b3072 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -30,14 +30,11 @@ let _idea-oss = mkSrcIde ./ides/idea-oss.nix { }; - # The binary builds use the same libdbm and fsnotifier as the current idea-oss source build. mkBinIde = path: extras: callPackage path ( { mkJetBrainsProduct = jetbrainsBuilder jetbrains.jdk-no-jcef; - libdbm = _idea-oss.libdbm; - fsnotifier = _idea-oss.fsnotifier; } // extras ); diff --git a/pkgs/applications/editors/jetbrains/ides/clion.nix b/pkgs/applications/editors/jetbrains/ides/clion.nix index f9cd822bd322..728d6c883bb9 100644 --- a/pkgs/applications/editors/jetbrains/ides/clion.nix +++ b/pkgs/applications/editors/jetbrains/ides/clion.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, patchSharedLibs, dotnetCorePackages, @@ -36,7 +36,7 @@ let # update-script-end: urls in (mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "clion"; diff --git a/pkgs/applications/editors/jetbrains/ides/datagrip.nix b/pkgs/applications/editors/jetbrains/ides/datagrip.nix index a7be622c29ee..d71bacde35ef 100644 --- a/pkgs/applications/editors/jetbrains/ides/datagrip.nix +++ b/pkgs/applications/editors/jetbrains/ides/datagrip.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, }: @@ -27,7 +27,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "datagrip"; diff --git a/pkgs/applications/editors/jetbrains/ides/dataspell.nix b/pkgs/applications/editors/jetbrains/ides/dataspell.nix index b37ebb6e76d2..7d8801e3aa61 100644 --- a/pkgs/applications/editors/jetbrains/ides/dataspell.nix +++ b/pkgs/applications/editors/jetbrains/ides/dataspell.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, libgcc, runCommand, @@ -29,7 +29,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "dataspell"; diff --git a/pkgs/applications/editors/jetbrains/ides/gateway.nix b/pkgs/applications/editors/jetbrains/ides/gateway.nix index 975da1d53b71..d69ba08f88f6 100644 --- a/pkgs/applications/editors/jetbrains/ides/gateway.nix +++ b/pkgs/applications/editors/jetbrains/ides/gateway.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, libgcc, }: @@ -27,7 +27,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "gateway"; diff --git a/pkgs/applications/editors/jetbrains/ides/goland.nix b/pkgs/applications/editors/jetbrains/ides/goland.nix index 685acc45b6ad..3c3bfd2ad668 100644 --- a/pkgs/applications/editors/jetbrains/ides/goland.nix +++ b/pkgs/applications/editors/jetbrains/ides/goland.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, libgcc, }: @@ -27,7 +27,7 @@ let # update-script-end: urls in (mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "goland"; diff --git a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix index 4eb704ac3204..27ba027c971b 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix @@ -1,4 +1,5 @@ { + fsnotifier, lib, mkJetBrainsProduct, mkJetBrainsSource, @@ -36,13 +37,13 @@ let }; in mkJetBrainsProduct { - inherit src; + inherit src fsnotifier; inherit (src) version buildNumber - libdbm - fsnotifier ; + # this is jetbrains-libdbm but using the sources from the IDE build. + jetbrains-libdbm = src.libdbm; pname = "idea-oss"; diff --git a/pkgs/applications/editors/jetbrains/ides/idea.nix b/pkgs/applications/editors/jetbrains/ides/idea.nix index 26c636b48eae..d47883247f52 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, maven, zlib, @@ -30,7 +30,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "idea"; diff --git a/pkgs/applications/editors/jetbrains/ides/mps.nix b/pkgs/applications/editors/jetbrains/ides/mps.nix index f8f1ee9bbae4..f440d9e3aa75 100644 --- a/pkgs/applications/editors/jetbrains/ides/mps.nix +++ b/pkgs/applications/editors/jetbrains/ides/mps.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, }: @@ -27,7 +27,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "mps"; diff --git a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix index dbf0e2c9d2fd..a445f90ca698 100644 --- a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, musl, }: @@ -27,7 +27,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "phpstorm"; diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix index 68c8bd2b3357..0b46b66d07b6 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix @@ -1,4 +1,5 @@ { + fsnotifier, lib, mkJetBrainsProduct, mkJetBrainsSource, @@ -35,13 +36,13 @@ let }; in (mkJetBrainsProduct { - inherit src; + inherit src fsnotifier; inherit (src) version buildNumber - libdbm - fsnotifier ; + # this is jetbrains-libdbm but using the sources from the IDE build. + jetbrains-libdbm = src.libdbm; pname = "pycharm-oss"; diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm.nix b/pkgs/applications/editors/jetbrains/ides/pycharm.nix index be498c739177..0e3419109f89 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, pyCharmCommonOverrides, musl, @@ -28,7 +28,7 @@ let # update-script-end: urls in (mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "pycharm"; diff --git a/pkgs/applications/editors/jetbrains/ides/rider.nix b/pkgs/applications/editors/jetbrains/ides/rider.nix index 7f27bbce2fcf..ee893e6520ac 100644 --- a/pkgs/applications/editors/jetbrains/ides/rider.nix +++ b/pkgs/applications/editors/jetbrains/ides/rider.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, patchSharedLibs, openssl, @@ -39,7 +39,7 @@ let # update-script-end: urls in (mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "rider"; diff --git a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix index b6f47e68be3b..3c39095a70b4 100644 --- a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix +++ b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, musl, }: @@ -27,7 +27,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "ruby-mine"; diff --git a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix index 2b70b8385522..58ac4cd4b307 100644 --- a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix +++ b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, patchSharedLibs, python3, @@ -33,7 +33,7 @@ let # update-script-end: urls in (mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "rust-rover"; diff --git a/pkgs/applications/editors/jetbrains/ides/webstorm.nix b/pkgs/applications/editors/jetbrains/ides/webstorm.nix index 76cf60de76fe..4ac14ac9289d 100644 --- a/pkgs/applications/editors/jetbrains/ides/webstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/webstorm.nix @@ -3,7 +3,7 @@ lib, fetchurl, mkJetBrainsProduct, - libdbm, + jetbrains-libdbm, fsnotifier, musl, }: @@ -27,7 +27,7 @@ let # update-script-end: urls in mkJetBrainsProduct { - inherit libdbm fsnotifier; + inherit jetbrains-libdbm fsnotifier; pname = "webstorm"; diff --git a/pkgs/applications/editors/jetbrains/source/build.nix b/pkgs/applications/editors/jetbrains/source/build.nix index aac0fa6f5140..f8bfd8eaa010 100644 --- a/pkgs/applications/editors/jetbrains/source/build.nix +++ b/pkgs/applications/editors/jetbrains/source/build.nix @@ -6,23 +6,18 @@ linkFarm, makeWrapper, runCommand, - stdenv, stdenvNoCC, rustPlatform, callPackage, ant, - cmake, fsnotifier, - glib, glibc, jetbrains, + jetbrains-libdbm, kotlin, - libdbusmenu, maven, p7zip, - pkg-config, - libx11, }: { version, @@ -67,59 +62,11 @@ let cp -r ${androidSrc} $out/android ''; - libdbusmenu-jb = libdbusmenu.overrideAttrs (old: { - version = "jetbrains-fork"; - src = fetchFromGitHub { - owner = "jetbrains"; - repo = "libdbusmenu"; - rev = "d8a49303f908a272e6670b7cee65a2ba7c447875"; - hash = "sha256-u87ZgbfeCPJ0qG8gsom3gFaZxbS5NcHEodb0EVakk60="; - }; - configureFlags = old.configureFlags ++ [ - "--enable-static" - ]; - installPhase = '' - runHook preInstall - - mkdir -p $out/lib - cp libdbusmenu-glib/.libs/libdbusmenu-glib.a $out/lib - - runHook postInstall - ''; + # Use the libdbm version in our src. + libdbm = jetbrains-libdbm.overrideAttrs (finalAttrs: { + inherit src version; }); - libdbm = stdenv.mkDerivation { - pname = "libdbm"; - version = buildNumber; - nativeBuildInputs = [ - cmake - pkg-config - ]; - buildInputs = [ - glib - libx11 - libdbusmenu - ]; - inherit src; - sourceRoot = "${src.name}/native/LinuxGlobalMenu"; - patches = [ ../patches/libdbm-headers.patch ]; - postPatch = '' - # Fix the build with CMake 4. - substituteInPlace CMakeLists.txt \ - --replace-fail 'cmake_minimum_required(VERSION 2.6.0)' 'cmake_minimum_required(VERSION 3.10)' - cp ${libdbusmenu-jb}/lib/libdbusmenu-glib.a libdbusmenu-glib.a - ''; - passthru.patched-libdbusmenu = libdbusmenu-jb; - installPhase = '' - runHook preInstall - - mkdir -p $out/lib - mv libdbm.so $out/lib/libdbm.so - - runHook postInstall - ''; - }; - restarter = rustPlatform.buildRustPackage { pname = "restarter"; version = buildNumber; @@ -316,8 +263,8 @@ stdenvNoCC.mkDerivation (finalAttrs: { inherit version buildNumber + # this is jetbrains-libdbm but using the sources from the IDE build. libdbm - fsnotifier jps-bootstrap ; }; diff --git a/pkgs/applications/editors/jetbrains/patches/libdbm-headers.patch b/pkgs/by-name/je/jetbrains-libdbm/headers.patch similarity index 100% rename from pkgs/applications/editors/jetbrains/patches/libdbm-headers.patch rename to pkgs/by-name/je/jetbrains-libdbm/headers.patch diff --git a/pkgs/by-name/je/jetbrains-libdbm/libdbusmenu.nix b/pkgs/by-name/je/jetbrains-libdbm/libdbusmenu.nix new file mode 100644 index 000000000000..c34197b81b9f --- /dev/null +++ b/pkgs/by-name/je/jetbrains-libdbm/libdbusmenu.nix @@ -0,0 +1,96 @@ +{ + dbus-glib, + fetchFromGitHub, + file, + glib, + gobject-introspection, + intltool, + json-glib, + lib, + pkg-config, + stdenv, + vala, +}: +# This is directly based on ../../li/libdbusmenu . +stdenv.mkDerivation (finalAttrs: { + pname = "libdbusmenu-glib"; + version = "16.04.0-jetbrains-fork-2022-05-18"; + + strictDeps = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "jetbrains"; + repo = "libdbusmenu"; + rev = "d8a49303f908a272e6670b7cee65a2ba7c447875"; + hash = "sha256-u87ZgbfeCPJ0qG8gsom3gFaZxbS5NcHEodb0EVakk60="; + }; + + nativeBuildInputs = [ + vala + pkg-config + intltool + gobject-introspection + ]; + + buildInputs = [ + glib + dbus-glib + json-glib + ]; + + patches = [ + ./requires-glib.patch + ]; + + postPatch = '' + for f in {configure,ltmain.sh,m4/libtool.m4}; do + substituteInPlace $f \ + --replace /usr/bin/file ${file}/bin/file + done + ''; + + preConfigure = '' + export HAVE_VALGRIND_TRUE="#" + export HAVE_VALGRIND_FALSE="" + ''; + + configureFlags = [ + "CFLAGS=-Wno-error" + "--sysconfdir=/etc" + "--localstatedir=/var" + "--disable-gtk" + "--disable-dumper" + "--disable-scrollkeeper" + # jb: + "--enable-static" + ]; + + doCheck = false; + + installFlags = [ + "sysconfdir=${placeholder "out"}/etc" + "localstatedir=\${TMPDIR}" + "typelibdir=${placeholder "out"}/lib/girepository-1.0" + ]; + + postInstall = '' + mkdir -p $out/lib + cp libdbusmenu-glib/.libs/libdbusmenu-glib.a $out/lib + ''; + + meta = { + description = "Library for passing menu structures across DBus"; + homepage = "https://launchpad.net/dbusmenu"; + license = with lib.licenses; [ + gpl3 + lgpl21 + lgpl3 + ]; + pkgConfigModules = [ + "dbusmenu-glib-0.4" + "dbusmenu-jsonloader-0.4" + ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/je/jetbrains-libdbm/package.nix b/pkgs/by-name/je/jetbrains-libdbm/package.nix new file mode 100644 index 000000000000..346f4e41ac05 --- /dev/null +++ b/pkgs/by-name/je/jetbrains-libdbm/package.nix @@ -0,0 +1,68 @@ +{ + callPackage, + cmake, + fetchFromGitHub, + glib, + lib, + libx11, + pkg-config, + stdenv, +}: +let + libdbusmenu-jb = callPackage ./libdbusmenu.nix { }; +in +stdenv.mkDerivation (finalAttrs: { + pname = "jetbrains-libdbm"; + # nixpkgs-update: no auto update + # In practice this package does not need to be regularly updated, + # at the time of writing the last change was 4 years ago. + # Check before updating. + version = "2025.3.4"; + + strictDeps = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "jetbrains"; + repo = "intellij-community"; + tag = "idea/${finalAttrs.version}"; + hash = "sha256-5rPaXIGOeWY9tcHRs5p376kgo4EbUtEltwcmNpPSsM8="; + }; + sourceRoot = "source/native/LinuxGlobalMenu"; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + glib + libx11 + libdbusmenu-jb + ]; + + patches = [ ./headers.patch ]; + postPatch = '' + # Fix the build with CMake 4. + substituteInPlace CMakeLists.txt \ + --replace-fail 'cmake_minimum_required(VERSION 2.6.0)' 'cmake_minimum_required(VERSION 3.10)' + cp ${libdbusmenu-jb}/lib/libdbusmenu-glib.a libdbusmenu-glib.a + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + mv libdbm.so $out/lib/libdbm.so + + runHook postInstall + ''; + + meta = { + description = "libdbusmenu wrapper by JetBrains for their IDEs"; + homepage = "https://github.com/JetBrains/intellij-community/tree/master/native/LinuxGlobalMenu"; + license = lib.licenses.asl20; + teams = [ lib.teams.jetbrains ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/je/jetbrains-libdbm/requires-glib.patch b/pkgs/by-name/je/jetbrains-libdbm/requires-glib.patch new file mode 100644 index 000000000000..53cad2cf018f --- /dev/null +++ b/pkgs/by-name/je/jetbrains-libdbm/requires-glib.patch @@ -0,0 +1,11 @@ +--- a/libdbusmenu-glib/dbusmenu-glib-0.4.pc.in ++++ b/libdbusmenu-glib/dbusmenu-glib-0.4.pc.in +@@ -5,7 +5,7 @@ + includedir=@includedir@ + + Cflags: -I${includedir}/libdbusmenu-glib-0.4 +-Requires: ++Requires: glib-2.0 + Libs: -L${libdir} -ldbusmenu-glib + + Name: libdbusmenu-glib From 123044febc82476124912e0366beb195a37a79f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20=22Capypara=22=20K=C3=B6pcke?= Date: Tue, 1 Sep 2026 12:45:33 +0200 Subject: [PATCH 2/9] jetbrains.*: remove obsolete forceWayland flag --- pkgs/applications/editors/jetbrains/builder/default.nix | 3 +-- pkgs/applications/editors/jetbrains/builder/linux.nix | 8 +------- pkgs/applications/editors/jetbrains/default.nix | 3 +-- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/editors/jetbrains/builder/default.nix b/pkgs/applications/editors/jetbrains/builder/default.nix index b177af488630..4999422197f8 100644 --- a/pkgs/applications/editors/jetbrains/builder/default.nix +++ b/pkgs/applications/editors/jetbrains/builder/default.nix @@ -8,7 +8,6 @@ jdk, vmopts ? null, - forceWayland ? false, }: let baseBuilder = if stdenv.hostPlatform.isDarwin then ./darwin.nix else ./linux.nix; @@ -16,7 +15,7 @@ in # Makes a JetBrains IDE lib.extendMkDerivation { constructDrv = callPackage baseBuilder { - inherit vmopts jdk forceWayland; + inherit vmopts jdk; # Args to not pass to mkDerivation in the base builders. Since both get the same args # passed in, both have the same list of args to ignore, even if they don't both use # all of them. diff --git a/pkgs/applications/editors/jetbrains/builder/linux.nix b/pkgs/applications/editors/jetbrains/builder/linux.nix index 51e9eacf0ec0..76b86f075555 100644 --- a/pkgs/applications/editors/jetbrains/builder/linux.nix +++ b/pkgs/applications/editors/jetbrains/builder/linux.nix @@ -45,7 +45,6 @@ jdk, vmopts ? null, - forceWayland ? null, excludeDrvArgNames, }: @@ -78,11 +77,6 @@ lib.extendMkDerivation { loName = lib.toLower productShort; hiName = lib.toUpper productShort; vmoptsName = loName + lib.optionalString stdenv.hostPlatform.is64bit "64" + ".vmoptions"; - finalExtraWrapperArgs = - extraWrapperArgs - ++ lib.optionals forceWayland [ - ''--add-flags "\''${WAYLAND_DISPLAY:+-Dawt.toolkit.name=WLToolkit}"'' - ]; desktopItem = makeDesktopItem { name = finalAttrs.pname; @@ -214,7 +208,7 @@ lib.extendMkDerivation { }" \ --suffix PATH : "${lib.makeBinPath [ python3 ]}" \ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath extraLdPath}" \ - ${lib.concatStringsSep " " finalExtraWrapperArgs} \ + ${lib.concatStringsSep " " extraWrapperArgs} \ --set-default JDK_HOME "$jdk" \ --set-default ANDROID_JAVA_HOME "$jdk" \ --set-default JAVA_HOME "$jdk" \ diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index ef72555b3072..150e3303165b 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -8,14 +8,13 @@ jetbrains, vmopts ? null, - forceWayland ? false, }: let jetbrainsBuilder = jdk: callPackage ./builder/default.nix { - inherit jdk forceWayland vmopts; + inherit jdk vmopts; }; mkSrcIde = From 9dc7d746e2b30ce347e5c4cbc54d5ec598e6de02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20=22Capypara=22=20K=C3=B6pcke?= Date: Thu, 3 Sep 2026 16:56:49 +0200 Subject: [PATCH 3/9] jetbrains.jdk*: explicitly set platform to linux The Jetbrains JDK never built under Darwin. This change makes it work with `lib.meta.availableOn`. --- pkgs/development/compilers/jetbrains-jdk/common.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/jetbrains-jdk/common.nix b/pkgs/development/compilers/jetbrains-jdk/common.nix index 5c384711c3e6..ec2e3b70cf5d 100644 --- a/pkgs/development/compilers/jetbrains-jdk/common.nix +++ b/pkgs/development/compilers/jetbrains-jdk/common.nix @@ -223,11 +223,11 @@ jdk.overrideAttrs (oldAttrs: { your own risk. ''; homepage = "https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime"; - inherit (jdk.meta) license platforms mainProgram; + inherit (jdk.meta) license mainProgram; maintainers = with lib.maintainers; [ aoli-al ]; - broken = stdenv.hostPlatform.isDarwin; + platforms = lib.platforms.linux; }; }) From 5ece21d9e351bf4d02415fc34da4eb77a51f50f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=B6pcke?= Date: Tue, 11 Aug 2026 08:31:53 +0200 Subject: [PATCH 4/9] jetbrains.*: make builders reachable via top-level --- .../editors/jetbrains/builder/default.nix | 4 +- .../editors/jetbrains/builder/linux.nix | 2 +- .../editors/jetbrains/default.nix | 63 +++++++------------ .../editors/jetbrains/ides/clion.nix | 11 +++- .../editors/jetbrains/ides/datagrip.nix | 11 +++- .../editors/jetbrains/ides/dataspell.nix | 11 +++- .../editors/jetbrains/ides/gateway.nix | 11 +++- .../editors/jetbrains/ides/goland.nix | 11 +++- .../editors/jetbrains/ides/idea-oss.nix | 11 ++-- .../editors/jetbrains/ides/idea.nix | 11 +++- .../editors/jetbrains/ides/mps.nix | 11 +++- .../editors/jetbrains/ides/phpstorm.nix | 11 +++- .../editors/jetbrains/ides/pycharm-oss.nix | 11 ++-- .../editors/jetbrains/ides/pycharm.nix | 11 +++- .../editors/jetbrains/ides/rider.nix | 11 +++- .../editors/jetbrains/ides/ruby-mine.nix | 11 +++- .../editors/jetbrains/ides/rust-rover.nix | 11 +++- .../editors/jetbrains/ides/webstorm.nix | 11 +++- 18 files changed, 154 insertions(+), 80 deletions(-) diff --git a/pkgs/applications/editors/jetbrains/builder/default.nix b/pkgs/applications/editors/jetbrains/builder/default.nix index 4999422197f8..b6af82a518f5 100644 --- a/pkgs/applications/editors/jetbrains/builder/default.nix +++ b/pkgs/applications/editors/jetbrains/builder/default.nix @@ -5,8 +5,6 @@ stdenv, callPackage, - jdk, - vmopts ? null, }: let @@ -15,7 +13,7 @@ in # Makes a JetBrains IDE lib.extendMkDerivation { constructDrv = callPackage baseBuilder { - inherit vmopts jdk; + inherit vmopts; # Args to not pass to mkDerivation in the base builders. Since both get the same args # passed in, both have the same list of args to ignore, even if they don't both use # all of them. diff --git a/pkgs/applications/editors/jetbrains/builder/linux.nix b/pkgs/applications/editors/jetbrains/builder/linux.nix index 76b86f075555..8e2b738514ee 100644 --- a/pkgs/applications/editors/jetbrains/builder/linux.nix +++ b/pkgs/applications/editors/jetbrains/builder/linux.nix @@ -43,7 +43,6 @@ nss, pango, - jdk, vmopts ? null, excludeDrvArgNames, }: @@ -61,6 +60,7 @@ lib.extendMkDerivation { productShort ? product, wmClass, + jdk, jetbrains-libdbm, fsnotifier, diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 150e3303165b..3b76ea713b9b 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -11,33 +11,6 @@ }: let - jetbrainsBuilder = - jdk: - callPackage ./builder/default.nix { - inherit jdk vmopts; - }; - - mkSrcIde = - path: extras: - callPackage path ( - { - mkJetBrainsProduct = jetbrainsBuilder jetbrains.jdk; - mkJetBrainsSource = callPackage ./source/build.nix { }; - } - // extras - ); - - _idea-oss = mkSrcIde ./ides/idea-oss.nix { }; - - mkBinIde = - path: extras: - callPackage path ( - { - mkJetBrainsProduct = jetbrainsBuilder jetbrains.jdk-no-jcef; - } - // extras - ); - # Common build overrides, fixes, etc. # TODO: These should eventually be moved outside of this file pyCharmCommonOverrides = ( @@ -77,22 +50,28 @@ let ''; in { + # Builders + mkJetBrainsProduct = callPackage ./builder/default.nix { + inherit vmopts; + }; + mkJetBrainsSource = callPackage ./source/build.nix { }; + # Sorted alphabetically. Deprecated products and aliases are at the very end. - 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 = 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 { }; + clion = callPackage ./ides/clion.nix { inherit patchSharedLibs; }; + datagrip = callPackage ./ides/datagrip.nix { }; + dataspell = callPackage ./ides/dataspell.nix { }; + gateway = callPackage ./ides/gateway.nix { }; + goland = callPackage ./ides/goland.nix { }; + idea = callPackage ./ides/idea.nix { }; + idea-oss = callPackage ./ides/idea-oss.nix { }; + mps = callPackage ./ides/mps.nix { }; + phpstorm = callPackage ./ides/phpstorm.nix { }; + pycharm = callPackage ./ides/pycharm.nix { inherit pyCharmCommonOverrides; }; + pycharm-oss = callPackage ./ides/pycharm-oss.nix { inherit pyCharmCommonOverrides; }; + rider = callPackage ./ides/rider.nix { inherit patchSharedLibs; }; + ruby-mine = callPackage ./ides/ruby-mine.nix { }; + rust-rover = callPackage ./ides/rust-rover.nix { inherit patchSharedLibs; }; + webstorm = callPackage ./ides/webstorm.nix { }; # Plugins plugins = callPackage ./plugins { }; diff --git a/pkgs/applications/editors/jetbrains/ides/clion.nix b/pkgs/applications/editors/jetbrains/ides/clion.nix index 728d6c883bb9..601049a1d8de 100644 --- a/pkgs/applications/editors/jetbrains/ides/clion.nix +++ b/pkgs/applications/editors/jetbrains/ides/clion.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, patchSharedLibs, @@ -35,7 +35,7 @@ let }; # update-script-end: urls in -(mkJetBrainsProduct { +(jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "clion"; @@ -50,6 +50,13 @@ in src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ python3 diff --git a/pkgs/applications/editors/jetbrains/ides/datagrip.nix b/pkgs/applications/editors/jetbrains/ides/datagrip.nix index d71bacde35ef..734eedc79ef4 100644 --- a/pkgs/applications/editors/jetbrains/ides/datagrip.nix +++ b/pkgs/applications/editors/jetbrains/ides/datagrip.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, @@ -26,7 +26,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "datagrip"; @@ -41,6 +41,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + # NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed meta = { homepage = "https://www.jetbrains.com/datagrip/"; diff --git a/pkgs/applications/editors/jetbrains/ides/dataspell.nix b/pkgs/applications/editors/jetbrains/ides/dataspell.nix index 7d8801e3aa61..e020f1fae2fa 100644 --- a/pkgs/applications/editors/jetbrains/ides/dataspell.nix +++ b/pkgs/applications/editors/jetbrains/ides/dataspell.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, libgcc, @@ -28,7 +28,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "dataspell"; @@ -43,6 +43,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + # NOTE: This `lib.optionals` is only here because the old Darwin builder ignored `buildInputs`. # DataSpell may need these, even on Darwin! buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ diff --git a/pkgs/applications/editors/jetbrains/ides/gateway.nix b/pkgs/applications/editors/jetbrains/ides/gateway.nix index d69ba08f88f6..cc42a930bde3 100644 --- a/pkgs/applications/editors/jetbrains/ides/gateway.nix +++ b/pkgs/applications/editors/jetbrains/ides/gateway.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, libgcc, @@ -26,7 +26,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "gateway"; @@ -42,6 +42,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + buildInputs = [ libgcc ]; diff --git a/pkgs/applications/editors/jetbrains/ides/goland.nix b/pkgs/applications/editors/jetbrains/ides/goland.nix index 3c3bfd2ad668..fcd83439ace1 100644 --- a/pkgs/applications/editors/jetbrains/ides/goland.nix +++ b/pkgs/applications/editors/jetbrains/ides/goland.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, libgcc, @@ -26,7 +26,7 @@ let }; # update-script-end: urls in -(mkJetBrainsProduct { +(jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "goland"; @@ -41,6 +41,13 @@ in src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + extraWrapperArgs = [ # fortify source breaks build since delve compiles with -O0 ''--prefix CGO_CPPFLAGS " " "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"'' diff --git a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix index 27ba027c971b..1a37e4e826cc 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix @@ -1,13 +1,13 @@ { fsnotifier, lib, - mkJetBrainsProduct, - mkJetBrainsSource, + jetbrains, maven, + stdenv, zlib, }: let - src = mkJetBrainsSource { + src = jetbrains.mkJetBrainsSource { # update-script-start: source-args version = "2025.3.4"; buildNumber = "253.32098.37"; @@ -36,7 +36,7 @@ let # update-script-end: source-args }; in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit src fsnotifier; inherit (src) version @@ -45,6 +45,9 @@ mkJetBrainsProduct { # this is jetbrains-libdbm but using the sources from the IDE build. jetbrains-libdbm = src.libdbm; + # the jdk is bundled on Darwin. + jdk = if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk then jetbrains.jdk else null; + pname = "idea-oss"; wmClass = "jetbrains-idea-ce"; diff --git a/pkgs/applications/editors/jetbrains/ides/idea.nix b/pkgs/applications/editors/jetbrains/ides/idea.nix index d47883247f52..1930e6a11f6f 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, maven, @@ -29,7 +29,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "idea"; @@ -45,6 +45,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + extraLdPath = [ zlib ]; extraWrapperArgs = [ ''--set M2_HOME "${maven}/maven"'' diff --git a/pkgs/applications/editors/jetbrains/ides/mps.nix b/pkgs/applications/editors/jetbrains/ides/mps.nix index f440d9e3aa75..b7678cbd8ab8 100644 --- a/pkgs/applications/editors/jetbrains/ides/mps.nix +++ b/pkgs/applications/editors/jetbrains/ides/mps.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, @@ -26,7 +26,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "mps"; @@ -41,6 +41,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + # NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed meta = { homepage = "https://www.jetbrains.com/mps/"; diff --git a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix index a445f90ca698..f9e52f10160c 100644 --- a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, musl, @@ -26,7 +26,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "phpstorm"; @@ -41,6 +41,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ musl ]; diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix index 0b46b66d07b6..ab2589932e71 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix @@ -1,12 +1,12 @@ { fsnotifier, lib, - mkJetBrainsProduct, - mkJetBrainsSource, + jetbrains, + stdenv, pyCharmCommonOverrides, }: let - src = mkJetBrainsSource { + src = jetbrains.mkJetBrainsSource { # update-script-start: source-args version = "2025.3.3"; buildNumber = "253.31033.139"; @@ -35,7 +35,7 @@ let # update-script-end: source-args }; in -(mkJetBrainsProduct { +(jetbrains.mkJetBrainsProduct { inherit src fsnotifier; inherit (src) version @@ -44,6 +44,9 @@ in # this is jetbrains-libdbm but using the sources from the IDE build. jetbrains-libdbm = src.libdbm; + # the jdk is bundled on Darwin. + jdk = if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk then jetbrains.jdk else null; + pname = "pycharm-oss"; wmClass = "jetbrains-pycharm-ce"; diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm.nix b/pkgs/applications/editors/jetbrains/ides/pycharm.nix index 0e3419109f89..9faa88611952 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, pyCharmCommonOverrides, @@ -27,7 +27,7 @@ let }; # update-script-end: urls in -(mkJetBrainsProduct { +(jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "pycharm"; @@ -42,6 +42,13 @@ in src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ musl ]; diff --git a/pkgs/applications/editors/jetbrains/ides/rider.nix b/pkgs/applications/editors/jetbrains/ides/rider.nix index ee893e6520ac..059a4c0ddd9f 100644 --- a/pkgs/applications/editors/jetbrains/ides/rider.nix +++ b/pkgs/applications/editors/jetbrains/ides/rider.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, patchSharedLibs, @@ -38,7 +38,7 @@ let }; # update-script-end: urls in -(mkJetBrainsProduct { +(jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "rider"; @@ -53,6 +53,13 @@ in src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + # TODO: Some of these dependencies should probably also be added on Darwin - however it seems that JetBrains bundles them all? Unclear. # Somebody with a Darwin machine should investigate this. buildInputs = diff --git a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix index 3c39095a70b4..a42d445b99ba 100644 --- a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix +++ b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, musl, @@ -26,7 +26,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "ruby-mine"; @@ -41,6 +41,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ musl ]; diff --git a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix index 58ac4cd4b307..75fafb24611b 100644 --- a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix +++ b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, patchSharedLibs, @@ -32,7 +32,7 @@ let }; # update-script-end: urls in -(mkJetBrainsProduct { +(jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "rust-rover"; @@ -47,6 +47,13 @@ in src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ python3 diff --git a/pkgs/applications/editors/jetbrains/ides/webstorm.nix b/pkgs/applications/editors/jetbrains/ides/webstorm.nix index 4ac14ac9289d..36e7cecf700d 100644 --- a/pkgs/applications/editors/jetbrains/ides/webstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/webstorm.nix @@ -2,7 +2,7 @@ stdenv, lib, fetchurl, - mkJetBrainsProduct, + jetbrains, jetbrains-libdbm, fsnotifier, musl, @@ -26,7 +26,7 @@ let }; # update-script-end: urls in -mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "webstorm"; @@ -41,6 +41,13 @@ mkJetBrainsProduct { src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}")); + # the jdk is bundled on Darwin. + jdk = + if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk-no-jcef then + jetbrains.jdk-no-jcef + else + null; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ musl ]; From 6bf57108320b814e92d52ff7b19369ae50b86b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=B6pcke?= Date: Tue, 11 Aug 2026 08:31:59 +0200 Subject: [PATCH 5/9] jetbrains.pycharm{-oss}: migrate common overrides to hook Co-Authored-By: Matt Sturgeon --- .../editors/jetbrains/default.nix | 29 ++++--------------- .../hooks/cython-debug-speedups-hook.sh | 12 ++++++++ .../jetbrains/hooks/cython-debug-speedups.nix | 20 +++++++++++++ .../editors/jetbrains/ides/pycharm-oss.nix | 13 ++++++--- .../editors/jetbrains/ides/pycharm.nix | 13 ++++++--- 5 files changed, 55 insertions(+), 32 deletions(-) create mode 100644 pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups-hook.sh create mode 100644 pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 3b76ea713b9b..7416e8d4898a 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -4,7 +4,6 @@ stdenv, callPackage, - python3, jetbrains, vmopts ? null, @@ -13,27 +12,6 @@ let # 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 - ]; - 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 - } - ); patchSharedLibs = lib.optionalString stdenv.hostPlatform.isLinux '' ls -d \ $out/*/bin/*/linux/*/lib/liblldb.so \ @@ -56,6 +34,9 @@ in }; mkJetBrainsSource = callPackage ./source/build.nix { }; + # Hooks + cythonDebugSpeedupsHook = callPackage ./hooks/cython-debug-speedups.nix { }; + # Sorted alphabetically. Deprecated products and aliases are at the very end. clion = callPackage ./ides/clion.nix { inherit patchSharedLibs; }; datagrip = callPackage ./ides/datagrip.nix { }; @@ -66,8 +47,8 @@ in idea-oss = callPackage ./ides/idea-oss.nix { }; mps = callPackage ./ides/mps.nix { }; phpstorm = callPackage ./ides/phpstorm.nix { }; - pycharm = callPackage ./ides/pycharm.nix { inherit pyCharmCommonOverrides; }; - pycharm-oss = callPackage ./ides/pycharm-oss.nix { inherit pyCharmCommonOverrides; }; + pycharm = callPackage ./ides/pycharm.nix { }; + pycharm-oss = callPackage ./ides/pycharm-oss.nix { }; rider = callPackage ./ides/rider.nix { inherit patchSharedLibs; }; ruby-mine = callPackage ./ides/ruby-mine.nix { }; rust-rover = callPackage ./ides/rust-rover.nix { inherit patchSharedLibs; }; diff --git a/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups-hook.sh b/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups-hook.sh new file mode 100644 index 000000000000..e6a6be836184 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups-hook.sh @@ -0,0 +1,12 @@ +#!@shell@ + +compileCythonDebugSpeedupsHook() { + echo "compiling cython debug speedups" >&2 + if [[ -d plugins/python-ce ]]; then + @python@ plugins/python-ce/helpers/pydev/setup_cython.py build_ext --inplace + else + @python@ plugins/python/helpers/pydev/setup_cython.py build_ext --inplace + fi +} + +preInstallHooks+=(compileCythonDebugSpeedupsHook) diff --git a/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix b/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix new file mode 100644 index 000000000000..d0c274fea34d --- /dev/null +++ b/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix @@ -0,0 +1,20 @@ +{ + bash, + lib, + makeSetupHook, + python3, +}: +/** + See https://www.jetbrains.com/help/pycharm/2026.2/cython-speedups.html +*/ +makeSetupHook { + name = "cython-debug-speedups-hook"; + substitutions = { + shell = lib.getExe bash; + python = python3.interpreter; + }; + meta = { + description = "Setup hook that applies Cython-based debugger speedups from JetBrains"; + teams = [ lib.teams.jetbrains ]; + }; +} ./cython-debug-speedups-hook.sh diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix index ab2589932e71..b22febebeb1e 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix @@ -3,7 +3,7 @@ lib, jetbrains, stdenv, - pyCharmCommonOverrides, + python3, }: let src = jetbrains.mkJetBrainsSource { @@ -35,7 +35,7 @@ let # update-script-end: source-args }; in -(jetbrains.mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit src fsnotifier; inherit (src) version @@ -53,6 +53,12 @@ in product = "PyCharm Open Source"; productShort = "PyCharm"; + nativeBuildInputs = [ + python3 + python3.pkgs.setuptools + jetbrains.cythonDebugSpeedupsHook + ]; + # NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed meta = { homepage = "https://www.jetbrains.com/pycharm/"; @@ -74,5 +80,4 @@ in '' ]; }; -}).overrideAttrs - pyCharmCommonOverrides +} diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm.nix b/pkgs/applications/editors/jetbrains/ides/pycharm.nix index 9faa88611952..91558c70fe5b 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm.nix @@ -5,8 +5,8 @@ jetbrains, jetbrains-libdbm, fsnotifier, - pyCharmCommonOverrides, musl, + python3, }: let system = stdenv.hostPlatform.system; @@ -27,7 +27,7 @@ let }; # update-script-end: urls in -(jetbrains.mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "pycharm"; @@ -49,6 +49,12 @@ in else null; + nativeBuildInputs = [ + python3 + python3.pkgs.setuptools + jetbrains.cythonDebugSpeedupsHook + ]; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ musl ]; @@ -72,5 +78,4 @@ in else [ lib.sourceTypes.binaryBytecode ]; }; -}).overrideAttrs - pyCharmCommonOverrides +} From a154ca7e6d59327ba507fec160ef9abb087f9d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=B6pcke?= Date: Tue, 11 Aug 2026 08:32:03 +0200 Subject: [PATCH 6/9] jetbrains.clion,rider,rust-rover: migrate common fixups to hook --- .../editors/jetbrains/default.nix | 26 +++---------------- .../jetbrains/hooks/shared-libs-hook.sh | 18 +++++++++++++ .../editors/jetbrains/hooks/shared-libs.nix | 17 ++++++++++++ .../editors/jetbrains/ides/clion.nix | 8 ++---- .../editors/jetbrains/ides/rider.nix | 5 ++-- .../editors/jetbrains/ides/rust-rover.nix | 13 +++------- 6 files changed, 47 insertions(+), 40 deletions(-) create mode 100644 pkgs/applications/editors/jetbrains/hooks/shared-libs-hook.sh create mode 100644 pkgs/applications/editors/jetbrains/hooks/shared-libs.nix diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 7416e8d4898a..0825655eb876 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -8,25 +8,6 @@ vmopts ? null, }: - -let - # Common build overrides, fixes, etc. - # TODO: These should eventually be moved outside of this file - patchSharedLibs = lib.optionalString stdenv.hostPlatform.isLinux '' - ls -d \ - $out/*/bin/*/linux/*/lib/liblldb.so \ - $out/*/bin/*/linux/*/lib/python3.*/lib-dynload/* \ - $out/*/plugins/*/bin/*/linux/*/lib/liblldb.so \ - $out/*/plugins/*/bin/*/linux/*/lib/python3.*/lib-dynload/* | - xargs patchelf \ - --replace-needed libssl.so.10 libssl.so \ - --replace-needed libssl.so.1.1 libssl.so \ - --replace-needed libcrypto.so.10 libcrypto.so \ - --replace-needed libcrypto.so.1.1 libcrypto.so \ - --replace-needed libcrypt.so.1 libcrypt.so \ - ${lib.optionalString stdenv.hostPlatform.isAarch "--replace-needed libxml2.so.2 libxml2.so"} - ''; -in { # Builders mkJetBrainsProduct = callPackage ./builder/default.nix { @@ -36,9 +17,10 @@ in # Hooks cythonDebugSpeedupsHook = callPackage ./hooks/cython-debug-speedups.nix { }; + sharedLibsHook = callPackage ./hooks/shared-libs.nix { }; # Sorted alphabetically. Deprecated products and aliases are at the very end. - clion = callPackage ./ides/clion.nix { inherit patchSharedLibs; }; + clion = callPackage ./ides/clion.nix { }; datagrip = callPackage ./ides/datagrip.nix { }; dataspell = callPackage ./ides/dataspell.nix { }; gateway = callPackage ./ides/gateway.nix { }; @@ -49,9 +31,9 @@ in phpstorm = callPackage ./ides/phpstorm.nix { }; pycharm = callPackage ./ides/pycharm.nix { }; pycharm-oss = callPackage ./ides/pycharm-oss.nix { }; - rider = callPackage ./ides/rider.nix { inherit patchSharedLibs; }; + rider = callPackage ./ides/rider.nix { }; ruby-mine = callPackage ./ides/ruby-mine.nix { }; - rust-rover = callPackage ./ides/rust-rover.nix { inherit patchSharedLibs; }; + rust-rover = callPackage ./ides/rust-rover.nix { }; webstorm = callPackage ./ides/webstorm.nix { }; # Plugins diff --git a/pkgs/applications/editors/jetbrains/hooks/shared-libs-hook.sh b/pkgs/applications/editors/jetbrains/hooks/shared-libs-hook.sh new file mode 100644 index 000000000000..c605bfaa36d9 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/hooks/shared-libs-hook.sh @@ -0,0 +1,18 @@ +#!@shell@ + +jetbrainsPatchSharedLibs() { + ls -d \ + $out/*/bin/*/linux/*/lib/liblldb.so \ + $out/*/bin/*/linux/*/lib/python3.*/lib-dynload/* \ + $out/*/plugins/*/bin/*/linux/*/lib/liblldb.so \ + $out/*/plugins/*/bin/*/linux/*/lib/python3.*/lib-dynload/* | + xargs @patchelf@ \ + --replace-needed libssl.so.10 libssl.so \ + --replace-needed libssl.so.1.1 libssl.so \ + --replace-needed libcrypto.so.10 libcrypto.so \ + --replace-needed libcrypto.so.1.1 libcrypto.so \ + --replace-needed libcrypt.so.1 libcrypt.so \ + @darwinLibxml@ +} + +preFixupHooks+=(jetbrainsPatchSharedLibs) diff --git a/pkgs/applications/editors/jetbrains/hooks/shared-libs.nix b/pkgs/applications/editors/jetbrains/hooks/shared-libs.nix new file mode 100644 index 000000000000..73c90392fc35 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/hooks/shared-libs.nix @@ -0,0 +1,17 @@ +{ + lib, + stdenv, + makeSetupHook, + patchelf, +}: +makeSetupHook { + name = "shared-libs-hook"; + substitutions = { + patchelf = lib.getExe patchelf; + darwinLibxml = lib.optionalString stdenv.hostPlatform.isAarch "--replace-needed libxml2.so.2 libxml2.so"; + }; + meta = { + description = "Setup hook that rewrites sonames in libraries bundled with JetBrains IDEs"; + teams = [ lib.teams.jetbrains ]; + }; +} ./shared-libs-hook.sh diff --git a/pkgs/applications/editors/jetbrains/ides/clion.nix b/pkgs/applications/editors/jetbrains/ides/clion.nix index 601049a1d8de..b6c4ea14f04c 100644 --- a/pkgs/applications/editors/jetbrains/ides/clion.nix +++ b/pkgs/applications/editors/jetbrains/ides/clion.nix @@ -5,7 +5,6 @@ jetbrains, jetbrains-libdbm, fsnotifier, - patchSharedLibs, dotnetCorePackages, python3, openssl, @@ -57,6 +56,8 @@ in else null; + nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ jetbrains.sharedLibsHook ]; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ python3 @@ -97,9 +98,4 @@ in 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/rider.nix b/pkgs/applications/editors/jetbrains/ides/rider.nix index 059a4c0ddd9f..66e177cc0712 100644 --- a/pkgs/applications/editors/jetbrains/ides/rider.nix +++ b/pkgs/applications/editors/jetbrains/ides/rider.nix @@ -5,7 +5,6 @@ jetbrains, jetbrains-libdbm, fsnotifier, - patchSharedLibs, openssl, libxcrypt, lttng-ust_2_12, @@ -60,6 +59,8 @@ in else null; + nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ jetbrains.sharedLibsHook ]; + # TODO: Some of these dependencies should probably also be added on Darwin - however it seems that JetBrains bundles them all? Unclear. # Somebody with a Darwin machine should investigate this. buildInputs = @@ -104,8 +105,6 @@ in 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 diff --git a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix index 75fafb24611b..58ffde3229b8 100644 --- a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix +++ b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix @@ -5,7 +5,6 @@ jetbrains, jetbrains-libdbm, fsnotifier, - patchSharedLibs, python3, openssl, libxcrypt-legacy, @@ -32,7 +31,7 @@ let }; # update-script-end: urls in -(jetbrains.mkJetBrainsProduct { +jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; pname = "rust-rover"; @@ -54,6 +53,8 @@ in else null; + nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ jetbrains.sharedLibsHook ]; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ python3 @@ -79,10 +80,4 @@ in else [ lib.sourceTypes.binaryBytecode ]; }; -}).overrideAttrs - (attrs: { - postFixup = '' - ${attrs.postFixup or ""} - ${patchSharedLibs} - ''; - }) +} From 1ca2b7cb0292298091d2929d4d25df585a57be4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=B6pcke?= Date: Tue, 11 Aug 2026 08:32:15 +0200 Subject: [PATCH 7/9] jetbrains.*: move jetbrains team assignment to individual IDEs Since the packages will move to by-name and the builder is "public" I don't think it's desired or obvious to add the team in the builder. --- pkgs/applications/editors/jetbrains/builder/default.nix | 4 ---- pkgs/applications/editors/jetbrains/ides/clion.nix | 1 + pkgs/applications/editors/jetbrains/ides/datagrip.nix | 1 + pkgs/applications/editors/jetbrains/ides/dataspell.nix | 1 + pkgs/applications/editors/jetbrains/ides/gateway.nix | 1 + pkgs/applications/editors/jetbrains/ides/goland.nix | 1 + pkgs/applications/editors/jetbrains/ides/idea-oss.nix | 1 + pkgs/applications/editors/jetbrains/ides/idea.nix | 1 + pkgs/applications/editors/jetbrains/ides/mps.nix | 1 + pkgs/applications/editors/jetbrains/ides/phpstorm.nix | 1 + pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix | 1 + pkgs/applications/editors/jetbrains/ides/pycharm.nix | 1 + pkgs/applications/editors/jetbrains/ides/rider.nix | 1 + pkgs/applications/editors/jetbrains/ides/ruby-mine.nix | 1 + pkgs/applications/editors/jetbrains/ides/rust-rover.nix | 1 + pkgs/applications/editors/jetbrains/ides/webstorm.nix | 1 + 16 files changed, 15 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/jetbrains/builder/default.nix b/pkgs/applications/editors/jetbrains/builder/default.nix index b6af82a518f5..f9af1e8268a4 100644 --- a/pkgs/applications/editors/jetbrains/builder/default.nix +++ b/pkgs/applications/editors/jetbrains/builder/default.nix @@ -58,9 +58,5 @@ lib.extendMkDerivation { plugins = callPackage ../plugins/tests.nix { ide = finalAttrs.finalPackage; }; }; }; - - meta = meta // { - teams = [ lib.teams.jetbrains ]; - }; }; } diff --git a/pkgs/applications/editors/jetbrains/ides/clion.nix b/pkgs/applications/editors/jetbrains/ides/clion.nix index b6c4ea14f04c..93016d2e056b 100644 --- a/pkgs/applications/editors/jetbrains/ides/clion.nix +++ b/pkgs/applications/editors/jetbrains/ides/clion.nix @@ -81,6 +81,7 @@ in mic92 tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/datagrip.nix b/pkgs/applications/editors/jetbrains/ides/datagrip.nix index 734eedc79ef4..f0967ff22ab6 100644 --- a/pkgs/applications/editors/jetbrains/ides/datagrip.nix +++ b/pkgs/applications/editors/jetbrains/ides/datagrip.nix @@ -57,6 +57,7 @@ jetbrains.mkJetBrainsProduct { It allows you to quickly migrate and refactor relational databases, construct efficient, statically checked SQL queries and much more. ''; maintainers = [ ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/dataspell.nix b/pkgs/applications/editors/jetbrains/ides/dataspell.nix index e020f1fae2fa..ae5fc403a7e9 100644 --- a/pkgs/applications/editors/jetbrains/ides/dataspell.nix +++ b/pkgs/applications/editors/jetbrains/ides/dataspell.nix @@ -69,6 +69,7 @@ jetbrains.mkJetBrainsProduct { Mainly it integrates Jupyter notebooks in the IntelliJ platform. ''; maintainers = with lib.maintainers; [ leona ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/gateway.nix b/pkgs/applications/editors/jetbrains/ides/gateway.nix index cc42a930bde3..54ff1f89623b 100644 --- a/pkgs/applications/editors/jetbrains/ides/gateway.nix +++ b/pkgs/applications/editors/jetbrains/ides/gateway.nix @@ -59,6 +59,7 @@ jetbrains.mkJetBrainsProduct { description = "Remote development for JetBrains products"; longDescription = "JetBrains Gateway is a lightweight launcher that connects a remote server with your local machine and opens your project in JetBrains Client."; maintainers = [ ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/goland.nix b/pkgs/applications/editors/jetbrains/ides/goland.nix index fcd83439ace1..f528a37485c2 100644 --- a/pkgs/applications/editors/jetbrains/ides/goland.nix +++ b/pkgs/applications/editors/jetbrains/ides/goland.nix @@ -65,6 +65,7 @@ in The IDE extends the IntelliJ platform with the coding assistance and tool integrations specific for the Go language. ''; maintainers = with lib.maintainers; [ tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix index 1a37e4e826cc..f002653e5e10 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix @@ -72,6 +72,7 @@ jetbrains.mkJetBrainsProduct { gytis-ivaskevicius tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.asl20; sourceProvenance = [ lib.sourceTypes.fromSource ]; knownVulnerabilities = [ diff --git a/pkgs/applications/editors/jetbrains/ides/idea.nix b/pkgs/applications/editors/jetbrains/ides/idea.nix index 1930e6a11f6f..0efae7bfa7d8 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea.nix @@ -75,6 +75,7 @@ jetbrains.mkJetBrainsProduct { gytis-ivaskevicius tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/mps.nix b/pkgs/applications/editors/jetbrains/ides/mps.nix index b7678cbd8ab8..acb0e16b1d22 100644 --- a/pkgs/applications/editors/jetbrains/ides/mps.nix +++ b/pkgs/applications/editors/jetbrains/ides/mps.nix @@ -54,6 +54,7 @@ jetbrains.mkJetBrainsProduct { 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 = [ ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix index f9e52f10160c..943a9a66ce1c 100644 --- a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix @@ -58,6 +58,7 @@ jetbrains.mkJetBrainsProduct { 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; [ tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix index b22febebeb1e..b1a8ae9a6080 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix @@ -71,6 +71,7 @@ jetbrains.mkJetBrainsProduct { maintainers = with lib.maintainers; [ tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.asl20; sourceProvenance = [ lib.sourceTypes.fromSource ]; knownVulnerabilities = [ diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm.nix b/pkgs/applications/editors/jetbrains/ides/pycharm.nix index 91558c70fe5b..3aee85ae21cd 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm.nix @@ -71,6 +71,7 @@ jetbrains.mkJetBrainsProduct { maintainers = with lib.maintainers; [ tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/rider.nix b/pkgs/applications/editors/jetbrains/ides/rider.nix index 66e177cc0712..5c352f11e8b4 100644 --- a/pkgs/applications/editors/jetbrains/ides/rider.nix +++ b/pkgs/applications/editors/jetbrains/ides/rider.nix @@ -93,6 +93,7 @@ in 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 ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix index a42d445b99ba..fe15a25f5d5f 100644 --- a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix +++ b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix @@ -58,6 +58,7 @@ jetbrains.mkJetBrainsProduct { description = "Ruby IDE from JetBrains"; longDescription = "Ruby IDE from JetBrains"; maintainers = with lib.maintainers; [ tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix index 58ffde3229b8..0f9478cd0c0c 100644 --- a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix +++ b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix @@ -73,6 +73,7 @@ jetbrains.mkJetBrainsProduct { description = "Rust IDE from JetBrains"; longDescription = "Rust IDE from JetBrains"; maintainers = [ ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then diff --git a/pkgs/applications/editors/jetbrains/ides/webstorm.nix b/pkgs/applications/editors/jetbrains/ides/webstorm.nix index 36e7cecf700d..2b984ffdbea3 100644 --- a/pkgs/applications/editors/jetbrains/ides/webstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/webstorm.nix @@ -61,6 +61,7 @@ jetbrains.mkJetBrainsProduct { abaldeau tymscar ]; + teams = [ lib.teams.jetbrains ]; license = lib.licenses.unfree; sourceProvenance = if stdenv.hostPlatform.isDarwin then From c9211d1b1fb6e488481a1f764e5b560655ebd35d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=B6pcke?= Date: Tue, 11 Aug 2026 08:32:20 +0200 Subject: [PATCH 8/9] jetbrains.*: sort parameters and inputs alphabetically --- .../editors/jetbrains/builder/darwin.nix | 2 + .../editors/jetbrains/builder/default.nix | 4 +- .../editors/jetbrains/builder/linux.nix | 73 ++++++++++--------- .../editors/jetbrains/default.nix | 10 +-- .../jetbrains/hooks/cython-debug-speedups.nix | 2 + .../editors/jetbrains/hooks/shared-libs.nix | 4 +- .../editors/jetbrains/ides/clion.nix | 18 +++-- .../editors/jetbrains/ides/datagrip.nix | 9 ++- .../editors/jetbrains/ides/dataspell.nix | 10 ++- .../editors/jetbrains/ides/gateway.nix | 8 +- .../editors/jetbrains/ides/goland.nix | 8 +- .../editors/jetbrains/ides/idea-oss.nix | 4 +- .../editors/jetbrains/ides/idea.nix | 14 ++-- .../editors/jetbrains/ides/mps.nix | 9 ++- .../editors/jetbrains/ides/phpstorm.nix | 8 +- .../editors/jetbrains/ides/pycharm-oss.nix | 10 ++- .../editors/jetbrains/ides/pycharm.nix | 12 ++- .../editors/jetbrains/ides/rider.nix | 31 +++++--- .../editors/jetbrains/ides/ruby-mine.nix | 8 +- .../editors/jetbrains/ides/rust-rover.nix | 22 ++++-- .../editors/jetbrains/ides/webstorm.nix | 8 +- .../editors/jetbrains/plugins/default.nix | 10 ++- .../editors/jetbrains/plugins/tests.nix | 15 ++-- .../editors/jetbrains/source/build.nix | 29 +++++--- .../editors/jetbrains/source/jps_repo.nix | 7 +- 25 files changed, 203 insertions(+), 132 deletions(-) diff --git a/pkgs/applications/editors/jetbrains/builder/darwin.nix b/pkgs/applications/editors/jetbrains/builder/darwin.nix index cbff08c7a606..247ae522b39a 100644 --- a/pkgs/applications/editors/jetbrains/builder/darwin.nix +++ b/pkgs/applications/editors/jetbrains/builder/darwin.nix @@ -1,9 +1,11 @@ # Darwin-specific base builder. { + # keep-sorted start lib, stdenvNoCC, undmg, + # keep-sorted end excludeDrvArgNames, ... diff --git a/pkgs/applications/editors/jetbrains/builder/default.nix b/pkgs/applications/editors/jetbrains/builder/default.nix index f9af1e8268a4..1728ea3571c1 100644 --- a/pkgs/applications/editors/jetbrains/builder/default.nix +++ b/pkgs/applications/editors/jetbrains/builder/default.nix @@ -1,9 +1,11 @@ # Builder for JetBrains IDEs (`mkJetBrainsProduct`) { + # keep-sorted start + callPackage, lib, stdenv, - callPackage, + # keep-sorted end vmopts ? null, }: diff --git a/pkgs/applications/editors/jetbrains/builder/linux.nix b/pkgs/applications/editors/jetbrains/builder/linux.nix index 8e2b738514ee..2a7987d36d35 100644 --- a/pkgs/applications/editors/jetbrains/builder/linux.nix +++ b/pkgs/applications/editors/jetbrains/builder/linux.nix @@ -1,37 +1,27 @@ # Linux-specific base builder. { - stdenv, - lib, - makeDesktopItem, - makeWrapper, - patchelf, - writeText, - coreutils, - gnugrep, - which, - git, - unzip, - libsecret, - libnotify, - udev, - e2fsprogs, - python3, - autoPatchelfHook, - glibcLocales, - fontconfig, - libGL, - libx11, - - # bundled jcef-plugin + # keep-sorted start alsa-lib, at-spi2-atk, at-spi2-core, atk, + autoPatchelfHook, cairo, + coreutils, cups, dbus, + e2fsprogs, + fontconfig, + git, + glibcLocales, + gnugrep, + lib, + libGL, libgbm, + libnotify, + libsecret, + libx11, libxcb, libxcomposite, libxdamage, @@ -39,9 +29,19 @@ libxfixes, libxkbcommon, libxrandr, + makeDesktopItem, + makeWrapper, nspr, nss, pango, + patchelf, + python3, + stdenv, + udev, + unzip, + which, + writeText, + # keep-sorted end vmopts ? null, excludeDrvArgNames, @@ -96,12 +96,7 @@ lib.extendMkDerivation { inherit desktopItem vmoptsIDE vmoptsFile; buildInputs = buildInputs ++ [ - stdenv.cc.cc - fontconfig - libGL - libx11 - # required for the bundled jcef-plugin - udev + # keep-sorted start alsa-lib at-spi2-atk at-spi2-core @@ -109,7 +104,10 @@ lib.extendMkDerivation { cairo cups dbus + fontconfig + libGL libgbm + libx11 libxcb libxcomposite libxdamage @@ -120,13 +118,18 @@ lib.extendMkDerivation { nspr nss pango + stdenv.cc.cc + udev + # keep-sorted end ]; nativeBuildInputs = nativeBuildInputs ++ [ + # keep-sorted start + autoPatchelfHook makeWrapper patchelf unzip - autoPatchelfHook + # keep-sorted end ]; postPatch = '' @@ -161,11 +164,9 @@ lib.extendMkDerivation { fi echo -Djna.library.path=${ lib.makeLibraryPath [ - libsecret e2fsprogs libnotify - # Required for Help -> Collect Logs - # in at least rider and goland + libsecret udev ] } >> $vmopts_file @@ -199,11 +200,11 @@ lib.extendMkDerivation { wrapProgram "$launcher" \ --prefix PATH : "${ lib.makeBinPath [ - jdk coreutils - gnugrep - which git + gnugrep + jdk + which ] }" \ --suffix PATH : "${lib.makeBinPath [ python3 ]}" \ diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 0825655eb876..f9fd6cdb2a5b 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -1,10 +1,10 @@ { - lib, - config, - stdenv, + # keep-sorted start callPackage, - - jetbrains, + config, + lib, + stdenv, + # keep-sorted end vmopts ? null, }: diff --git a/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix b/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix index d0c274fea34d..4d2901368a43 100644 --- a/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix +++ b/pkgs/applications/editors/jetbrains/hooks/cython-debug-speedups.nix @@ -1,8 +1,10 @@ { + # keep-sorted start bash, lib, makeSetupHook, python3, + # keep-sorted end }: /** See https://www.jetbrains.com/help/pycharm/2026.2/cython-speedups.html diff --git a/pkgs/applications/editors/jetbrains/hooks/shared-libs.nix b/pkgs/applications/editors/jetbrains/hooks/shared-libs.nix index 73c90392fc35..9207897e3314 100644 --- a/pkgs/applications/editors/jetbrains/hooks/shared-libs.nix +++ b/pkgs/applications/editors/jetbrains/hooks/shared-libs.nix @@ -1,8 +1,10 @@ { + # keep-sorted start lib, - stdenv, makeSetupHook, patchelf, + stdenv, + # keep-sorted end }: makeSetupHook { name = "shared-libs-hook"; diff --git a/pkgs/applications/editors/jetbrains/ides/clion.nix b/pkgs/applications/editors/jetbrains/ides/clion.nix index 93016d2e056b..972213c543c8 100644 --- a/pkgs/applications/editors/jetbrains/ides/clion.nix +++ b/pkgs/applications/editors/jetbrains/ides/clion.nix @@ -1,19 +1,21 @@ { - stdenv, - lib, + # keep-sorted start + dotnetCorePackages, + expat, fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, - dotnetCorePackages, - python3, - openssl, + lib, libxcrypt-legacy, + libxml2, lttng-ust_2_12, musl, - expat, - libxml2, + openssl, + python3, + stdenv, xz, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/datagrip.nix b/pkgs/applications/editors/jetbrains/ides/datagrip.nix index f0967ff22ab6..d040d2c2857c 100644 --- a/pkgs/applications/editors/jetbrains/ides/datagrip.nix +++ b/pkgs/applications/editors/jetbrains/ides/datagrip.nix @@ -1,11 +1,12 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, - + lib, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/dataspell.nix b/pkgs/applications/editors/jetbrains/ides/dataspell.nix index ae5fc403a7e9..a85e81876982 100644 --- a/pkgs/applications/editors/jetbrains/ides/dataspell.nix +++ b/pkgs/applications/editors/jetbrains/ides/dataspell.nix @@ -1,13 +1,15 @@ { - stdenv, - lib, + # keep-sorted start case=no fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, + lib, libgcc, - runCommand, R, + runCommand, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/gateway.nix b/pkgs/applications/editors/jetbrains/ides/gateway.nix index 54ff1f89623b..05c00274511d 100644 --- a/pkgs/applications/editors/jetbrains/ides/gateway.nix +++ b/pkgs/applications/editors/jetbrains/ides/gateway.nix @@ -1,11 +1,13 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, + lib, libgcc, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/goland.nix b/pkgs/applications/editors/jetbrains/ides/goland.nix index f528a37485c2..a2343d9d232c 100644 --- a/pkgs/applications/editors/jetbrains/ides/goland.nix +++ b/pkgs/applications/editors/jetbrains/ides/goland.nix @@ -1,11 +1,13 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, + lib, libgcc, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix index f002653e5e10..70f5da2a517e 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea-oss.nix @@ -1,10 +1,12 @@ { + # keep-sorted start fsnotifier, - lib, jetbrains, + lib, maven, stdenv, zlib, + # keep-sorted end }: let src = jetbrains.mkJetBrainsSource { diff --git a/pkgs/applications/editors/jetbrains/ides/idea.nix b/pkgs/applications/editors/jetbrains/ides/idea.nix index 0efae7bfa7d8..208b9171cdf5 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea.nix +++ b/pkgs/applications/editors/jetbrains/ides/idea.nix @@ -1,14 +1,16 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, - maven, - zlib, + lib, lldb, + maven, musl, + stdenv, + zlib, + # keep-sorted end }: let system = stdenv.hostPlatform.system; @@ -59,8 +61,10 @@ jetbrains.mkJetBrainsProduct { ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ + # keep-sorted start lldb musl + # keep-sorted end ]; # NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed diff --git a/pkgs/applications/editors/jetbrains/ides/mps.nix b/pkgs/applications/editors/jetbrains/ides/mps.nix index acb0e16b1d22..c1227dcfcc55 100644 --- a/pkgs/applications/editors/jetbrains/ides/mps.nix +++ b/pkgs/applications/editors/jetbrains/ides/mps.nix @@ -1,11 +1,12 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, - + lib, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix index 943a9a66ce1c..23b0d0b4ccac 100644 --- a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/phpstorm.nix @@ -1,11 +1,13 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, + lib, musl, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix index b1a8ae9a6080..ff7628853bd8 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix @@ -1,9 +1,11 @@ { + # keep-sorted start fsnotifier, - lib, jetbrains, - stdenv, + lib, python3, + stdenv, + # keep-sorted end }: let src = jetbrains.mkJetBrainsSource { @@ -54,9 +56,11 @@ jetbrains.mkJetBrainsProduct { productShort = "PyCharm"; nativeBuildInputs = [ + # keep-sorted start + jetbrains.cythonDebugSpeedupsHook python3 python3.pkgs.setuptools - jetbrains.cythonDebugSpeedupsHook + # keep-sorted end ]; # NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm.nix b/pkgs/applications/editors/jetbrains/ides/pycharm.nix index 3aee85ae21cd..b47fa3e6fa30 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm.nix +++ b/pkgs/applications/editors/jetbrains/ides/pycharm.nix @@ -1,12 +1,14 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, + lib, musl, python3, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; @@ -50,9 +52,11 @@ jetbrains.mkJetBrainsProduct { null; nativeBuildInputs = [ + # keep-sorted start + jetbrains.cythonDebugSpeedupsHook python3 python3.pkgs.setuptools - jetbrains.cythonDebugSpeedupsHook + # keep-sorted end ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ diff --git a/pkgs/applications/editors/jetbrains/ides/rider.nix b/pkgs/applications/editors/jetbrains/ides/rider.nix index 5c352f11e8b4..fcce88fa0ad9 100644 --- a/pkgs/applications/editors/jetbrains/ides/rider.nix +++ b/pkgs/applications/editors/jetbrains/ides/rider.nix @@ -1,22 +1,24 @@ { - stdenv, - lib, + # keep-sorted start + dotnetCorePackages, + expat, fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, - openssl, - libxcrypt, - lttng-ust_2_12, - musl, + lib, libice, libsm, libx11, - dotnetCorePackages, libxcb-keysyms, - expat, + libxcrypt, libxml2, + lttng-ust_2_12, + musl, + openssl, + stdenv, xz, + # keep-sorted end }: let system = stdenv.hostPlatform.system; @@ -65,22 +67,28 @@ in # Somebody with a Darwin machine should investigate this. buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ - openssl + # keep-sorted start + libxcb-keysyms libxcrypt lttng-ust_2_12 musl - libxcb-keysyms + openssl + # keep-sorted end ] ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ + # keep-sorted start expat libxml2 xz + # keep-sorted end ]; extraLdPath = lib.optionals (stdenv.hostPlatform.isLinux) [ + # keep-sorted start # Avalonia dependencies needed for dotMemory libice libsm libx11 + # keep-sorted end ]; # NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed @@ -103,6 +111,7 @@ in }; }).overrideAttrs (attrs: { + # TODO: It is not correct to bundle the .NET in nixpkgs as-is, see https://github.com/NixOS/nixpkgs/issues/489048 postInstall = (attrs.postInstall or "") + lib.optionalString stdenv.hostPlatform.isLinux '' diff --git a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix index fe15a25f5d5f..5bec5678faea 100644 --- a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix +++ b/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix @@ -1,11 +1,13 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, + lib, musl, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix index 0f9478cd0c0c..36884dd1ec6e 100644 --- a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix +++ b/pkgs/applications/editors/jetbrains/ides/rust-rover.nix @@ -1,16 +1,18 @@ { - stdenv, - lib, + # keep-sorted start + expat, fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, - python3, - openssl, + lib, libxcrypt-legacy, - expat, libxml2, + openssl, + python3, + stdenv, xz, + # keep-sorted end }: let system = stdenv.hostPlatform.system; @@ -57,14 +59,18 @@ jetbrains.mkJetBrainsProduct { buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ - python3 - openssl + # keep-sorted start libxcrypt-legacy + openssl + python3 + # keep-sorted end ] ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch) [ + # keep-sorted start expat libxml2 xz + # keep-sorted end ]; # NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed diff --git a/pkgs/applications/editors/jetbrains/ides/webstorm.nix b/pkgs/applications/editors/jetbrains/ides/webstorm.nix index 2b984ffdbea3..4129e38dfd24 100644 --- a/pkgs/applications/editors/jetbrains/ides/webstorm.nix +++ b/pkgs/applications/editors/jetbrains/ides/webstorm.nix @@ -1,11 +1,13 @@ { - stdenv, - lib, + # keep-sorted start fetchurl, + fsnotifier, jetbrains, jetbrains-libdbm, - fsnotifier, + lib, musl, + stdenv, + # keep-sorted end }: let system = stdenv.hostPlatform.system; diff --git a/pkgs/applications/editors/jetbrains/plugins/default.nix b/pkgs/applications/editors/jetbrains/plugins/default.nix index 04c86a5fca4f..1f760b2704e1 100644 --- a/pkgs/applications/editors/jetbrains/plugins/default.nix +++ b/pkgs/applications/editors/jetbrains/plugins/default.nix @@ -1,12 +1,14 @@ { + # keep-sorted start + autoPatchelfHook, + callPackage, + darwin, fetchurl, fetchzip, + glib, lib, stdenv, - callPackage, - autoPatchelfHook, - glib, - darwin, + # keep-sorted end }: { tests = callPackage ./tests.nix { }; diff --git a/pkgs/applications/editors/jetbrains/plugins/tests.nix b/pkgs/applications/editors/jetbrains/plugins/tests.nix index 2f32829ecf73..3e015a4b1c2f 100644 --- a/pkgs/applications/editors/jetbrains/plugins/tests.nix +++ b/pkgs/applications/editors/jetbrains/plugins/tests.nix @@ -1,10 +1,13 @@ { + # keep-sorted start + fetchurl, + fetchzip, jetbrains, - symlinkJoin, lib, runCommand, - fetchzip, - fetchurl, + symlinkJoin, + # keep-sorted end + # If not set, all IDEs are tested. ide ? null, }: @@ -14,21 +17,23 @@ let if ide == null then with jetbrains; [ + # keep-sorted start clion datagrip dataspell gateway goland - idea-oss idea + idea-oss mps phpstorm - pycharm-oss pycharm + pycharm-oss rider ruby-mine rust-rover webstorm + # keep-sorted end ] else [ ide ]; diff --git a/pkgs/applications/editors/jetbrains/source/build.nix b/pkgs/applications/editors/jetbrains/source/build.nix index f8bfd8eaa010..04bb86de6cdd 100644 --- a/pkgs/applications/editors/jetbrains/source/build.nix +++ b/pkgs/applications/editors/jetbrains/source/build.nix @@ -1,23 +1,24 @@ { + # keep-sorted start + ant, + callPackage, fetchFromGitHub, fetchurl, fetchzip, - lib, - linkFarm, - makeWrapper, - runCommand, - stdenvNoCC, - rustPlatform, - callPackage, - - ant, fsnotifier, glibc, jetbrains, jetbrains-libdbm, kotlin, + lib, + linkFarm, + makeWrapper, maven, p7zip, + runCommand, + rustPlatform, + stdenvNoCC, + # keep-sorted end }: { version, @@ -77,8 +78,10 @@ let # Allow static linking buildInputs = [ + # keep-sorted start glibc glibc.static + # keep-sorted end ]; }; @@ -90,9 +93,11 @@ let inherit src; sourceRoot = "${src.name}/platform/jps-bootstrap"; nativeBuildInputs = [ + # keep-sorted start ant - makeWrapper jbr + makeWrapper + # keep-sorted end ]; patches = [ ../patches/kotlinc-path.patch ]; postPatch = "sed -i 's|KOTLIN_PATH_HERE|${kotlin'}|' src/main/java/org/jetbrains/jpsBootstrap/KotlinCompiler.kt"; @@ -184,9 +189,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { name = "${finalAttrs.pname}-${version}.tar.gz"; inherit src; nativeBuildInputs = [ - p7zip + # keep-sorted start jbr jps-bootstrap + p7zip + # keep-sorted end ]; repo = mvnRepo; diff --git a/pkgs/applications/editors/jetbrains/source/jps_repo.nix b/pkgs/applications/editors/jetbrains/source/jps_repo.nix index 017d519eb420..b49c7174fc34 100644 --- a/pkgs/applications/editors/jetbrains/source/jps_repo.nix +++ b/pkgs/applications/editors/jetbrains/source/jps_repo.nix @@ -1,10 +1,11 @@ { - runCommand, + # keep-sorted start ant, jbr, - jpsHash, + runCommand, src, + # keep-sorted end }: runCommand "jps-bootstrap-repository" { @@ -12,8 +13,10 @@ runCommand "jps-bootstrap-repository" outputHashMode = "recursive"; outputHash = jpsHash; nativeBuildInputs = [ + # keep-sorted start ant jbr + # keep-sorted end ]; } '' From 7c0373a2dc25989b381dc5e72dfc3b2135c5b8aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=B6pcke?= Date: Tue, 11 Aug 2026 08:32:24 +0200 Subject: [PATCH 9/9] jetbrains: update README --- pkgs/applications/editors/jetbrains/readme.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/jetbrains/readme.md b/pkgs/applications/editors/jetbrains/readme.md index c890021090e9..eaa95a8c90ed 100644 --- a/pkgs/applications/editors/jetbrains/readme.md +++ b/pkgs/applications/editors/jetbrains/readme.md @@ -56,13 +56,15 @@ Any comments or other manual changes between these markers will be removed when - Add it to `default.nix` ### TODO: - - move PyCharm overrides to a common place outside of `default.nix` - - package `patchSharedLibs` from `default.nix` as a hook - - cleanup this TODO list, especially the following points, which have been here since 2023 + - get rid of remaining `overrideAttrs` in IDE drvs: + - see https://github.com/NixOS/nixpkgs/pull/475183#discussion_r2655348886 + - see https://github.com/NixOS/nixpkgs/pull/475183#discussion_r2655305961 + - cleanup this TODO list, especially the following points, which (mostly) have been here since 2023 - replace `libxcrypt-legacy` with `libxcrypt` when supported - make `jetbrains-remote-dev.patch` cleaner - is extraLdPath needed for IDEA? - from source builds: + - switch to Bazel builds, see https://github.com/NixOS/nixpkgs/pull/531637 - remove timestamps in output `.jar` of `jps-bootstrap` - automated update scripts - fetch `.jar`s from stuff built in nixpkgs when available