diff options
author | Edmund Wu <fangkazuto@gmail.com> | 2018-08-11 11:32:00 -0400 |
---|---|---|
committer | Edmund Wu <fangkazuto@gmail.com> | 2018-10-17 19:30:44 -0400 |
commit | 21bb1fa004aae4d96e38bb14a06c24062118dde0 (patch) | |
tree | 106e715e13372cefc461de29f6289489db9b2c1a /pkgs/os-specific/linux/nvidia-x11/builder.sh | |
parent | 7131749bee3742b18b0000554676bb3d760976ff (diff) | |
download | nixpkgs-21bb1fa004aae4d96e38bb14a06c24062118dde0.tar nixpkgs-21bb1fa004aae4d96e38bb14a06c24062118dde0.tar.gz nixpkgs-21bb1fa004aae4d96e38bb14a06c24062118dde0.tar.bz2 nixpkgs-21bb1fa004aae4d96e38bb14a06c24062118dde0.tar.lz nixpkgs-21bb1fa004aae4d96e38bb14a06c24062118dde0.tar.xz nixpkgs-21bb1fa004aae4d96e38bb14a06c24062118dde0.tar.zst nixpkgs-21bb1fa004aae4d96e38bb14a06c24062118dde0.zip |
nvidia_x11_beta: reinit at 410.57
Diffstat (limited to 'pkgs/os-specific/linux/nvidia-x11/builder.sh')
-rwxr-xr-x | pkgs/os-specific/linux/nvidia-x11/builder.sh | 60 |
1 files changed, 36 insertions, 24 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh index 15c3e10e119..8882ffdd45e 100755 --- a/pkgs/os-specific/linux/nvidia-x11/builder.sh +++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh @@ -26,32 +26,44 @@ buildPhase() { fi } - + installPhase() { # Install libGL and friends. + + # since version 391, 32bit libraries are bundled in the 32/ sub-directory + if [ "$i686bundled" = "1" ]; then + mkdir -p "$lib32/lib" + cp -prd 32/*.so.* 32/tls "$lib32/lib/" + fi + mkdir -p "$out/lib" cp -prd *.so.* tls "$out/lib/" - rm $out/lib/lib{glx,nvidia-wfb}.so.* # handled separately - rm -f $out/lib/libnvidia-gtk* # built from source - if [ "$useGLVND" = "1" ]; then - # Pre-built libglvnd - rm $out/lib/lib{GL,GLX,EGL,GLESv1_CM,GLESv2,OpenGL,GLdispatch}.so.* - fi - # Use ocl-icd instead - rm $out/lib/libOpenCL.so* - # Move VDPAU libraries to their place - mkdir $out/lib/vdpau - mv $out/lib/libvdpau* $out/lib/vdpau - - # Install ICDs. - install -Dm644 nvidia.icd $out/etc/OpenCL/vendors/nvidia.icd - if [ -e nvidia_icd.json.template ]; then - sed "s#__NV_VK_ICD__#libGLX_nvidia.so#" nvidia_icd.json.template > nvidia_icd.json - install -Dm644 nvidia_icd.json $out/share/vulkan/icd.d/nvidia.json - fi - if [ "$useGLVND" = "1" ]; then - install -Dm644 10_nvidia.json $out/share/glvnd/egl_vendor.d/nvidia.json - fi + + for i in $lib32 $out; do + rm -f $i/lib/lib{glx,nvidia-wfb}.so.* # handled separately + rm -f $i/lib/libnvidia-gtk* # built from source + if [ "$useGLVND" = "1" ]; then + # Pre-built libglvnd + rm $i/lib/lib{GL,GLX,EGL,GLESv1_CM,GLESv2,OpenGL,GLdispatch}.so.* + fi + # Use ocl-icd instead + rm -f $i/lib/libOpenCL.so* + # Move VDPAU libraries to their place + mkdir $i/lib/vdpau + mv $i/lib/libvdpau* $i/lib/vdpau + + # Install ICDs. + install -Dm644 nvidia.icd $i/etc/OpenCL/vendors/nvidia.icd + if [ -e nvidia_icd.json.template ]; then + sed "s#__NV_VK_ICD__#libGLX_nvidia.so#" nvidia_icd.json.template > nvidia_icd.json + install -Dm644 nvidia_icd.json $i/share/vulkan/icd.d/nvidia.json + fi + if [ "$useGLVND" = "1" ]; then + install -Dm644 10_nvidia.json $i/share/glvnd/egl_vendor.d/nvidia.json + fi + + done + if [ -n "$bin" ]; then # Install the X drivers. @@ -60,7 +72,7 @@ installPhase() { mkdir -p $bin/lib/xorg/modules/drivers cp -p nvidia_drv.so $bin/lib/xorg/modules/drivers mkdir -p $bin/lib/xorg/modules/extensions - cp -p libglx.so.* $bin/lib/xorg/modules/extensions + cp -p libglx*.so* $bin/lib/xorg/modules/extensions # Install the kernel module. mkdir -p $bin/lib/modules/$kernelVersion/misc @@ -78,7 +90,7 @@ installPhase() { fi # All libs except GUI-only are installed now, so fixup them. - for libname in `find "$out/lib/" -name '*.so.*'` `test -z "$bin" || find "$bin/lib/" -name '*.so.*'` + for libname in $(find "$out/lib/" $(test -n "$lib32" && echo "$lib32/lib/") $(test -n "$bin" && echo "$bin/lib/") -name '*.so.*') do # I'm lazy to differentiate needed libs per-library, as the closure is the same. # Unfortunately --shrink-rpath would strip too much. |