From ed58cc9d7da5c91cd53dffd633926a5468cc3184 Mon Sep 17 00:00:00 2001 From: Ionen Wolkens Date: Sat, 3 Apr 2021 21:02:39 +0200 Subject: x11-drivers/nvidia-drivers: style re-arrangement and nitpicks - Moved CONFIG_CHECK variables to pkg_setup. Will need conditional checks and would rather have everything in one place if going to modify. Not using pkg_pretend as don't want it to fail with a yet-to-be-installed dist-kernel. - Normalized kernel_is use to match docs rather than nvidia.eclass. - Split nvidia-drivers_make() with _make_install(). ${ED} being wrong or unset during src_compile() would be a no-op but is nonetheless incorrect usage. - Moved function declarations to respective phases, no longer shared. Partly to allow pkgcheck and friends to detect variables misuse. - Removed some unnecessary globs and quotes. - Removed no longer relevant '!= lib' check, was formerly used for egl-wayland but is now in its own package. Signed-off-by: Ionen Wolkens Signed-off-by: David Seifert --- .../nvidia-drivers-390.141-r1.ebuild | 161 ++++++++++--------- .../nvidia-drivers-450.102.04-r1.ebuild | 172 +++++++++++---------- .../nvidia-drivers/nvidia-drivers-460.67.ebuild | 172 +++++++++++---------- 3 files changed, 273 insertions(+), 232 deletions(-) (limited to 'x11-drivers/nvidia-drivers') diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild index c639458a22d9..bff5e56f68c5 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild @@ -72,18 +72,6 @@ BDEPEND=" QA_PREBUILT="opt/* usr/lib*" -CONFIG_CHECK=" - ~DRM_KMS_HELPER - ~SYSVIPC - ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT - ~!LOCKDEP - !DEBUG_MUTEXES" -ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and optional nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, so enable - options such as CONFIG_DRM_FBDEV_EMULATION instead. - 390.xx branch: also used by a GLX workaround needed for OpenGL." - PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-390.141-fno-common.patch @@ -96,6 +84,19 @@ HTML_DOCS=( html/. ) pkg_setup() { use driver || return + + local CONFIG_CHECK=" + ~DRM_KMS_HELPER + ~SYSVIPC + ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + ~!LOCKDEP + !DEBUG_MUTEXES" + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and optional nvidia-drm.modeset=1. + Cannot be directly selected in the kernel's menuconfig, so enable + options such as CONFIG_DRM_FBDEV_EMULATION instead. + 390.xx branch: also used by a GLX workaround needed for OpenGL." + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' use x86 && BUILD_PARAMS+=' ARCH=i386' # needed for recognition BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules @@ -104,9 +105,10 @@ pkg_setup() { nvidia-drm(video:kernel) nvidia-modeset(video:kernel)" use amd64 && MODULE_NAMES+=" nvidia-uvm(video:kernel)" # no x86 support + linux-mod_pkg_setup - if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" ewarn "or was not tested with it. It is recommended to use one of:" ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" @@ -153,16 +155,18 @@ src_prepare() { gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die } -nvidia-drivers_make() { - emake -C nvidia-${1} ${2} \ - DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ - HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ - DO_STRIP= MANPAGE_GZIP= \ - NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out -} - src_compile() { + nvidia-drivers_make() { + emake -C nvidia-${1} ${2} \ + PREFIX="${EPREFIX}/usr" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_LD="$(tc-getBUILD_LD)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out + } + tc-export AR CC LD OBJCOPY + # may no longer be relevant but kept as a safety export DISTCC_DISABLE=1 CCACHE_DISABLE=1 @@ -183,60 +187,69 @@ src_compile() { fi } -nvidia-drivers_libs_install() { - local libs=( - EGL_nvidia - GLESv1_CM_nvidia - GLESv2_nvidia - cuda - nvcuvid - nvidia-compiler - nvidia-eglcore - nvidia-encode - nvidia-fatbinaryloader - nvidia-glcore - nvidia-glsi - nvidia-ml - nvidia-opencl - nvidia-ptxjitcompiler - nvidia-tls - ) - - if use X; then - libs+=( - GLX_nvidia - nvidia-fbc - nvidia-ifr - vdpau_nvidia - ) - fi - - local libdir=. - if multilib_is_native_abi; then - libs+=( - nvidia-cfg - nvidia-wfb +src_install() { + nvidia-drivers_make_install() { + emake -C nvidia-${1} install \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${ED}/usr/$(get_libdir)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + } + + nvidia-drivers_libs_install() { + local libs=( + EGL_nvidia + GLESv1_CM_nvidia + GLESv2_nvidia + cuda + nvcuvid + nvidia-compiler + nvidia-eglcore + nvidia-encode + nvidia-fatbinaryloader + nvidia-glcore + nvidia-glsi + nvidia-ml + nvidia-opencl + nvidia-ptxjitcompiler + nvidia-tls ) - else - libdir+=/32 - fi - local lib soname - for lib in "${libs[@]}"; do - [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV} + if use X; then + libs+=( + GLX_nvidia + nvidia-fbc + nvidia-ifr + vdpau_nvidia + ) + fi - # auto-detect soname and create appropriate symlinks - soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" - if [[ ${soname} && ${soname} != ${lib} ]]; then - ln -s ${lib} ${libdir}/${soname} || die + local libdir=. + if multilib_is_native_abi; then + libs+=( + nvidia-cfg + nvidia-wfb + ) + else + libdir+=/32 fi - ln -s ${lib} ${libdir}/${lib%.so*}.so || die - dolib.so ${libdir}/${lib%.so*}* - done -} + local lib soname + for lib in "${libs[@]}"; do + lib=lib${lib}.so.${PV} + + # auto-detect soname and create appropriate symlinks + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" + if [[ ${soname} && ${soname} != ${lib} ]]; then + ln -s ${lib} ${libdir}/${soname} || die + fi + ln -s ${lib} ${libdir}/${lib%.so*}.so || die + + dolib.so ${libdir}/${lib%.so*}* + done + } -src_install() { if use driver; then linux-mod_src_install @@ -271,20 +284,20 @@ src_install() { newins nvidia-application-profiles{-${PV},}-rc # install built helpers - nvidia-drivers_make modprobe install + nvidia-drivers_make_install modprobe # allow video group to load mods and create devs (bug #505092) fowners root:video /usr/bin/nvidia-modprobe fperms 4710 /usr/bin/nvidia-modprobe - nvidia-drivers_make persistenced install + nvidia-drivers_make_install persistenced newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced systemd_dounit nvidia-persistenced.service - use X && nvidia-drivers_make xconfig install + use X && nvidia-drivers_make_install xconfig if use tools; then - nvidia-drivers_make settings install + nvidia-drivers_make_install settings doicon nvidia-settings/doc/nvidia-settings.png domenu nvidia-settings/doc/nvidia-settings.desktop @@ -316,7 +329,7 @@ src_install() { doman nvidia-smi.1 # install prebuilt-only libraries - mv tls/* . || die # alternate tls lib needed for libglx.so + mv tls/libnvidia-tls.so.${PV} . || die # alt tls lib needed by libglx.so multilib_foreach_abi nvidia-drivers_libs_install einstalldocs diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild index d28ef6effc7b..a425556ec3c2 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild @@ -72,17 +72,6 @@ BDEPEND=" QA_PREBUILT="opt/* usr/lib*" -CONFIG_CHECK=" - ~DRM_KMS_HELPER - ~SYSVIPC - ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT - ~!LOCKDEP - !DEBUG_MUTEXES" -ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and optional nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, so enable - options such as CONFIG_DRM_FBDEV_EMULATION instead." - PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch ) @@ -94,6 +83,18 @@ HTML_DOCS=( html/. ) pkg_setup() { use driver || return + + local CONFIG_CHECK=" + ~DRM_KMS_HELPER + ~SYSVIPC + ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + ~!LOCKDEP + !DEBUG_MUTEXES" + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and optional nvidia-drm.modeset=1. + Cannot be directly selected in the kernel's menuconfig, so enable + options such as CONFIG_DRM_FBDEV_EMULATION instead." + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules MODULE_NAMES=" @@ -101,9 +102,10 @@ pkg_setup() { nvidia-drm(video:kernel) nvidia-modeset(video:kernel) nvidia-uvm(video:kernel)" + linux-mod_pkg_setup - if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" ewarn "or was not tested with it. It is recommended to use one of:" ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" @@ -144,16 +146,18 @@ src_prepare() { gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die } -nvidia-drivers_make() { - emake -C nvidia-${1} ${2} \ - DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ - HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ - DO_STRIP= MANPAGE_GZIP= \ - NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out -} - src_compile() { + nvidia-drivers_make() { + emake -C nvidia-${1} ${2} \ + PREFIX="${EPREFIX}/usr" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_LD="$(tc-getBUILD_LD)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out + } + tc-export AR CC LD OBJCOPY + # may no longer be relevant but kept as a safety export DISTCC_DISABLE=1 CCACHE_DISABLE=1 @@ -170,69 +174,78 @@ src_compile() { fi } -nvidia-drivers_libs_install() { - local libs=( - EGL_nvidia - GLESv1_CM_nvidia - GLESv2_nvidia - cuda - nvcuvid - nvidia-allocator - nvidia-eglcore - nvidia-encode - nvidia-glcore - nvidia-glsi - nvidia-glvkspirv - nvidia-ml - nvidia-opencl - nvidia-opticalflow - nvidia-ptxjitcompiler - nvidia-tls - ) - use amd64 && libs+=( nvidia-compiler ) - - if use X; then - libs+=( - GLX_nvidia - vdpau_nvidia +src_install() { + nvidia-drivers_make_install() { + emake -C nvidia-${1} install \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${ED}/usr/$(get_libdir)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + } + + nvidia-drivers_libs_install() { + local libs=( + EGL_nvidia + GLESv1_CM_nvidia + GLESv2_nvidia + cuda + nvcuvid + nvidia-allocator + nvidia-eglcore + nvidia-encode + nvidia-glcore + nvidia-glsi + nvidia-glvkspirv + nvidia-ml + nvidia-opencl + nvidia-opticalflow + nvidia-ptxjitcompiler + nvidia-tls ) - if use amd64; then + use amd64 && libs+=( nvidia-compiler ) + + if use X; then libs+=( - nvidia-fbc - nvidia-ifr + GLX_nvidia + vdpau_nvidia ) + if use amd64; then + libs+=( + nvidia-fbc + nvidia-ifr + ) + fi fi - fi - local libdir=. - if multilib_is_native_abi; then - libs+=( - nvidia-cbl - nvidia-cfg - nvidia-rtcore - nvoptix - ) - use amd64 && libs+=( nvidia-ngx ) - else - libdir+=/32 - fi + local libdir=. + if multilib_is_native_abi; then + libs+=( + nvidia-cbl + nvidia-cfg + nvidia-rtcore + nvoptix + ) + use amd64 && libs+=( nvidia-ngx ) + else + libdir+=/32 + fi - local lib soname - for lib in "${libs[@]}"; do - [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV} + local lib soname + for lib in "${libs[@]}"; do + lib=lib${lib}.so.${PV} - # auto-detect soname and create appropriate symlinks - soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" - if [[ ${soname} && ${soname} != ${lib} ]]; then - ln -s ${lib} ${libdir}/${soname} || die - fi - ln -s ${lib} ${libdir}/${lib%.so*}.so || die + # auto-detect soname and create appropriate symlinks + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" + if [[ ${soname} && ${soname} != ${lib} ]]; then + ln -s ${lib} ${libdir}/${soname} || die + fi + ln -s ${lib} ${libdir}/${lib%.so*}.so || die - dolib.so ${libdir}/${lib%.so*}* - done -} + dolib.so ${libdir}/${lib%.so*}* + done + } -src_install() { if use driver; then linux-mod_src_install @@ -273,20 +286,20 @@ src_install() { newins nvidia-application-profiles{-${PV},}-rc # install built helpers - nvidia-drivers_make modprobe install + nvidia-drivers_make_install modprobe # allow video group to load mods and create devs (bug #505092) fowners root:video /usr/bin/nvidia-modprobe fperms 4710 /usr/bin/nvidia-modprobe - nvidia-drivers_make persistenced install + nvidia-drivers_make_install persistenced newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced systemd_dounit nvidia-persistenced.service - use X && nvidia-drivers_make xconfig install + use X && nvidia-drivers_make_install xconfig if use tools; then - nvidia-drivers_make settings install + nvidia-drivers_make_install settings doicon nvidia-settings/doc/nvidia-settings.png domenu nvidia-settings/doc/nvidia-settings.desktop @@ -320,10 +333,11 @@ src_install() { # install prebuilt-only libraries multilib_foreach_abi nvidia-drivers_libs_install + # install systemd sleep services exeinto /lib/systemd/system-sleep doexe nvidia dobin nvidia-sleep.sh - systemd_dounit *.service + systemd_dounit nvidia-{hibernate,resume,suspend}.service einstalldocs } diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild index e6d9570a2714..b160a613192f 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild @@ -72,17 +72,6 @@ BDEPEND=" QA_PREBUILT="opt/* usr/lib*" -CONFIG_CHECK=" - ~DRM_KMS_HELPER - ~SYSVIPC - ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT - ~!LOCKDEP - !DEBUG_MUTEXES" -ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and optional nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, so enable - options such as CONFIG_DRM_FBDEV_EMULATION instead." - PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch ) @@ -94,6 +83,18 @@ HTML_DOCS=( html/. ) pkg_setup() { use driver || return + + local CONFIG_CHECK=" + ~DRM_KMS_HELPER + ~SYSVIPC + ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + ~!LOCKDEP + !DEBUG_MUTEXES" + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and optional nvidia-drm.modeset=1. + Cannot be directly selected in the kernel's menuconfig, so enable + options such as CONFIG_DRM_FBDEV_EMULATION instead." + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules MODULE_NAMES=" @@ -101,9 +102,10 @@ pkg_setup() { nvidia-drm(video:kernel) nvidia-modeset(video:kernel) nvidia-uvm(video:kernel)" + linux-mod_pkg_setup - if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" ewarn "or was not tested with it. It is recommended to use one of:" ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" @@ -144,16 +146,18 @@ src_prepare() { gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die } -nvidia-drivers_make() { - emake -C nvidia-${1} ${2} \ - DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ - HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ - DO_STRIP= MANPAGE_GZIP= \ - NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out -} - src_compile() { + nvidia-drivers_make() { + emake -C nvidia-${1} ${2} \ + PREFIX="${EPREFIX}/usr" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_LD="$(tc-getBUILD_LD)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out + } + tc-export AR CC LD OBJCOPY + # may no longer be relevant but kept as a safety export DISTCC_DISABLE=1 CCACHE_DISABLE=1 @@ -170,69 +174,78 @@ src_compile() { fi } -nvidia-drivers_libs_install() { - local libs=( - EGL_nvidia - GLESv1_CM_nvidia - GLESv2_nvidia - cuda - nvcuvid - nvidia-allocator - nvidia-eglcore - nvidia-encode - nvidia-glcore - nvidia-glsi - nvidia-glvkspirv - nvidia-ml - nvidia-opencl - nvidia-opticalflow - nvidia-ptxjitcompiler - nvidia-tls - ) - use amd64 && libs+=( nvidia-compiler ) - - if use X; then - libs+=( - GLX_nvidia - vdpau_nvidia +src_install() { + nvidia-drivers_make_install() { + emake -C nvidia-${1} install \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${ED}/usr/$(get_libdir)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + } + + nvidia-drivers_libs_install() { + local libs=( + EGL_nvidia + GLESv1_CM_nvidia + GLESv2_nvidia + cuda + nvcuvid + nvidia-allocator + nvidia-eglcore + nvidia-encode + nvidia-glcore + nvidia-glsi + nvidia-glvkspirv + nvidia-ml + nvidia-opencl + nvidia-opticalflow + nvidia-ptxjitcompiler + nvidia-tls ) - if use amd64; then + use amd64 && libs+=( nvidia-compiler ) + + if use X; then libs+=( - nvidia-fbc - nvidia-ifr + GLX_nvidia + vdpau_nvidia ) + if use amd64; then + libs+=( + nvidia-fbc + nvidia-ifr + ) + fi fi - fi - local libdir=. - if multilib_is_native_abi; then - libs+=( - nvidia-cbl - nvidia-cfg - nvidia-rtcore - nvoptix - ) - use amd64 && libs+=( nvidia-ngx ) - else - libdir+=/32 - fi + local libdir=. + if multilib_is_native_abi; then + libs+=( + nvidia-cbl + nvidia-cfg + nvidia-rtcore + nvoptix + ) + use amd64 && libs+=( nvidia-ngx ) + else + libdir+=/32 + fi - local lib soname - for lib in "${libs[@]}"; do - [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV} + local lib soname + for lib in "${libs[@]}"; do + lib=lib${lib}.so.${PV} - # auto-detect soname and create appropriate symlinks - soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" - if [[ ${soname} && ${soname} != ${lib} ]]; then - ln -s ${lib} ${libdir}/${soname} || die - fi - ln -s ${lib} ${libdir}/${lib%.so*}.so || die + # auto-detect soname and create appropriate symlinks + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" + if [[ ${soname} && ${soname} != ${lib} ]]; then + ln -s ${lib} ${libdir}/${soname} || die + fi + ln -s ${lib} ${libdir}/${lib%.so*}.so || die - dolib.so ${libdir}/${lib%.so*}* - done -} + dolib.so ${libdir}/${lib%.so*}* + done + } -src_install() { if use driver; then linux-mod_src_install @@ -273,20 +286,20 @@ src_install() { newins nvidia-application-profiles{-${PV},}-rc # install built helpers - nvidia-drivers_make modprobe install + nvidia-drivers_make_install modprobe # allow video group to load mods and create devs (bug #505092) fowners root:video /usr/bin/nvidia-modprobe fperms 4710 /usr/bin/nvidia-modprobe - nvidia-drivers_make persistenced install + nvidia-drivers_make_install persistenced newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced systemd_dounit nvidia-persistenced.service - use X && nvidia-drivers_make xconfig install + use X && nvidia-drivers_make_install xconfig if use tools; then - nvidia-drivers_make settings install + nvidia-drivers_make_install settings doicon nvidia-settings/doc/nvidia-settings.png domenu nvidia-settings/doc/nvidia-settings.desktop @@ -320,10 +333,11 @@ src_install() { # install prebuilt-only libraries multilib_foreach_abi nvidia-drivers_libs_install + # install systemd sleep services exeinto /lib/systemd/system-sleep doexe nvidia dobin nvidia-sleep.sh - systemd_dounit *.service + systemd_dounit nvidia-{hibernate,resume,suspend}.service einstalldocs } -- cgit v1.2.3-65-gdbad