diff options
author | Ambroz Bizjak <abizjak.pro@gmail.com> | 2019-05-22 18:30:05 +0200 |
---|---|---|
committer | Ambroz Bizjak <abizjak.pro@gmail.com> | 2019-05-22 18:30:05 +0200 |
commit | 1860e506e7f2fd66982929cfb75ec83b0a586acb (patch) | |
tree | 3489508dc23bf1aa3fd4ce0111ea20028347fdb3 /pkgs/development/libraries/ocl-icd | |
parent | 2874e849d99e4e96154fc2a7ce4b2e5d8ed4e699 (diff) | |
download | nixpkgs-1860e506e7f2fd66982929cfb75ec83b0a586acb.tar nixpkgs-1860e506e7f2fd66982929cfb75ec83b0a586acb.tar.gz nixpkgs-1860e506e7f2fd66982929cfb75ec83b0a586acb.tar.bz2 nixpkgs-1860e506e7f2fd66982929cfb75ec83b0a586acb.tar.lz nixpkgs-1860e506e7f2fd66982929cfb75ec83b0a586acb.tar.xz nixpkgs-1860e506e7f2fd66982929cfb75ec83b0a586acb.tar.zst nixpkgs-1860e506e7f2fd66982929cfb75ec83b0a586acb.zip |
libglvnd, ocl-icd, vulkan-loader: Add driver library paths to RUNPATH.
Previously we were relying on LD_LIBRARY_PATH to discover driver libraries (libGL, ligGLX, libEGL, OpenCL and Vulkan). This has the problem that setuid programs (in particular VirtualBox) ignore LD_LIBRARY_PATH. Fix it by setting RUNPATH in various dispatch libraries. This is not needed for libvdpau because it is already configured to look for libraries in the driver paths. Fixes https://github.com/NixOS/nixpkgs/issues/22760.
Diffstat (limited to 'pkgs/development/libraries/ocl-icd')
-rw-r--r-- | pkgs/development/libraries/ocl-icd/default.nix | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/pkgs/development/libraries/ocl-icd/default.nix b/pkgs/development/libraries/ocl-icd/default.nix index ec6dc5f9052..abdc7502052 100644 --- a/pkgs/development/libraries/ocl-icd/default.nix +++ b/pkgs/development/libraries/ocl-icd/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ruby, opencl-headers, libGL_driver }: +{stdenv, fetchurl, ruby, opencl-headers, addOpenGLRunpath }: stdenv.mkDerivation rec { name = "ocl-icd-${version}"; @@ -9,12 +9,18 @@ stdenv.mkDerivation rec { sha256 = "0f14gpa13sdm0kzqv5yycp4pschbmi6n5fj7wl4ilspzsrqcgqr2"; }; - nativeBuildInputs = [ ruby ]; + nativeBuildInputs = [ ruby addOpenGLRunpath ]; buildInputs = [ opencl-headers ]; postPatch = '' - sed -i 's,"/etc/OpenCL/vendors","${libGL_driver.driverLink}/etc/OpenCL/vendors",g' ocl_icd_loader.c + sed -i 's,"/etc/OpenCL/vendors","${addOpenGLRunpath.driverLink}/etc/OpenCL/vendors",g' ocl_icd_loader.c + ''; + + # Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found. + # See the explanation in addOpenGLRunpath. + postFixup = '' + addOpenGLRunpath $out/lib/libOpenCL.so ''; meta = with stdenv.lib; { |