From 0e1b5ea931972c90b34ed9deab6382a7bce03086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cerqueira?= Date: Tue, 4 Jan 2022 18:23:11 +0000 Subject: [PATCH] New package: nvidia470-470.103.01 Closes: #34911 [via git-merge-pr] --- srcpkgs/nvidia470-dkms | 1 + srcpkgs/nvidia470-gtklibs | 1 + srcpkgs/nvidia470-libs | 1 + srcpkgs/nvidia470-libs-32bit | 1 + srcpkgs/nvidia470-opencl | 1 + srcpkgs/nvidia470/INSTALL | 3 + srcpkgs/nvidia470/files/dkms.conf | 19 ++ .../files/nvidia-drm-outputclass.conf | 18 + srcpkgs/nvidia470/files/prime-run | 5 + srcpkgs/nvidia470/template | 311 ++++++++++++++++++ srcpkgs/nvidia470/update | 2 + 11 files changed, 363 insertions(+) create mode 120000 srcpkgs/nvidia470-dkms create mode 120000 srcpkgs/nvidia470-gtklibs create mode 120000 srcpkgs/nvidia470-libs create mode 120000 srcpkgs/nvidia470-libs-32bit create mode 120000 srcpkgs/nvidia470-opencl create mode 100644 srcpkgs/nvidia470/INSTALL create mode 100644 srcpkgs/nvidia470/files/dkms.conf create mode 100644 srcpkgs/nvidia470/files/nvidia-drm-outputclass.conf create mode 100644 srcpkgs/nvidia470/files/prime-run create mode 100644 srcpkgs/nvidia470/template create mode 100644 srcpkgs/nvidia470/update diff --git a/srcpkgs/nvidia470-dkms b/srcpkgs/nvidia470-dkms new file mode 120000 index 0000000000..f69702e946 --- /dev/null +++ b/srcpkgs/nvidia470-dkms @@ -0,0 +1 @@ +nvidia470 \ No newline at end of file diff --git a/srcpkgs/nvidia470-gtklibs b/srcpkgs/nvidia470-gtklibs new file mode 120000 index 0000000000..f69702e946 --- /dev/null +++ b/srcpkgs/nvidia470-gtklibs @@ -0,0 +1 @@ +nvidia470 \ No newline at end of file diff --git a/srcpkgs/nvidia470-libs b/srcpkgs/nvidia470-libs new file mode 120000 index 0000000000..f69702e946 --- /dev/null +++ b/srcpkgs/nvidia470-libs @@ -0,0 +1 @@ +nvidia470 \ No newline at end of file diff --git a/srcpkgs/nvidia470-libs-32bit b/srcpkgs/nvidia470-libs-32bit new file mode 120000 index 0000000000..f69702e946 --- /dev/null +++ b/srcpkgs/nvidia470-libs-32bit @@ -0,0 +1 @@ +nvidia470 \ No newline at end of file diff --git a/srcpkgs/nvidia470-opencl b/srcpkgs/nvidia470-opencl new file mode 120000 index 0000000000..f69702e946 --- /dev/null +++ b/srcpkgs/nvidia470-opencl @@ -0,0 +1 @@ +nvidia470 \ No newline at end of file diff --git a/srcpkgs/nvidia470/INSTALL b/srcpkgs/nvidia470/INSTALL new file mode 100644 index 0000000000..2461dca609 --- /dev/null +++ b/srcpkgs/nvidia470/INSTALL @@ -0,0 +1,3 @@ +case "${ACTION}" in +post) ldconfig -X || : ;; +esac diff --git a/srcpkgs/nvidia470/files/dkms.conf b/srcpkgs/nvidia470/files/dkms.conf new file mode 100644 index 0000000000..ec795dbdc6 --- /dev/null +++ b/srcpkgs/nvidia470/files/dkms.conf @@ -0,0 +1,19 @@ +PACKAGE_NAME="nvidia470" +PACKAGE_VERSION="__PKGVER" +AUTOINSTALL="yes" + +# By default, DKMS will add KERNELRELEASE to the make command line; however, +# this will cause the kernel module build to infer that it was invoked via +# Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting +# the 'make' command name to suppress this behavior. +MAKE[0]="'make' __MAKEJOBS NV_EXCLUDE_BUILD_MODULES='' KERNEL_UNAME=${kernelver} modules" + +# The list of kernel modules was generated by nvidia-installer at runtime. +BUILT_MODULE_NAME[0]="nvidia" +DEST_MODULE_LOCATION[0]="/kernel/drivers/video" +BUILT_MODULE_NAME[1]="nvidia-uvm" +DEST_MODULE_LOCATION[1]="/kernel/drivers/video" +BUILT_MODULE_NAME[2]="nvidia-modeset" +DEST_MODULE_LOCATION[2]="/kernel/drivers/video" +BUILT_MODULE_NAME[3]="nvidia-drm" +DEST_MODULE_LOCATION[3]="/kernel/drivers/video" diff --git a/srcpkgs/nvidia470/files/nvidia-drm-outputclass.conf b/srcpkgs/nvidia470/files/nvidia-drm-outputclass.conf new file mode 100644 index 0000000000..65e3fd3862 --- /dev/null +++ b/srcpkgs/nvidia470/files/nvidia-drm-outputclass.conf @@ -0,0 +1,18 @@ +Section "ServerLayout" + Identifier "layout" + Option "AllowNVIDIAGPUScreens" +EndSection + +Section "OutputClass" + Identifier "intel" + MatchDriver "i915" + Driver "modesetting" +EndSection + +Section "OutputClass" + Identifier "nvidia" + MatchDriver "nvidia-drm" + Driver "nvidia" + Option "AllowEmptyInitialConfiguration" + ModulePath "/usr/lib/nvidia/xorg" +EndSection diff --git a/srcpkgs/nvidia470/files/prime-run b/srcpkgs/nvidia470/files/prime-run new file mode 100644 index 0000000000..fc8752fc36 --- /dev/null +++ b/srcpkgs/nvidia470/files/prime-run @@ -0,0 +1,5 @@ +#!/bin/sh +export __NV_PRIME_RENDER_OFFLOAD=1 +export __GLX_VENDOR_LIBRARY_NAME=nvidia +export __VK_LAYER_NV_optimus=NVIDIA_only +exec "$@" diff --git a/srcpkgs/nvidia470/template b/srcpkgs/nvidia470/template new file mode 100644 index 0000000000..aab6f1aa6c --- /dev/null +++ b/srcpkgs/nvidia470/template @@ -0,0 +1,311 @@ +# Template file for 'nvidia470' + +_desc="NVIDIA drivers (GKxxx “Kepler”)" + +pkgname=nvidia470 +version=470.103.01 +revision=1 +maintainer="Andrew Benson " +license="custom:NVIDIA Proprietary" +homepage="https://www.nvidia.com" + +archs="x86_64" +nopie=yes +repository="nonfree" +create_wrksrc=yes +short_desc="${_desc} - Libraries and Utilities" +hostmakedepends="tar" +conflicts="xserver-abi-video>24_1" + +_pkg="NVIDIA-Linux-x86_64-${version}" +distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run" +checksum=56c2309f89c213463b0c46360f7b2275d7371d3c727af3fedc88c496edc887a5 +# subpackages need to be processed in this specific order +subpackages="nvidia470-gtklibs nvidia470-dkms nvidia470-opencl nvidia470-libs nvidia470-libs-32bit" +depends="nvidia470-libs-${version}_${revision} + nvidia470-gtklibs-${version}_${revision} + nvidia470-dkms-${version}_${revision}" + +_install_libs() { + local libdir=$1 + + # GLX client libs + # Required for GLVND option + vinstall libGLX_nvidia.so.${version} 755 ${libdir} + ln -sf libGLX_nvidia.so.${version} ${DESTDIR}/${libdir}/libGLX_nvidia.so.0 + ln -sf libGLX_nvidia.so.${version} ${DESTDIR}/${libdir}/libGLX_indirect.so.0 + + # OpenGL core library + vinstall libnvidia-glcore.so.${version} 755 ${libdir} + vinstall libnvidia-eglcore.so.${version} 755 ${libdir} + vinstall libnvidia-glsi.so.${version} 755 ${libdir} + + # Vulkan core library + vinstall libnvidia-glvkspirv.so.${version} 755 ${libdir} + + vinstall libEGL_nvidia.so.${version} 755 ${libdir} + ln -sf libEGL_nvidia.so.${version} ${DESTDIR}/${libdir}/libEGL_nvidia.so.0 + + vinstall libGLESv1_CM_nvidia.so.${version} 755 ${libdir} + ln -sf libGLESv1_CM_nvidia.so.${version} \ + ${DESTDIR}/${libdir}/libGLESv1_CM_nvidia.so.1 + + vinstall libGLESv2_nvidia.so.${version} 755 ${libdir} + ln -sf libGLESv2_nvidia.so.${version} ${DESTDIR}/${libdir}/libGLESv2_nvidia.so.2 + + # Thread Local Storage + vinstall libnvidia-tls.so.${version} 755 ${libdir} + + # VDPAU + vinstall libvdpau_nvidia.so.${version} 755 ${libdir}/vdpau + ln -sf libvdpau_nvidia.so.${version} \ + ${DESTDIR}/${libdir}/vdpau/libvdpau_nvidia.so.1 + + vinstall libnvidia-ml.so.${version} 755 ${libdir} + ln -sf libnvidia-ml.so.${version} ${DESTDIR}/${libdir}/libnvidia-ml.so + ln -sf libnvidia-ml.so.${version} ${DESTDIR}/${libdir}/libnvidia-ml.so.1 + + vinstall libnvidia-encode.so.${version} 755 ${libdir} + ln -sf libnvidia-encode.so.${version} ${DESTDIR}/${libdir}/libnvidia-encode.so + ln -sf libnvidia-encode.so.${version} ${DESTDIR}/${libdir}/libnvidia-encode.so.1 + + vinstall libnvidia-ifr.so.${version} 755 ${libdir} + ln -sf libnvidia-ifr.so.${version} ${DESTDIR}/${libdir}/libnvidia-ifr.so + ln -sf libnvidia-ifr.so.${version} ${DESTDIR}/${libdir}/libnvidia-ifr.so.1 + + vinstall libnvidia-fbc.so.${version} 755 ${libdir} + ln -sf libnvidia-fbc.so.${version} ${DESTDIR}/${libdir}/libnvidia-fbc.so + ln -sf libnvidia-fbc.so.${version} ${DESTDIR}/${libdir}/libnvidia-fbc.so.1 + + # CUDA + vinstall libcuda.so.${version} 755 ${libdir} + ln -sf libcuda.so.${version} ${DESTDIR}/${libdir}/libcuda.so + ln -sf libcuda.so.${version} ${DESTDIR}/${libdir}/libcuda.so.1 + + vinstall libnvcuvid.so.${version} 755 ${libdir} + ln -sf libnvcuvid.so.${version} ${DESTDIR}/${libdir}/libnvcuvid.so + ln -sf libnvcuvid.so.${version} ${DESTDIR}/${libdir}/libnvcuvid.so.1 + + vinstall libnvidia-opticalflow.so.${version} 755 ${libdir} + ln -sf libnvidia-opticalflow.so.${version} \ + ${DESTDIR}/${libdir}/libnvidia-opticalflow.so + ln -sf libnvidia-opticalflow.so.${version} \ + ${DESTDIR}/${libdir}/libnvidia-opticalflow.so.1 + + vinstall libnvidia-ptxjitcompiler.so.${version} 755 ${libdir} + ln -sf libnvidia-ptxjitcompiler.so.${version} \ + ${DESTDIR}/${libdir}/libnvidia-ptxjitcompiler.so.1 + ln -sf libnvidia-ptxjitcompiler.so.1 \ + ${DESTDIR}/${libdir}/libnvidia-ptxjitcompiler.so + + vinstall libnvidia-allocator.so.${version} 755 ${libdir} + ln -sf libnvidia-allocator.so.${version} \ + ${DESTDIR}/${libdir}/libnvidia-allocator.so.1 + ln -sf libnvidia-allocator.so.1 \ + ${DESTDIR}/${libdir}/libnvidia-allocator.so +} + +do_extract() { + install -m755 ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_pkg}.run ${wrksrc} + cd ${wrksrc} + ./${_pkg}.run --extract-only + rm -f ${_pkg}.run +} + +do_install() { + cd ${_pkg} + + # X driver + vinstall nvidia_drv.so 755 usr/lib/xorg/modules/drivers + + # firmware + vinstall firmware/gsp.bin 644 usr/lib/firmware/nvidia/${version} + + # GLX extension module for X + vinstall libglxserver_nvidia.so.${version} 755 usr/lib/nvidia/xorg + ln -sf libglxserver_nvidia.so.${version} \ + ${DESTDIR}/usr/lib/nvidia/xorg/libglxserver_nvidia.so + ln -sf libglxserver_nvidia.so.${version} \ + ${DESTDIR}/usr/lib/nvidia/xorg/libglxserver_nvidia.so.1 + + vinstall libnvidia-egl-wayland.so.1.1.7 755 usr/lib + ln -sf libnvidia-egl-wayland.so.1.1.7 \ + ${DESTDIR}/usr/lib/libnvidia-egl-wayland.so.1 + + vinstall 10_nvidia.json 755 usr/share/glvnd/egl_vendor.d + vinstall 10_nvidia_wayland.json \ + 755 usr/share/egl/egl_external_platform.d + + vinstall libnvidia-cfg.so.${version} 755 usr/lib + ln -sf libnvidia-cfg.so.${version} ${DESTDIR}/usr/lib/libnvidia-cfg.so + ln -sf libnvidia-cfg.so.${version} ${DESTDIR}/usr/lib/libnvidia-cfg.so.1 + + vbin nvidia-cuda-mps-control + vbin nvidia-cuda-mps-server + gzip -d nvidia-cuda-mps-control.1.gz + vman nvidia-cuda-mps-control.1 + + # nvidia-xconfig + vbin nvidia-xconfig + gzip -d nvidia-xconfig.1.gz + vman nvidia-xconfig.1 + + # nvidia-settings + vbin nvidia-settings + gzip -d nvidia-settings.1.gz + vman nvidia-settings.1 + vinstall nvidia-settings.desktop 644 usr/share/applications + vinstall nvidia-settings.png 644 usr/share/pixmaps + sed -e 's:__UTILS_PATH__:/usr/bin:' \ + -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \ + -i ${DESTDIR}/usr/share/applications/nvidia-settings.desktop + + vinstall libnvidia-gtk3.so.${version} 755 usr/lib + vinstall libnvidia-gtk2.so.${version} 755 usr/lib + + # application profiles (needed by nvidia-settings) + vinstall nvidia-application-profiles-${version}-key-documentation \ + 644 usr/share/nvidia + vinstall nvidia-application-profiles-${version}-rc 644 usr/share/nvidia + + # nvidia-bug-report + vbin nvidia-bug-report.sh nvidia-bug-report + vbin nvidia-debugdump + + # nvidia-smi + vbin nvidia-smi + gzip -d nvidia-smi.1.gz + vman nvidia-smi.1 + + # nvidia-modprobe + vinstall nvidia-modprobe 4755 usr/bin + gzip -d nvidia-modprobe.1.gz + vman nvidia-modprobe.1 + + # nvidia-persistenced + vinstall nvidia-persistenced 4755 usr/bin + gzip -d nvidia-persistenced.1.gz + vman nvidia-persistenced.1 + + # opencl pkg + vinstall nvidia.icd 644 etc/OpenCL/vendors + vinstall nvidia_layers.json 644 usr/share/vulkan/implicit_layer.d + + vinstall libnvidia-compiler.so.${version} 755 usr/lib + + vinstall libnvidia-opencl.so.${version} 755 usr/lib + ln -sf libnvidia-opencl.so.${version} \ + ${DESTDIR}/usr/lib/libnvidia-opencl.so + ln -sf libnvidia-opencl.so.${version} \ + ${DESTDIR}/usr/lib/libnvidia-opencl.so.1 + + # vulkan icd + vinstall nvidia_icd.json 644 usr/share/vulkan/icd.d + + # vulkan real-time ray tracing extensions + vinstall libnvidia-rtcore.so.${version} 755 usr/lib + vinstall libnvidia-cbl.so.${version} 755 usr/lib + + # ngx + vbin nvidia-ngx-updater + vinstall libnvidia-ngx.so.${version} 755 usr/lib + ln -sf libnvidia-ngx.so.${version} \ + ${DESTDIR}/usr/lib/libnvidia-ngx.so.1 + ln -sf libnvidia-ngx.so.1 \ + ${DESTDIR}/usr/lib/libnvidia-ngx.so + + vinstall _nvngx.dll 755 usr/lib/nvidia/wine + vinstall nvngx.dll 755 usr/lib/nvidia/wine + + # optix ray racing engine + vinstall libnvoptix.so.${version} 755 usr/lib + ln -sf libnvoptix.so.${version} /usr/lib/libnvoptix.so + ln -sf libnvoptix.so.${version} /usr/lib/libnvoptix.so.1 + + # dkms pkg + vmkdir usr/src/nvidia-${version} + vcopy "kernel/*" usr/src/nvidia-${version} + vcopy ${FILESDIR}/dkms.conf usr/src/nvidia-${version} + sed -e "s/__PKGVER/${version}/g" \ + -e 's/__MAKEJOBS/-j$(nproc)/g' \ + -i ${DESTDIR}/usr/src/nvidia-${version}/dkms.conf + + # Xorg conf for PRIME + vmkdir /usr/share/X11/xorg.conf.d/ + vinstall ${FILESDIR}/nvidia-drm-outputclass.conf 644 \ + /usr/share/X11/xorg.conf.d 10-nvidia-drm-outputclass.conf + + vbin ${FILESDIR}/prime-run + + # Blacklist nouveau + vmkdir usr/lib/modprobe.d + echo "blacklist nouveau" > ${DESTDIR}/usr/lib/modprobe.d/nvidia.conf + chmod 644 ${DESTDIR}/usr/lib/modprobe.d/nvidia.conf + + # License and documentation + vlicense LICENSE + vdoc README.txt README + vdoc NVIDIA_Changelog + + # nvvm compiler + vinstall libnvidia-nvvm.so.4.0.0 755 usr/lib + ln -sf libnvidia-nvvm.so.4.0.0 \ + ${DESTDIR}/usr/lib/libnvidia-nvvm.so.4 + ln -sf libnvidia-nvvm.so.4 \ + ${DESTDIR}/usr/lib/libnvidia-nvvm.so + + # Libraries (64bit) + _install_libs usr/lib + cd 32 + # Libraries (32bit) + _install_libs usr/lib32 +} + +nvidia470-gtklibs_package() { + short_desc="${_desc} - GTK+ libraries" + pkg_install() { + vmove "usr/lib/lib*gtk*.so*" + } +} + +nvidia470-libs-32bit_package() { + short_desc="${_desc} - common libraries (32bit)" + # manually set 32bit depends for libglvnd + depends="glibc-32bit>=0 libX11-32bit>=0 libXext-32bit>=0 libglvnd-32bit>=0" + repository="multilib/nonfree" + pkg_install() { + vmove usr/lib32 + } +} + +nvidia470-libs_package() { + short_desc="${_desc} - common libraries" + depends="libglvnd" + nostrip_files="gsp.bin" + pkg_install() { + vmove usr/lib + } +} + +nvidia470-dkms_package() { + short_desc="${_desc} - DKMS kernel module" + depends="dkms xbps-triggers>=0.121_1" + dkms_modules="nvidia ${version}" + # dkms must be before initramfs-regenerate to build modules before images + triggers="dkms initramfs-regenerate" + + pkg_install() { + vmove usr/src + vmove usr/lib/modprobe.d + } +} + +nvidia470-opencl_package() { + short_desc="${_desc} - OpenCL implementation" + depends="ocl-icd" + pkg_install() { + vmove "usr/lib/libnvidia-compiler*" + vmove "usr/lib/libnvidia-opencl*" + vmove etc/OpenCL + } +} diff --git a/srcpkgs/nvidia470/update b/srcpkgs/nvidia470/update new file mode 100644 index 0000000000..d33b1d9a14 --- /dev/null +++ b/srcpkgs/nvidia470/update @@ -0,0 +1,2 @@ +site="http://www.nvidia.com/object/unix.html" +pattern='Branch Version.+>\K[\d.]+(?=)'