wolfram-engine: fix Qt (#195814)

This is necessary for using wolfram-notebook, which calls wolframplayer
where the latter would segfault if Qt plugins are not found.
This commit is contained in:
fee1-dead 2022-10-23 12:15:12 +08:00 committed by GitHub
parent 9a2be06ebe
commit 93e729e432
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 6 deletions

View File

@ -24,6 +24,7 @@
, lang ? "en"
, libGL
, libGLU
, wrapQtAppsHook
}:
let
@ -39,8 +40,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
autoPatchelfHook
installShellFiles
makeWrapper
wrapQtAppsHook
];
dontWrapQtApps = true;
buildInputs = [
alsa-lib
@ -120,11 +122,14 @@ stdenv.mkDerivation rec {
makeWrapper $out/libexec/${dirName}/SystemFiles/Kernel/Binaries/Linux-x86-64/$path $out/bin/$path --set LD_LIBRARY_PATH "${zlib}/lib:${stdenv.cc.cc.lib}/lib:${libssh2}/lib:\''${LD_LIBRARY_PATH}"
done
# ... and xkeyboard config path for Qt
wrapQtApp "$out/libexec/${dirName}/SystemFiles/FrontEnd/Binaries/Linux-x86-64/WolframPlayer" \
--set LD_LIBRARY_PATH "${zlib}/lib:${stdenv.cc.cc.lib}/lib:${libssh2}/lib:\''${LD_LIBRARY_PATH}" \
--set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb"
substituteInPlace $out/libexec/${dirName}/SystemFiles/FrontEnd/Binaries/Linux-x86-64/WolframPlayer \
--replace "TopDirectory=" "TopDirectory=$out/libexec/${dirName} #"
for path in WolframPlayer wolframplayer; do
makeWrapper $out/libexec/${dirName}/Executables/$path $out/bin/$path \
--set LD_LIBRARY_PATH "${zlib}/lib:${stdenv.cc.cc.lib}/lib:${libssh2}/lib:\''${LD_LIBRARY_PATH}" \
--set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb"
makeWrapper $out/libexec/${dirName}/Executables/$path $out/bin/$path
done
# Install man pages

View File

@ -35371,7 +35371,7 @@ with pkgs;
trilinos-mpi = callPackage ../development/libraries/science/math/trilinos { withMPI = true; };
wolfram-engine = callPackage ../applications/science/math/wolfram-engine { };
wolfram-engine = libsForQt5.callPackage ../applications/science/math/wolfram-engine { };
wolfram-for-jupyter-kernel = callPackage ../applications/editors/jupyter-kernels/wolfram { };