nixpkgs/pkgs/applications/editors/jetbrains
nixdrin 8ff6850f25 jetbrains: drop libstdc++.so.6 from LD_LIBRARY_PATH
Most of the libraries listed in the LD_LIBRARY_PATH for the Jetbrains
IDEs are loaded indirectly using JNA in Java code, e.g.

  myLibNotify = Native.load("libnotify.so.4", LibNotify.class); [1]
  private val library = Native.load("secret-1", SecretLibrary::class.java) [2]

In this case the typical patching mechanism with Nix does not work
because JNA does the library lookup at runtime with its own mechanism.

However, there is one outlier: stdenv.cc.cc.lib is also added to the
LD_LIBRARY_PATH for libstdc++.so.6 because it is reportedly needed
for some "internals". It does not make sense to access libstdc++
from Java code so it feels like this one was added to work around
some native library or executable that should be patched instead
of using LD_LIBRARY_PATH.

Unfortunately, having libstdc++ in LD_LIBRARY_PATH can also easily
cause ABI conflicts. This is because this variable is inherited into
terminals opened within the IDE. Using a Nix environment there with
different versions of libstdc++ easily causes errors such as

  libstdc++.so.6: version `GLIBCXX_3.4.29' not found

Most of the IDEs work just fine without having libstdc++ in
LD_LIBRARY_PATH. Since it's not really clear why it has to be in
there let's just drop it to avoid the ABI conflicts.

[1]: c0a703267a/platform/platform-impl/src/com/intellij/ui/LibNotifyWrapper.java (L40)
[2]: c0a703267a/platform/credential-store/src/linuxSecretLibrary.kt (L38)
2023-10-08 17:15:47 +02:00
..
plugins jetbrains.plugins: add new Rust plugin 2023-09-28 15:59:56 +02:00
darwin.nix jetbrains.rust-rover: fix darwin install (#258814) 2023-10-04 18:49:31 +02:00
default.nix jetbrains.gateway: remove maintainer 2023-10-05 01:30:54 -04:00
JetbrainsRemoteDev.patch jetbrains: fix remote dev server for IDEs 2023-07-16 16:11:47 +01:00
linux.nix jetbrains: drop libstdc++.so.6 from LD_LIBRARY_PATH 2023-10-08 17:15:47 +02:00
update_ides.py jetbrains: Commit in one line 2023-08-13 00:33:23 +02:00
versions.json jetbrains: 2023.2 -> 2023.2.2 2023-09-23 12:59:58 +02:00