From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1266951-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 83AA513835A
	for <garchives@archives.gentoo.org>; Sat,  3 Apr 2021 19:03:14 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id B1249E0876;
	Sat,  3 Apr 2021 19:03:13 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 67E2EE0849
	for <gentoo-commits@lists.gentoo.org>; Sat,  3 Apr 2021 19:03:13 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 9F74B3406F2
	for <gentoo-commits@lists.gentoo.org>; Sat,  3 Apr 2021 19:03:11 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 3A020478
	for <gentoo-commits@lists.gentoo.org>; Sat,  3 Apr 2021 19:03:10 +0000 (UTC)
From: "David Seifert" <soap@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "David Seifert" <soap@gentoo.org>
Message-ID: <1617476559.ed58cc9d7da5c91cd53dffd633926a5468cc3184.soap@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/
X-VCS-Repository: repo/gentoo
X-VCS-Files: x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild
X-VCS-Directories: x11-drivers/nvidia-drivers/
X-VCS-Committer: soap
X-VCS-Committer-Name: David Seifert
X-VCS-Revision: ed58cc9d7da5c91cd53dffd633926a5468cc3184
X-VCS-Branch: master
Date: Sat,  3 Apr 2021 19:03:10 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 0b6a90cd-c7e6-46d6-8894-3c2be372de4d
X-Archives-Hash: dff7e3b2013125b23084cc38b30335da

commit:     ed58cc9d7da5c91cd53dffd633926a5468cc3184
Author:     Ionen Wolkens <sudinave <AT> gmail <DOT> com>
AuthorDate: Sat Apr  3 19:02:39 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Apr  3 19:02:39 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed58cc9d

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 <AT> gmail.com>
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 .../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(-)

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 c639458a22d..bff5e56f68c 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 d28ef6effc7..a425556ec3c 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 e6d9570a271..b160a613192 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
 }