diff --git a/common/shlibs b/common/shlibs index 9181e1bcf8..69005db576 100644 --- a/common/shlibs +++ b/common/shlibs @@ -138,6 +138,7 @@ libnvidia-glcore.so.346.47 nvidia340-libs-340.46_1 ignore libnvidia-glcore.so.390.87 nvidia390-libs-390.87_1 ignore libnvidia-glsi.so.346.72 nvidia-libs-346.72_1 ignore libnvidia-fatbinaryloader.so.390.87 nvidia390-libs-390.87_1 ignore +libnvidia-fatbinaryloader.so.410.73 nvidia-libs-410.73_1 ignore libglapi.so.0 libglapi-7.11_1 libgbm.so.1 libgbm-9.0_1 librsvg-2.so.2 librsvg-2.26.0_1 diff --git a/srcpkgs/nvidia/INSTALL b/srcpkgs/nvidia/INSTALL index 6b065bedb4..c0f79a1c3e 100644 --- a/srcpkgs/nvidia/INSTALL +++ b/srcpkgs/nvidia/INSTALL @@ -1,7 +1,13 @@ -# Regenerate initramfs. -case ${ACTION} in +case "${ACTION}" in post) + # Regenerate initramfs. echo "Regenerating initramfs, please wait..." dracut -f -q --regenerate-all + + if [ "${ARCH}" = "i686" ]; then + echo "Nvidia has dropped support for 32-bit kernels.\n" + echo "Please consider installing the nvidia390 package as an alternative.\n" + echo "This package is now only useful if you're using a x86_64 kernel.\n" + fi ;; esac diff --git a/srcpkgs/nvidia/template b/srcpkgs/nvidia/template index de34bb1a04..723f37f13d 100644 --- a/srcpkgs/nvidia/template +++ b/srcpkgs/nvidia/template @@ -3,7 +3,7 @@ _desc="NVIDIA drivers for linux (long-lived series)" pkgname=nvidia -version=390.87 +version=410.73 revision=1 maintainer="Juan RP " license="Proprietary NVIDIA license" @@ -14,25 +14,30 @@ nopie=yes repository="nonfree" create_wrksrc=yes short_desc="${_desc} - Libraries and Utilities" -depends="nvidia-gtklibs-${version}_${revision} nvidia-dkms-${version}_${revision} pkg-config" conflicts="catalyst>=0 xserver-abi-video>24_1" +if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then + depends="nvidia-gtklibs-${version}_${revision} nvidia-dkms-${version}_${revision} pkg-config" +else + depends="pkg-config" +fi + build_options="glvnd" desc_option_glvnd="Add support for NVIDIA's GL Vendor Neutral Dispatch implementation" build_options_default="glvnd" if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then - _pkg="NVIDIA-Linux-x86-${version}" - distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86/${version}/${_pkg}.run" - checksum=5c29c5f9d80a07ea71219c6323fe5fc9b7577847b970f23161685d4b890b9966 + _pkg="NVIDIA-Linux-x86_64-${version}" + distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run" + checksum=bebc9cf781201beb5ec1a1dde7672db68609b8af0aa5ff32daa3ebb533c2ff1e + subpackages="nvidia-libs" else _pkg="NVIDIA-Linux-x86_64-${version}-no-compat32" distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run" - checksum=c7c07151e17f610af11f7870560d96c3a3ee9bb91ba1bb82fcc7b5d473d40b66 + checksum=7d6b6c9931f8b89404149a5fdf7a580edae0cd567cc2d4ffe3823b1af02a705d + subpackages="nvidia-gtklibs nvidia-dkms nvidia-opencl nvidia-libs" fi -subpackages="nvidia-gtklibs nvidia-dkms nvidia-opencl nvidia-libs" - do_extract() { install -m755 ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_pkg}.run ${wrksrc} cd ${wrksrc} @@ -49,12 +54,17 @@ pre_install() { do_install() { cd ${_pkg} - # X driver - vinstall nvidia_drv.so 755 usr/lib/xorg/modules/drivers + if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then + cd 32 + else + # X driver + vinstall nvidia_drv.so 755 usr/lib/xorg/modules/drivers - # GLX extension module for X - vinstall libglx.so.${version} 755 usr/lib/xorg/modules/extensions - ln -sf libglx.so.${version} ${DESTDIR}/usr/lib/xorg/modules/extensions/libglx.so + # GLX extension module for X + vinstall libglxserver_nvidia.so.${version} 755 usr/lib/xorg/modules/extensions + ln -sf libglxserver_nvidia.so.${version} ${DESTDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so + ln -sf libglxserver_nvidia.so.${version} ${DESTDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so.1 + fi # GLX client libs if [ "${build_option_glvnd}" ]; then @@ -89,6 +99,9 @@ do_install() { vinstall libnvidia-eglcore.so.${version} 755 usr/lib vinstall libnvidia-glsi.so.${version} 755 usr/lib + # Vulkan core library + vinstall libnvidia-glvkspirv.so.${version} 755 usr/lib + # EGL # ----- Also provided by the libglvnd package (todo) vinstall libOpenGL.so.0 755 usr/lib @@ -104,11 +117,14 @@ do_install() { ln -sf libGLESv2.so.2.1.0 ${DESTDIR}/usr/lib/libGLESv2.so ln -sf libGLESv2.so.2.1.0 ${DESTDIR}/usr/lib/libGLESv2.so.2 - vinstall libnvidia-egl-wayland.so.1.0.2 755 usr/lib - ln -sf libnvidia-egl-wayland.so.1.0.2 ${DESTDIR}/usr/lib/libnvidia-egl-wayland.so.1 + if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then + vinstall libnvidia-egl-wayland.so.1.1.0 755 usr/lib + ln -sf libnvidia-egl-wayland.so.1.1.0 ${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 + fi - 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 libEGL.so.1.1.0 755 usr/lib @@ -125,16 +141,19 @@ do_install() { ln -sf libGLESv2_nvidia.so.${version} ${DESTDIR}/usr/lib/libGLESv2_nvidia.so.2 # Thread Local Storage - vinstall tls/libnvidia-tls.so.${version} 755 usr/lib + vinstall tls/libnvidia-tls.so.${version} 755 usr/lib/tls + ln -sf libnvidia-tls.so.${version} ${DESTDIR}/usr/lib/libnvidia-tls.so.${version} # VDPAU vinstall libvdpau_nvidia.so.${version} 755 usr/lib/vdpau ln -sf libvdpau_nvidia.so.${version} ${DESTDIR}/usr/lib/vdpau/libvdpau_nvidia.so.1 # misc libraries - 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 + if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then + 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 + fi vinstall libnvidia-ml.so.${version} 755 usr/lib ln -sf libnvidia-ml.so.${version} ${DESTDIR}/usr/lib/libnvidia-ml.so @@ -157,10 +176,13 @@ do_install() { ln -sf libnvidia-fatbinaryloader.so.1 ${DESTDIR}/usr/lib/libnvidia-fatbinaryloader.so # CUDA - vbin nvidia-cuda-mps-control - vbin nvidia-cuda-mps-server - gzip -d nvidia-cuda-mps-control.1.gz - vman nvidia-cuda-mps-control.1 + + if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then + vbin nvidia-cuda-mps-control + vbin nvidia-cuda-mps-server + gzip -d nvidia-cuda-mps-control.1.gz + vman nvidia-cuda-mps-control.1 + fi vinstall libcuda.so.${version} 755 usr/lib ln -sf libcuda.so.${version} ${DESTDIR}/usr/lib/libcuda.so @@ -174,75 +196,78 @@ do_install() { ln -sf libnvidia-ptxjitcompiler.so.${version} ${DESTDIR}/usr/lib/libnvidia-ptxjitcompiler.so.1 ln -sf libnvidia-ptxjitcompiler.so.1 ${DESTDIR}/usr/lib/libnvidia-ptxjitcompiler.so - # nvidia-xconfig - vbin nvidia-xconfig - gzip -d nvidia-xconfig.1.gz - vman nvidia-xconfig.1 + # helper libs for approved partners' GRID remote apps + vinstall libnvidia-ifr.so.${version} 755 usr/lib + vinstall libnvidia-fbc.so.${version} 755 usr/lib - # 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 + if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then + # nvidia-xconfig + vbin nvidia-xconfig + gzip -d nvidia-xconfig.1.gz + vman nvidia-xconfig.1 - vinstall libnvidia-gtk3.so.${version} 755 usr/lib - vinstall libnvidia-gtk2.so.${version} 755 usr/lib + # 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 - # 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 + vinstall libnvidia-gtk3.so.${version} 755 usr/lib + vinstall libnvidia-gtk2.so.${version} 755 usr/lib - # nvidia-bug-report - vbin nvidia-bug-report.sh nvidia-bug-report - vbin nvidia-debugdump + # 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-smi - vbin nvidia-smi - gzip -d nvidia-smi.1.gz - vman nvidia-smi.1 + # nvidia-bug-report + vbin nvidia-bug-report.sh nvidia-bug-report + vbin nvidia-debugdump - # nvidia-modprobe - vinstall nvidia-modprobe 4755 usr/bin - gzip -d nvidia-modprobe.1.gz - vman nvidia-modprobe.1 + # nvidia-smi + vbin nvidia-smi + gzip -d nvidia-smi.1.gz + vman nvidia-smi.1 - # License and documentation - vlicense LICENSE - vdoc README.txt README - vdoc NVIDIA_Changelog + # nvidia-modprobe + vinstall nvidia-modprobe 4755 usr/bin + gzip -d nvidia-modprobe.1.gz + vman nvidia-modprobe.1 - # opencl pkg - vinstall nvidia.icd 644 etc/OpenCL/vendors + # opencl pkg + vinstall nvidia.icd 644 etc/OpenCL/vendors - vinstall libnvidia-compiler.so.${version} 755 usr/lib + 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 + 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 icd + vinstall nvidia_icd.json 644 usr/share/vulkan/icd.d - # 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 - if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then - # nvidia no longer builds "uvm" submodule for 32-bit - # Remove 2 lines for "nvidia-uvm" and repair consecutive enumeration following. - sed -e '/nvidia-uvm/,+1d' \ - -e 's/\[2\]/[1]/g' \ - -e 's/\[3\]/[2]/g' \ - -i ${DESTDIR}/usr/src/nvidia-${version}/dkms.conf + # vulkan real-time ray tracing extensions + vinstall libnvidia-rtcore.so.${version} 755 usr/lib + vinstall libnvidia-cbl.so.${version} 755 usr/lib + + # optix ray racing engine + vinstall libnvoptix.so.${version} 755 usr/lib + + # 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 + + vmkdir /usr/share/X11/xorg.conf.d/ + vinstall nvidia-drm-outputclass.conf 644 /usr/share/X11/xorg.conf.d 30-nvidia-drm-outputclass.conf fi # Blacklist nouveau @@ -254,8 +279,14 @@ do_install() { vmkdir usr/lib/dracut/dracut.conf.d echo "omit_dracutmodules+=\" drm \"" > ${DESTDIR}/usr/lib/dracut/dracut.conf.d/99-nvidia.conf - vmkdir /usr/share/X11/xorg.conf.d/ - vinstall nvidia-drm-outputclass.conf 644 /usr/share/X11/xorg.conf.d 30-nvidia-drm-outputclass.conf + if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then + cd .. + fi + + # License and documentation + vlicense LICENSE + vdoc README.txt README + vdoc NVIDIA_Changelog } nvidia-gtklibs_package() {