summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <sudinave@gmail.com>2021-04-03 21:02:39 +0200
committerDavid Seifert <soap@gentoo.org>2021-04-03 21:02:39 +0200
commited58cc9d7da5c91cd53dffd633926a5468cc3184 (patch)
tree2f59586f0e75dea25e5b5570f5d077d27ca8f5b7 /x11-drivers/nvidia-drivers
parentnet-analyzer/tleds: use PATCHES (diff)
downloadgentoo-ed58cc9d7da5c91cd53dffd633926a5468cc3184.tar.gz
gentoo-ed58cc9d7da5c91cd53dffd633926a5468cc3184.tar.bz2
gentoo-ed58cc9d7da5c91cd53dffd633926a5468cc3184.zip
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 <sudinave@gmail.com> Signed-off-by: David Seifert <soap@gentoo.org>
Diffstat (limited to 'x11-drivers/nvidia-drivers')
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild161
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild172
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild172
3 files changed, 273 insertions, 232 deletions
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
}