From 0f6fd097dfb34c12252c56aad5bf4a885d63056e Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 4 Feb 2020 09:47:15 +0100 Subject: [PATCH] nvidia: restrict to x86_64. For some reason the build fails now when the host is i686 and not x86_64; we only need the -libs subpkgs, so that we generate it manually to not depend on the i686 builder. While we are at it, simplify and restrict to x86_64. --- srcpkgs/nvidia/template | 376 ++++++++++++++++++++-------------------- 1 file changed, 189 insertions(+), 187 deletions(-) diff --git a/srcpkgs/nvidia/template b/srcpkgs/nvidia/template index 1bd43b3116..5d337dcfe8 100644 --- a/srcpkgs/nvidia/template +++ b/srcpkgs/nvidia/template @@ -9,29 +9,103 @@ maintainer="Juan RP " license="custom:NVIDIA Proprietary" homepage="https://www.nvidia.com" -archs="i686 x86_64" +archs="x86_64" nopie=yes repository="nonfree" create_wrksrc=yes short_desc="${_desc} - Libraries and Utilities" conflicts="xserver-abi-video>24_1" -if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then - _pkg="NVIDIA-Linux-x86_64-${version}-no-compat32" - distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run" - checksum=87c05aeadd260034b4d429de5be8032ead2103adee7aedc1adbb15c0ce3c6f28 - subpackages="nvidia-gtklibs nvidia-dkms nvidia-opencl nvidia-libs" - depends="nvidia-libs-${version}_${revision} - nvidia-gtklibs-${version}_${revision} - nvidia-dkms-${version}_${revision} pkgconf" -else - _pkg="NVIDIA-Linux-x86_64-${version}" - distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run" - checksum=61cb1a6c1017087d431c8cec4fc0450030d469cb825a4cac7d1a5142b8c14f98 - subpackages="nvidia-libs" - depends="pkgconf" - build_style=meta -fi +_pkg="NVIDIA-Linux-x86_64-${version}" +distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run" +checksum=61cb1a6c1017087d431c8cec4fc0450030d469cb825a4cac7d1a5142b8c14f98 +subpackages="nvidia-gtklibs nvidia-dkms nvidia-opencl nvidia-libs nvidia-libs-32bit" +depends="nvidia-libs-${version}_${revision} + nvidia-gtklibs-${version}_${revision} + nvidia-dkms-${version}_${revision} pkgconf" + +_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 + + vinstall libnvidia-fatbinaryloader.so.${version} 755 ${libdir} + ln -sf libnvidia-fatbinaryloader.so.${version} \ + ${DESTDIR}/${libdir}/libnvidia-fatbinaryloader.so.1 + ln -sf libnvidia-fatbinaryloader.so.1 \ + ${DESTDIR}/${libdir}/libnvidia-fatbinaryloader.so + + # 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 + + # helper libs for approved partners' GRID remote apps + vinstall libnvidia-ifr.so.${version} 755 usr/lib + vinstall libnvidia-fbc.so.${version} 755 usr/lib +} do_extract() { install -m755 ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_pkg}.run ${wrksrc} @@ -43,197 +117,118 @@ do_extract() { do_install() { cd ${_pkg} - if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then - # X driver - vinstall nvidia_drv.so 755 usr/lib/xorg/modules/drivers + # X driver + vinstall nvidia_drv.so 755 usr/lib/xorg/modules/drivers - # 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 + # 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.4 755 usr/lib - ln -sf libnvidia-egl-wayland.so.1.1.4 \ - ${DESTDIR}/usr/lib/libnvidia-egl-wayland.so.1 + vinstall libnvidia-egl-wayland.so.1.1.4 755 usr/lib + ln -sf libnvidia-egl-wayland.so.1.1.4 \ + ${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 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 + 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 + 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-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 + # 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 + 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 + # 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-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-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-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 - # vulkan real-time ray tracing extensions - vinstall libnvidia-rtcore.so.${version} 755 usr/lib - vinstall libnvidia-cbl.so.${version} 755 usr/lib + # 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 + # 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 + # 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 ${FILESDIR}/nvidia-drm-outputclass.conf 644 \ - /usr/share/X11/xorg.conf.d 10-nvidia-drm-outputclass.conf + 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 - # 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 + # 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 - else - cd 32 - fi + # License and documentation + vlicense LICENSE + vdoc README.txt README + vdoc NVIDIA_Changelog - # Following libs are common between x86_64 and i686 - - # GLX client libs - # Required for GLVND option - vinstall libGLX_nvidia.so.${version} 755 usr/lib - ln -sf libGLX_nvidia.so.${version} ${DESTDIR}/usr/lib/libGLX_nvidia.so.0 - ln -sf libGLX_nvidia.so.${version} ${DESTDIR}/usr/lib/libGLX_indirect.so.0 - - # OpenGL core library - vinstall libnvidia-glcore.so.${version} 755 usr/lib - 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 - - vinstall libEGL_nvidia.so.${version} 755 usr/lib - ln -sf libEGL_nvidia.so.${version} ${DESTDIR}/usr/lib/libEGL_nvidia.so.0 - - vinstall libGLESv1_CM_nvidia.so.${version} 755 usr/lib - ln -sf libGLESv1_CM_nvidia.so.${version} \ - ${DESTDIR}/usr/lib/libGLESv1_CM_nvidia.so.1 - - vinstall libGLESv2_nvidia.so.${version} 755 usr/lib - ln -sf libGLESv2_nvidia.so.${version} ${DESTDIR}/usr/lib/libGLESv2_nvidia.so.2 - - # Thread Local Storage - vinstall libnvidia-tls.so.${version} 755 usr/lib/ - - # VDPAU - vinstall libvdpau_nvidia.so.${version} 755 usr/lib/vdpau - ln -sf libvdpau_nvidia.so.${version} \ - ${DESTDIR}/usr/lib/vdpau/libvdpau_nvidia.so.1 - - vinstall libnvidia-ml.so.${version} 755 usr/lib - ln -sf libnvidia-ml.so.${version} ${DESTDIR}/usr/lib/libnvidia-ml.so - ln -sf libnvidia-ml.so.${version} ${DESTDIR}/usr/lib/libnvidia-ml.so.1 - - vinstall libnvidia-encode.so.${version} 755 usr/lib - ln -sf libnvidia-encode.so.${version} ${DESTDIR}/usr/lib/libnvidia-encode.so - ln -sf libnvidia-encode.so.${version} ${DESTDIR}/usr/lib/libnvidia-encode.so.1 - - vinstall libnvidia-ifr.so.${version} 755 usr/lib - ln -sf libnvidia-ifr.so.${version} ${DESTDIR}/usr/lib/libnvidia-ifr.so - ln -sf libnvidia-ifr.so.${version} ${DESTDIR}/usr/lib/libnvidia-ifr.so.1 - - vinstall libnvidia-fbc.so.${version} 755 usr/lib - ln -sf libnvidia-fbc.so.${version} ${DESTDIR}/usr/lib/libnvidia-fbc.so - ln -sf libnvidia-fbc.so.${version} ${DESTDIR}/usr/lib/libnvidia-fbc.so.1 - - vinstall libnvidia-fatbinaryloader.so.${version} 755 usr/lib - ln -sf libnvidia-fatbinaryloader.so.${version} \ - ${DESTDIR}/usr/lib/libnvidia-fatbinaryloader.so.1 - ln -sf libnvidia-fatbinaryloader.so.1 \ - ${DESTDIR}/usr/lib/libnvidia-fatbinaryloader.so - - # CUDA - vinstall libcuda.so.${version} 755 usr/lib - ln -sf libcuda.so.${version} ${DESTDIR}/usr/lib/libcuda.so - ln -sf libcuda.so.${version} ${DESTDIR}/usr/lib/libcuda.so.1 - - vinstall libnvcuvid.so.${version} 755 usr/lib - ln -sf libnvcuvid.so.${version} ${DESTDIR}/usr/lib/libnvcuvid.so - ln -sf libnvcuvid.so.${version} ${DESTDIR}/usr/lib/libnvcuvid.so.1 - - vinstall libnvidia-opticalflow.so.${version} 755 usr/lib - ln -sf libnvidia-opticalflow.so.${version} \ - ${DESTDIR}/usr/lib/libnvidia-opticalflow.so - ln -sf libnvidia-opticalflow.so.${version} \ - ${DESTDIR}/usr/lib/libnvidia-opticalflow.so.1 - - vinstall libnvidia-ptxjitcompiler.so.${version} 755 usr/lib - 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 - - # helper libs for approved partners' GRID remote apps - vinstall libnvidia-ifr.so.${version} 755 usr/lib - vinstall libnvidia-fbc.so.${version} 755 usr/lib + # Libraries (64bit) + _install_libs usr/lib + cd 32 + # Libraries (32bit) + _install_libs usr/lib32 } nvidia-gtklibs_package() { @@ -242,11 +237,18 @@ nvidia-gtklibs_package() { vmove "usr/lib/lib*gtk*.so*" } } +nvidia-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 + } +} nvidia-libs_package() { short_desc="${_desc} - common libraries" - # manually set 32bit depends for libglvnd depends="libglvnd" - lib32depends="glibc-32bit>=0 libX11-32bit>=0 libXext-32bit>=0 libglvnd-32bit>=0" pkg_install() { vmove usr/lib }