Skip to content

jetbrains-jdk: fix with structured attrs#425529

Merged
fabianhjr merged 1 commit intoNixOS:masterfrom
symphorien:jdk_structured_attrs
Jul 24, 2025
Merged

jetbrains-jdk: fix with structured attrs#425529
fabianhjr merged 1 commit intoNixOS:masterfrom
symphorien:jdk_structured_attrs

Conversation

@symphorien
Copy link
Member

@symphorien symphorien commented Jul 15, 2025

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • Nixpkgs 25.11 Release Notes (or backporting 25.05 Nixpkgs Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
  • NixOS 25.11 Release Notes (or backporting 25.05 NixOS Release notes)
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other contributing documentation in corresponding paths.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. labels Jul 15, 2025
@nix-owners nix-owners bot requested review from aoli-al and edwtjo July 15, 2025 18:40
@symphorien symphorien force-pushed the jdk_structured_attrs branch 2 times, most recently from 9d1c078 to 98b27c2 Compare July 15, 2025 19:06
@jys1670
Copy link
Contributor

jys1670 commented Jul 15, 2025

Thanks for quick response!
It builds for me, however I can't start Pycharm due to some weird internal error:

**Start Failed**

Internal error

java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration
        at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1263)
        at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:221)
        at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:105)
        at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:704)
        at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:381)
        at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:343)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
        at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:343)
        at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:33)
        at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:58)
        at java.desktop/sun.font.PlatformFontInfo.createFontManager(PlatformFontInfo.java:37)
        at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:51)
        at java.desktop/java.awt.Font.getFont2D(Font.java:569)
        at java.desktop/java.awt.Font.getFamily(Font.java:1494)
        at java.desktop/java.awt.Font.getFamily_NoClientCode(Font.java:1468)
        at java.desktop/java.awt.Font.getFamily(Font.java:1460)
        at com.intellij.platform.ide.bootstrap.UiKt$initUi$preloadFontJob$1.invokeSuspend(ui.kt:57)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
        at kotlinx.coroutines.internal.SoftLimitedDispatcher$Worker.run(SoftLimitedDispatcher.kt:125)
        at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750)

-----
JRE: 21.0.6+6-nixos amd64 (JetBrains s.r.o.)
/nix/store/ackiljgzdv32r8qf43cph9w12i0zaa84-jetbrains-jdk-jcef-21.0.6-b895.109/lib/openjdk

It might be issue with my setup, have you tried running some IDE with these changes?

@symphorien
Copy link
Member Author

I don't know how to use java at all

@symphorien symphorien changed the title Draft: jetbrains-jdk: fix with structured attrs jetbrains-jdk: fix with structured attrs Jul 15, 2025
@jys1670
Copy link
Contributor

jys1670 commented Jul 15, 2025

I don't know how to use java at all

I guess quick hack like this can also be applied here for now (both set to false)
#425561

@symphorien
Copy link
Member Author

I guess quick hack like this can also be applied here for now (both set to false)
#425561

did you confirm that is solves your font issue ?


I had a look at a diffoscope between this PR and this pr plus disabling structured attrs and separatedebuginfo and the diff does has no significant matches for "font". Sometimes mixing font cache from stable with fontconfig from unstable fails, could it be the issue here ?

@jys1670
Copy link
Contributor

jys1670 commented Jul 15, 2025

did you confirm that is solves your font issue ?

Yep, basically rolling back to how it was makes the JDK usable (aka no changes from this PR at all):

...
separateDebugInfo = false;
__structuredAttrs = false;
BOOT_JDK = jdk.home;
# run `git log -1 --pretty=%ct` in jdk repo for new value on update
SOURCE_DATE_EPOCH = 1726275531;
...

Sometimes mixing font cache from stable with fontconfig from unstable fails, could it be the issue here ?

I only use nixos-unstable flake, so mixing channels is not possible.
However, I don't use jetbrains stuff from nixpkgs as-is -- some tweaks are applied via overlays, and that might have introduced errors.

LLM mentions that the configureFlags change is suspicious:

The line `configureFlags=( "''{configureFlags[@]/
configureFlag}" )` is incorrect for removing array elements. This syntax performs pattern substitution *within* each array element rather than removing the element itself.

I don't have any mental energy to check if it makes sense right now

@jys1670
Copy link
Contributor

jys1670 commented Jul 16, 2025

It builds for me, however I can't start Pycharm due to some weird internal error:

It seems I am not alone with this issue.
#425328 (comment)

Yep, basically rolling back to how it was makes the JDK usable (aka no changes from this PR at all):

So this is the only working solution for now

Edit: alternative PR with some jdk fix #419026

the fontconfig addition solves the following runtime error:
Exception in thread "main" java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration

which surfaced during review. How is it caused by the switch to
__structiredAttrs ? Good question.
@symphorien symphorien mentioned this pull request Jul 16, 2025
3 tasks
@MattSturgeon
Copy link
Contributor

nixpkgs-review result for #425529

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 425529

Logs: https://github.com/MattSturgeon/nixpkgs-review-gha/actions/runs/16327438719


x86_64-linux

❌ 3 packages failed to build:
  • animeko
  • jetbrains.idea-community (jetbrains.idea-community-src)
  • jetbrains.pycharm-community (jetbrains.pycharm-community-src)
✅ 21 packages built:
  • jetbrains.aqua
  • jetbrains.clion
  • jetbrains.datagrip
  • jetbrains.dataspell
  • jetbrains.gateway
  • jetbrains.goland
  • jetbrains.idea-community-bin
  • jetbrains.idea-ultimate
  • jetbrains.jdk
  • jetbrains.jdk-no-jcef
  • jetbrains.jdk-no-jcef.debug
  • jetbrains.jdk.debug
  • jetbrains.mps
  • jetbrains.phpstorm
  • jetbrains.pycharm-community-bin
  • jetbrains.pycharm-professional
  • jetbrains.rider
  • jetbrains.ruby-mine
  • jetbrains.rust-rover
  • jetbrains.webstorm
  • jetbrains.writerside

Error logs: `x86_64-linux`
animeko
setting RPATH to: /nix/store/6vzcxjxa2wlh3p9f5nhbk62bl3q313ri-gcc-14.3.0-lib/lib:/nix/store/fxwmabprl1nyxskbrygqlaps5kwg3fjv-gcc-14.3.0-libgcc/lib
auto-patchelf: 16 dependencies could not be satisfied
warn: auto-patchelf ignoring missing libsrt-gnutls.so.1.5 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/access/libaccess_srt_plugin.so
warn: auto-patchelf ignoring missing libdc1394.so.25 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/access/libdc1394_plugin.so
warn: auto-patchelf ignoring missing libsrt-gnutls.so.1.5 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/access_output/libaccess_output_srt_plugin.so
warn: auto-patchelf ignoring missing libspatialaudio.so.0 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/audio_filter/libspatialaudio_plugin.so
warn: auto-patchelf ignoring missing liba52-0.7.4.so wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/codec/liba52_plugin.so
warn: auto-patchelf ignoring missing libdca.so.0 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/codec/libdca_plugin.so
warn: auto-patchelf ignoring missing libFLAC.so.12 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/codec/libflac_plugin.so
warn: auto-patchelf ignoring missing libtheoraenc.so.1 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/codec/libtheora_plugin.so
warn: auto-patchelf ignoring missing libtheoradec.so.1 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/codec/libtheora_plugin.so
warn: auto-patchelf ignoring missing libx265.so.199 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/codec/libx265_plugin.so
warn: auto-patchelf ignoring missing libmpcdec.so.6 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/demux/libmpc_plugin.so
warn: auto-patchelf ignoring missing libsidplay2.so.1 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/demux/libsid_plugin.so
warn: auto-patchelf ignoring missing libresid-builder.so.0 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/demux/libsid_plugin.so
warn: auto-patchelf ignoring missing liblua5.2.so.0 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/lua/liblua_plugin.so
warn: auto-patchelf ignoring missing libxml2.so.2 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/app/resources/lib/vlc/plugins/misc/libxml_plugin.so
error: auto-patchelf could not satisfy dependency libXxf86vm.so.1 wanted by /nix/store/y1y2l8an6hs504j3yd8gc26cszcyd8cc-animeko-4.11.1/lib/runtime/lib/libnativewindow_x11.so
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.

aarch64-linux

❌ 5 packages failed to build:
  • jetbrains.clion
  • jetbrains.idea-community-src
  • jetbrains.pycharm-community (jetbrains.pycharm-community-src)
  • jetbrains.rider
  • jetbrains.rust-rover
✅ 18 packages built:
  • jetbrains.aqua
  • jetbrains.datagrip
  • jetbrains.dataspell
  • jetbrains.gateway
  • jetbrains.goland
  • jetbrains.idea-community (jetbrains.idea-community-bin)
  • jetbrains.idea-ultimate
  • jetbrains.jdk
  • jetbrains.jdk-no-jcef
  • jetbrains.jdk-no-jcef.debug
  • jetbrains.jdk.debug
  • jetbrains.mps
  • jetbrains.phpstorm
  • jetbrains.pycharm-community-bin
  • jetbrains.pycharm-professional
  • jetbrains.ruby-mine
  • jetbrains.webstorm
  • jetbrains.writerside

Error logs: `aarch64-linux`
jetbrains.clion
skipping /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-amd64 because it is statically linked
searching for dependencies of /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/plugins/clion-cwm-plugin/quiche-native/linux-aarch64/libquiche.so
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
searching for dependencies of /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_aarch64.so
    libstdc++.so.6 -> found: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib:/nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
skipping /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_amd64.so because its architecture (x64) differs from target (AArch64)
skipping /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_x86.so because its architecture (x86) differs from target (AArch64)
skipping /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/plugins/python-ce/helpers/coveragepy_old/coverage/tracer.cpython-310-x86_64-linux-gnu.so because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/lib/native/linux-aarch64/libsqliteij.so
searching for dependencies of /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/lib/pty4j/linux/aarch64/libpty.so
skipping /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/lib/async-profiler/amd64/libasyncProfiler.so because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/lib/async-profiler/aarch64/libasyncProfiler.so
searching for dependencies of /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/lib/jna/aarch64/libjnidispatch.so
auto-patchelf: 1 dependencies could not be satisfied
error: auto-patchelf could not satisfy dependency libxml2.so.2 wanted by /nix/store/zdrcgjp4q7qbmg9agn6zf72r43xklyhm-clion-2025.1.2/clion/bin/lldb/linux/aarch64/lib/liblldb.so
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.
jetbrains.rider
searching for dependencies of /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/dotCommon/DotFiles/linux-arm64/libJetBrains.Dpa.CollectorApi.so
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
skipping /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-arm64 because it is statically linked
skipping /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-amd64 because it is statically linked
skipping /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-x64/JetBrains.Profilers because its architecture (x64) differs from target (AArch64)
setting interpreter of /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/JetBrains.Profilers
searching for dependencies of /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/JetBrains.Profilers
    libstdc++.so.6 -> found: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib:/nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
searching for dependencies of /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/libSkiaSharp.so
    libfontconfig.so.1 -> found: /nix/store/yvf050d8iah3m8c4ygjxd7jjbclm34wb-fontconfig-2.16.2-lib/lib
setting RPATH to: /nix/store/yvf050d8iah3m8c4ygjxd7jjbclm34wb-fontconfig-2.16.2-lib/lib
searching for dependencies of /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/libHarfBuzzSharp.so
skipping /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/aspire-plugin/aspire-session-host/aspire-session-host because its architecture (x64) differs from target (AArch64)
auto-patchelf: 1 dependencies could not be satisfied
error: auto-patchelf could not satisfy dependency libxml2.so.2 wanted by /nix/store/98c3c49qq235d5jlvny842hngrpa5mjp-rider-2025.1.2/rider/plugins/cidr-debugger-plugin/bin/lldb/linux/aarch64/lib/liblldb.so
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.
jetbrains.rust-rover
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/ossaudiodev.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/xxlimited.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/unicodedata.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/_struct.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/lib/native/linux-aarch64/libsqliteij.so
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/lib/jna/aarch64/libjnidispatch.so
skipping /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/lib/async-profiler/amd64/libasyncProfiler.so because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/lib/async-profiler/aarch64/libasyncProfiler.so
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/lib/pty4j/linux/aarch64/libpty.so
skipping /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/plugins/platform-ijent-impl/ijent-aarch64-unknown-linux-musl-release because it is statically linked
skipping /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/plugins/platform-ijent-impl/ijent-x86_64-unknown-linux-musl-release because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/plugins/cwm-plugin/quiche-native/linux-aarch64/libquiche.so
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
skipping /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-arm64 because it is statically linked
skipping /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-amd64 because it is statically linked
auto-patchelf: 1 dependencies could not be satisfied
error: auto-patchelf could not satisfy dependency libxml2.so.2 wanted by /nix/store/0jb7i88csn999x4d25xfrw4aw8vskjbp-rust-rover-2025.1.3/rust-rover/bin/lldb/linux/aarch64/lib/liblldb.so
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.

@symphorien
Copy link
Member Author

the font issue is caused by fontconfig missing from the rpath of javac. if you add it to LD_PRELOAD it works. Thanks to the analysis of @limwa that led to #425773

@symphorien symphorien force-pushed the jdk_structured_attrs branch from 98b27c2 to 4cfb945 Compare July 16, 2025 21:15
@symphorien
Copy link
Member Author

I pushed something that appears to fix the font issue. please review.

@symphorien symphorien force-pushed the jdk_structured_attrs branch from 4cfb945 to 0bfaccd Compare July 16, 2025 21:40
@jys1670
Copy link
Contributor

jys1670 commented Jul 16, 2025

I pushed something that appears to fix the font issue. please review.

PyCharm builds and works, and jcef does not segfault in markdown! (unlike the fix from the alternative PR)

However, there is a cursor theme bug (no theme), like in the days when this stuff was not built from source. I never figured root cause of it.

This feels so hackish overall :c
I think it's better to wait until the __structuredAttrs fix (from #425773) gets applied to all JDKs and reaches master.
Before that happens, separateDebugInfo and __structuredAttrs should be set to false.
After that... we can think about whats going on here

@aoli-al
Copy link
Member

aoli-al commented Jul 16, 2025

@symphorien Thanks for the patch.

@jys1670 Thanks for testing PyCharm!

@aoli-al aoli-al added 12.approvals: 1 This PR was reviewed and approved by one person. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages. labels Jul 16, 2025
@MattSturgeon
Copy link
Contributor

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 425529

Logs: https://github.com/MattSturgeon/nixpkgs-review-gha/actions/runs/16337006461


x86_64-linux

✅ 26 packages built:
  • animeko
  • jetbrains.aqua
  • jetbrains.clion
  • jetbrains.datagrip
  • jetbrains.dataspell
  • jetbrains.gateway
  • jetbrains.goland
  • jetbrains.idea-community (jetbrains.idea-community-src)
  • jetbrains.idea-community-bin
  • jetbrains.idea-ultimate
  • jetbrains.jdk
  • jetbrains.jdk-no-jcef
  • jetbrains.jdk-no-jcef-17
  • jetbrains.jdk-no-jcef-17.debug
  • jetbrains.jdk-no-jcef.debug
  • jetbrains.jdk.debug
  • jetbrains.mps
  • jetbrains.phpstorm
  • jetbrains.pycharm-community (jetbrains.pycharm-community-src)
  • jetbrains.pycharm-community-bin
  • jetbrains.pycharm-professional
  • jetbrains.rider
  • jetbrains.ruby-mine
  • jetbrains.rust-rover
  • jetbrains.webstorm
  • jetbrains.writerside

aarch64-linux

❌ 7 packages failed to build:
  • jetbrains.clion
  • jetbrains.idea-community-src
  • jetbrains.jdk-no-jcef-17
  • jetbrains.jdk-no-jcef-17.debug
  • jetbrains.pycharm-community (jetbrains.pycharm-community-src)
  • jetbrains.rider
  • jetbrains.rust-rover
✅ 18 packages built:
  • jetbrains.aqua
  • jetbrains.datagrip
  • jetbrains.dataspell
  • jetbrains.gateway
  • jetbrains.goland
  • jetbrains.idea-community (jetbrains.idea-community-bin)
  • jetbrains.idea-ultimate
  • jetbrains.jdk
  • jetbrains.jdk-no-jcef
  • jetbrains.jdk-no-jcef.debug
  • jetbrains.jdk.debug
  • jetbrains.mps
  • jetbrains.phpstorm
  • jetbrains.pycharm-community-bin
  • jetbrains.pycharm-professional
  • jetbrains.ruby-mine
  • jetbrains.webstorm
  • jetbrains.writerside

Error logs: `aarch64-linux`
jetbrains.clion
skipping /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-amd64 because it is statically linked
searching for dependencies of /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/plugins/clion-cwm-plugin/quiche-native/linux-aarch64/libquiche.so
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
searching for dependencies of /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_aarch64.so
    libstdc++.so.6 -> found: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib:/nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
skipping /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_amd64.so because its architecture (x64) differs from target (AArch64)
skipping /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_x86.so because its architecture (x86) differs from target (AArch64)
skipping /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/plugins/python-ce/helpers/coveragepy_old/coverage/tracer.cpython-310-x86_64-linux-gnu.so because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/lib/native/linux-aarch64/libsqliteij.so
searching for dependencies of /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/lib/pty4j/linux/aarch64/libpty.so
skipping /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/lib/async-profiler/amd64/libasyncProfiler.so because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/lib/async-profiler/aarch64/libasyncProfiler.so
searching for dependencies of /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/lib/jna/aarch64/libjnidispatch.so
auto-patchelf: 1 dependencies could not be satisfied
error: auto-patchelf could not satisfy dependency libxml2.so.2 wanted by /nix/store/szwcj7xlmw3a3wpbgzjjcwyr06y1q7qr-clion-2025.1.2/clion/bin/lldb/linux/aarch64/lib/liblldb.so
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.
jetbrains.jdk-no-jcef-17
  316 | #define starti Instruction_aarch64 do_not_use(this); set_current(&do_not_use)
      |                                    ^~~~~~~~~~
/build/source/src/hotspot/cpu/aarch64/assembler_aarch64.hpp:857:5: note: in expansion of macro 'starti'
/nix/store/4558qq2s191rahs99ksr4crcsbpwr51j-gnugrep-3.12/bin/grep: write error: Broken pipe
   ... (rest of output omitted)
  • All command lines available in /build/source/build/linux-aarch64-server-release/make-support/failure-logs.
    === End of repeated output ===

No indication of failed target found.
Hint: Try searching the build log for '] Error'.
Hint: See doc/building.html#troubleshooting for assistance.

make[1]: *** [/build/source/make/Init.gmk:318: main] Error 2
make: *** [/build/source/make/Init.gmk:189: images] Error 2

  • do_exit 2
  • exit_code=2
  • '[' 0 -eq 1 ']'
  • '[' 0 -eq 1 ']'
  • exit 2
jetbrains.rider
searching for dependencies of /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/dotCommon/DotFiles/linux-arm64/libJetBrains.Dpa.CollectorApi.so
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
skipping /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-arm64 because it is statically linked
skipping /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-amd64 because it is statically linked
skipping /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-x64/JetBrains.Profilers because its architecture (x64) differs from target (AArch64)
setting interpreter of /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/JetBrains.Profilers
searching for dependencies of /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/JetBrains.Profilers
    libstdc++.so.6 -> found: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/kx9nkhikj7ylvjv0jq1c71i2q1jlwbkr-gcc-14.3.0-lib/lib:/nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
searching for dependencies of /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/libSkiaSharp.so
    libfontconfig.so.1 -> found: /nix/store/yvf050d8iah3m8c4ygjxd7jjbclm34wb-fontconfig-2.16.2-lib/lib
setting RPATH to: /nix/store/yvf050d8iah3m8c4ygjxd7jjbclm34wb-fontconfig-2.16.2-lib/lib
searching for dependencies of /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/dotTrace.dotMemory/DotFiles/linux-arm64/libHarfBuzzSharp.so
skipping /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/aspire-plugin/aspire-session-host/aspire-session-host because its architecture (x64) differs from target (AArch64)
auto-patchelf: 1 dependencies could not be satisfied
error: auto-patchelf could not satisfy dependency libxml2.so.2 wanted by /nix/store/73w243a0pgnkmip3ad4k5mpn2krb8qzh-rider-2025.1.2/rider/plugins/cidr-debugger-plugin/bin/lldb/linux/aarch64/lib/liblldb.so
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.
jetbrains.rust-rover
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/ossaudiodev.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/xxlimited.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/unicodedata.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/bin/gdb/linux/aarch64/lib/python3.8/lib-dynload/_struct.cpython-38-aarch64-linux-gnu.so
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/lib/native/linux-aarch64/libsqliteij.so
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/lib/jna/aarch64/libjnidispatch.so
skipping /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/lib/async-profiler/amd64/libasyncProfiler.so because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/lib/async-profiler/aarch64/libasyncProfiler.so
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/lib/pty4j/linux/aarch64/libpty.so
skipping /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/plugins/platform-ijent-impl/ijent-aarch64-unknown-linux-musl-release because it is statically linked
skipping /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/plugins/platform-ijent-impl/ijent-x86_64-unknown-linux-musl-release because its architecture (x64) differs from target (AArch64)
searching for dependencies of /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/plugins/cwm-plugin/quiche-native/linux-aarch64/libquiche.so
    libgcc_s.so.1 -> found: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
setting RPATH to: /nix/store/fvbzii8fprdizzjrxwh2nhs4jl1b9rfb-gcc-14.3.0-libgcc/lib
skipping /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-arm64 because it is statically linked
skipping /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-amd64 because it is statically linked
auto-patchelf: 1 dependencies could not be satisfied
error: auto-patchelf could not satisfy dependency libxml2.so.2 wanted by /nix/store/w6gp8i4dpxqxq2nya9yk6l33nkqmwfgv-rust-rover-2025.1.3/rust-rover/bin/lldb/linux/aarch64/lib/liblldb.so
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.

@symphorien
Copy link
Member Author

@jys1670 sorry I'm a bit unfamiliar with the matters so maybe all this should be obvious, but please be more precise in your comments.

PyCharm builds and works, and jcef does not segfault in markdown! (unlike the fix from the alternative PR)

what alternative PR. What steps do you use to trigger the segfault ?

(no theme)

what does that mean ? steps to reproduce ? Screenshot ?

I think it's better to wait until the __structuredAttrs fix (from #425773) gets applied to all JDKs and reaches master.

why ? jetbrains.jdk does not build on current master and given the warning I had to disable in jetbrains.jdk-no-jcef-17 for it to build It's unlikely #425773 would be enough for it to build.

@symphorien
Copy link
Member Author

the aarch64 failures are due to libxml2 having changed its soname from .so.2 to .so.16 so I won't fix those. I think this PR is ready.

@jys1670
Copy link
Contributor

jys1670 commented Jul 17, 2025

Sorry, perhaps my English is lacking.

what alternative PR. What steps do you use to trigger the segfault ?

This PR #419026 fixes the JDK build too, but takes a slightly different approach.
You don't have to worry about the segfault -- it has nothing to do with your PR.

what does that mean ? steps to reproduce ? Screenshot ?

This means that inside PyCharm you get the default X11 mouse pointer/cursor, while all other applications use whatever the user has set globally.
It's an annoying bug/side effect. Back in the day, we had this problem with the patched binary of jetbrains-jcef-jdk, but once a user figured out how to build the Jetbrains JDK from source, the cursor problem disappeared.

To reproduce: just build an IDE for your favorite language and open a project with it. Look around source files/markdown readmes and notice weird cursor.

why ? jetbrains.jdk does not build on current master and given the warning I had to disable in jetbrains.jdk-no-jcef-17 for it to build It's unlikely #425773 would be enough for it to build.

Again, to fix the build in master without any side effects or problems, I just added two lines above this line:

separateDebugInfo = false;
__structuredAttrs = false;

And it builds and works (just like K900 did with openjdk8 to fix build)

My point is: it feels like what you're fixing here should normally be fixed in the original OpenJDK derivation first. For example, I don't understand why fontconfig is suddenly explicitly needed. It's in the buildInputs of the original OpenJDK and used to work, but now suddenly doesn't? It's just weird.

the aarch64 failures are due to libxml2 having changed its soname from .so.2 to .so.16 so I won't fix those. I think this PR is ready.

This is fixed in the alternative PR.

In any case, I don't want to stop/nitpick anything. If people support merging either of two PRs, let it be so.

@Janrupf
Copy link
Contributor

Janrupf commented Jul 18, 2025

For example, I don't understand why fontconfig is suddenly explicitly needed. It's in the buildInputs of the original OpenJDK and used to work, but now suddenly doesn't? It's just weird.

See my PR - but in short: It was always explicit, moving to structured attrs had an unintended side effect though. The OpenJDK package explicitly sets -lfontconfig via NIX_LDFLAGS in its env block. Now, since the environment variables were moved to env block in this package, the block from the OpenJDK package got overwritten entirely, so now suddenly there was no -lfontconfig anymore.

As for the reason why its there in the first place: OpenJDK seems to use dlopen to load fontconfig, and the -lfontconfig is a bit of a hack to make it reference it at link time (ideally this would only be applied to libfontmanager.so, but after fiddling around with patchelf I couldn't get that to work)

@theCapypara theCapypara self-requested a review July 18, 2025 16:12
@britter
Copy link
Contributor

britter commented Jul 21, 2025

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 425529
Commit: 0bfaccdde33f5d7783372fc97d84de915d1d2e75


x86_64-linux

✅ 26 packages built:
  • animeko
  • jetbrains.aqua
  • jetbrains.clion
  • jetbrains.datagrip
  • jetbrains.dataspell
  • jetbrains.gateway
  • jetbrains.goland
  • jetbrains.idea-community (jetbrains.idea-community-src)
  • jetbrains.idea-community-bin
  • jetbrains.idea-ultimate
  • jetbrains.jdk
  • jetbrains.jdk-no-jcef
  • jetbrains.jdk-no-jcef-17
  • jetbrains.jdk-no-jcef-17.debug
  • jetbrains.jdk-no-jcef.debug
  • jetbrains.jdk.debug
  • jetbrains.mps
  • jetbrains.phpstorm
  • jetbrains.pycharm-community (jetbrains.pycharm-community-src)
  • jetbrains.pycharm-community-bin
  • jetbrains.pycharm-professional
  • jetbrains.rider
  • jetbrains.ruby-mine
  • jetbrains.rust-rover
  • jetbrains.webstorm
  • jetbrains.writerside

@aoli-al
Copy link
Member

aoli-al commented Jul 21, 2025

I got the following stack trace while trying to open idea-community-bin with option -Dawt.toolkit.name=WLToolkit:

-----
JRE: 21.0.6+6-nixos amd64 (JetBrains s.r.o.)
/nix/store/gl7nsv9a75wzji9g0fd1yc1mbi8pvpln-jetbrains-jdk-jcef-21.0.6-b895.109/lib/openjdk

-----
Also, a UI exception occurred in an attempt to show the above message:
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.wl.WLToolkit
        at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:75)
        at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595)
        at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:213)
        at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:232)
        at com.intellij.platform.ide.bootstrap.StartupErrorReporter.showError(StartupErrorReporter.java:138)
        at com.intellij.platform.ide.bootstrap.StartupErrorReporter.showError(StartupErrorReporter.java:99)
        at com.intellij.idea.Main.mainImpl(Main.kt:86)
        at com.intellij.idea.Main.main(Main.kt:47)
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: No such file or directory (libxkbcommon.so) [in thread "DefaultDispatcher-worker-7"]
        at java.desktop/sun.awt.wl.WLKeyboard.initialize(Native Method)
        at java.desktop/sun.awt.wl.WLKeyboard.<init>(WLKeyboard.java:37)
        at java.desktop/sun.awt.wl.WLToolkit.<clinit>(WLToolkit.java:167)
        at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:75)
        at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595)
        at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invokeSuspend(ui.kt:139)
        at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt)
        at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163)
        at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
        at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span(tracer.kt:56)
        at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span$default(tracer.kt:48)
        at com.intellij.platform.ide.bootstrap.UiKt.initAwtToolkit(ui.kt:138)
        at com.intellij.platform.ide.bootstrap.UiKt.access$initAwtToolkit(ui.kt:1)
        at com.intellij.platform.ide.bootstrap.UiKt$scheduleInitAwtToolkit$task$1$1.invokeSuspend(ui.kt:121)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750)

This can be fixed with the following patch:

diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index c8ee60822c7d..2729ffdd12ed 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -20,6 +20,7 @@
   libX11,
   libXext,
   libxcb,
+  libxkbcommon,
   nss,
   nspr,
   libdrm,
@@ -141,6 +142,7 @@ jdk.overrideAttrs (oldAttrs: rec {
         libX11
         libXext
         libxcb
+        libxkbcommon
         nss
         nspr
         libdrm

@britter
Copy link
Contributor

britter commented Jul 24, 2025

I'm waiting for a fix to land in nix-25.05. Does anybody have a workaround that I can apply without making my own fork of nixpkgs? The solutions that use an override for the jdk don't seem to work reliably.

@theCapypara
Copy link
Member

theCapypara commented Jul 24, 2025

NixOS 25.05 shouldn't be affected, afaik this only affects unstable? Or did something change? I pull Jetbrains from unstable and can't test stable right now, so I have no clue.

@fabianhjr
Copy link
Member

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 425529
Commit: 0bfaccdde33f5d7783372fc97d84de915d1d2e75


x86_64-linux

✅ 26 packages built:
  • animeko
  • jetbrains.aqua
  • jetbrains.clion
  • jetbrains.datagrip
  • jetbrains.dataspell
  • jetbrains.gateway
  • jetbrains.goland
  • jetbrains.idea-community (jetbrains.idea-community-src)
  • jetbrains.idea-community-bin
  • jetbrains.idea-ultimate
  • jetbrains.jdk
  • jetbrains.jdk-no-jcef
  • jetbrains.jdk-no-jcef-17
  • jetbrains.jdk-no-jcef-17.debug
  • jetbrains.jdk-no-jcef.debug
  • jetbrains.jdk.debug
  • jetbrains.mps
  • jetbrains.phpstorm
  • jetbrains.pycharm-community (jetbrains.pycharm-community-src)
  • jetbrains.pycharm-community-bin
  • jetbrains.pycharm-professional
  • jetbrains.rider
  • jetbrains.ruby-mine
  • jetbrains.rust-rover
  • jetbrains.webstorm
  • jetbrains.writerside

@fabianhjr fabianhjr merged commit f12505e into NixOS:master Jul 24, 2025
30 of 31 checks passed
@fabianhjr fabianhjr added 12.approvals: 2 This PR was reviewed and approved by two persons. and removed 12.approvals: 1 This PR was reviewed and approved by one person. labels Jul 24, 2025
@britter
Copy link
Contributor

britter commented Jul 24, 2025

@theCapypara not at my computer right now, but AFAICT this jetbrains jdk doesn't build on stable right now. I was assuming that the change that broke it had propagated from unstable to stable.

pbek added a commit to pbek/nixcfg that referenced this pull request Jul 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 12.approvals: 2 This PR was reviewed and approved by two persons. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants