summaryrefslogtreecommitdiffstats
path: root/pkgs/development/cuda-modules
diff options
context:
space:
mode:
authorConnor Baker <connor.baker@tweag.io>2023-12-13 08:32:07 -0500
committerGitHub <noreply@github.com>2023-12-13 08:32:07 -0500
commit6458f9f1f4f3c7706d3f2ff15ea475df17227d8a (patch)
tree9c4a95c6d7285138d2e8681f012439811563fa2c /pkgs/development/cuda-modules
parent4c38056c14adfa6792d4d30c86abc896e764bfeb (diff)
parenta5b8caa346ba946749136c9896b40d25266958f0 (diff)
Merge pull request #271923 from graham33/fix/nsys-ui
cudatoolkit: Replace vendored Qt plugins with symlinks
Diffstat (limited to 'pkgs/development/cuda-modules')
-rw-r--r--pkgs/development/cuda-modules/cudatoolkit/default.nix31
1 files changed, 30 insertions, 1 deletions
diff --git a/pkgs/development/cuda-modules/cudatoolkit/default.nix b/pkgs/development/cuda-modules/cudatoolkit/default.nix
index 57070493eb6d..de216c24bb67 100644
--- a/pkgs/development/cuda-modules/cudatoolkit/default.nix
+++ b/pkgs/development/cuda-modules/cudatoolkit/default.nix
@@ -258,7 +258,7 @@ backendStdenv.mkDerivation rec {
rm $out/host-linux-x64/libstdc++.so*
''}
${
- lib.optionalString (lib.versionAtLeast version "11.8")
+ lib.optionalString (lib.versionAtLeast version "11.8" && lib.versionOlder version "12")
# error: auto-patchelf could not satisfy dependency libtiff.so.5 wanted by /nix/store/.......-cudatoolkit-12.0.1/host-linux-x64/Plugins/imageformats/libqtiff.so
# we only ship libtiff.so.6, so let's use qt plugins built by Nix.
# TODO: don't copy, come up with a symlink-based "merge"
@@ -266,6 +266,21 @@ backendStdenv.mkDerivation rec {
rsync ${lib.getLib qt6Packages.qtimageformats}/lib/qt-6/plugins/ $out/host-linux-x64/Plugins/ -aP
''
}
+ ${
+ lib.optionalString (lib.versionAtLeast version "12")
+ # Use Qt plugins built by Nix.
+ ''
+ for qtlib in $out/host-linux-x64/Plugins/*/libq*.so; do
+ qtdir=$(basename $(dirname $qtlib))
+ filename=$(basename $qtlib)
+ for qtpkgdir in ${lib.concatMapStringsSep " " (x: qt6Packages.${x}) ["qtbase" "qtimageformats" "qtsvg" "qtwayland"]}; do
+ if [ -e $qtpkgdir/lib/qt-6/plugins/$qtdir/$filename ]; then
+ ln -snf $qtpkgdir/lib/qt-6/plugins/$qtdir/$filename $qtlib
+ fi
+ done
+ done
+ ''
+ }
rm -f $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
@@ -336,6 +351,20 @@ backendStdenv.mkDerivation rec {
wrapProgram "$out/bin/$b" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
done
+ ${
+ lib.optionalString (lib.versionAtLeast version "12")
+ # Check we don't have any lurking vendored qt libraries that weren't
+ # replaced during installPhase
+ ''
+ qtlibfiles=$(find $out -name "libq*.so" -type f)
+ if [ ! -z "$qtlibfiles" ]; then
+ echo "Found unexpected vendored Qt library files in $out" >&2
+ echo $qtlibfiles >&2
+ echo "These should be replaced with symlinks in installPhase" >&2
+ exit 1
+ fi
+ ''
+ }
'';
# cuda-gdb doesn't run correctly when not using sandboxing, so