# Contributor: Stefan Reimer # Maintainer: Stefan Reimer pkgname=nvidia-drivers pkgver=565.57.01 pkgrel=0 pkgdesc="NVIDIA Driver" url="https://www.nvidia.com/download/index.aspx" arch="x86_64" license="MIT OR GPL-2.0" makedepends="bash xz" depends="glibc-bin" options="!check !strip !tracedeps" source="NVIDIA-Linux-x86_64-$pkgver.run::https://download.nvidia.com/XFree86/Linux-x86_64/$pkgver/NVIDIA-Linux-x86_64-$pkgver.run" build() { sh "$srcdir"/NVIDIA-Linux-x86_64-$pkgver.run -x -s } package() { mkdir -p "$pkgdir"/usr/glibc-compat/lib/nvidia "$pkgdir"/usr/sbin "$pkgdir"/lib/firmware/nvidia/"$pkgver" # tell glibc compat about our libs mkdir -p "$pkgdir"/usr/glibc-compat/etc/ld.so.conf.d echo "/usr/glibc-compat/lib/nvidia" > "$pkgdir"/usr/glibc-compat/etc/ld.so.conf.d/nvidia.conf cd "$srcdir"/NVIDIA-Linux-x86_64-$pkgver # GSP firmware cp firmware/*.bin "$pkgdir"/lib/firmware/nvidia/"$pkgver"/ # Various bins SBINS="nvidia-smi nvidia-debugdump nvidia-cuda-mps-control nvidia-cuda-mps-server nvidia-persistenced" for f in $SBINS; do cp $f "$pkgdir"/usr/sbin done # which libs are from debug log at runtime # LIBS=$(grep "missing library" /var/log/nvidia-container-toolkit.log | awk '{print $7}' | sort | uniq) # cross checked via .manifest for targets and symlinks LIBS="libEGL_nvidia.so libGLESv1_CM_nvidia.so libGLESv2_nvidia.so libGLX_nvidia.so libcuda.so libcudadebugger.so libnvcuvid.so libnvidia-cbl.so libnvidia-cfg.so libnvidia-compiler.so libnvidia-eglcore.so libnvidia-encode.so libnvidia-fatbinaryloader.so libnvidia-fbc.so libnvidia-glcore.so libnvidia-glsi.so libnvidia-glvkspirv.so libnvidia-ifr.so libnvidia-ml.so libnvidia-ngx.so libnvidia-nscq.so libnvidia-opencl.so libnvidia-opticalflow.so libnvidia-pkcs11.so libnvidia-ptxjitcompiler.so libnvidia-rtcore.so libnvidia-tls.so libnvoptix.so libvdpau_nvidia.so libnvidia-gpucomp.so libnvidia-nvvm.so" # inspired from Gentoo x11-drivers/nvidia-drivers for lib in $LIBS; do native=$(grep $lib .manifest | grep _LIB | grep NATIVE | grep -v SYMLINK | awk '{print $1}') if [ -n "$native" ]; then cp $native "$pkgdir"/usr/glibc-compat/lib/nvidia links="$(grep $native .manifest | grep SYMLINK | grep -v COMPAT32 | awk '{print $1}')" for target in $links; do ln -s /usr/glibc-compat/lib/nvidia/$native "$pkgdir"/usr/glibc-compat/lib/nvidia/$target done fi done } sha512sums=" 8f5c0f06e13cf84042c9ad1d628ef3fd5aaffb116f1716b099e6ededb125e973a4a2c511bb6201e3a39d7710b2850c3418bdbeac792036b7524c5a5fc8746f52 NVIDIA-Linux-x86_64-565.57.01.run "